Poll: 62% of Americans Say They Have Political Views They're Afraid to Share - <AUTHOR> https://www.cato.org/publications/survey-reports/poll-62-americans-say-they-have-political-views-theyre-afraid-share#liberals-are-divided-political-expression <comment><USER2> Can you blame them? There's examples already. Brendan Eich got witch hunted out of Mozilla when somebody discovered some $3000 worth of donations to causes that don't align with the loudest voices of today. [https://en.wikipedia.org/wiki/Brendan_Eich#Mozilla](https://en.wikipedia.org/wiki/Brendan_Eich#Mozilla)

<comment><USER3> "Causes that that don't align with the loudest voices of today" is a funny way of writing "a campaign to ban gay people from getting married."

Not all views are equally valid. Some are antithetical to a free and equal society and are deserving of harsh criticism.

There's nothing wrong with a society where people feel uncomfortable saying that they think their peers don't deserve equal rights.

<comment><USER2> > There's nothing wrong with a society where people feel uncomfortable saying > that they think their peers don't deserve equal rights.

It's possible that the reason he donated was because he disagreed with the particular wording of the proposition as written, not that he thinks his peers don't deserve equal rights.

And for the tiny donation, he lost his job. He's unfit for employment in tech, it seems, unless he's the owner of the company. That is a chilling effect. Suddenly people who aren't perfectly in alignment with, again, the loudest voices, have to choose their every word (and donation) perfectly or risk losing their livelihood.

Consider that there are fiscal conservatives who think that we don't get nearly enough value from our tax dollars, so we should reduce taxes. Can they donate to conservative causes without losing their jobs?

Can you imagine the insanity if voting records got leaked?

<comment><USER3> Really, what language in prop 8 might he have disagreed with?

Being a CEO of a large organization is not a human right. Part of the job is being the public face of the organization, and that means that, if you're a CEO, you can lose your job if you say or do something stupid in your personal life. Everyone knows that when they sign up.

Brendan knew the stakes, messed up, and now has to face the punishment. Which is being the CEO of a slightly smaller organization.

<comment><USER2> I can't put words in his mouth. I recall at the time wishing that, while they were "redefining marriage", they could go ahead and formalize a separation between civil unions and marriage in the church, because I was concerned about the state of California telling priests that they needed to perform weddings for whoever asked them to be married, or else face fines / jail time.

Nobody said being a CEO was a 'right'. You're correct that part of being a CEO is being the public face of the company, and I agree with you that it's reasonable for the members to not want to be represented by somebody who is repulsive to them. Maybe something like an actual vote of confidence or vote of self-similarity is not out of the question.

But, we _don 't_ vote for this kind of thing, rather, people get run out town by a (sometimes literal) mob in the court of public opinion by, again, the loudest voices. And, because blood is in the air, they don't get support (quiet or loud) from all the people at the company who either agree with them or who just don't want mob rule to exist (because even though they're not socialists, or trade unionists, or Jews, they see that the wheel of "social justice" will eventually turn on them, too).

> if you say or do something stupid in your personal life

Easy with the name calling. I'm here taking the opposite position and you jump to the word 'stupid'. No need to get personal.

Okay, maybe you didn't mean "stupid" like "no right-minded person would have that opinion" instead of "it would be stupid, given the current political climate, to say this publicly"... but I think then you would be agreeing with me, so you probably meant the first sense.

<comment><USER3> How is same sex marriage redefining marriage when it was already legal prior to prop 8?

Again, where is your example of someone getting run out of town by a literal mob? This guy is still incredibly wealthy.

<comment><USER4> You keep trying to pull prop 8 back into the conversation. This isn't a discussion on gay marriage.

While I agree that a CEO should be aware of their public image I think it's a sad commentary on the state of our society that public attacks and shaming have become the vehicle of protest now. This happens frequently with the constant push to de-fund voices by attacking their sponsors. Big corporations stand down, not because they agree ideologically with the vocal mob, but rather because they want to not become the next target.

How about instead of attacking the careers and livelihoods of those we disagree with, we instead support the ideas we do agree with?

<comment><USER3> The idea I support is defending equal rights. How is trying to hold accountable powerful people who oppose equality rights anything but supporting the ideas I do agree with?

Also, how can this not be a discussion of gay marriage? Aren't you just saying that opposing gay marriage is not worthy of criticism?

</comment></comment></comment></comment></comment></comment></comment></comment><comment><USER5> It's insane how we got here, but its not surprising.

Since 2016 political speech especially conservative views are being seen more and more not like a politician stances but an all encompassing bigoted ideology regardless of the data and proof behind such stances.

While I personally haven't lived long enough to see a swing in the rights direction I feel like the left condemnation of everything on the right it's going to easily bite them in the butt eventually.

I bet its happened this way in the past.

<comment><USER6> They don't have to conservative. They just have to be not cutting edge.

Believe there is a difference between feeling and being? "Feel assaulted" by words is now described as "being assaulted". "Feel like a woman" is now "is a woman" through some linguistic slight of hand by a) saying gender is how you feel and b) saying when you say man/woman you mean gender, not sex.

By redefining commonly used words those who wish to change society to fit their view have managed to get tons of people to silently go along because well, that's what the words mean now.

Very first amendment- freedom of speech. How do you get around this? Classify everything as hate speech and "verbal assault".

Playing the victim has become so fashionable lately, everyone is trying to jump in it. Black? You can go back to the time of slaves in the when no living remembers. Woman? Women are always victims and have no agency, regardless of the facts. If you have no agency, you can't be blamed for anything. It used to be women could blame all men for everything. Since BLM, they aren't allowed to blame black or Hispanic men. The list goes on.

Now we are left with just white straight men who have all the power and (only) evil in the world. Except it will crumble. As people gleefully engage in activities they once protested, those pesky cell phone videos make it onto YouTube. Right now it's a bunch of Karens. Funny how that tries to get explained away. Soon you'll see the rise in videos of bad behavior from the other protected groups.

The real death of this I think will be when more "white saviors" try to get in on the action and do more than say stupid shit on social media to score points. They'll start to actively engage with the people they pity. If they do it for any length of time, they'll realize these poor suffering babies are people, like anyone else.

I'm a minority and find it amusing when we're described in such infantile terms. Date a few of us, get involved, and suddenly "oh you guys have so much family drama!" or "why do you make such bad decisions?" Hahaha welcome to the club. Stop talking about race and start talking about decisions, poverty, etc.

Yes poverty is talked about, but only allowed if you're not white. If you're black, you're poor because of racism. If you're white, without batting an eye, you're designated white trash.

</comment></comment><comment><USER7> Yes, even here, people are more reluctant to comment on political related news, being afraid of getting downvoted to oblivion.

<comment><USER8> Not just politics... Although maybe we could argue that all of the other taboo topics have become politics, and that's part of the problem.

</comment></comment><comment><USER9> Reminder this means 38% aren't afraid to share those views. The article mentions specifically in the workplace. For a time, I worked under a VP in a large public software company that wouldn't let anyone under him reimburse alcohol sales on team outings (food was fine; there was no objection to team outings to build rapport, either). It was strange, it stood opposite to company-wide policy of permitting employed-provided alcohol, and it likely had an inconsequential effect on his career, but he did push his personal views on his reporting chain.

<comment><USER10> Missing the point here. What does not wanting to reimburse alcohol in this case have to do with politics? Can you maybe share more context?

Is the idea because people get drunk and talk politics?

<comment><USER9> As a society, we visited this topic quite some time ago and it was the 18th amendment. It was an incredibly political moment for our country.

<comment><USER11> You seem to be expressing some personal sensitivity here. If this person was disparaging people who drink alcohol (or was pushing for making alcohol _illegal_ ), you should specify that. All you've said is that they didn't cover it as a work expense - it's a controlled, mind-altering substance, so that's totally non-political given no additional motivations.

<comment><USER9> The organization had an established policy, permitting employer-provided alcohol at work social functions. He pushed a personal view, without the consent of his management, to the maximal extent his role gave him.

<comment><USER11> >He pushed a personal view, without the consent of his management

