Ask HN: Why are London devs paid so much less than SF/NY? - <AUTHOR> London is supposed to be the next best market outside the US, yet from recent salary threads, developers are paid half or less of US salaries.
For example, with 5 years experience, I am on £75k ($110k) in a startup as a Senior Dev, and that is considered pretty good. I could get maybe another 10-20% if I had 10 years experience or was really exceptional. A Team Lead with 7-10 years experience can expect around £100k ($150k).
But my salary is only comparable to a fresh graduate at Google in SF. A Google dev with 1 year experience in SF will earn as much as a Team Lead in London with 10 years experience! <comment><USER2> It's mirrored in how tech firms are valued.

In the valley, you can have a so-so idea, land a huge investment, sell the product to other businesses for crazy money, and pay staff high wages.

In the UK, technology is this weird nerdy flash in the pan that "serious businesspeople" want nothing to do with, and investment and customers who value tech are in similarly short supply.

I write this as the employer of 50 people who'd love to pay everyone more but can't because our end customers undervalue our product, and investors are non- existent.

We saw this first hand when one of our clients sold our "worthless technology" for over $100m - yet in the UK £10k was the best valuation we could find at the time.

I sit in meetings with prospective customers who honest to God think that this system they'll be using to drive their entire £50m business through should be free because "it's just software". Simultaneously they'll happily pay a lawyer £200k to argue about the contract they're going to spend £20k with you through, because lawyers are real actual people, and we nerds are just soulless computer child-people. SEO agencies need paying well too because they have a marketing background, and marketing is also real.

Tech is seen as a utility like water over here. The people who provide it are viewed like sewer technicians.

So - it's not that employers are stingier, it's rather more that there's a lot less money in the ecosystem.

Finally, you're comparing to Google, who are a company who think nothing of putting a liberal arts grad with no experience on $600k to lead the spin fight against taxation in the UK - they pay crazy money, particularly to well connected people.

Oh, and fwiw, I'm cto/co-founder and I earn considerably less than you, so count your blessings.

I might have a small chip on my shoulder regarding this.

<comment><USER3> This raises the question: why don't more reasonable VCs move to London? If valuations really are that low, there's incredible money to be made.

<comment><USER2> The valuations are low because tech spending in the UK is comparatively low, so only if you can pivot a UK firm into the US market would you find yourself a bargain.

</comment></comment></comment><comment><USER4> Social security and taxes is one factor. Overall salary structure is another. In Scandinavia where salaries are even more flat, I as a developer will likely not make more than 3 times a cleaner or 2 times what a teacher makes, almost regardless of supply and demand. The overall structure of salaries, the taxes in high income etc will dictate the ceiling. Not just the supply and demand. High taxes (50-60 margin) also means cash comp becomes less attractive after a certain point. At $80k with 55% margin tax rate I'll happily take a sixth week of holiday over another raise.

Job security is another thing. I'd want better pay if I could be fired on the spot. UK is more flexible than Scandinavia (which in the case of Sweden is basically last-in-first-out even for high tech workers, with exceptions allowed after expensive negotiations, think a years salary in severance for ditching the underperformer with longer tenure). This is not the case in the UK, and obviously not at all the situation in the US.

Same thing with holidays: If I had to take an unpaid leave holiday to get a month of continuous holiday, then that's a cost I'd want reflected in my salary.

So to do my Scandinavian math which might partly apply to London (living expenses, supply/demand differs): I make $80k. If I had to pay anything of that for healthcare or daycare for kids, I'd want that money on top. If I didn't have 5-6w paid holiday I'd want that money on top. If I didn't have practically unlimited sick days and paid leave to care for sick kids, I'd want that money on top. It doesn't matter that none of that is paid by the employer, it still affects my salary requirement. If my total effective income tax rate was 20% instead of 35%, I'd need less. And so on.

</comment><comment><USER5> You can earn north of $200,000 or even $300,000 a year in the London contract market.

Given that you apparently don't get resonable time off when earning the big bucks on SV, my Ltd would gross around $300,000 p/a if I billed for all 253 business days and I only work 9-5.

Basically, if you're actually good, become a contractor and move into a niche paying the higher rates.

Edit: Plus it's not really just about headline rates, it's what you're left with at the end. Let me break that down for you.

£700 p/d x 253 x 1.2 (vat) = £212520

\- subtract 14.5% flat vat rate = 181704.6

\- subtract 8k tax free income = 173704.6

\- subtract 20% copr tax = 138963.68

\- subtract 32k tax free divs = 106963.68

\- subtract 6k expenses (laptop, travel, phone etc) = 10000.00

