Isaac Schlueter, creator of npm, writes about JavaScript style, API design for asynchrony, npm tips, and Git.
HN commenters often cite his open letter defending JavaScript without semicolons, and also link his post calling JavaScript not a web assembly.
The developer of NPM.js recommended this book highly[1] on his blog, so I picked it up. Already on a first reading[2] I could see its potential to be life-changing. It has definitely changed how I interact with (or see) others (and myself), and I am trying to put more of it in practice; currently on a second reading.
I think it appeals to the programmer/mathematician in me, because to a large extent it is teaching me to be more precise, about distinguishing observations, evaluations, thoughts, feelings, etc. Of course the ultimate goal is to establish genuine and sincere connection with other people, but even if you can do that with one person (yourself?), the time is probably well spent.
[1]: http://blog.izs.me/post/112818868228/letter-to-marshall-rosenberg
[2]: https://plus.google.com/+ShreevatsaR/posts/2428KBRfYdb
Very well written post.
However, I found it to be of little value. When fully reading Isaac's post (http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding), it appears to not diverge much from what you've written.
I consider myself a beginner in Javascript and did not find Isaac's post the least condescending. I actually learned a few things and am very glad he took the time to explain how things work. Because honestly, I won't read the ECMAScript spec unless I need to.
I'm actually one of the people who never use semi-colons to terminate statements. That's for personal projects. Where I work, we (as a team) decided to use them. And that's fine, but I prefer not to use them.
Heroku supports iojs, but I suppose that meets the definition of "almost no one" when you scope it to all available PaaS options worldwide.
> io.js kept mum until the last moment before their release, with an invite-only codebase.
This is factually inaccurate. Fedor Indutny created the iojs fork on November 26th. The 1.0 release came out on January 13th, significantly less than 6 months. The iojs repo was always public.
The project you're referring to was the node-forward/node repo, which was initially public and forced to be made private due to Joyent's trademark.
This history is all fully documented here: http://blog.izs.me/post/104685388058/io-js
A transpiler that gets confused when optional tags are missing (a feature explicitly allowed by the spec) is a broken transpiler and it needs to be fixed. This is like the automatic semicolon insertion of JavaScript debate[1][2] all over again. These things are spelled out in the standards and tools that do not adhere to the standards are broken.
[1] https://web.archive.org/web/20201206065632/http://inimino.org/~inimino/blog/javascript_semicolons
[2] https://blog.izs.me/2010/12/an-open-letter-to-javascript-leaders-regarding
I recommend reading the following articles before you assume that omitting semicolons is dangerous.
An Open Letter to JavaScript Leaders Regarding Semicolons
http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
JavaScript Semicolon Insertion – Everything you need to know
http://inimino.org/~inimino/blog/javascript_semicolons
Are Semicolons Necessary in JavaScript?
https://www.youtube.com/watch?v=gsfbh17Ax9I
Spreading FUD doesn't help anyone out.
Javascripr lets you put the binary operators in the next line if you want. It won't insert a semicolon there:
http://blog.izs.me/post/2353458699/an-open-letter-to-javascript-leaders-regarding
I would say that the most common problem is having a semicolon not being inserted if you start a line with `(` or `[`. In practice, the only time when a semicolon gets inserted where it shouldn't is when returning an object literal.