You should have said this originally. I can understand if this was some crusade he was pursuing, but nobody could infer that from your original post. Also, you should really consider how ironic it is, in a thread about people being afraid to express political opinions, that, when asked how not reimbursing alcohol is political, you responded with a hyperbolic analogy in a sarcastic tone to the effect of "we had this thing called prohibition" (you've since edited that comment, though the tone mostly remains).

<comment><USER9> By stating it "wasn't company policy", I had imagined it was clear it was a personal decision, overriding the rest of the company. I have updated my comment to reflect this.

</comment></comment></comment></comment></comment></comment></comment><comment><USER12> Previously discussed: [https://news.ycombinator.com/item?id=23932321](https://news.ycombinator.com/item?id=23932321)

</comment><comment><USER13> I live in Sweden where we've been having similar problems for a long time. I used to look at the US as a flawed (but not flawed beyond repair) example of a state where the constitutionally guaranteed freedom of expression worked as a bulwark against the oppressive political climate we've become known for in Sweden. I would never have thought that in just a few years time the USA would overtake Sweden on this front. Where the 'åsiktskorridor' (literally 'opinion corridor', more or less comparable to the Overton window) in Sweden is gradually opening up, the opposite seems to be happening in the USA and those constitutional guarantees don't guarantee anything since they only apply to interactions between the state and the individual while the oppression comes from non-governmental groups.

This oppressive climate where opinions are not shared has no positives at all, zero, nada, zip, zilch. All it does is create suspicion, doubt and division where in other circumstances a few words would have broken the ice and allowed understanding and trust to grow. In a society where the meaning of words keeps on being changed so as to weaponise them and the wrong word at the wrong moment can get you fired, where the common history is being demonised, where shared culture is divided into ethnic enclaves which are only deemed appropriate for those of the 'correct' ethnicity... the outlook is bleak. This type of activism used to be limited to the most extreme corners of academia but it has escaped into the wild and is spreading like wildfire. The more it spreads, the more violent the reaction will be.

In Sweden we will eventually overcome our difficulties now that it has become so obvious that those who pushed the agenda were wrong. These people will not be held accountable, they will keep their jobs, most of them will act as if they had no part in the suppression of those with differing opinions even when confronted with hard evidence of their complicity. This is the way things work here, it is the way things have worked here for a long time - at least since WWII. What will happen in the USA when those who use Orwell's _1984_ as a user manual lose momentum is up for grabs. The response better be measured and civilised or the gains of decades of civil rights work stands to be undone. The sooner those of sane mind of all ethnicities get together to call a halt to this madness, the better.

Get at it before it is too late.

</comment><comment><USER14> The non-violent answer to this polarization and hysteria is subsidiarity and devolution of political power to the various states. Libertarianism at the state level.

We will not pick this answer, and, if we did, it would not be allowed.

"You are an Acceptable Level of Threat and If You Were Not You Would Know About it"

</comment><comment><USER15> Most of the 'staunch liberals' I know select companies that align with their values. Some don't (the 42% of them that don't feel they can speak their politics) and are or have been working in companies where they know they'll get fired or passed over if they speak ill of Trumpism, particularly in finance and accounting.

</comment><comment><USER16> i wonder how mnay of those views are "i don't believe X people should have the same basic rights as the majority"

<comment><USER17> I doubt a high percentage includes outright bigots and morons. The way I see it, it's opinions such as disagreement with ACAB movement, viewing looters as fundamentally doing more harm then good, and other sensitive topics such as affirmative action damaging the "out of fashion" minorities such as Asian Americans. People are careful not to speak loudly about these opinions due to the fear that they're in the minority and will be branded as the enemy of the modern day "progressives".

<comment><USER18> >viewing looters as fundamentally doing more harm then good

Almost nobody would disagree with that statement but I'm sure you know that. Suggesting that the majority on the left (aka "progressives") support the looting is extremely disingenuous.

It's plainly obvious what the _real purpose_ of a comment like that is.

<comment><USER17> That's exactly my point. Almost nobody, when debating under mutual good will and faith, would have much to disagree with any of the topics I've touched on. These are sensible, human-centered talking points that have somehow become branded taboo because any attempt to discuss topics that might cast an ounce of blame away from the conservatives is being branded as wrongthink and as "derailing the conversation".

It's funny how you yourself have immediately labelled me as being a non-left having read the comment that I made. Our most urgent threat may be the right wing conservatives at this very moment, but sooner or later we will face a real reckoning with what we thought were our most outspoken allies. Be careful with how you use the term progressives, because thought policing and book burning is anything but.</comment></comment></comment></comment>


We are heading for a New Cretaceous, not for a new normal - <AUTHOR> https://aeon.co/ideas/we-are-heading-for-a-new-cretaceous-not-for-a-new-normal <comment><USER2> The article mentions that research shows "humans can't survive more than 6 hours in 95F/35c with 100% humidity". This is hard to believe, as I lived in a place that had common summer highs of 100 for much of a day and humidity in the high 90%'s, also known as the american south. People survived there just fine for thousands of years before Europeans got here, and even us wimpy americans survived a couple of hundred years before modern AC.

Looking at the linked article, it talks about wet-bulb ie 100% humidity being different somehow as you can't shed excess heat. In other hot parts of the world with frequent rain and humidity people do survive - perhaps the authors are getting at something else.

I don't want to live in that world though.</comment>


Why Siri just might work - <AUTHOR> http://thisismynext.com/2011/10/04/siri-work/ <comment><USER3> Here's how to think about Siri: it's a second user interface that's _better than touch_ for many of the most commonly-used, tap-heavy features of iOS.

I need to remember to call my mom when I get home. Perfect use for iOS 5's new Reminders app, right? _But_ to use Reminders for this, here are the steps today:

      Press the Home button, swipe to unlock.
      Navigate to the Reminders app icon (may take a press of the Home button and/or a few swipes), tap it.
      Tap "+" to add a new entry.
      Type "call mom <return>". [note that this step practically requires using two hands]
      Tap the just-created item.
      Tap "Remind Me".
      Switch "At a Location" to "On".
      Tap location, choose "Home". Tap the back button.
      Tap "When I Arrive".
      Tap "Done", "Done".
      Look back up from my phone that I've been staring at for the last 30 seconds.

Or, with Siri:

      Hold down the Home button for a couple of seconds.
      Say "Remind me to call my mom when I get home."

The Siri workflow is hugely easier (and safer) when driving, true, but that's almost incidental - it's simpler and "lighter" than touch _even when you're sitting on your couch with your feet up._

<comment><USER4> Not to mention it doesn't need to impede on your current activity. Currently, if you're doing some work in an app, you can either close the app, create the reminder, go back to your app and try to get your brain back into the mindset of using that app. OR, you tell yourself that you'll create the reminder when you've finished completing the process you're doing in the current app (in which case you might forget to create the reminder altogether). I think Siri will help a lot in performing actions in the mobile/tablet space where multitasking is just not as simple as the desktop.

<comment><USER5> I always wished I had the android style "stack" of applications on my iphone for just this reason: short one-off tasks. But I also knew apple would never do it. This seems to be the solution they are going to push.

</comment></comment></comment><comment><USER6> How much of this is just speculation and how much was baked into Siri prior to Apple's acquisition of it?

They can make _anything_ look wonderful and intuitive in those promotional videos, since they focus on the optimal use cases. I want to know if the product is that smooth for everyday users (ie. people that haven't memorized the specific vocabulary) during everyday use.

<comment><USER7> I though the same initially, especially since I know a thing or two about Natural Language Processing. So I know that this is a very hard problem, to say the least. But then I remembered that we are talking about the company, that is known to make some of the most usable products in the world. I trust that Apple is smart enough to not shoot itself in the food, by releasing a half baked product like that.

<comment><USER6> So the downloadable Siri was half-baked?

</comment></comment></comment><comment><USER8> I think Siri is really cool. It seems Apple took a human-first design and brought a lot of user information together to make it easier for humans to get things done.

My biggest frustration having used voice recognition across multiple different platforms is still the machine in question clearly understanding what I'm saying. I feel like if I'm in a car I have to turn off the music, wind up the windows, and tell the passengers to be quiet. I also hope that there's minimal road noise.

I can't wait to see if Apple's cracked this problem for me.

</comment><comment><USER9> Does anybody know where Siri gets its local search results from? The independent version of the app has been pulled from the App Store, and the only "answers" I can find to my question online are low quality. If they somehow manage to produce good results, they'll stand with Google Places as one of only two generally reliable local search resources.

If somebody has some insight on this, and they'd be willing to discuss it in greater detail or at greater length than would be suitable in an HN post, please contact me (see my profile).

</comment><comment><USER10> Two questions:

As far as I understand Siri uses Nuance's Dragon Naturally Speaking speech- recognition for actual speech recognition. Is that correct? If that is correct, then what is added value of Siri/Apple? Is it going to be better than Dragon?

Did anybody tried this? Does it really understand normal English or English with a little of an accent? There are so many speech recognition products on the market and none of them work well. Meaning they work like 50% or maybe 80% of time - so you just gave up.

</comment><comment><USER11> A little off topic but why when I go to <http://www.apple.com/iphone/features/siri.html> and try to watch the video am I prompted to download Quicktime. I thought apple was all about HTML5 and killing off browser plugins?

<comment><USER12> Is this the first time you've seen a self-serving inconsistency? Apple as a company represents many things, and a keen PR team with excellent wording is one of their strengths. Apple isn't "all about HTML5" and "killing off browser plugins", but rather they are about their best interests. Nixing Flash kept the Apple-controlled AppStore the dominant gateway for applications on the device. Quicktime is another Apple technology, so it is pretty much expected that they will use it (if for nothing other than cross-promotion/marketshare)

<comment><USER13> M$ - Silverlight Adobe - Flash Google - <USER2>

Calling Apple out as if they are some how evil here is disingenuous. All the players are pushing their own formats.

Doesn't safari work without quicktime and support the <video> tag in html5?

How about calling Adobe out for "ruining the internet" with flash? I'm glad Apple kept them from ruining the iphone (like they are attempting with android).

[Edit: correct Flash to Adobe]

</comment></comment></comment><comment><USER14> I too think Siri can be ported to say... Mac OS X!

Deriving the meaning from words and previous context is beyond difficult and I can only imagine the processing power required for it. But if the A5 can pull it off, so too should an x86 CPU.

<comment><USER15> The A5 isn't pulling it off. As with Google's voice stuff, it's sending a low quality audio stream to a datacenter where the heavy lifting is happening. Note that the presentation pointed out that Siri requires WiFi or 3G access.

<comment><USER16> Not sure 'bout that. During the event they only explicitly pointed out that voice recognition is happening on Apple's servers when they talked about dictation. They introduced that as if it were something new and unique for the dictation part of Siri, not the commands.

I'm really quite confused about the details but the iPhone 4S will start selling soon so we will be able to find out how Siri works in more detail.

</comment></comment></comment><comment><USER17> Because it alleviates typing on an awkward keyboard in some situations.

<comment><USER18> But as he points out, it's voice only. No text input to Siri.

I never understood why an old girlfriend would always txt me. Then I rode around in a very loud car with her, and her friends. I actually wound up sending txts to communicate with her, even though she was sitting right next to me.

To wit, there are some situations were voice is not practical, optimal. What if I want to type on an awkward keyboard?

<comment><USER17> Loud venue? not useful. Trying to keep secrets? Not useful. Trying to text your friends in the flyest street slang? Not useful.

Hands dirty from cooking and you need to text someone back? Useful.

</comment></comment></comment><comment><USER19> When voice control works with my thick slavic accent, then I'll be impressed.

Until then let me just stick to my lovely dependable keyboards.

<comment><USER20> They did mention that it learns your voice and vocab patterns over time. We'll see if that's truly the case.

<comment><USER21> Nuance technology really adapts to your own voice, even if the first recognition fails after a few (5 to 10) it really nails what you ask for.

</comment></comment></comment><comment><USER22> this article is even more fascinating with the real implications of siri: <http://5by5.tv/criticalpath/9></comment>


The Cloud Wars - <AUTHOR> http://it.toolbox.com/blogs/future-of-work/the-cloud-wars-53227

<comment><AUTHOR> Did anybody here attend any of this conferences? What was your impression?</comment>


Ballmer's biggest flop to date - <AUTHOR> http://blogs.computerworld.com/ballmers_biggest_flop_to_date

<comment><AUTHOR> sjvn seems to be on a campaign.</comment>


Foreigners turn to India in search of cut-price, life-saving cures - <AUTHOR> http://www.japantimes.co.jp/news/2016/03/06/asia-pacific/science-health-asia-pacific/desperate-foreigners-turn-india-search-cut-price-life-saving-cures/#.VtvsXMtX7qB <comment><USER6> I know the article and the discussion is about access to drugs, but I must call out that part of the success of medical tourism in India is the lack of stranglehold control over medical care by insurance companies. In India, I can:

\- Get an estimate for service _before_ it happens, and plan for it therefore.

\- Pay for the service _at the time of discharge_ with/without insurance

\- _decide by myself_ if i want to get a specific procedure done or not - <USER2> fuss of "does the insurance cover it?". Of course, this is one area where the costs of service being inherently low helps.

\- get all my medical records _in my hand_

These are basic patient freedoms, IMO, that the insurance industry in the US has taken away.

I dont know the history of how it came to be this way in the US, but as it stands, the situation is very geared towards getting mystery service - <USER3> dont know what you're allowed until you're refused, you dont know how much the service cost you until months later and even then in multiple bills from various hosiptals, doctors practices and specialists, and you have to ask for your records because _you_ cannot keep them safe!

I have all my records from every treatment in India, but not one coherent,collated record of my last physical checkup in the US. There's something broken there.

<comment><USER7> This is why we need to completely get rid of health insurance in the US. If Hospitals could only charge the actual value for their services, and not the inflated insurance prices, the prices would be much lower.

One of my friends is a Doctor. He told me that they need to over-charge for services because of the insurance companies. If they charge $20 (the actual cost of the service), they might get $4 back from the insurance company. If they charge $100, they might get the $20 from the insurance company for the service. We need to cut out the middle man. It's basic economics.

The drug issue in the US is mostly the fault of the government. It takes hundreds of millions of dollars and 10+ years to get FDA approval. This stifles innovation and creates an environment where there are only a few players (IE: a monopoly). The result is ridiculous prices due to no competition.

<comment><USER8> If they charge $100, they might get the $20 from the insurance company - <USER5> remaining 80 goes to the insurance company?

<comment><USER9> > If they charge $100, they might get the $20 from the insurance company - <USER5> > remaining 80 goes to the insurance company?

He's saying they bill for $100, and the insurance company decides to pay $20.

<comment><USER8> So where does the 80 go?

</comment></comment></comment></comment></comment><comment><USER10> I find the concept of intellectual property and patents ridiculous.

What would be the benefit of granting IP over an invention or innovation to a corporation or a group of individuals versus releasing the knowledge under the public domain? Except the corporation or inventor(s) making money off of it, I can't think of anything significant. Instead, if the knowledge is made freely available under the public domain, the limitation becomes how well the innovation is used for the benefit of humanity instead of the limitation being access to the invention itself and IP.

Maybe the existence of IP and patents was important to get to the present as a way of rewarding innovation, but it's high time to look for a better model.

I know this is a very complex issue for which there are no simple answers or solutions, but a good starting point might be to think about a society where the motivation for innovation is not financial reward.

Taking the example of patented drugs, how is it justified to keep access to life saving drugs beyond the reach of most people(including people in developed nations)?

<comment><USER11> The issue is that with medicine, it cost vast amounts of money to develop and test a medicine. If there was nothing making sure the investment would pay of, there would be much less money spent developing medicine.

I am not saying the system is perfect, and some companies push the prices to the ridiculous to exploit people in need, but removing medical patents altogether would require some other equally strong economic incentive to keep development rolling.

<comment><USER12> We already have publicly funded research, which is an altogether more effective way of developing new medicines anyway.

<comment><USER13> Nonsense, disregarding the pink elephant in the room (reproducibility in academia) once a method has shown potential it is often spun off into some sort startup (often SBR recipients). If they keep gaining clout, a bigger pharmaceutical will buy them out. New medicines are developed 10% by a university and 90% by industry.

<comment><USER12> Not 90%. 58%. According to JAMA.

[https://jama.jamanetwork.com/article.aspx?articleid=185198](https://jama.jamanetwork.com/article.aspx?articleid=185198)

When the public funds drug research it also doesn't "magically" discover that its drugs are really effective when they aren't:

[http://articles.mercola.com/sites/articles/archive/2006/06/1...](http://articles.mercola.com/sites/articles/archive/2006/06/10/studies- funded-by-drug-companies-favor-drugs-80-percent-of-the-time.aspx)

<comment><USER14> You're seriously going to post Mercola on HN?

<comment><USER14> Yes, go ahead and down vote me for flagging links to a quack's website.

<comment><USER15> Please don't post comments about getting downvoted: [https://news.ycombinator.com/newsguidelines.html](https://news.ycombinator.com/newsguidelines.html)

The comment was unsubstantive and dismissive. If there's something wrong with a source, it would be better to explain what that is instead of just snarking, which (a) undermines civility and (b) teaches us nothing.

<comment><USER14> Very well. Joseph Mercola[1] to put it politely, is not burdened by objective reproduction of claimed results when hawking his alternative remedies.

[1] [https://en.wikipedia.org/wiki/Joseph_Mercola](https://en.wikipedia.org/wiki/Joseph_Mercola)

<comment><USER12> If you're going to disagree with the source, disagree with the source, not the website that cited the source:

"Researchers from the Beth Israel Medical Center in New York City examined four journals: American Journal of Psychiatry, Archives of General Psychiatry, Journal of Clinical Psychiatry and Journal of Clinical Psychopharmacology. They found drugs were favored in roughly:"

Is Beth Israel full of quacks?

<comment><USER14> I doubt it, but since Mercola didn't link me to their meta-study I can't find the reference directly. It's not the JAMA link that was in the OP.

</comment></comment></comment></comment></comment></comment></comment></comment></comment></comment></comment><comment><USER16> The problem is not in patents or capitalism, but in perpetual extension of intellectual property in a Disney-like fashion. The point of "Cyclical" is that there is a cycle - a life-cycle of development, then intellectual monopoly and finally general availability. Sovaldi's patent should have expired in 2012, and Martin Shreli's Daraprim's patent should have expired in 1973. Perpetual extension simply abuses the system, and the stories like in the original article are just a reflection of system's abuse, not the flaw of the idea of protecting intellectual property in the first place.

<comment><USER17> There's no patent keeping other companies from producing Daraprim equivalents for sale in the US, it's just that no generic maker had bothered to setup an FDA approved production process.

There's a few thousand people using it in the US, so there isn't a huge market for it.

Medicare is a big enough consumer that it should probably be running a program where it shares risk with generic makers that are willing to produce drugs that don't cost a lot, as long as the company maintains quality. Basically, make sure that line start up and regulatory costs aren't preventing $1 pills for rare conditions coming to market.

<comment><USER9> > Medicare is a big enough consumer that it should probably be running a > program where it shares risk with generic makers

Perhaps, but Medicare has literally no incentive to do this.

It's one thing to posit that a monopsony or oligopsony _could_ result in driving prices down. And in a closed system, that might be what happens[0].

But at the end of the day, Medicare has no mandate to ensure sustainability of reimbursement and payment rates. Since they can't raise revenues (taxes) without Congress, they balance the budget by driving reimbursements (for service providers) down below cost. Pharmaceutical companies _are_ actually affected by this too, but because the big-ticket items are under monopoly protection (via drug patents), unlike care delivery, Medicare still has to pay sticker price for those.

The people who end up being hurt by this, by the way, are not Medicare patients, but uninsured patients and privately-insured patients.

[0] But not always - like a monopoly, a monopsony can choose price _or_ quantity, but not both.

<comment><USER17> Medicare the-thing-run-by-Congress has incentive to do it. At least, in theory, as Congress should be looking to create regulations that are beneficial to taxpayers (Medicare isn't going away, therefore cost controls benefit taxpayers).

To the extent that I understand it, I agree that Medicare the-thing-run-by- statute doesn't currently have much incentive to do it.

I guess I could have said something about federal programs that run huge public health providers being structured to use market based policies to reduce costs, but I'm prone to colloquialisms (i.e., the pretense that Medicare isn't limited to existing statute, it can be amended to act differently).

<comment><USER9> > At least, in theory, as Congress should be looking to create regulations > that are beneficial to taxpayers

In theory, theory and practice are the same. In practice, they aren't.

It's one thing to talk about structuring government programs so that they are obligated to serve the public interest no matter what. But actually implementing that, in a manner ensured to be robust against creeping scope, capture, and corruption, is damn-near impossible.

<comment><USER17> _In theory, theory and practice are the same. In practice, they aren 't._

If I was naive to that, why would I start the sentence with that caveat?

<comment><USER9> > If I was naive to that, why would I start the sentence with that caveat?

I didn't say you were. I was expanding on the point, naming the specific challenges to the process.

</comment></comment></comment></comment></comment></comment></comment><comment><USER18> Anecdata, size 2, from India:

My uncle (who had a device implanted 4 years ago to regulate his heartbeat) went into the ER one of the premium hospitals in our city (Fortis). He was having some weird symptoms, and his blood sugar was off. They strongly recommended that they upgrade his device to a pacemaker! (A highly expensive procedure). When my cousins refused, the hospital pumped him full of insulin and discharged him. He came home and relapsed again. This time he was taken to another hospital, and the problem was some infection in his kidney.

Another cousin: had a severe pain in his stomach area. Went to a hospital, they injected him with a painkiller and let him go. Pain continued: he went to another, same deal. Finally he got to a third hospital, and they diagnosed the problem: kidney stone.

There's caveat emptor for Indian hospitals. Be careful.

<comment><USER6> This is true. The big "chain" hospitals do have pushy tactics, doctors with lab prescription quotas etc. Similarly, but at the other end of the spectrum, there are hospitals in smaller towns that mistreat you or send you off with painkillers.

Clearly, your mileage will vary, so you have to do research, ie, talk to people you trust, much like everything else in India :)

<comment><USER19> I've had good experience with big "chain" hospitals, be it Apollo, Columbia Asia, Wockhardt, or whatever else. I never found them pushy. One of the docs from there quit and opened his own clinic. He doesn't even charge me for consultation. Don't know why.

Of course, doing your own research is critically important. Many doctors are dangerously ignorant of anything that doesn't come under their specialty.

</comment></comment></comment><comment><USER20> Im curious what is stopping some other countries (even micro-nations) from instituting a policy that forfeits all patents on medication.

Lets say you take the country of Saint Lucia- Could they not spur the economy (among the lowest in the world by GDP) by saying any company can manufacture any existing drug and sell it? I feel like the medical tourism for that could be extreme, especially since there is still many treatments india still does respect the patent for.

If the country put it in their constitution that all drugs should be a human right, could a legal action be taken against the country itself? I imagine the only recourse would be the pharma companies trying to force legislation in other countries to bring sanctions, but I think that would be a hard sell.

<comment><USER21> Such a country wouldn't get admission to the WTO and would have a very hard time trading with the other countries in it.

It would also amount to state endorsed IP theft.

<comment><USER22> > Such a country wouldn't get admission to the WTO

As opposed to what we do when we invade and bomb/drone other countries? As opposed to what we did when we engineer coups in resource rich countries? Come on. Let me guess, you're buying into the idea that generics hurt RnD. Let me assure you, having worked briefly in a pharma RnD lab, the bulk of big pharmas expenditures are on marketing and bribes, NOT RnD. Here's a recent headline: [http://www.statnews.com/pharmalot/2016/02/22/novartis- south-...](http://www.statnews.com/pharmalot/2016/02/22/novartis-south-korea- bribes-doctors/)

You'll find similar bribery cases with GSK, Pfizer, etc.

<comment><USER23> >> Such a country wouldn't get admission to the WTO

> As opposed to what we do when we invade and bomb/drone other countries?

I don't think the parent supports the action, but merely stating the likely outcome, _realpolitik_ and all. S/he is answering gp's question: _" What is stopping some other countries (even micro-nations) from instituting a policy that forfeits all patents on medication"_

The answer, in short, is leverage: smaller countries can be pressured into not even considering it - because of the consequences. India can do this because it is better able to withstand the hypothetical political pressure.

</comment></comment></comment></comment><comment><USER24> The economist Dean Baker has been vocal for years about the benefits of free trade on medicine. [0] (of many)

But while the powers-that-be are fine with free trade for cars, cheap clothing, electronics, etc. or exporting American manufacturing jobs overseas, it's a different tune all the sudden when you try to do the same thing to powerful industries, like doctors or lawyers.

[0][http://www.cato.org/publications/cato-online- forum/doctors-d...](http://www.cato.org/publications/cato-online- forum/doctors-drugs-promoting-growth-equality-through-free-trade)

<comment><USER25> Are you claiming that the American car lobby is _not_ powerful? You might need a history refresher on how (for example) "voluntary export restraints" came to be a thing:

[https://en.wikipedia.org/wiki/Voluntary_export_restraints#19...](https://en.wikipedia.org/wiki/Voluntary_export_restraints#1981_Automobile_VER)

But they've been fighting that battle for close to 50 years and losing.

</comment></comment><comment><USER26> Feels like there should be some kind of website or service that tracks these drug price arbitrage / differences.

</comment><comment><USER27> Don't have to go all the way to India if you live in the US. Mexico is close by. And soon, Cuba will be even closer for some.

<comment><USER28> People wer exporting them from Canada, but big pharma lobbied for bans ([http://news.healingwell.com/index.php?p=news1&id=526618](http://news.healingwell.com/index.php?p=news1&id=526618)). Anywhere close to US mainland, especially Mexico, I am afraid, will meet with the same fate.

Cuba's a different story as they just tell US lawmakers to fuck off.</comment></comment>


IRCv3 Specification Drama - <AUTHOR> http://github.com/atheme/ircv3-specifications/issues/68

<comment><AUTHOR> Unfortunately within that GitHub issue, it didn't include the discussion from the official #ircv3 channel: [http://pastebin.com/Jm1vSWLu](http://pastebin.com/Jm1vSWLu)

This discussion really shows the unprofessionalism involved by certain individuals: threats to sabotage the project, the threat of attacking fellow members. These kinds of bullying activities should be exposed.</comment>


Why Facebook Would Have Failed Even If China Were a Free Market - <AUTHOR> http://www.techrice.com/2010/12/02/why-facebook-would-have-failed-even-if-china-were-a-free-market/ <comment><USER2> The argument 10,9,8,7 contradict to the main premise (China were a Free Market).

The argument 5,4,2 are tautologies to "Facebook would have won".

The argument 6,3,1 are valid ones, but the same analogy can be applied to any foreign Internet companies (thus, not convincing at all).</comment>


Functional Fluid Dynamics in Clojure - <AUTHOR> http://www.bestinclass.dk/index.php/2010/03/functional-fluid-dynamics-in-clojure/ <comment><USER2> I have a PhD in computational fluid dynamics (CFD), and have written several CFD codes in Fortran, C, Matlab and Python. I'm also a programming language geek, and have been interested in functional programming languages for quite some time. When I see something like this, however, I loose some of my faith. It just seems like too much effort to get decent speed, and even when not considering speed it doesn't seem to give much benefit. For instance, this is how the diffusion function would look in Fortran (skipping some details):

      pure function diffusion(x0) result(x)

        real, intent(in), dimension(:,:) :: x0
        real, intent(out),dimension(:,:) :: x

        x =  x0(2:n+1,1:n  ) &
          +  x0(0:n-1,1:n  ) &
          +  x0(1:n  ,2:n+1) &
          +  x0(1:n  ,0:n-1) &
          -a*x0(1:n  ,1:n  )

      end function

Some things to note:

\- The "pure" keyword guarantees that this function has no side effects.

\- No do loops are needed! Fortran array slicing is very handy.

\- The compiler will convert this to use SIMD instructions

\- Adding some OpenMP hints to make it run on all cores is also very easy.

So this type of code in Fortran is short, very easy to understand and you are guaranteed extreme performance. Maybe functional programming has some benefits when you're dealing with more complex datastructures (for instance I'm working on a code right now which uses parallel octrees, kind off a pain in Fortran), but for simple things like this, I fail to see the point.

I want to believe, so perhaps someone here can enlighten me?

<comment><USER3> Clojure's not very fast with numerical code if you write it idiomatically. One main reason for this is that functions can't (for now) take primitives as parameters, so all arithmetic is boxed unless it's done inline with explicit type hints. (Hence all the macros in the Clojure code.)

However, don't lose hope just yet. Languages like Haskell or OCaml, with more mature compilers, might not have such limitations. Also, I think that while many small examples might turn out essentially equivalent when comparing imperative and functional styles, the difference becomes more pronounced on a whole-program scale. Pure functions are easier to reason about, and compose better.

Fortran, C and C++ will probably keep their place as tools to use when absolute best performance is needed, but with modern compilers and virtual machines, functional languages do not have to be slow either.

Finally, I hope to see functional programming languages succeed simply because functional programming is a lot of fun.

<comment><USER4> Honestly, in a lot of cases language performance doesn't matter as long as you have a good numerics library. For example, here's one implementation of the projection step in my current project, which does fluid simulation on unstructured tetrahedral meshes and relies heavily on SciPy's sparse matrices:

      def __init__(self, mesh):
        div_matrix = op_mesh.n_to_nm1_boundary.T * op_mesh.F_matrix
        boundary_matrix = op_mesh.F_matrix - op_mesh.FB_matrix
        self.C_matrix = sparse.vstack((div_matrix, boundary_matrix))
        self.CCT_matrix = self.C_matrix * self.C_matrix.T

      def Project(self, velocities):
        lam = linalg.cg(-self.CCT_matrix, self.C_matrix * velocities)[0]
        return velocities + self.C_matrix.T * lam

It's pretty simple (constrained least squares optimization) and it's missing some stuff (preconditioner), but it runs fast enough (~1 minute/frame for > 1M tetrahedra), and only required minimal testing: it's all built up from operators I was already using elsewhere. Since it's the fourth or fifth projection method I've tried for this code, that makes a big difference. The fact that I'm using Python is almost immaterial: all of the "interesting" code is library calls.

<comment><USER2> Interesting. Is the code available somewhere? I looked at your SIGGRAPH paper, and that was very interesting.

Have you seen the FiPy project? It's a full-featured finite volume code in Python, which is very easy to extend (they did struggle with performance in early releases, not sure how the current status is).

I guess that's the area where dynamic or functional languages can be useful, in that they are easier to build generic libraries for, and can give rise to codes with easier extensibility.

</comment></comment></comment></comment><comment><USER5> I dunno, seems like exactly the type of situation where it would be much more appropriate to just write the damn thing in Java...isn't the ability to do just that with performance sensitive code one of the best things Clojure offers compared to "standard" Lisps? You'd get better performance, clearer (and less) code, and less development time, as well as the ability to practically cut and paste the C code from the linked paper.

I feel (as I do so often when projects written in certain languages that may or may not start with "Haskell" show up here) that the main take away is "Look, we can write working apps, too, and they're Better-Because-They're- Functional!" And yes, there are a lot of things that _are_ better when you code them functionally, but simple numerical algorithms like this one play specifically to the strengths of imperative languages, and I see no clear benefit.

It's the same code smell that I get when people start putting together utility libraries, macro tools, and bytecode processors just so they can pretend to do functional programming in Java: if you find yourself struggling to do things non-idiomatically in one language that would be trivially natural in another, why not just switch languages? _Especially_ if they all live on the same JVM and play fairly well together...

</comment><comment><USER6> "The archaic C language". Alrighty.

<comment><USER7> "The weird thing about C is that its not even prefixed like Clojure (+ 2 2), instead all operators are scattered between the arguments!"

Please tell me he is kidding. Maybe I don't get out of my cave often enough but it seems uncommon that someone could grok FP bypassing C altogether.

<comment><USER8> He's not kidding, C precedence rules are weird. Even D. Ritchie thinks so. [http://en.wikipedia.org/wiki/Order_of_operations#Programming...](http://en.wikipedia.org/wiki/Order_of_operations#Programming_languages)

Oh, and it isn't strange to grok FP bypassing C altogether.

<comment><USER9> Of course he's kidding! I refuse to believe that wasn't some tongue-in-cheek statement. For fluid dynamics, all we are talking about is addition and multiplication, and the precedence rules for these operations are what you would expect them to be.

</comment></comment></comment></comment><comment> a-priori Do most fluid dynamics simulations use Euler integration like this?

<comment><USER2> No, as the paper says, explicit Euler integration is extremely unstable. Implicit Euler, as the paper uses, is stable but only first order accurate.

If you're dealing with fluids with low diffusion compared to advection, some higher order Runge-Kutta scheme is typically used. For fluids with high diffusion, however, this will give you very high restrictions on the time step. For this cases, a hybrid scheme is often used, where the advection term is integrated explicitly using an Adam-Basforth scheme and the diffusion term is treated semi-implicitly with a Crank-Nicholson scheme. This means you have to solve additional linear equation systems for the velocities for each time step (Helmholtz type equations), but this is still faster since you can use longer time steps.

All of this may sound very complicated, but it all follows the same patterns, so it's really fairly straight forward.</comment></comment>


Fireworks for Your Terminal - <AUTHOR> https://blog.darrien.dev/posts/fireworks-for-your-terminal/ <comment><USER2> This is great. When I worked graveyard on New Years I'd SSH into my server from my phone and watch the countdown with NTPD, knowing I had the most accurate clock of them all... not withstanding some 3G latency of course. This would have been the perfect accompaniment.</comment>


Generation JavaScript - <AUTHOR> http://manuel.bernhardt.io/2014/12/30/generation-javascript/ <comment><USER5> What is happening with the web stack now is a sort of renaissance with an unprecedented pace of activity. It's easy to feel overwhelmed, which is why I started a local meetup group that has now grown to 800+ members, all wondering the same thing: where do we start and what is worth investing our time in? Through conversations and presentations we learn what has worked well for others. Gradually, I expect the "storm, norm, perform" cycle to work its way out in the JavaScript community as consensus starts to build around which tools and frameworks are best. That is already happening to some extent. I don't think bemoaning the state of rapid innovation in the web stack is terribly useful; rather we need experienced developers (unbiased ones, preferably) to curate their collection of JS tools and resources and publish it for the benefit of others. One of the talks I've been wanting to give for a while is simply a "3000 ft survey of the JS landscape" or similar - <USER2> out the territory in terms of client-side MVC, server side JS, build tools, static code analyzers and tracers, libraries, etc. (If anybody knows of existing efforts to curate such a list, I'd love to know about them)...

<comment><USER6> Exactly. "Oh no! Too many people are publishing their code! Developers have too many excellent options (along with many awful ones)!"

It's true that our community could use a renewed focus around best practices, and it's true that the stack itself is way more complicated than it needs to be. In that sense, I don't disagree with the point of this article at all, but it's important to remember that when things grow organically they will tend to get messy, and the alternative (somehow structured growth, governing bodies, etc) is far worse.

<comment><USER7> > _Exactly. "Oh no! Too many people are publishing their code! Developers have > too many excellent options (along with many awful ones)!"_

I fail to see the "many excellent options". Awful ones are, on the other hand, abundant.

And even those that are decent have the other issues the article mentions: they are short-lived, with developers soon moving to the next shiny thing etc.

</comment></comment></comment><comment><USER8> I don't think this is about javascript, any more than Kamp's article was about C, or any other specific language. It's about the culture of speed, and the whole notion that getting something working as fast as possible is the primary virtue to be encouraged. I see this viewpoint engrained in lots of the younger developers I work with today, but I don't think it's their fault, and I don't think it is something whose DNA we can trace back to the dot-com bubble. It's been going on longer than that.

Some of you may be old enough to remember the days when managers attempted to measure our output with KLOC/day metrics. That goes back at least to the early 90's and maybe the late 80's. I believe the reasons for this are more fundamental than these articles hint at.

The problem arises, imo, when you have management in a position of relying totally on people whose work they don't understand at all. They are educated to manage risk, and yet they are paying us large amounts of money to essentially function as a black box, out of which comes something that works and makes them heroes, or doesn't and loses them their jobs, and they have few ways of measuring which way the battle is going.

The response is to try to manage ever more closely, treating the process as one of production: X number of people sitting at their computers working hard will produce Y amount of software. Those are the kinds of processes they are trained to deal with in the management schools. They aren't trained to manage inherently risky processes of creation, rather than production. The word "craftsmanship" as used in the linked article is exactly right, but "craftsmen" don't fit into the modern world of value production and they never have.

<comment><USER9> You're right, but most replies to you have overlooked the customer:

Customers, _paying_ customers, are accepting Javascript apps. Java was never good enough for that to happen except internal to large organizations where aesthetics and user experience didn't matter.

There may be a zillion crappy, similar overlapping Javascript libraries - <USER3> to my background it seems like a massive waste of time - but the fact remains that people, everyday people like my mom, sister, uncle and aunt are all spending real money for services accessed through Javascript. It is good enough.

Should I tell them: "You know that website you like so much, e.g. reddit- it would be so much better if it was a native app on your PC written in C++, so, like, don't use it. Demand and wait for someone to re-write it in a proper language with libraries that have a proper pedigree. Then you can run it on a 300 MHz computer instead of 3 GHz."

That'll never work! The javascript/PHP/whatever else stack that implements reddit is absolutely adequate for them to browse cat pictures and interact with their magic tricks communities.

Now, diehards like me cringe because of the waste of CPU, but guess what - <USER4> power is no longer a scarcity. There are only philosophical and environmental reasons to wring our arms about using less CPU power. And possibly these concerns are non-sensical. Are we wasting the world's resources making fast CPUs so people can use inefficient sw libraries? Who knows. But either way, the point remains:

Javascript's customers and users, and the services they demand and pay real money for all support Javascript and nothing other than a fanatic religion will convince them to change their ways.

It makes me mental, but I've even been learning Javascript over the last few years. It's about the same speed (and variable scope) as the BASIC I used on the Apple 2 in 1984, but so what, I'm paying the rent with it.

<comment><USER10> Customers are accepting _web_ apps. They don't care if the apps are written in Flash, js, BrainFuck, Haskell, or morse code converted into asm.js via a transcompiler written in APL.

But development is not a democracy, and the fact that n thousand projects use a certain stack doesn't mean the stack is fit for purpose.

Take the security horror that is Wordpress. It's popular because it's easy to use, but from a professional point of view it's an infosec plague and server killer.

The quibbles about js have nothing to do with its popularity. They're more about the overall lack of professionalism in software development.

The underlying issue is scope. We don't have a cathedral, or a bazaar. What we have is exactly one (1) planetary network, made of a loose affiliation of barely cooperating nodes and applications.

The original Internet infrastructure worked because the RFC process meant that the core features were designed and refined by peers. Hobby coding in the bazaar removes all elements of peer review.

But the alternative isn't a UNIX-style cathedral, it's a revised set of standards leading - eventually, I guess - to a planet-scale operating system and shared library framework that takes away all the cruft by making it unnecessary.

None of the current stacks are the right way to make that happen.

So the issue isn't js - it's more that web stacks have become de facto operating systems for industrial computing projects without any of the rigour, peer review, or oversight of a well-designed industrial gold standard OS.

And it seems that no one - or at least no one that Tim O'Reilly's authors talk to - is even thinking about how to create an OS of that quality.

</comment></comment></comment><comment><USER11> JavaScript is an awful language, no matter how much some people stress that you can build working things if you are just careful enough and all that. But that is only the beginning, the entire stack is more less broken. HTML and CSS got repurposed from document markup languages to GUI markup languages. We allowed this awful language to escape the browser and infiltrate our servers in form of Node.js. Microsoft also came up with the clever idea to develop desktop applications and apps with JavaScript, HTML and CSS.

And even the largest selling point of the entire stack - develop once, run everywhere - is far less true then many like to admit. In the past a substantial part of development time has been spent on getting the thing to run consistently across browsers but I fear we are far from the end of the road. Now we have more or less consistent behavior across browser for all the basic things but you still regularly run into unusable web application because you happen to have an unexpected screen aspect ratio, an unsupported video codec or missing WebGL support.

Unfortunately I have no good suggestion how to escape from that situation (quickly) but it seems pretty obvious to me that we have a lot of problems to solve.

<comment><USER12> As engineers, we should recognize very clearly that JavaScript is just another tool that has trade-offs as everything does. We build applications optimized for their use case. Does the bridge over the meandering creek need to be made a suspension bridge of concrete and steel? Of course not!

Time is the true currency of this universe, so we optimize for efficiency as best as we can without knowing the future.

<comment><USER13> > Does the bridge over the meandering creek need to be made a suspension > bridge of concrete and steel

The problem being discussed here is more along the line of building the Golden Gate with wood and plaster.

</comment></comment></comment><comment><USER14> The proliferation of JavaScript libraries is sort of like what happened when Amazon.com came online and you now could choose from +1M books instead of the 10K that were available at your local non-big-box bookstore.

No longer are you dealing with a scarcity situation, where the bookstore was your filter, but an overload situation where you could access everything as easily as a click. Amazon dealt with this by allowing for ratings (one to five stars), reviews and ratings of reviews. It also tracked what books people bought in the end. I think this can be applied to NPM and other non-JavaScript package managers.

We have much the data in Github and NPM to do this, with the exception of proper ratings (stars are not that informative, as they are only positive) and proper written reviews.

I'll be honest, there is a real space to move in this direction towards collaborative filtering of packages based on both implicit and explicit signals.

<comment><USER15> I don't see how rating libraries and frameworks would work. You use a library, depending on if it solves your problem or not. Some libraries solves your problem but might not solve others. And that's fine. That's why there are multiple libraries in the first place. For instance, saying some library is less useful than another on Github because it enforces a functional style of programming, is not very useful for others that might like the functional style. Remember, these things are not books, but tools.

<comment><USER14> Remember that not all books are novels, many are informative books people read to solve their issues or learn specific things -- many non-fiction books are essentially tools.

</comment></comment></comment><comment><USER16> I disagree with almost every word in this essay. So lets get started.

"Imagine you are a newcomer to Javascript development these days. Which librairies should you pick to get started?"

Who cares. What's stopping anyone from just writing a JS file and adding a script tag to their html, that's how most of us learned it.

"There is, however, a price to pay to the approach of coding through instant gratification."

No there's not. It just depends on what type of coder you are. I like to think a problem through BEFORE coding and then hack, when I come to another problem I pause, think, solve the problem, (all away from the computer) then want to code super fast again. Anything that makes the "turn my idea/algorithm" into running code faster is good, when writing C/C++ anyone will tell you they hate compiling, why? because its slows down the "idea-to-code" part. To the authors credit he seems to prefer this approach as well, it just doesn't follow that you have to hack super fast all the time and never think just because you don't have to wait for code to compile.

"The hardest thing in Javascript development today is maybe less the development itself than knowing which libraries to pick."

That's a problem? Seriously, I think many languages would love to be able to "complain" about this.

"It is Torvald's "Release early and often" without the community smashing the ego of anyone publishing sub-par code."

Here's the way I think about it. If you can't find what you want, build it yourself, maintain it, and use it. Everyone does this in any other language and it works fine, its also working for JS too. see here: [https://github.com/sorrycc/awesome- javascript](https://github.com/sorrycc/awesome-javascript)

The only thing I would agree with is that yes, it is ridiculously easy to publish something to npm so there is a lot of garbage. The days of submitting your email patch are winding to a close and I for one am happy about it.

<comment><USER17> I think your comment and perspective hit the heart of the matter. You view your work in isolation. And if you're not working in isolation, you are assuming that your co-workers are in the 99th percentile of coders. If you're making some small webapp or mobile app, then that mentality is fine.

But think about it from a different perspective. Let's imagine you are hired by a company to come in and build a large, web-based, responsive, buzzword, buzzword application for them. It's big enough that it is going to take months to develop and require numerous developers. The strategy of "just writing a JS file and adding a script tag to their html, that's how most of us learned it." is not gonna fly. And if you are spending your time doing "If you can't find what you want, build it yourself, maintain it, and use it" then how are you getting your actual application done? You don't want your devs spending a month of time to build (and then support) some templating library or some such when your real task is to write some kind of CRM application. So how do you go about picking technologies, training teams, building upon existing libraries, etc. in order to build your actual product?

</comment></comment><comment><USER18> It's just a cycle. Every community goes from overdesigned to overhacked and back, like a pendulum. 10 years ago we were all building large fancy over- architected apps with frameworks like Spring and JSP and Makumba, now we're hacking stuff together on Node with 2-day-old NPM packages.

In a parallel universe, the Ruby people did it the same, but the other way around, started with hacking stuff together with as much automagic stuff as possible, and now they're writing blog posts about Dependency Injection.

Admittedly, it's not a perfect sine, but give it another year or 3 and the JavaScript people will have settled on one of the four package managers, and the most-used frameworks will be well-maintained and strike a healthy balance between hackiness and enterpriseyness. Sure, any popular language will have incompetent people and they won't suddenly delete their GitHub accounts, but in my opinion, we're not _that_ far away from there. Modern JavaScript tools like React or Webpack really have that craftsmanship you write about. In a way, you could argue that Angular v1 had _too much_ of it.

It appears to me that this cycle happens in each language ecosystem, but with a different phase and starting in a different direction. I tend to prefer programming languages that used to be quite hacky and _just_ started to discover that, well, yeah, oh, there's something good to say about all that architecture stuff those old people kept rambling about. IMO, JavaScript is there right now and moving in the right direction. Elixir is taking off in the same direction (fueled by hundreds of disgruntled ex-Rubyists), Java is currently descending back towards more hackiness (fueled by gazillions of Android programmers who fead a tutorial).

I'm still not sure where to put the PHP guys here but hey, at least they have a working package manager these days (and not four).

</comment><comment><USER19> JavaScript is like working on an old Jeep.

It's not very clean; it's not very efficient; you're dealing with weird nonsensical issues all the time; there's a good chance you will cut off your fingers or mash your knuckles.

But... it's incredibly common, there are a ton of writeups on whatever you're trying to do, and the barrier to entry for getting something done is so damn low that for better or worse, it's not going anywhere soon.

The only thing that's going to rescue us from JavaScript is when every browser ships with a common language-agnostic runtime (a la CLR, JVM). The JavaScript- as-a-Transpiler-Target movement has the right idea and a little bit of momentum, but I think the potential obsolescence, the hassle involved in setup and debugging, and the perceived inefficiency scare most developers away.

Imagine if you could code your web app in whatever language you wanted because they all compiled down to the same VM bytecode...

<comment><USER20> A CLR doesn't solve much I think, if you look at .Net there's a single de- facto language (C#) and VB.NET died out just because people will gravitate toward the language which has all the help, stackoverflow answers, etc.

Sure, it makes using other languages _possible_ , but typically that'll just be seen as weird.

<comment><USER21> You can't really compare the two situations (.NET and a hypothetical browser bytecode/VM). The reason C# ended up the main .NET language is that it's a brilliantly designed language - far more than you can say about Javascript.

<comment><USER22> I don't think its just that. Its impossible to design a "trully general" intermediate programming language so what ended up happening is that the CLR was a perfect fit for C# and a not-so-perfect fit for everything else. At least thats what I've been told by my programming languages professor.

</comment></comment></comment></comment><comment><USER23> This reads a bit like early internet critics complaining about how there are too many voices online. "Why isn't the Times enough for everyone? Why do these bloggers need to be telling everyone what they think? Some of them don't even check their facts!"

> It is Torvald's "Release early and often" without the community smashing the > ego of anyone publishing sub-par code.

The relative lack of Torvalds-esque public shaming is exactly what I love about the Javascript community. There is an acknowledgment that we can all do things our own way, and that it's OK. We don't need a dictator shouting down people "doing it wrong".

<comment><USER24> And it's such a different set of goals. You're unlikely to break something fundamental with Javascript, which is _fantastic_. It's a safer thing to play with than a kernel. Put sub-par code in the Linux kernel, and _your computer doesn 't boot_. Mess up your JS and your webpage renders off-center. The severity of failure is so different that it'd be silly to get bent out of shape over it.

Of course, you can do insane things in JS, but that's part of the fun. Even at its worst, it'll crash a program or browser tab that can just be reloaded. Annoying and inconvenient, but the computer's still chugging and no harm's done.

<comment><USER11> The worst case is not an off-center web page, the worst case is exposing user information or making your backend attackable in other ways. Just because you use JavaScript and it runs on a client machine far away you are not magically protected from screwing up.

<comment><USER24> Sure. Yes, security is hard. You got me there. Javascript does not decrease your attack surface, and is not, in fact, magic.

That's not a free-pass negation of my point that crashing a browser tab is _substantially_ less severe than a kernel panic, and thus likewise greater engineering due diligence is needed for its code. There's nothing magical about it.

</comment></comment></comment></comment><comment><USER25> The solution the article is proposing isn't realistic. You can't reach anything resembling "craftmanship" without a lot of failed projects preceding it. Craftmanship or quality is not a binary state, it evolves organically. A lot of projects are shit, and then there's a few golden nuggets that outcompete the shit. This applies to life in general and also local fields, like programming.

JavaScript has turned out to be one of the most versatile programming environments for this "evolution" to happen. Yes there's a thousand ways of doing things, and maybe only 10 of them are good, and maybe those are difficult to find. But the solution isn't to shut down the shit so that there are only 10 things created instead of 1000. That's just stunting growth, and instead of 10 great things you might just end up with 1 because there was no creative competition (or at least inspiration) in the environment.

So to hell with this thinking, you can't expect to be able to control and lock down a vibrant creative environment and expect the same amount of golden nuggets to come out of it.

I've been writing JavaScript code for 15 years now and the things people are making with it are greater than ever, and many of those things have been reborn out of great ideas implemented poorly. With some kind of "craftmanship" standard, those poor implementations would never have come to exist, and there would be less great ideas in the world.

For the sake of being a bit more constructive in my own rant, I think our efforts should be put into guiding people and helping them find the golden nuggets. And this is happening. There's a lot of tutorials out there. Granted, even the tutorials suffer from the same shit:golden ratio, but finding the golden nuggets is what communities are for.

<comment><USER7> >* The solution the article is proposing isn't realistic. You can't reach anything resembling "craftmanship" without a lot of failed projects preceding it.*

And yet older generations of programming seem to have managed it.

> _Craftmanship or quality is not a binary state, it evolves organically_

I don't thing code grows into craftmanship, much less organically -- either you have craftmanship as an attitude from the beginning of writing something or not.

<comment><USER25> I believe the only reason you think that previous generations managed it is because previous generations of programming were tremendously less open in terms of visibility. I would even go as far as to say that if you could collect and objectively grade all code in the world 10 years ago and today, the collective code today might actually be of higher quality, simply because code is shared much more today. This leads to more knowledge, which leads to higher quality. In the past, that code was simply left behind on someone's hard drive.

Code itself doesn't grow into craftmanship, because craftmanship is what a person does. A person gets better with experience (both from doing and from observing) and inspiration. Greater visibility and sharing of code means better experience (through observation) and better inspiration (from people sharing their great ideas).

If you think I'm wrong, the alternative solution isn't difficult: you can avoid shared code repositories altogether and instead write more code from scratch. If you still want code sharing, you can start your own online repository where only thoroughly vetted code is allowed in. The important value to me is that people are not encouraged to censor themselves, but that we push ourselves harder to increase quality, by sharing both our knowledge and our work even more. If navigation is an issue, we need to build better tools.

Multiple choices, competition, and organic growth is healthy for the system – enforcing artificial limits believing it'll increase quality is not.

</comment></comment></comment><comment><USER26> >We are now in another period with great opportunity for people in the IT industry, and we want to have as many people as possible join the party! Everyone should code. And we have made it so easy! Create a GitHub account, watch some of the many, many tutorials out there, and get going! Yay!

>The sad truth is that something essential gets lost in all of this everyone- can-do-it-yay-lets-all-code euphory. I'm not exactly sure how to call it, so I'm going to pick something that is close enough to describe what I mean. I'm talking about craftsmanship.

Just because many newer developer's code is public on GitHub, it doesn't necessarily mean code quality is going down. Back five years ago, when many developer's code was stored on their machine, there was no way of knowing if their code was any good.

Now, developers are encouraged to show off what they have, because Git shows how you've progressed as a developer. It also allows for developers to help each other and make each other's code better. I know collaborating on GitHub has helped my code quality go up.

<comment><USER5> Exactly. Is there value in learning to code? Of course. Does learning to code mean you will be able to write quality software? Unfortunately no. Especially if you learned to code in a sort of crash course on web application development. To be honest I've forgotten 90% of what I learned in engineering school, but I feel the triple-variable calculus, statistics, circuit design and assembly language driver hacking somehow prepared me for solving rather tough and unfamiliar problems in the real world.

It's like music lessons - very beneficial in all kinds of tangential ways although very few students will become concert pianists.

<comment><USER27> Or to put it another way: you can't become a good programmer without first being a bad programmer.

</comment></comment></comment><comment><USER28> I don't see what the problem is here. Angular isn't going away - I daresay the 1.x will be maintained. EmberJS looks rock solid. Backbone hasn't suddenly become useless just because React is around.

A proliferation of projects is an indication of an exciting and experimental community. If you run off half-cocked and take on an unproven and unmaintained library and build an application on sand then the fault lies with you, not the ecosystem.

<comment><USER29> > If you run off half-cocked and take on an unproven and unmaintained library > and build an application on sand then the fault lies with you, not the > ecosystem.

The entire contention is that it's difficult to tell which ones are going to become unmaintained because of the amount of churn.

<comment><USER28> For which the writer makes an entirely unconvincing argument.

</comment></comment></comment><comment><USER30> > we need to do something

Do something about what?

Lots of discarded projects on Github? Too many people working with Javascript? Fast iteration? Lowering barriers to entry?

Those all sound like good (or at least neutral) things to me. I've clearly missed the point of this post.

<comment><USER17> In my simplified view, I think we need to do something about the fact that you cannot build an application today that will not be obsolete in 6 months (at best). And by obsolete, we're not talking about obsolete like a COBOL application. We're talking about relying entirely on frameworks/libraries that may literally no longer exist. Think about an angular 1.x application 5 years from now.

If you're building an application that will take a non-trivial amount of time to build and will have a lifetime of years, what technologies would you pick? How do you train your team members? What is your strategy for maintaining it into the future?

If someone built a webapp 10 years ago, it would be php, rails, asp.net, java, etc. And you can find someone who would (possibly reluctantly) get in there and do something with it. But what about the app built using 20 npm libs. What do they do in 10 years?

<comment><USER31> > What do they do in 10 years?

Where is this mystical app that gets sudden developer attention after 10 years of maintenance-free use? I've never come across a 10 year old application that hasn't been actively maintained that didn't need at least parts rewritten.

</comment></comment></comment><comment><USER32> The article boils down to: "I don't like Javascript".

Although it's not a great language by design, I think there's a reason why it has reached wide adoption. And don't tell me it's because there are no alternatives.

<comment><USER33> "And don't tell me it's because there are no alternatives." Then I don't know what to tell you. Why do you dismiss this as a reason?

<comment><USER5> There were a few alternatives on the client side. Not many, but they do exist: Java was supposed to be the alternative for building web based applications, but Applets didn't gain wide adoption. Flash did better but eventually became unnecessary as the web stack itself got good enough to build things like Google Docs, Processing.JS and such. Then there are the "transpilers" like GWT and the various *script dialects that compile to HTML/JS/CSS. On the server side there are tons of alternatives, of course. Even things like Virtx.io that has bindings to a number of languages including JS.

Those are some of the alternatives - at the end of the day most people seem to prefer going back to straight HTML/CSS/JS to build things. They're not perfect but they're pretty easy to learn, they separate the concerns of content, presentation and logic, and they work everywhere (sometimes with a little help from jquery or modernizr).

<comment><USER33> From a user standpoint, anything that relies on plugins to work is suboptimal, so that rules out Java applets and Flash.

Transpilers are reasonably popular, but they're band-aids over the real issues, and are susceptible to inherit the problems that the shaky foundation lies out, and the mechanisms for library interoperability are not always stable. These problems also persist in the ever evolving landscape of JS frameworks, which are symptoms of the limitations of JS.

The other side of it is about what works in the commercial landscape. Building around an uncommon tech stack is a risk when it comes to hiring. The widespread nature of JS is part of what keeps it popular, but that's not necessarily based on merit.

</comment></comment></comment></comment><comment><USER34> This says something important that I've been thinking for a while, though I couldn't conjure the words as well myself.

> _The sad truth is that something essential gets lost in all of this > everyone-can-do-it-yay-lets-all-code euphory._

This attitude has been wearing on me as well. Although we shouldn't self- aggrandize, it's hard to do this work well, and so many don't do it well. And I realize that yay-everyone-can-do-it is a correction to the insularity and shitty forms of exclusivity that developed in some areas of software development, but it's sadly not the whole truth.

And you can't really say this without being a "hater" and so forth, _especially_ in the Javascript community. They're very self-congratulatory about their community's ethic of acceptance, which is of course a wonderful thing. But there is no space to offer a viewpoint counter to this or to say "yeah but...". I suppose this will change in time.

</comment><comment><USER35> > and fueling and attitude wherein the well-being of the developers of a tool, > not the one of the users, is most important.

This x 100000

This is why I hate package managers in a nutshell. The reason is that it reduces the friction for developers of packages to issue updates to a critical level where they turn round and blame package consumers for not using the latest versions while the consumers spend their lives battling with the ever changing bugs and APIs of the packages.

This isn't just an open source problem, as I first ran into it in a company that made many of the mistakes a decade ago that the open source community is just making today. Lots of really nice sounding ideas that increase the productivity of a few individuals working on inner level packages at the expense of the whole organisation.

<comment><USER27> I think this is a very specious connection. I've been using Rails since 2005 and so I got a good dose of vendor/plugins versus bare gem installation versus Bundler (ie. steadily moving up the continuum of package management), and my observation is that library quality and maintenance is utterly orthogonal to package management capabilities. The package manager itself has only helped my life as a developer, the tricky part is picking trustworthy dependencies.

</comment></comment><comment><USER36> It's not like things have been better in the 90's, when everything was about Visual Basic, COM, OLE, CORBA and 're-using' application components. I'm not a big fan of JS, but the whole JS+browser+node.js infrastructure is a million times better then this whole VB+COM bullshit. Even the Darwinian framework situation in the Javascript world is much better then getting a incredibly complicated, over-engineered, designed-by-committee system like COM rammed down your throat. Don't like a particular JS framework? Pick a different one.

<comment><USER11> But why should we judge the web stack by comparing it to the worst examples of the past? We should really compare it with the best options available today.

<comment><USER36> Sure, but the good thing today is that the 'best option' isn't dictated from an elite that 'knows better', and 'best' isn't a question of money anymore, but strictly quality (with 'quality' not meaning particularly well designed, but solving a specific problem well). A side effect of this 'freedom of choice' is that 99,9% of available options don't solve a problem for me, and it's harder to choose the right option, but I'm completely fine with this. People just need to stop treating programming languages and framework as silver bullets.

</comment></comment></comment><comment><USER37> The writer commented on how some of his best code was written away from the computer and how all of this fast reloading causes poor code to be written. I'm not sure if he would disagree with me, but I think a lot of it depends on the kind of person you are and the kind of problem you are solving. Some problems can't really be solved well iteratively (voice-recognition and DSP for example), while others can. Similarly some people work better iteratively while others do not.

I think it's similar to writing an essay in some ways. Some people sit down and think for a while, then write the essay in one sitting. They then make some minor grammar corrections and otherwise polish the essay before submitting it. Others (like me), sit down and write whatever comes to mind. Then they rewrite everything, and then they rewrite everything again, etc. Finally they have an essay that they are happy with, make some small polishing changes and submit it.

In the end, both approaches work fine for writing an essay, just like both approaches work fine for writing code. The key, when talking about speed and iterative development, is that the code isn't finished when you have something that appears to work. You have to go back through and rewrite things, refactor, add additional tests and clean the code up.

</comment><comment><USER38> Where is the issue ? When in inspect a library;

\- I can see the number of downloads on the npm website and so on.

\- I can see the issues and pull requests on github

\- I can do a git clone + npm test to see if the tests still run or even better see the travis batch that is in the readme.

I prefer a vibrant community and lots of libraries over a slow and "solid" library development community.

In the end - I need to write code any way to fix any of the libraries issues... With lots of libraries, at least I have the chance that somebody already forked the library and fixed my problem.

Otherwise, I ll fork the lib - fix the issue and use the fork myself and send a pull request to the original lib. Once the pull request is accepted - i can just point my dependencies again at the original lib.

Perfect isn't it ? I fix the problem for myself and the community gets a fix back to the original lib almost for free.

So yes, there is garbage out there, but I feel I have a lot of tools to "smell" it and stay away of these before investing too much time.

</comment><comment><USER39> I think this is better than the "Generation PHP" we had before.

Both languages aren't sexy at all.

But JS is more versatile. Runtimes are available (and preinstalled) on many servers AND clients. And it's OO and FP seems to be more flexible to me. I get a more smalltalk-feeling from using JS than I got from PHP back in the days.

</comment><comment><USER40> I can see the problems of the current situation, too. I guess everyone involved does. But what's a viable alternative?

I have seen a few project that were completely build on its own, without dependencies on external libraries. Not only that those projects turn out to be even less modular (because it's not enforced by a package manager / module system), but the chances that code gets unmaintained are also rather high, since developer time is often rare.

An interesting point is releasing the software. No problem with putting it on GitHub, but if projects are commited to official registries like NPM or Bower, the author should really put some commitment into it. Currently it gets ever more complicated to find good quality libraries, becoming a needle in haystack problem. So a "release ethic" wouldn't be too bad.

</comment><comment><USER41> Here is my dilemma as I consider if I should double down on JavaScript and adopt it on the severside. Is there an alternative for the web? and publishing as a whole?

We are a small shop. Two people and hope to grow. We publish a web database. Our market is academics, libraries, and scholars. Our Data must be kept in XML. It just makes the most senese.

But we are spread over a half dozen different languages. Halfway proficient at all of them, but as we move around to a new project and set one language aside to pick up the other we regress. What we had known must be relearned, the way we were thinking must be retrained.

If we created our web services, our internal API's, our production system all largely in the same language we should, I think, we come more proficient and quicker in this language. At the end of the day we need a well functioning, _modern_ web application. So I have no alternative but to be very current in javascript it feels.

Might as well set aside our old Java 5 app. Might as well not create a new python project as fun as it is for me when I am the only one that can understand the python. Might as well stop pouring all my efforts into a silo. Why note double down on javascript.

A key source of inspiration for this line of thinking is from a conference presentation I saw given from some at O'riely. They were experimenting with their upstream source of their products being HTML5. The HTMLBook[1] project seems to logical enough. Their output is almost exclusively HTML. Be it on the web, the ereader (epub/mobi) or with the PDF. They were using Attenahouse to convert HTML to PDF using CSS.

Why mess around with several different languages. Keep it simple, and produces nice things quickly. If they aren't as nice as you hope refactor. With not having to retrain parts of your brain for javascript as you were working on a Python project exclusively for the last month and a half we should be that much quicker.

[1][https://github.com/oreillymedia/HTMLBook](https://github.com/oreillymedia/HTMLBook)

</comment><comment><USER42> I don't think this problem involves programmers at all except in their initial decision to use JavaScript. And those decisions would need to be examined on a case-by-case basis, not as a generational critique.

Companies need to team up to put resources behind projects they like and organize their efforts in a sustainable way. One effort that's proven effective has been Apache: [http://www.apache.org/foundation/how-it- works.html](http://www.apache.org/foundation/how-it-works.html)

Their foundation ensures projects have a good mix of contributors and aren't driven by the whim of a sole corporation or a few hobbyists who would never be replaced when they leave a project.

</comment><comment><USER43> "Oh but if we can only stop the dirty unwashed masses from sullying our pristine discipline..."

Said any group that has implemented certifications to make entry into their discipline more difficult to newcomers. "Craftsmanship certification" is something I wouldn't be shocked to see becoming a business in the next 10 years.

</comment><comment><USER44> Speed of innovation seems to be bothering the author... really not the right industry for him to be in.

</comment><comment><USER45> I had the chance to debug a NodeJS application that was based on a framework which had a lot of low quality dependencies which had a lot of low quality dependencies of their own... Long story short it was anything but fun. I think the NodeJS ecosystem needs a quality bar.

</comment><comment><USER46> Well, I was just about to publish my first library to npm but just changed my mind. I have enough performance anxiety as it is and when I know people think I'm destroying the scene with my "sub-par code" I definitely won't publish.

<comment><USER24> Publish it anyway!

There's a worst case of no-one noticing, which will hopefully be a great relief for the anxiety (and yet you can say you published your code), and a next worst case that it's never used and is simply inspiration for a better library! Of course best case is people use your code, modify, expand, and build upon it. You'll be credited in their libraries as part of their inspiration, and the state of the art moves forward.

There are many that want deeper curation on quality; it's hard to deal with all the noise out there. But it's critical to remember that we can always layer curation _on top_ of the bazaar at no additional cost. As the scene settles into its grooves, the better curators will stand out.

</comment></comment><comment><USER47> I don't really follow the current thread this article seems to. It just sounds like the cool CS kids lamenting how the web used to be cool. The masses have discovered it and are contributing to it now. Wasn't that kinda the goal?

</comment><comment><USER48> Wow, this thread is a tough read for someone who ranks JavaScript as the best high-level language in common-use today.

Haters gonna hate!

</comment><comment><USER49> Solution: Think for yourself

</comment><comment><USER50> andy berhardt (not related) gives the best arguments against javascript. the fact that there's no integer is really crazy to me.

</comment><comment><USER51> Jeff Atwood stated in 2007 that any application that can be written in JavaScript will eventually be written in JavaScrip. Thats what we have today.

<comment><USER29> That doesn't really address the point of this blog post at all.</comment></comment>