You now have paid yourself £40,000 to live on (and don't have to pay for travel yourself) and you have £100,000 ($144710) saved in your company to invest, etc. I'd be suprised to see a single male in SF living that lifestyle, but it's not uncommon in London.

<comment><USER6> _I 'd be suprised to see a single male in SF living that lifestyle, but it's not uncommon in London._

£700k/day is not uncommon? For experienced specialists in the right niches, it's certainly possible, but "average developers" aren't going to command that kind of rate even in London.

<comment><USER5> Not eveyone will earn at the higher end of the market in SV either but £600 to £700 a day isn't terribly difficult to achieve in London.

Basically we're talking about being a semi good and modern Java, Node or Python developer. Alternativly a system administrator who's not afraid of automation.

You'll probably need to work in Government or Finance, but like I said, it's not uncommon.

<comment><USER6> _You 'll probably need to work in Government or Finance_

That's the kicker, and what I meant by "the right niches" before.

I know plenty of people doing contract software work in and around London who aren't getting close to that, and surely would be if the general market was that high. These are pretty well qualified (often PhD) and experienced (10+ years) people who know what they're doing and have decent track records, they just don't enjoy working in intense environments like trading.

I'm curious about where you think the Government gigs at that rate are found, if all they need is being semi-good with one of the popular languages. I can think of quite a few people who'd be interested in that kind of opportunity, but if any of my close network are doing it right now then they've not mentioned it.

<comment><USER5> That'd be the kicker if it was extremely difficult to get into either Government or Finance but it's not.

Either way, places that'll pay this in Government are The Home Office, DWP, DVLA, MOJ & GDS. Pretty much every arm of central Government pays decent rates.

But rather than me just talk crap, why don't you just look:-

[https://www.jobserve.com/gb/en/JobSearch.aspx?shid=E3A30197F...](https://www.jobserve.com/gb/en/JobSearch.aspx?shid=E3A30197FA79410EA1) [https://www.jobserve.com/gb/en/JobSearch.aspx?shid=E3A30197F...](https://www.jobserve.com/gb/en/JobSearch.aspx?shid=E3A30197FA79410EA1) [https://www.jobserve.com/gb/en/JobSearch.aspx?shid=6E57F8DA8...](https://www.jobserve.com/gb/en/JobSearch.aspx?shid=6E57F8DA8E00AC2897)

<comment><USER6> Sorry, I'm not sure what you meant to link to there, but I suspect what you actually linked to wasn't it.

In any case, based on people in my network, it doesn't appear to be guaranteed that people working for civil service departments such as those you mentioned will routinely attract the kind of rate you're talking about even at high levels.

<comment><USER5> The link seems to lost the settings, but either way, jobserve, contracts, select by rate and search the programming languages.

Anyways those rates aren't guaranteed but the money is out there. However, you won't get them by not asking for them. Why would you? :)

<comment><USER6> I won't get those rates anyway, as my career has taken a slightly more entrepreneurial path recently. :-)

However, I'm half interested on behalf of various friends and former colleagues who are still 100% contract/freelance, and half interested from the point of view of not giving an overly optimistic view to anyone reading this who isn't familiar with the contracting market.

As it happens, I did check several sites including the one you mentioned when I first posted, and based on that it looks like it's still fair to say that £700+/day rates are achievable particularly in London and in the right niches, but they aren't (yet?) the norm even for quite good developers.

<comment><USER5> I never said they were the norm, just that they're uncommon. That said, if you want solid advice for your mates, it's simply this.

Be resonably competent, pass a technical interview that's mainly talking based, get your foot in the door at £600 a day, ask for more after you establish yourself.

If you actually deliver your network will be completely different and you'll be able to command those higher rates for quite some time.

More importantly, don't bottle negotiations. Your competition isn't amazing, they're just guys who know the framework de jure and make sure they're buzzword compliant.

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment> UK-AL Lack of respect. In the UK software developers are just considered "techies", nerdy and replaceable for a dime a dozen. Anyone with serious skills and ambition goes into banking, finanance or maybe a founder.

Software developers in sf/sv are considered highly talented respectable people which companies will fight over.

<comment><USER7> I'd argue reverse causality in your argument.

In SV, software guys _were_ disrespected, considered replaceable until they became the company breadwinners. Good finance guys are in the same situation in other places, like London perhaps.

The respect follows the money, not the other way around.

</comment></comment><comment><USER8> What do Googlers in London make vs those in Mountain View / SF? If you're comparing a cohort to Googlers, the only applicable cohort for comparison is other Googlers (or FB). This is because even in SF/SV, they make significantly more than your average VC backed hot startup dev, factoring in total comp and liquidity considerations for equity packages.

If you're at a VC backed startup in London, then you should compare your compensation to other VC backed startup devs in SF/SV. I'm not familiar with NYC salaries, but $110k base is definitely much more than "half" of what your typical startup senior dev is making in SF.

</comment><comment><USER9> Contracting pays far better in the UK than salary. I remember being offered £1k/day just to travel round the country installing servers. I didn't take it, as I work on the data science side of things, but was still very tempted to just chuck it in for that sort of cash...

<comment><USER10> Contracting doesn't seem to be that well-paid throughout. From time to time I get enquiries for contracting work in London (mostly for the financial industry) with a 'maximum budget' of 450 quid / day.

Compared to market prices in metropolitan regions in Germany that's on the lower end of the range and by and large those though prosperous are much less affluent than London.

<comment><USER11> I started contracting two years and was earning £500/day as a 'senior developer' writing Rails remotely for a company based in London. If I was onsite I would have asked for more.

To get higher rates for contracting you need to have the right contacts, by the time it ends up at a recruiter you need to end up paying their cut which can be substantial (10% - 35%, it's not bad for just sending a few emails :D).

<comment><USER10> > To get higher rates for contracting you need to have the right contacts

That's what it comes down to regardless of location. If you're willing to share some of your London / UK contacts, that'd be much appreciated (contact info's in my profile).

</comment></comment></comment></comment><comment><USER12> If you're a decent dev in London you can quite easily land a £400/day contract.

Congrats you are now making ~£90k or $130k / year!

(This is where it starts. £400/day is aiming low)

<comment><USER13> The problem with contracting is nobody is paying into your pension, you have no paid leave and because of the (real or perceived) lack of security it is extremely difficult to get a mortgage and harder to even rent.

<comment><USER14>
        > The problem with contracting is nobody is paying
        > into your pension

You can take up to £40k out of your Ltd company tax-free in to your pension.

        > you have no paid leave

220 days is the magic number to use to value your contracts. Public holidays, some leave, weekends, etc. 400 * 220 = £88,000. Plus flat-rate VAT bonus. Plus you pay yourself in dividends. Plus you claim some sensible expenses, and shirk your NIC obligations, and your take-home is about £6,000, which is actually equivalent to earning £112,000. With four weeks of leave included.

</comment></comment></comment><comment><USER15> Things are getting better. Five years ago startups were not paying £75k to developers.

The big US tech companies now have an increased presence here and are raising salaries across the city. Your estimates of the max you can earn are pessimistic: I work at one of these companies at the level below Senior and make about the same as you do as a base salary and about 1.5x the amount in total comp. Finance also pays developers well in London.

Many of my colleagues have been hired out of startups, who have to pay more to find replacements than before. My friends at companies trying to offer £40-50k to experienced developers simply can't hire anyone with the skills they want, whereas a few years ago they used to have no problem finding people who would take £35-40k.

There are plenty of companies that treat development as an "IT" cost; the stereotype of the awful British version of Initrode and Initech. I have worked at one of these before and it is horrible working at a place that _everyone_ is desperately trying to leave. It is up to you to try and politely avoid these places, and if you have to take one of these jobs, work incredibly hard ([https://blog.stackoverflow.com/2015/09/how-to-be- awesome/](https://blog.stackoverflow.com/2015/09/how-to-be-awesome/)) to expand the options available to you.

</comment><comment><USER16> I recently wrote an article comparing London to San Francisco from a tech standpoint: [http://jh47.com/2016/03/01/london-vs-san- francisco/](http://jh47.com/2016/03/01/london-vs-san-francisco/)

I currently work as a contractor based in London for a company in SV, but I totally agree with what's said here in that it's a matter of differing viewpoints. There's an inherent stinginess here on the whole, a disparagingly utilitarian viewpoint that software engineers are just "IT guys" \- technicians who maintain the digital plumbing. There was a lot of pressure coming out of university to go into finance.

But on the other hand - there is a lot of hot air and shaky foundations out in SV, a lot of money changing hands that is likely to dissipate when confidence is lost in the ecosystem. One could argue that while devs here are paid too little, devs there are paid too much - relatively speaking.

</comment><comment><USER17> Contracting is pretty popular in London. Is contracting as popular in SF? I don't hear much about it. In London a decent mid-level developer can earn £500 a day, the shortage of developers at the moment, it's a no brainer for me. Obviously it's not for everybody. Any idea what a Senior/Team Lead earns contracting?

<comment> k-mcgrady Any idea how to go about getting those contracts? Is it all about connections or do you go through recruiters? Also how long do they usually last before you have to find a new one?

<comment><USER5> [https://www.jobserve.com/gb/en/JobSearch.aspx?shid=6450B5D05...](https://www.jobserve.com/gb/en/JobSearch.aspx?shid=6450B5D059DCA17214)

</comment></comment></comment><comment><USER18> Software devs in Banking are paid slightly more, but again compared to a baking software dev in the likes of NY it's still low. I work in a front- office team (so effectively on the investment side) at a bank as a quant dev VP, 3 years experience and earn £105k (that's including my bonus).

</comment><comment><USER19> This is not just technology. Salaries in general are paid less across the board in the UK than in the US. If you think you have it bad, take a look at the average salary of a GP, who went through 10+ years of education, just so they could earn £45k per annum.

<comment><USER20> So why does a Macbook cost more in the UK than in the US ?

<comment><USER19> 20% VAT and high import taxes.

</comment></comment></comment><comment><USER21> Is there a rule that in every country in the world the salary levels should be the same? Also whats the cost of living in SF? London is expensive, but apparently SF is more expensive...

[http://www.numbeo.com/cost-of- living/compare_cities.jsp?coun...](http://www.numbeo.com/cost-of- living/compare_cities.jsp?country1=United+Kingdom&city1=London&country2=United+States&city2=San+Francisco%2C+CA)

</comment><comment><USER22> Maybe it's an artifact of currency exchange drop in 2008/2009 where 1 gbp ~ 2 usd dropped to 1 gbp ~ 1 usd.

</comment><comment><USER23> I ask myself this question also. And to my eyes I agree your salary is pretty good for London.

I'm on ~£60k in London as a development lead with about 6 years experience. Mostly PHP though and php roles seem consistently lower paid than other languages, even though it shouldn't matter.

</comment><comment><USER7> The answer is very simple: supply and demand.

Silicon valley has a demand for talented developers and a limited supply, so developer wages are high.

This is also the generation that is least likely to be willing to move for work, here in the Western world. This makes imbalances in wages between cities worse.

London's supply better meets it's demand, and so wages are lower. Companies like Google will pay more in London than usual for the city because employees at different offices will compare salaries- but I'll bet you they still pay less in London than they do in California.

This is also a key point in the American immigration debate- you can indeed hire as many people as you need in SF, but only if you'll pay enough money. Immigration increases supply, lowering the price.

<comment> UK-AL Which is weird because we're constantly told there's a massive shortage of developers in london

<comment><USER24> There is a shortage of GOOD developers, because many people only enroll to CS universities tempted by higher than average salary, not because they really like programming.

Also, UK is a part of European Union, which makes London based developers compete with immigrants from countries like Poland, Hungary, Romania, who will be happy with much lower salaries.

<comment><USER2> _who will be happy with much lower salaries._

You'd think that but you'd be wrong. It's true that fresh immigrants might have a low salary ask, but folks wise up pretty quickly to their worth in the UK - which is just as well, as otherwise it'd lead to exploitation and would drag overall salaries down.

No, the supply and demand bit doesn't hold true - it's cultural. We undervalue technical skill here, severely, and have for several generations. It's seen as somehow dirty.

<comment><USER25> You are spot on: it's cultural.

The British class society has inbuilt superiority for some, regardless of economic contribution. It _is_ a monarchy after all, what should we expect.

Reminds me of facepalm moments in Bracknell a while back. Maybe things have improved since then, I wouldn't know: I left that country.

</comment></comment></comment></comment></comment><comment><USER26> It's better than in The Netherlands, where Leads earn 60-80k EUR with a higher effective tax rate than the UK/US.

It doesn't really make sense to work for an employer anymore, contracts pay better and if you can build your own business it's better again.

<comment><USER27> Do you have a comparison/breakdown of contractor vs. perm earnings?

<comment><USER26> Of course, because I'm hiring both.

Perm: 30k-80k depending on experience for Java/C# & good Javascript devs Contract: 50-80 EUR / hour depending on experience.

I'm a Tech Lead / Architect so can demand more as a contractor, although for the higher paid (perm) jobs I have to travel.

At the higher end you need to be really good: i.e. know more than just web development - being able to knock together CRUD apps with Rails/PHP won't cut it.

Pay and rates for PHP/Ruby are much lower - the talent pool is also less capable. Strangely enough C++ has the same issue - it has been explained to me that the best C++ devs have jumped ship already so what's left isn't that good. Whilst that can be the case it's more likely to be a question of demand: Europe doesn't build systems-level software in the way America does..

<comment><USER27> Thanks

I wonder what's the cost of the extra bureaucracy around contracting more or less

<comment><USER26> Contracting:

40 work weeks are workable 15% fee for agency 200 eur / month insurances 8k/year pension Slightly more favorable tax

The 40 weeks is 6 weeks holiday, 6 weeks downtime/sick. Insurance covers longer-term sickness (thus the cost).

When you consider that the best developers tend to go contracting the rates actually start to look low.

</comment></comment></comment></comment></comment><comment><USER28> There's just way more capital per capita for developers in SF. You might want to consider why bankers in SF are paid so poorly relative to London.

</comment><comment><USER29> I've often seen contract rates well and above salaries rates in London, more so than to make up for the potentially unstable nature of the work.

For the last 5 years or so I've been fully employed in devops roles, primarily containerization and deployment. I have been thinking a lot about turning to contracting, but have zero idea how I would start.

</comment><comment><USER30> Reading these threads, I can only assume that I am a terrible interviewee, or a bad developer. I have 1.5 years Rails / JS experience and currently earn £25k.

What do I have to do to get into the £35-40k bracket? I've had numerous interviews and a couple of offers, but none will move out of the £28-32k range.

<comment><USER31> That's low, it's what I earned straight out of university when I worked for a charity 8 years ago. (I thought of the charity work as a good donation to society and an opportunity to learn; it was but perhaps I stuck with it for too long.)

But I don't think it's that unusual for a new graduate position in a non- software company. Also, compare with any friends from university in science etc and you'll hopefully feel better about it.

At least make sure you're learning new things. Testing? CI? Agile? Configuration management? Cloud deployments? That's the things I pursued, but there are many possibilities. Hopefully you have done freedom to explore on work time. Identify what's needed most and looks good, get it done. If it doesn't get you a promotion at your current job, you'll at least be able to talk about it with confidence at the next interview.

</comment></comment><comment><USER32> With 3-5 years experience (was at the job for 2 years) I was making £46k, so it could be worse. ;) I was getting 20 vacation days a year, plus public holidays, plus some number of sick days.

I talked to my friends at FB and Google in London and they all said they were paid less than if they were working in SV.

<comment> UK-AL 46k in london is bad. 46k outside of London is respectable.

<comment><USER33> I'm elsewhere in the southeast, studied comp sci 15 years ago at a moderately well-regarded (though possibly not for CS) university, and most people I know from university or from previous jobs are on 30-45k AFAIK.

Of course, we may be too old, and earn less than those with 5 years' experience who have better knowledge of this week's single-page JS framework...

(my sample group includes some pretty dedicated, smart people as well as barely-adequate slackers like myself)

But we do all get decent holidays and sick days, which is a definite bonus.

<comment><USER6> There's certainly an element of having the right buzzwords for a lot of the most lucrative contract work, at least for the gigs that get advertised on the serious forums or filled through recruiters.

Cloud plus Agile still seems to be the flavour of the month. There are always opportunities in serious back office/infrastructure programming (Java, C#, C++) in fields like banking, too, but those positions often require relevant experience of their field as well as the programming skills, or at least say they do in the ads.

Whether a 15-year vet would do a better job picking up this week's buzzwords on the go than a 3-year newbie who has never known anything else is a different question, of course.

</comment></comment></comment></comment><comment><USER34> If you want to see first hand the image Londoners have of techies, watch the hilarious sitcom The IT Crowd.

</comment><comment><USER35> What about social security and taxes?

<comment><USER31> Property tax is around £800-1600 per year, depending on area, for the whole home. A large house could be up to around £2500 in some areas.

Someone earning £75k will take home £51k after tax (which includes healthcare and social security tax).

You can stick numbers into [http://listentotaxman.com/](http://listentotaxman.com/) if you'd like to experiment. "National Insurance" means healthcare and social security.

<comment><USER35> OK I get it. We do the numbers differently in Spain, hence my confussion. Thanks!

</comment></comment></comment><comment><USER36> You're comparing your salary in a startup with Google. Great thinking is great!</comment>


Domain Pigeon helps you find unclaimed URLs - <AUTHOR> http://news.cnet.com/8301-17939_109-10153299-2.html

<comment><AUTHOR> It's going to be a good day. :)

<comment><USER2> how did you get coverage? nice one :)

<comment><AUTHOR> A little bit of a good product, a little bit of luck, and a little bit of attention on HN.

</comment></comment></comment><comment><USER3> Sorry, but after the last post about this site, this one tastes a lot like spam.

<comment><AUTHOR> Not intended to be at all--

<comment><USER3> Sorry then; no offense.</comment></comment></comment>


UK teenager loses sight from poor diet - <AUTHOR> https://www.bbc.co.uk/news/health-49551337 <comment><USER2> BBC have missed out important information.

This child is autistic and has an eating disorder called ARFID - Avoidant/restrictive food intake disorder. [https://en.wikipedia.org/wiki/Avoidant/restrictive_food_inta...](https://en.wikipedia.org/wiki/Avoidant/restrictive_food_intake_disorder)

England currently has a pretty severe problem with paediatric mental health services (which is where paediatric autism diagnostic and support services would normally sit), and with providing community support for people.

</comment><comment><USER3> Reminds me of those reality shows like freaky eaters. Normally boiled down to a horrific expirence as a child or over sensitive taste ('supertasters').

<comment><USER4> I know it's not to everyone's comedy tastes but I sort of always enjoted Harry Hill's takes on "Freaky Eaters" [https://www.youtube.com/watch?v=H-AvekuF- rg](https://www.youtube.com/watch?v=H-AvekuF-rg)

</comment></comment><comment><USER5> This reminds me of a story told to me at university when an "enterprising" student took out the maximum loan he could, bought an expensive stereo system and a sack of porridge oats to eat for the rest of the term, and promptly got scurvy. I always suspected it was apocryphal, but I'm re-evaluating the probability of it being true now.

<comment><USER6> Ha, I heard this too around 1994

<comment><USER5> Me too. University of Edinburgh?

<comment><USER6> Manchester, via my brother!

</comment></comment></comment></comment><comment><USER7> I stopped when i felt the feathers in the balut i was trying...the rest of it was vaguely acceptable...haiz

</comment><comment><USER8> "He explained this as an aversion to certain textures of food that he really could not tolerate, and so chips and crisps were really the only types of food that he wanted and felt that he could eat."

Is his thinking the product of parents who allow anything, teachers who have to allow everything, the entitlement culture?

It's hard for me to accept that the boy is not tolerating any kind of vegetable in the biological sense of the word.

<comment><USER9> One of my sons is a very picky eater and he has a strong aversion to certain food textures.

Some foods we can get him to eat by being insistent.

But with some types of food it's pointless. He will try them if we are insistent enough, but it makes him gag and regurgitate.

His one year younger brother eats pretty much anything, so I don't think it has anything to do with us being too lenient.

<comment><USER4> I was a bit like this as a kid, the way it was solved was to involve me more in the cooking process. From the age of about 13 I cooked most of my own meals, now love to cook. Growing up I used to watch episodes of The Naked Chef too which helped, because as a 10 year old kid Jamie Oliver at the time seemed like a cool guy.

<comment><USER10> Letting kids help with cooking works very well. Food that you prepared yourself always tastes better than when someone else did it. Kids get exposed to learning a useful skill, and they eat better. The only downside is that parents have to adapt their usual cooking routine.

</comment></comment></comment></comment><comment><USER11> A cousin of mine only eats "white" food: pasta, potatoes, bread. They've never knowingly eaten a vegetable, or anything green or yellow. They're now in their 40s and still one of the most vibrantly healthy and energetic (appearing) people I know.

Edit: This is NOT a recommendation, nor intended as a diminishment of the suffering alluded to in the article. I just find this relative's bad diet and excellent health an interesting curiosity. They do eat chicken and eggs also, but not the yoke of eggs.

<comment><USER12> Potatoes _are_ vegetables.

<comment><USER5> And as far as I know contain a pretty decent amount of vitamin C at the very least.

<comment><USER13> Until you cook them? Vitamin C is not very heat resistant.

<comment><USER14> That's what I thought too until I actually looked into the matter, don't have source at hand but apparently 1 hour of cooking causes about a 30% drop in Vitamin C. Not that bad.

<comment><USER15> Do you know if leaving the skin on helps?

<comment><USER14> I was researching usage of pure vitamin C powder in cooked foods and tea. Don't think the skin matters much if the powder can survive.</comment></comment></comment></comment></comment></comment></comment>


Chinese firm dumps 83 tonnes of fake gold on the market - <AUTHOR> https://decrypt.co/34033/chinese-firm-dumps-83-tonnes-of-fake-gold-on-the-market <comment><USER2> There goes the neighbourhood.

<comment><USER3> Wuhan sure has seen the news recently..</comment></comment>


HODLometer – was it better to HODL or trade? - <AUTHOR> https://hodlometer.com <comment><USER2> Sure it shows the algorithm beats a hold strategy in 8/10 instances...

...but the "hodlometer.com" domain was registered 3 days ago.

It's trivial to develop an algorithm by cherry-picking parameters that will give any desired results for historical data.

But there's vast research on how it's impossible to predict/beat the market like this in reality [1], and this site is obviously designed to prey on the uneducated and naive.

[1] For a good intro, see chapter 5 of "A Random Walk Down Wall Street" which talks about "technical analysis", which is exactly what HODLometer is doing -- [https://www.amazon.com/gp/product/0393352242](https://www.amazon.com/gp/product/0393352242)

<comment><USER3> People who know a thing or two about finance are having the time of their lives watching Bitcoin evangelists genuinely believe in technical analysis and not understand that it's on the level of astrology and tarot cards as far as usefulness in predicting prices. (And that's in a fair market. On Bitcoin exchanges, where it's certain that the exchanges are using every trick in the book-- frontrunning, painting the tape, wash trading etc.-- to stack the deck and extract extra value from your trades, technical analysis is even more useless)

<comment><USER4> There is a basic pattern (bubble/pop/settle) but for any advantage you have to know better than someone else. There's been a number of images showing graphs scaled and overlaid over other graphs. There's quite possibly good reasons for the correlation in shapes, but it is also quite useless for investment. You might know something will probably happen but you don't know when or at what speed.

Once you go past the patterns that everyone can plainly see, you are looking for patterns in what appears to be noise to everyone else. Accurate future predictions is really the only way to tell if it is anything other than staring at tea leaves.

</comment></comment></comment><comment><USER5> I don't understand. I know what [hf]odl mean. Can anyone tell me what these charts and conclusions are trying to communicate here?

edit: I mistakenly assumed the HN would the understand the regex of "[hf]odl" was just a clever way of saying hodl/fodl. No need for more comments explaining those terms.

<comment><USER6> I think its comparing how the algorithm did versus just blindly HODLing your coins. So HODLmeter:XX% is the percentage the algorithm increased the value of its holdings over the described period. The HODLing is the percentage the market increase by over the same period. Thus, if you had HODLed for the same period for ETH, you'd have lost a significant amount in the value of your holdings, but the algorithm made money.

</comment></comment><comment><USER7> The philosophy behind HODL is that you need to hold for 5-10 years plus in order for the strategy to work. The 1-year timespan in the graphs on the site are way too short.

If you want to cherry pick a point to "disprove" HODL, just look at the fact that in November 2013 Bitcoin traded at an eye-watering $950+, and then for 2.5 years beat a steady retreat to $400.

At this point, bitcoin can taper down to $3K in value till 2020 and we would not have seen anything new in terms of relative price movement over a fix timespan.

For those who have watched bitcoin for a while, 2018 is just 2014 all over again, except this time a lot more people are paying attention.

<comment><USER8> What's the reasoning behind the philosophy?

<comment><USER9> Bitcoin's a deflating currency; there's a fixed number that will ever be mined, and a number are lost to forgotten private keys etc, and so the supply will only ever go downwards.

Meanwhile, if its boosters can actually keep it in the news, build things with it, and use it as a currency, demand for it in the long run will continue going up. This is the other unspoken assumption of HODLing, unspoken because most people don't want it explicitly known that they're hyping & propagandizing, but pretty apparent in their actions. This is also not true in the short run; hype cycles like what we saw in Dec 2017 are impossible to sustain forever, which is why the price today is significantly lower than it was then, which is why HODLing only works on long (5-10 year) timespans rather than short ones.

Reduced supply + increased demand = higher price.

</comment></comment></comment><comment><USER10> Taxes would kill any benefits of trading. Plus, never believe random backtesting you see on the Internet.

<comment><AUTHOR> Not necessarily, depending where you are geographically and what counts as taxable event. Also it's not a lot of trades for a year, after all, so not a lot in commissions either.

</comment></comment><comment><USER11> > FODL is selling your Bitcoin for a _stablecoin such as USDT (Tether) or > TUSD_

USDT? I don't think that is a good advice. Maybe a better one will be to sell BTC in exchange for a HODL coin instead?

</comment><comment><USER12> Would love more details on how the algorithm works, and your thought process behind it (e.g. what other indicators you've looked at, why). You don't have to disclose your secret sauce, but it would give me a lot more trust.

Backtested returns are not reliable.

<comment><AUTHOR> Here you go, [https://github.com/mkrn/hodlometer](https://github.com/mkrn/hodlometer)

Algorithm have been found on TradingView, and tested among many.

Cryptocurrencies are especially volatile that's why I thought I would need to use ATR. I have also been playing with trailing stop and take profits, so found this algorithm to combine the two.

The parameters have been manually tested, but it would make sense to make run a simulation to get the best parameters for a coin.

The whole site was created in about 6 hours, so don't judge too hard.

</comment></comment><comment><USER13> IOTA is too unpredictable for this algorithm</comment>


Ramit Sethi's Money Rules - <AUTHOR> https://levnaginsky.com/2020/07/21/ramit-sethis-money-rules/ <comment><AUTHOR> Every day, there are a million money-related decisions we can make. By narrowing down a few key beliefs, you can eliminate 99.9% of decision making and focus on more important things.

Ramit Sethi's approach to finance is to recognize that money should not rule our lives but instead be a tool to help us reach our long-term goals. His ideas have helped many young adults (including myself) figure out their finances and set up systems and rules for their money.</comment>


What It's Like to Have Severe Lyme Disease - <AUTHOR> http://nymag.com/scienceofus/2015/06/what-its-like-to-have-severe-lyme-disease.html <comment><USER4> I dealt with Lyme Disease about a decade ago. Some of this sounds very familiar -- before I was diagnosed I went to the hospital multiple times sure I was having a heart attack, and each time was told it was just stress.

The neurological symptoms I dealt with were really creepy. I would periodically realize that I had no idea how I had spent the previous day or two. The final straw that led me to seriously start hunting for a diagnosis was a college exam. I came down with a fever just as I was getting ready to prepare for the exam. The fever lasted several days. After I recovered I e-mailed and scheduled a make-up, began to read the material from the exam, experienced profound deja vu, and realized four hours into studying that I had, during my fever, read all the material, gone to class, taken the exam, and lost all memory of having done any of it.

After I got diagnosed I spent years on antibiotics, including most of a year with a PICC line in my arm and most of a year getting regular intramuscular injections. Some of the medications effectively incapacitated me with headaches and brain fog. Metronidazole was hell.

Even so, my case was a very mild one compared to many of the other Lyme sufferers I encountered in my doctor's waiting room. I met people who had lost huge swathes of memory, people who had nearly doubled their body weight practically overnight, people who had developed severe tics. Lyme can be a hell of a disease.

<comment><USER5> I'm curious why you were given metronidazole: was it for Lyme disease or did you develop a C difficile infection from other antibiotics? I'm just curious because I'm a physician and have never heard of using metronidazole for Lyme disease.

<comment><USER4> It was for Lyme, and IIRC the justification for including it in my course of treatment was roughly what lisa_henderson describes below.

<comment><USER5> Thanks, I actually searched initially for metronidazole and lyme disease through pubmed (which is the Google of medical literature) and passed over one interesting article that could support its use (fortunately not behind a paywall):

[http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3132871/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3132871/)

However, this study was done on petri dish cultures of borellia and didn't actually look at whether or not it improved symptoms in people (which I imagine is a difficult thing to study in this field).

When I searched for borrellia and metronidazole there was one more article for in vitro use from the 1990s: [http://www.ncbi.nlm.nih.gov/pubmed/10379684](http://www.ncbi.nlm.nih.gov/pubmed/10379684)

</comment></comment></comment></comment><comment><USER6> I've been struggling with neurological Lyme for years. The disease stopped my life in its tracks for most of my 20s and because of that I missed out on those years. During a time in which I would have been out in the world building a professional (and personal) life for myself I was living at home in my parents' house spending most of my time in bed. There are periods lasting months of which I have no recollection. The illness also altered my perception of reality to the point where I had a kind of neurological blind-sight - <USER2> lost the sensation of seeing. I was able to finally emerge from this delirium- like state and become functional again, but it is still extremely difficult to focus and think. While I am working, I still struggle a lot at work to be productive.

This is a very serious illness, not least of all because it is difficult to detect along with its symptoms. It seems the scientific establishment has a lot more rigorous work to do before they fully understand the extent of the severity.

Edit: I'll add that, unfortunately, it might take more cases like this - <USER3> medical professionals tell their stories about their personal struggle with the illness - before the full medical establishment accepts that they don't yet understand this disease. As of right now, the standard of care is to continue to insist that 15 - 30 days of antibiotics will cure it and that there is no such thing as persistent infection, which is fucking laughable. The worst is that supposedly respectable physicians are continuing to promote this myth, despite not having proved in the slightest that the infection is eliminated after 15 - 30 days of antibiotics.

<comment><USER7> I can't remember the name, but there's a good documentary I downloaded from the internet on Lyme disease that goes into some rather conspiratorial theories on why Lyme disease isn't treated. Doctors have lost their license for not adhering to the 30 day antibiotic treatment approach.

<comment><USER6> I didn't watch it precisely because I heard it started to indulge in conspiracy theories, which I think does more harm than good and marginalizes Lyme patients even more.

Plus, there's a simpler explanation for why the medical establishment continues to deny the obvious. It's a combination of simple human arrogance combined with the elusive nature of the bug creating a perfect storm of ignorance. In other words, I believe in the scientific method but I do not think the current scientific community practices it - at least not with the impartiality that it is supposed to be practiced. People are attached to their work - but what if their work turns out to be wrong?

</comment></comment></comment><comment><USER8> The Lyme Disease diagnosis is used to encompass more than Lyme Disease sometimes. Some people use it to refer to being infected with the bacteria Borrelia Burgdorferi. Others use the Lyme Disease label to refer to the bacteria and the other co-infections that you can get when being bitten by a tick. Such as Babesia, Bartonella, and Erlichia. I prefer to call them Tick Borne Diseases (TBD).

I got bit July 2010 at the age of 27 either in Northern Nevada or Folsom, CA (I drove from Nevada to Folsom, but noticed the bite in Folsom) and saw a doctor immediately since my ankle swelled up so much I couldn't walk on it. I was given 7 days of bactrim and went home. Symptoms came on slowly. Loss of sleep, loss of energy, loss of libido, head pressure, heart palpitations, parts of my body feeling numb and shaking, and severe brain fog. I thought I was going to be bed ridden. Over 2 1/2 years after I got bit and 8 doctors later, I tested positive for Lyme Disease (Borrelia Burgdorferi) and Babesia. Borrelia Burgdorferi is a spirochete similar to Syphilis and Babesia is a protozoa similar to Malaria. The Babesia strain that I tested positive for is the WA-1 strain (Babesia Duncani) and is more difficult to treat vs Babesia Microti.

I was diagnosed over 2 years ago. I am still treating Babesia now. My life is so much better, but I still have many of the symptoms. I make quinine from ground up Cinchona bark and make a tea since my doctor won't prescribe quinine to me because he thinks the quinine side effects are too severe. If I stop taking quinine, my brain fog returns, I lose sleep, and my hands start to shake like crazy. I also take Alinia and Azithromycin. The cinchona bark has really helped me get through the day at work. I am seeing a new doctor next Monday, but my journey still continues. This is the craziest thing that ever happened to me and I never heard of it before I was diagnosed.

My suggestion is if you ever get bit, is to request 4 weeks of Doxycycline. Otherwise, if the tick carries these diseases, it could cost you at least 5 figures out of pocket and change your life dramatically. Many people who get sick lose their jobs, their spouses, and friends. Many doctors in Northern California don't believe that the disease exists in California. Sonoma County has tested the ticks in their area since the 80s and have found ticks carrying the Borrelia Burgdorferi bacteria all over. Unfortunately, not all doctors are informed of that.

</comment><comment><USER9> If you are suffering from neurological repercussions of Lyme Disease, please see a neurologist (not just a GP). I did, got on a steady regimen of Amitriptyline and Naproxen, and nearly all of my post-Lyme symptoms (migraines, light sensitivities, lethargy) have cleared out.

It's a horrible disease; I wish our government was taking it seriously in the slightest.

<comment><USER10> I have no idea if you are American, but the US government does take it quite seriously. Lyme is a major research project within NIAID. Multiple branches of the federal(Park Service, Army, CDC) have prevention programs, in all adding up to $90 millon/ year in expidentures dedicated to lyme. This does not include state health programs, which also help diagnose lyme disease. To be fair, we could be doing more.

[http://www.niaid.nih.gov/topics/lymeDisease/research/Pages/r...](http://www.niaid.nih.gov/topics/lymeDisease/research/Pages/research.aspx)

</comment></comment><comment><USER11> I've been struggling with Lyme disease and co-infections (Babesia, Erlichia) for the greater part of 8 years. I got acutely sick my freshman year of college, and was forced to drop out. I spent the next 3 years in bed with severe cognitive impairment; I was unable to concentrate enough to read, and was sleeping 14-16 hours a day. I have very few recollections of that time period.

I finally found a doctor able to diagnose the Lyme, whom I attribute my current health to. It took 1.5 - 2 years of oral antibiotics and Babesia treatment to be regain my cognitive function and start my life again. It took 2 more years to feel like I had regained the better part of my health. Finally I was considered in "remission", and waned off the treatment.

Recently, after a long period of reemerging symptoms and recurring illnesses, I needed to start treatment pulses again. My doctor did a DNA test that yielded interesting results, with specific interest in my Methylation & detox profile. I have multiple mutations in genes relating to the methylation process (MTRR, MTHFR, MAO, and VDR), which have negatively effected my immune response, antioxidant creation, and cell repair. I'm currently in the process of supplementing those specific deficiencies, which will hopefully increase the effectiveness of the treatment protocol and my ability to fully heal.

Even though I'm still in treatment, I've come a long way from when I was acutely sick. I'm trying to find ways to help others get through that process...don't hesitate to reach out if I can be of any help.

</comment><comment><USER12> A guy that I used to work with was dealing with a horror story scenario around Lyme disease. His wife had it and after going to multiple doctors found one who discovered that it was somehow affecting the pituitary gland. Prior to this his wife was basically in bed, living on pain killers in a constant state of fog and misery.

Once this doctor recommended treatment with human growth hormone, her symptoms dramatically improved, she was able to get off of the pain killers and even was able to drive again. She had her life back.

But then all of the controversy around HGH happened in terms of people abusing it as a steroid and her doctor LOST HER LICENSE for prescribing it to her. Symptoms reversed and she went back to misery and pain killers. They went to doctor after doctor and told them exactly what happened and how much she had improved on the HGH. Showed VIDEO. None of the other doctors would a) believe it or b) prescribe it because of the risk to their own careers.

I cannot imagine what type of hell that must be to KNOW exactly what you need to get relief, to KNOW that it's readily available, but not be able to get it because some agency that you've never had contact with doesn't think you should have it.

<comment><USER13> HGH seems to be readily available on the black market. Obviously not ideal but given the circumstances..

</comment></comment><comment><USER14> Despite three randomized trials, "there is no evidence that these persistent subjective complaints represent ongoing active infection or that repeated or prolonged courses of antibiotics ... provide any benefit."

[paywall] [http://www.uptodate.com/contents/clinical-manifestations- of-...](http://www.uptodate.com/contents/clinical-manifestations-of-lyme- disease-in- adults?source=machineLearning&search=lyme+disease&selectedTitle=1~150&sectionRank=1&anchor=H21#H21)

[http://www.ncbi.nlm.nih.gov/pubmed?term=11450676](http://www.ncbi.nlm.nih.gov/pubmed?term=11450676) N Engl J Med. 2001 Jul 12;345(2):85-92. Two controlled trials of antibiotic treatment in patients with persistent symptoms and a history of Lyme disease. Klempner MS1, Hu LT, Evans J, Schmid CH, Johnson GM, Trevino RP, Norton D, Levy L, Wall D, McCall J, Kosinski M, Weinstein A.

[http://www.ncbi.nlm.nih.gov/pubmed?term=12821734](http://www.ncbi.nlm.nih.gov/pubmed?term=12821734) Study and treatment of post Lyme disease (STOP-LD): a randomized double masked clinical trial. Krupp LB, Hyman LG, Grimson R, Coyle PK, Melville P, Ahnn S, Dattwyler R, Chandler B Neurology. 2003;60(12):1923.

[http://www.ncbi.nlm.nih.gov/pubmed?term=17928580](http://www.ncbi.nlm.nih.gov/pubmed?term=17928580) Neurology. 2008 Mar 25;70(13):992-1003. Epub 2007 Oct 10. A randomized, placebo-controlled trial of repeated IV antibiotic therapy for Lyme encephalopathy. Fallon BA1, Keilp JG, Corbera KM, Petkova E, Britton CB, Dwyer E, Slavov I, Cheng J, Dobkin J, Nelson DR, Sackeim HA.

<comment><USER15> I believe those are different from the submitted article. The submitted article interviews a man who was never diagnosed _or treated_ for Lyme disease until 20 years after he contracted it. After he was treated, his symptoms went away. (Except for his heart issues, which were permanent because over the course of the disease, his heart had developed significant scar tissue.)

Those studies are about people who have been diagnosed, treated, and then continue to experience symptoms. The background from the first paper:

 _It is controversial whether prolonged antibiotic treatment is effective for patients in whom symptoms persist after the recommended antibiotic treatment for acute Lyme disease._

Lyme disease is real and uncontroversial. What is controversial is that if there is such a thing as a chronic Lyme disease that persists after the initial antibiotic treatment. The current scientific evidence is against such a thing.

</comment></comment><comment><USER16> > New Hampshire currently has the highest incidence of the disease per 100,000 > people, with 1,700 cases last year.

Very confusing phrasing, making it sound like it had 1,700 cases per 100,000. It had 1,700 cases total last year, and also the highest per capita rate.

</comment><comment><USER17> What's with all of the pacemaker shocks?

Is that a bug or a safety mechanism?

<comment><USER18> The pacemaker detects that the authors heart has stopped or is in such extreme arrhythmia that he will probably lose consciousness and die.

Working in the same way as a normal defibrillator that you might see in an Emergency Department the pacemaker supplies a large shock to the heart to restart it or get it to beat properly.

The shock is large enough so that a person will fall to the ground when they experience it. And the article mentions that if you are in a pool near somebody with one of these pacemakers then you might feel the shock as well.

<comment><USER5> To be a little more clear pacemaker != defibrillator, although often they are combined into one device. A defibrillator gives a large shock to the heart to knock it out of a dangerous rhythm such as ventricular tachycardia or ventricular fibrillation. A pacemaker is designed to send a smaller shock in such a way as to stimulate the atria and/or ventricles to depolarize and contract (recreating the normal rhythm).

Pacemakers are designed to either constantly go off or to detect missed beats and give shocks. They do not knock people down and I've never seen anybody ever complain of a pacemaker shock being even detectable. A defibrillator can be part of a pacemaker (in which case it's called an ICD), and it WILL hurt if it goes off. I think that is what you mean.

</comment></comment></comment><comment><USER19> I was 14 when I started experiencing Lyme symptoms. I had a fever that climbed to 104 over the course of 2 weeks, and increasingly worse joint pain/inflamation in my neck. It got so bad I couldn't even move it the small amount required to see the sides of my computer monitor. Luckily my pediatrician knew her shit; I hadn't even left the waiting room before she had diagnosed me with Lyme disease, and I started on antibiotics before I even had blood drawn to send to the lab. That's how little confidence medical providers who know the disease have in the test.

I still suffer from lingering neck pain, but I consider myself incredibly lucky.

 _EDIT_ : For the record, I never had the rash. Many people either don't get it or don't notice it

<comment><USER20> How old are you now?

</comment></comment><comment><USER21> Although I am one of the lucky many who does not have lyme disease: check what diseases ticks carry in your home region (you can also get tick bites in a garden) or if you go on holiday, especially when you go hiking or have kids (that sometimes run into high grass or bushes).

E.g. in the area that we live now (Southern Germany), a relatively high percentage of ticks is infected with TBEV/FSME virus, which is not treatable. Because it's a high-risk area, insurance companies pay for vaccinations which are good for five years and have been shown to be very effective in trials.

Of course, if you e.g. hike, it's a good idea to check your body for ticks afterwards. Most diseases are not transmitted if the tick is removed properly within 24 hours.

</comment><comment><USER22> I've had Lyme disease twice. And been bitten by ticks many more times.

Lyme is easy to treat if it's found on time. 5 days of antibiotics and all is good. Both times I got it there were the infamous Lyme circles. It's possible to have Lyme without the circles though, so it's a good idea to test for Lyme once the ticks' season is over. Just in case.

Ticks Encephalitis is an entirely different beast though. Get vaccinated for it if you hike/cycle/camp/whatever and your area have even slightest chance of it. It ain't pretty to watch people fight it when there's 30% chance of more or less full recovery.

</comment><comment><USER23> Isn't there a vaccine for Lyme disease, but it's only approved for use in animals because some people got scared when it initially got introduced and got it banned without any scientific reason to do so?

<comment><USER24> Yes. It was called LYMErix and is still available for use as a veterinary medicine. There is also a new vaccine being proposed by Valneva (a European biotech company) that will hopefully not meet with the save irrational fate.

[http://www.ctvnews.ca/health/health-headlines/whatever- happe...](http://www.ctvnews.ca/health/health-headlines/whatever-happened-to- the-lyme-disease-vaccine-1.886946)

</comment></comment><comment><USER25> Another condition where Naltrexone might be of help for chronic patients : [http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3351864/](http://www.ncbi.nlm.nih.gov/pmc/articles/PMC3351864/)

</comment><comment><USER26> Same experience here. Absolute HELL. Long term antibiotics work. The IDSA is DEAD WRONG.

</comment><comment><USER27> I want to add another angle to this, how our govt, AMA, FDA do not want us to learn about highly effective, non-toxic and cheap cures [1][2].

So that they could keep their trillion dollar cash cow intact.

First book is entirely dedicated to health while the second one devotes a portion to the health. I hope HN readers who have this disease will be able to make use of these resources.

[1][http://www.amazon.com/Politics-Healing-Suppression- Manipulat...](http://www.amazon.com/Politics-Healing-Suppression-Manipulation- American/dp/0982513879)

[2][http://www.amazon.com/Suppressed-Inventions-Other- Discoverie...](http://www.amazon.com/Suppressed-Inventions-Other-Discoveries- Jonathan/dp/0895298090/)

<comment><USER28> I think people here might be interested in hearing about an effective, non- pharma cure for Lyme disease--if only in some cases to try to debunk it--but without that concrete information I doubt you'll get any takers.

</comment></comment><comment><USER29> When you talk about Lyme Disease, you could not go around of the main culprit - ticks.

<comment><USER30> Monhegan Island in Maine had a one-time hunt in the mid-1990s to eliminate the deer population (deer had been introduced in 1955 and Lyme disease had become prevalent, with 13% of the island's residents infected). Five years later new cases of Lyme had been greatly reduced). Similar results have been reported elsewhere ([http://www.deeralliance.com/node/10](http://www.deeralliance.com/node/10)).

With 32 million deer in the U.S. and virtually no predators, the obvious approach to controlling the spread of tick borne diseases is to reduce the number of deer.

They're beautiful animals, but like with any other species, including humans, there's such a thing as too many.

<comment><USER31> Agreed.

I live rural and to me deer are a pest. I do not want them traipsing through my property and not really because of the damage they do to my plants but because of the tick issue.

As we have removed the deer's natural predators it is our job now to manage their population in absence of those predators. Lyme disease is one example of how we have failed to do that adequately.

Another thing we have done to make Lyme disease prevalent is make the fox a rare species. Part of the tick's complicated lifecycle involves mice, and mice and vole populations explode in the absence of foxes. Having a healthy fox population helps to keep the population of mice down, which can interrupt the lifecycle of the tick.

We need an active deer hunt, reintroduction of wolves in places, and a program to encourage foxes. Coyotes won't do much to suppress the population of mice.

<comment><USER30> Yes, we need more foxes! Actually I saw one the other night around here (suburban town near Boston); that makes me happy.

Snakes eat mice, too. People in the Northeast have eradicated many native snakes such as the Northeast timber rattler. We should reintroduce them, and this will cut into the tick's life cycle.

</comment></comment></comment></comment><comment><USER32> My cousin had this and forgot who her kids were for several years. It was brutal.

</comment><comment><USER33> "I went to the internet like anyone else and I started Googling."

Nothing inspires confidence in America's medical system like one of its own members admitting "yeah, none of the other doctors knew WTF they were talking about so I asked teh internetz."

<comment><USER34> It's almost as bad as the software engineers running the system that control our private information gathering in shady anonymous "hacker" forums to exchange programming tips.

<comment><USER29> No, it is better because it allows rapid information exchange. Perhaps this kind of system would help doctors too.

<comment><USER33> Exactly. I'd feel much better if he said "I asked on an online forum for medical professionals". Maybe this is what he did, but it doesn't sound like it from the context.

Does there in fact exist the medical equivalent of StackOverflow, both in terms of functionality _and_ ubiquity?</comment></comment></comment></comment>


Java is Pass-by-Value - <AUTHOR> http://javadude.com/articles/passbyvalue.htm <comment><USER2> This article is overly pedantic. Java's semantics are pass-by-value only of you consider that the "values" that are being passed are pointers. But Java doesn't have first-class pointers, it has implicit pointers. The only thing you can do with a Java pointer "value" is to tacitly dereference it.

In fact, you can write a swap(x,y) function in Java. It goes something like this:

        class foo { int value }

        void swap(foo x, foo y} {
          int temp = x.value;
          x.value = y.value;
          y.value = temp;
        }

(Yes, I know this isn't valid Java. Cut me a little slack here, OK?)

"But that's cheating" you protest. "That's not swapping the value of X and Y, that's swapping the value of a slot in the values of X and Y, which happen to be objects." Well, yeah. So? Compare that to this C code:

      struct foo { int value }

      void swap(struct foo x, struct foo y) {
        [same code as above]
      }

The effect of this function will be DIFFERENT. Specifically, the C function will have no effect while the Java function will swap the value slots of X and Y because C lets you pass a structure as a value while Java does not. All Java "values" are (tacit) pointers to objects [1]. Pounding your fist on the table and insisting that Java is pass-by-value because you can't write a swap(x,y) function obscures this crucial difference.

[1] OK, it also has ints and floats of various sizes. But that's really it.

<comment><USER3> But Java _isn 't_ pass-by-reference. Saying so is simply _wrong_ , for exactly the reasons you write off as "pedantry". I see this play out all the time with co-workers who are new to Python (which has the same semantics) being very confused about why "numbers are passed by value but objects are passed by reference".

Pedantry matters in our profession. Details have consequences.

<comment><USER2> > But Java isn't pass-by-reference

I didn't say it was. I said that insisting it is pass-by-value isn't helpful.

The real problem here is that we have only two terms which we're using to try to distinguish between three different concepts.

<comment><USER4> Personally, I'd argue there's only one concept -- pass-by-value -- with a whole lot of language-specific syntactic sugar as to _what_ is getting passed by value. But I'll call myself out on that being even more pedantic than the current discussion.

<comment><USER5> That sounds like Robert Harper's argument that all languages are statically typed, it's just that some languages only have one type.

<comment><USER6> I've heard this term "unityped", but i'd always written it off as a politically correct way of saying "untyped". Is there actually a worthwhile argument for it?

Having thought about it for a minute or two, it seems pretty silly to me . Types are all about restricting the set of values an expression can have, and restricting the set of operations you can perform on an expression, such that any operation you're allowed to perform on a value will always do something sensible. Untyped languages don't do that, which makes them quite different from typed languages. But then i've only thought about it for a minute or two.

I could imagine a genuinely unityped language. Perhaps one where every value is a vector of real numbers with an infinite number of zeroes on the end, and the operations are piecewise arithmetic, dot products, interleaving, appending, etc. That would behave quite differently to the languages where you get "undefined is not a function" and friends.

<comment><USER7> Untyped languages actually allow you to perform any operation on any value and will always do something sensible. The sensible thing to do is to throw an exception in most cases.

<comment><USER5> The difference between safe dynamically typed and untyped is whether the throw will happen or not. There are degrees of safety even in dynamically typed languages.

<comment><USER8> Where by "safe dynamically type" you probably mean "strongly typed" (as eg Python).

</comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER9> These terms are so frustrating because they have "consistently wrong intuitive semantics" (I don't know better term). They are like cognitive puns.

It's so easy to guess their meaning consistently wrong that people don't brother to look them up. When several people wrongly guess the semantics wrong exactly the same way and talk to each other, new meaning is established.

It's not uncommon to have office debate of the difference where 9 people are sure that they know the right definition and the one person who argues for the right definition can't convince them.

EDIT: there are already at least two comments that argue that the wrong definition is the right definition. These guys feel so strongly that their definition is right that nothing convinces them and people agree. It's a hopeless pursuit to get this right.

[https://stackoverflow.com/questions/373419/whats-the- differe...](https://stackoverflow.com/questions/373419/whats-the-difference- between-passing-by-reference-vs-passing-by-value)

<comment><USER3> > It's so easy to guess their meaning consistently wrong that people don't > brother to look them up.

I find this to be the source of most programmers' confusion about most topics. Sometimes I spend hours arguing trying to convince someone that X works one way, because I've read the spec and the source code, while they believe that X works a different way, because they looked at its name and used it that way last time.

</comment></comment><comment><USER3> I always just call this sort of thing "pass-by-pointer-value" to clear up any confusion. To someone coming from C++, where objects are _actually_ passed by value, saying that Java (or Python, or what-have-you) does the same is just confusing.

<comment><USER10> Coming from C++, if "passing by pointer value" is considered "passing by value", then what is the opposite? Not passing at all? I mean, there's always going to be _some_ kind of value being passed?

<comment><USER11> If you write foo(&a), both "you pass a by reference" and "you pass &a by value" are fair descriptions of what happens.

The confusion arises because Java doesn't explicitly distinguish between a and &a; if you write "Foo a = new Foo();" in Java, the behaviour is similar to "Foo *a = new Foo();" in C++. So if we ask how "a" is passed, is the "a" we're talking about the reference or the value?

<comment><USER10> Ah, I see the reasoning. I only did basic Java in university so I might be remembering incorrectly, but aren't variables storing non-primitive values called "References"?

Seems weird to me to say that Java "passes by value" when all objects being passed are actually references to objects.

<comment><USER11> > I only did basic Java in university so I might be remembering incorrectly, > but aren't variables storing non-primitive values called "References"?

Technically yes, but since the language doesn't let you talk about references directly, the concept rarely comes up. Like, in theory you could say "a is a reference that refers to a value of type Foo", but people don't actually say that; they just say "a is of type Foo".

> Seems weird to me to say that Java "passes by value" when all objects being > passed are actually references to objects.

Indeed, completely agreed.

<comment><USER12> You do see this kind of language in Clojure, where you can talk about a var separately from its value.

</comment></comment></comment></comment></comment></comment><comment><USER13> This is similar to relational algebra & relational databases.

In relational algebra a "relation" is what most people know as a "table".

"relation" is maybe a good name in the realm of relational algebra, but a bad name in the realm of users of relational databases.

In this case "pass-by-value" and "pass-by-reference" are good names in the realm of compiler theory ("I'm a compiler guy at heart") but very, very bad names in the context of discussing parameter passing in java & objects.

<comment><USER14> A relation can't have multiple identical rows, but a table in most databases can, of course no primary key works for such a set of data and you can embed such a table into another table which has an underlying relation.

Sorry, i agree with your point but I felt like being pedantic :3

</comment></comment><comment><USER15> > "Pass-by-reference: The formal parameter merely acts as an alias for the > actual parameter."

"Alias" means nothing to a CPU, nor is it an ABI. At the core, passing by reference is _usually_ implemented by providing the "address-of" something to a function (for example). The "address-of" itself, is passed by value. Going by that logic, everything everywhere is passed by value.

<comment><USER16> > "Alias" means nothing to a CPU, nor is it an ABI.

But the language isn't defined in terms of a CPU. It's defined in terms of abstract semantic rules. You shouldn't think about implementation, especially at the CPU level, when talking about semantics.

The idea is that the alias is implicit in pass-by-reference. It isn't implicit in pass-by-value. How you implement that alias is irrelevant for discussion at this level.

<comment><USER15> > "But the language isn't defined in terms of a CPU."

I disagree. I submit the whole reason we pass objects by reference or by value in the first place, has much more to do with conserving computational resources/reducing runtime, than with providing abstract programming semantics for software developers.

</comment></comment></comment><comment><USER17> Having started off doing VB programming and now .Net and Javascript with some C mixed in this all seems like second nature to me.

C# is somewhat more clear to me because it lets you do either, which VB kinda did too.

The key point here is reference types vs value types, which is distinct from pass by reference and pass by value.

Java is pass by value only with reference types and primitive value types.

C# has reference types and value types and pass by value default with pass by reference optional.

passing a reference type by reference is passing a pointer to a pointer.

See: [https://docs.microsoft.com/en- us/dotnet/csharp/programming-g...](https://docs.microsoft.com/en- us/dotnet/csharp/programming-guide/classes-and-structs/passing-reference-type- parameters)

</comment><comment><USER18> This comes up once every few years. The confusion comes from the fact that java syntactically hides the pointer for objects, which feel kind of like structs.

It doesn't matter too much IMO. Most people intuitively understand how object references work in modern programming languages, and these discussions don't add a lot to their knowledge.

<comment><USER19> I actually find it is a pretty big and universal pain point while people are learning, particularly when switching languages.

</comment></comment><comment><USER3> There's a lot of confusion in this thread about what "call-by-reference" means. Let's be very clear. If Java were "call-by-reference", then this function:

      static void foo(Object x) {
        x = null;
      }

would have an effect visible to the caller. This is exactly the case with C++ references, and C and Lisp macros, which _are_ call-by-reference. (C++, C, Lisp, and the term "call-by-reference" all having existed _prior to Java_ , by the way, so Java and its users do not get to redefine it.)

But the above function does _nothing_ in Java. Hence, Java is _not_ call-by- reference.

Wikipedia has a nice quote [1] from Barbara Liskov (the namesake of the Liskov substitution principle), made when she _invented_ the passing style used in Java in _1974_ , for use in her language CLU:

"In particular it is not call by value because mutations of arguments performed by the called routine will be visible to the caller. And it is not call by reference because access is not given to the variables of the caller, but merely to certain objects."

She settled on the term "call-by-sharing". Maybe we should all just agree on that.

[1] [https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sh...](https://en.wikipedia.org/wiki/Evaluation_strategy#Call_by_sharing)

</comment><comment><USER20> I argue with my coworkers often about it. I think the problem is that what Java calls references, works more like C/C++ pointer, rather than C++ reference. The name similarity but differing behaviour is what's confusing people.

<comment><USER21> > I argue with my coworkers often about it.

I fail to see what possible value this has.

<comment><USER22> Pedantic arguments like this can be a good source of fun as long as everyone approaches it in a lighthearted way and acknowledges that it's pedantic. I could certainly see a conversation around pass-by-value/reference happening in my office, but if it got to the point of people getting angry at each other, that would be a sign that something is very wrong.

When actually communicating with people for the purpose of conveying ideas (not just for fun), it's best to avoid terminology where not everyone has the same understanding of the definition. Open discussions about terminology are also a good way to identify these types of ambiguous terms and possibly come up with technical terms that everyone agrees on.

</comment></comment></comment><comment><USER23> I don't see why C++ "references" should have a monopoly on the term "reference," such that a language calling anything else a reference is making an error. C++ references are actually kind of a weird/unusual language feature that isn't being taken up by other languages. I don't see cause for reserving a term for them. Each language can decide what it is going to call a "reference."

<comment><USER24> Java references are closer to C++ references than anything else. They're like pointers until you access/call them, at which point they're just objects. C++ references are identical, but the syntax is a bit more explicit.

It _is_ a funny language feature to have when you think about it; it just so happens to be useful. References and pointers are distinct in languages that have both (C++), so not mixing the terms between languages is helpful. If Java programmers started referring to their variables as "pointers," because internally, that's more representative of what they are, I'd be a bit irked.

</comment></comment><comment><USER25> There are two levels of misunderstanding to this discussion:

1\. The way parameters are actually passed in Java, primitives by value, object references by value.

2\. How to call this mechanism.

My guess is that many fail on item 1. Once understanding of item 1 is achieved, item 2 isn't terribly interesting.

</comment><comment><USER26> In C# you have an explicit syntax for passing a mutable pointer (i.e. a pointer to the pointer) so it's harder for people to get confused.

</comment><comment><USER27> "Create-copy" and "create-alias" are better ways to describe the concepts. This post describes pass-by-value as create-copy, and pass-by-reference as create-alias.

Create-copy - Copies the data into a new memory location, so modifying this variable will not modify the original variable.

Create-alias - Creates a new name for the same memory location, so modifying one variable will also modify the other variable.

Having spent too much time in Powershell, which defaults to create-copy, it was jarring to switch to Javascript and the seemingly-non-deterministic behavior of create-alias on setting a new variable equal to an array. From an algebraic perspective, when I modify "foo", I expect "bar" to remain the same.

<comment><USER28> The confusion comes up when you do a _shallow_ copy: Some modifications will modify the original variable, and other modifications won't.

Pass-reference-by-value is just a special case of a shallow copy.

        let a = [1, 2, 3];
        let b = a;

        b[1] = 5; // will modify a
        b = [1, 6, 3]; // will not modify a

In languages like C++, there's a way to make it so that last line _would_ modify a, which is why there's a need to use different words for the different phenomenon.

</comment></comment><comment> cup-of-tea I thought this was common knowledge. I was taught that Java is pass-by-value in compiler-writer terms, but as a programmer you can think of it as pass-by- reference because you have no control over it.

<comment><USER29> I believe the difficulty with "pass by reference" is that the phrase implies (at least in other languages) that the function-body can potentially alter variables _in the caller 's_ scope, by assigning something to the parameters it is given.

In other words, "C-style" pass-by-reference means this function would have an undesirable side-effect:

void foo(Thing x){ x = null; }

</comment></comment><comment><USER30> I was looking for some kind of indicator when this article was written as the topic and style of design could be from the 90's and the copyright goes from 1996 to 2014

</comment><comment><USER31> Here is, what I thought, is an excellent video and the related article for Python:

Ned Batchelder - Facts and Myths about Python names and values - PyCon 2015: [https://www.youtube.com/watch?v=_AEJHKGk9ns](https://www.youtube.com/watch?v=_AEJHKGk9ns)

Article: [https://nedbatchelder.com/text/names.html](https://nedbatchelder.com/text/names.html)

</comment><comment><USER32> Is it bad to completely ignore this behavior? For instance, something like:

Dog d = new Dog("fido"); d = alterDog(d);

public Dog alterDog(Dog d) { d.name="arfybark"; return d; }

It's not quite a pure function since it changes it in place, but at least the parameters and return types reflect the method. I ran across a term for this practice in the past but don't remember what it's called.

<comment><USER24> I would actively avoid that, but only because it confuses me.

That syntax loosely implies that removing the second d assignment would allow me to create new-but-altered dogs with alterDog(Dog), which isn't the case. If I wanted to use assignments like that, I would try to go fully immutable with factory methods that help me make slightly different, new dogs on the fly, and return them.

</comment></comment><comment><USER33> While C++ is a whole lot of different language with operator overloading amd everything, I don't think the pass-by-reference in the C++'s way with &'s before the variable/parameter identifiers is much different from how Java handles the objects behind the curtains.

In Java with no explicit pointers available to its users, the way objects are handled are explained better with the pass-by-reference concept than (whooosh!, magic in) pointers (and out) passed-by-value reality. Pointer is a foreign concept to Java, so it really makes more sense to its users that object variables start referring to other objects when they are reassigned, instead of the old object being changed in-place. Things get funky with equality comparison via == operator, but still, it is better than pointers.

I also wonder, does C++ really pass-by-reference when parameters have &'s behind their identifier declarations, or does it internally pass a reference by value and dereference it every time it is used within that scope? Are 4/8 bytes allocated for the reference variable or not?

<comment><USER3> No, it really is different. In C++ you can assign to variable references without additional syntax. You cannot do this (at all) in Java.

I don't know what you mean by "really pass-by-reference". There is no such concept of a "reference" at the CPU level; nor is that relevant to language semantics. If you were to look at the generated assembly it would look identical to as if pointer referencing and dereferencing were used.

<comment><USER33> > I don't know what you mean by "really pass-by-reference".

I was wondering if `int &a2 = a;` allocates memory in stack to make `a2` refer to `&a`, or does `a2` somehow truly become an alias for `a` in symbol table. As you've said that the assembly would look the same as pointers being dereferenced, then I suppose C++'s reference types are just a syntax sugar around the C's way of achieving the pass-by-reference concept through passing the address and then dereferencing it.

<comment><USER10> Unless I'm misunderstanding you, what you're asking is only possible in a function signature if the compiler inlines it.

However, outside of function signatures, if you write:

int a = 2; int &aref = a; int b = aref;

I'd assume that the compiler is smart enough to optimize away &aref.

</comment></comment></comment></comment><comment><USER34> This is a problem in PHP, which has both primitives (including copy-on-write arrays) and Java-style objects, but it also has literal pass-by-reference referencing (you can write a swap function). The misuse of "pass-by-reference" here creates confusion.

</comment><comment><USER35> It's a VM language and therefore "pass by value" and "pass by reference" don't make sense in this context. But people love to subdivide everything into two groups so have at it, who am I to rain on your party.

</comment><comment><USER36> Just makes me think of how I learned to code this in C++ with array pointer by reference and/or value (still don't know and really don't care ;)

int dosomething(int * & array) {}

That * & is just complete voodoo magic.

</comment><comment><USER37> The fact that so many people get this wrong yet are so sure they're right is indicative of a U/X issue. Fix the nomenclature and you'll fix the problem.

<comment><USER38> Or it's a reflection of a lack of rigorous training. Lots of folks like to infer and consequently assume without reading.

<comment><USER39> That, and I don't think there is a real consensus on the nomenclature, even in the literature. At least, I don't remember university lectures being at all clear on the issue.

FWIW, I don't use pass-by-value or pass-by-reference to refer to languages like Java, Python, Lua, etc... Instead, I use "pass-by-object-identity" (aka "call-by-sharing", "call-by-object") to refer to the semantics of those languages. It avoids the association many people have between the term "by- value" and copying behaviour.

Also part of the problem: many beginning and intermediate programmers don't understand the difference between rebinding and mutation. This leads to people interpreting the following snippet:

      def foo(a, b):
          a = 2
          b.append(3)

      x = 1
      y = []
      foo(x, y)
      print(x, y) #1, [3]

... as meaning that ints are passed by value and lists by reference, while in fact both are passed by object identity, and it is the fact that a is rebound while b is mutated that made the difference.

</comment></comment></comment><comment><USER40> Should probably be tagged [1996] as this article hits HN roughly once a year. A good read, if one hasn't encountered it before.

</comment><comment><USER41> TLDR: objects are not passed by reference; object references are passed by value

<comment><USER42> pro tip: objects are never passed, object references are :)

</comment></comment><comment><USER43> So in that last example, someDog after you have finished the function foo() will be called Max... is this right?

<comment><USER42> Yes, if you call the function like this, then Max will be the name of the dog when the function returns...

Dog someDog = new Dog("Fifi");

foo(someDog);

System.out.println(someDog.getName()); // name will be Max

</comment></comment><comment><USER44> If something is pass-by-value, but the underlying value primitive is not actually part of the language, we typically call this pass-by-object.

<comment><USER45> Reference values are part of the Java language. It's the reason "==" doesn't do what you'd expect it to, and why "a = ..." inside a method (assuming "a" was a parameter) doesn't affect the caller.</comment></comment>