When I see the term "no self-respecting" developer, I know the article is going to be highly opinionated and complaint oriented with very little new information to discuss. I continue to be proved correct with this article.
To be fair, the OP is basically an intro to his post on how to "fix" javascript.[1] This post basically says we should create a new Javascript that is the same as the old Javascript without all the bad parts.
Which throws away the two biggest strengths of Javascript: it works everywhere, and is compatible with tons of existing code.
I had to check to see if the article was dated April 1.
JS is both a compiler target and a language itself. WebAssembly enhances the runtime as a compiler target.
JS is also moving very fast, as evidenced by Babel. There are some big, bold ideas being explored in React, Angular, Om, elm, clojurescript, etc. I hesitate to take seriously anyone who thinks this is a bad thing, just as I hesitate to take seriously anyone who is a strong supporter of a major political party.
We simply don't need a single point of authority telling us the best way to do things, even if they are soon obsoleted, competition and sharing of ideas is good. I've learned a lot by exploring all of the frameworks he mentioned. Recently the Ember and React teams have been collaborating extensively, and I can't wait to see all that comes out of it (notably with respect to styling components).
The most embarrassing assertion the author makes is that CS curricula teach "programming languages". It teaches a way of thinking, and it really doesn't matter much which language is used as long as the basic principles are covered. JS might make a good language to look at when studying language design tradeoffs, since in some ways it falls short but has also become the dominant language when measured in terms of the number of runtimes in use in the world at any given moment.
So while the author does seem to wish to be constructive (he links to a vague proposal) the article is just clickbait and really shouldn't be taken seriously. If you are a new programmer reading the article and feeling discouraged, don't lose heart. Build stuff and you'll learn. Eventually try some other languages if all you've tried is JS, but don't listen to the nonsense in the article.
> It teaches a way of thinking, and it really doesn't matter much which language is used as long as the basic principles are covered.
Nevertheless, schools do not want to teach an inferior language that encourages bad programming habits. They (now) tend to rely on languages with a vocational bent, such as Python and Java. I remember my days in university when odd languages like Scheme and Turing were taught. Now, it's sensible to at least try to prepare the student for the job market. I'm glad they didn't stoop to JavaScript.
> If you are a new programmer reading the article and feeling discouraged, don't lose heart. Build stuff and you'll learn.
Why should a new programmer feel discouraged? There are plenty of good languages to choose from (Java, C#, Python, C++, Ruby, etc.). They offer varying levels of ease, but Python and Ruby would be more than good enough. If you want to do web development, use a transpiled language (). That'll save you much of the grief of JavaScript. (My personal favourite is Amber Smalltalk.)
> There are some big, bold ideas being explored in React, Angular, Om, elm, clojurescript, etc.
I'm glad you mentioned ClojureScript. I didn't successfully add this link to my previous comment because ycombinator had a hiccup, but I recommend using transpiled languages instead of JS: https://medium.com/javascript-non-grata/the-super-surrogates...
Languages like Amber, Brython, ClojureScript, Dart, Haxe and Scala.js are great alternatives to using JS.
JavaScript, for better or for worse, like it or not, is here to stay. There is a ton of resources, by a huge community, and large corporations being thrown at improving it. This author needs to get off his high horse.
1. Javascript popularity is tied to web popularity
2. Web popularity is shrinking
But he makes it in such a histrionic way that it's hard to focus on that over his bombast.
You can sound the alarms over almost any language if you want too, it's fun but hardly informative.
Java - only for companies that don't want to be agile
Python - Great for hacking on the weekends, but no killer use case
Ruby - Only has Rails, and the web is shrinking
Haskell/Scala/Whatever - Never gonna break out of a university
These are well worn arguments that don't really capture that jobs and companies tech stacks are much more nuanced than these simple statements. If you care about code, you'll find work, no matter what language beguiled you first. If anything, Javascript hasn't beguiled a generation of developers, the web has. And if we move on from the web, we'll move on from JS, and as long as we care about what's next, we'll thrive.
The author also ignores what I consider to be Javascript's strongest trait: It works everywhere and does everything. Shipping JS with every browser means there is no barrier for entry.
Sure the syntax is pretty meh, the community is disorganized, performance is OK, and there are a lot of poorly written libraries out there... but it's downright amazing how much surface Javascript+Browser covers. WebGL, WebVR, WebCL, WebRTC, hell even just the out-of-the-box cross-platform UI. Install Node and you get access to all the systems stuff as well.
It's my job to write Ruby and I love the language. I also really enjoyed C++ and Python... but Javascript is now my go-to language outside of work. It's amazing, it's like it was made for hacking.
For all the text the author wrote about how bad JavaScript is, I had to click through two links to find any actual substantive complaints about JS, which were (1) JS doesn't have an array type; (2) JS doesn't have an integer type. (1) seems false to me (extra false if you count Typed Arrays), and (2) is being worked on in the committee.
(I think JS has a lot of flaws, but it's not as bad as its reputation suggests.)
I think in time, we will look back at the mess of "modern js" development, including the true shit-show of npm, in the same way we look back at the horrors of J2EE, XML hell, bean hell, FactoryOfFactoryOfFactoryofEclipsePleaseAutoCompleteThisBeforeRSIsetsIn, and the rest.
The only interesting bit is whether it will be webassembly or something else that actually drags us into a paradigm shift for the web.
>The only interesting bit is whether it will be webassembly or something else
I'm interested in this as well. The near term plans, though, don't give wasm languages dom access, and limits wasm to statically typed languages. So, it's basically relegated to being an ffi layer for js for quite some time. I don't see that changing the world much.
Shit show? It's a dependency manager. It's no different to any other dependency manager, like RPM or dpkg. It has way more stuff in it's repos than any previous dependency manager, which is good, because programmers don't have to constantly rewrite the wheel. I hope for something like that has the scale of npm on other languages in future.
> JavaScript is intrinsically a dysfunctional language. It has many more flaws than any other programming language in wide use. JavaScript is wholly unsuitable for serious software engineering, esp. at scale. When your application grows to tens of thousands of lines of code, it becomes much more difficult to maintain, much more difficult to ensure a specific level of quality.
Replace Javascript with PHP and you get the usual complaint people have about PHP (but there's still Facebook). Replace a few words and Javascript with Java and you get another common complaint, still, all these languages are in active use at various companies, so maybe they have their uses?
Isn't everyone "using" everything? Unless a large percentage of the code the company is currently using is in a language, I don't consider the company to be "using" the language.
Clearly, Node is widely used. It would be silly to deny that. The real question is to what extent is it being used, i.e., is it used to write large, mission-critical systems, is it used beyond developing client-facing web applications (which tend not to be very big), is it used company-wide in lieu of previous language infrastructures such as Java, C#, Python and C++? Now, that would be impressive.
This is a poorly written opinion piece from someone who isn't a JavaScript developer. Most arguments he makes have no facts to back them up. Many of his claims are made from a position of obvious ignorance: many Fortune 500 companies do in fact use JavaScript, and an incredible number of startups do. To claim otherwise is just ridiculous. He claims that games could never use JS and yet WebGL has already given us this.
So what industry-favourite, startup-embraced, wildly popular language does this author advocate?
So who's making arguments without supporting facts? The Hacker Life provides evidence that startups prefer Ruby, C and Python. Fortune 500 companies may use JS for client-facing web UI applications (which are generally not mission-critical), but for heavy-duty shit, they'll stick to Java, C#, Python, C++, etc. Show me what Fortune 500 companies are replacing these tried-and-true workhorses with JavaScript.
As for games, what serious gaming platform relies on WebGL? Most games are written in C++ for a reason: maximum performance. When I was Project Team Leader of the Windows NT Driver Group at ATI Technologies (now AMD), all the OpenGL software I saw was written in C++. JavaScript could never have been usable, even with V8.
Smalltalk, seriously. It's still used today around the world by many businesses. Cincom and GemTalk are major Smalltalk vendors. I have friends working at Cherniak Software and Simberon, both important Smalltalk software houses. ESUG (European Smalltalk User Group) is a mammoth organization representing hundreds of companies using Smalltalk. What did you say about "a position of obvious ignorance?"
> This is a poorly written opinion piece from someone who isn't a JavaScript developer.
I've written serious things in JS (ok, ECMA Script) back before a lot of people around here started coding it seems. Back when IE ruled the web and SVG was an Adobe plugin to IE.
"On the server side, we’ve seen Node.js gain traction for “back end” applications. But Node has been pretty much relegated to a web niche. ERP solutions like SAP aren’t using Node. While a company may use JS for their website, don’t expect any serious shop to be washing their critical Business Intelligence data through JS code. The truth is, most Fortune 500 shops aren’t basing their businesses on JavaScript and never will."
Next time you make such a bold claim, maybe Google it for a few seconds ;-) Legacy SAP stuff predates Javascript. Modern SAP stuff is different, "HANA Extended Application Services" is actually a server-side Javascript runtime. What is HANA made for? Exactly, "critical Business Intelligence data" ;-)
Interesting, but it remains to be seen how many businesses will actually use HANA. Until you can identify what percentage of Fortune 500 will use HANA XS with Node, I stand by my statement.
If you're wondering whether or not to take this with a grain of salt, please note the author has a section of his blog devoted to explaining why javascript is apparently bad.
My initial reaction to this was “Why would anyone have such strong feelings against any particular programming language?” Then I remembered how I feel about Java.
(I’m obviously joking here. I’m not 15 anymore. If you pay me to build your house with that particular hammer, fine.)
Headline is intentionally awful. tl;dr: the "lie" is that javascript is a bad language, and developers should not learn it.
Proceed if you enjoy programming language screeds, this one makes few technical points and focused on the argument that learning JS is not a practical professional decision.
> Even Redmonk’s language ranking is deceptive. JavaScript is on top because of the massive number of lines of code committed to Github. What are we to make of this? Well, JS is the native language of the web browser; if you want to write a browser application, you have no choice (for now). Redmonk is effectively saying that the web is popular, not that JavaScript is popular. Duh!
I'd probably also add that a lot of that is probably copies of popular libraries just getting checked into people's projects implemented primarily in other languages.
I'm more excited about SPAs and other stuff happening in the browser than this guy is but I don't really get the JS outside of the browser hype.
I find this hard to swallow as somebody that works with JavaScript on a daily basis both as a backend and front-end technology.
For one thing, it's an intellectually interesting space to be in and for another, there is so much of the open source community working in this space, it just simply allows me to stand on the shoulders of giants and deliver.
> The truth is, most Fortune 500 shops aren’t basing their businesses on JavaScript and never will
I'm not sure what the author means by "basing their businesses on JavaScript" but lots of Fortune 500 companies are using the SPA frameworks he decried. Facebook (Fortune 500) - not only uses - but invented React, Google invented Angular, and the Fortune 500 company I work for has Angular applications in production.
Maybe the author meant "No Fortune 500 company is putting all their eggs in one basket," but that's just tech in general.
Many enterprises are, indeed, using SPA and Node...for the client-facing, non-mission-critical web UI software. These applications tend not to be very large, and on this scale, these tools are usable. But once you get to the really heavy stuff that enterprises rest their critical core business on, they'll stick with real languages like Java, C#, Python, C++ and Scala...things that they trust without question.
I do agree, at a high level, that the litany of frameworks, and which ones to use together...is a barrier right now.
It's somewhat amusing to compare the effort required to make a relatively simple "SPA", versus doing the same thing in a "fat client" via C#, Java/Swing, or similar.
But, it's a relatively new ecosystem. I'm sure the dust will settle sooner or later, and a reasonable end-to-end solution will emerge.
> a wild wild West of free-for-alls with most of these frameworks having the life span of a fruit fly. Think Angular, React, Ember, Meteor, Backbone, Knockout, Express, Mithril, Aurelia, etc., etc., etc.
Ember is nearly 5 years old. I don't use it, but it's very much a mature project.
It was hyperbole. Of course, most of these frameworks are still around, but their popularity waxes and wanes with each new kid on the block (React is the latest).
Which would be fine if you consider JavaScript good, I don't, it's at best passable if you avoid most of the land mines which is an art in and of itself and that's just the language, if you include the ecosystem it's pretty much all landmines.
[+] [-] colemannerd|10 years ago|reply
[+] [-] bryanlarsen|10 years ago|reply
Which throws away the two biggest strengths of Javascript: it works everywhere, and is compatible with tons of existing code.
1: https://medium.com/javascript-non-grata/javascript-the-next-...
[+] [-] hsileng|10 years ago|reply
[+] [-] harwoodr|10 years ago|reply
[+] [-] grandalf|10 years ago|reply
JS is both a compiler target and a language itself. WebAssembly enhances the runtime as a compiler target.
JS is also moving very fast, as evidenced by Babel. There are some big, bold ideas being explored in React, Angular, Om, elm, clojurescript, etc. I hesitate to take seriously anyone who thinks this is a bad thing, just as I hesitate to take seriously anyone who is a strong supporter of a major political party.
We simply don't need a single point of authority telling us the best way to do things, even if they are soon obsoleted, competition and sharing of ideas is good. I've learned a lot by exploring all of the frameworks he mentioned. Recently the Ember and React teams have been collaborating extensively, and I can't wait to see all that comes out of it (notably with respect to styling components).
The most embarrassing assertion the author makes is that CS curricula teach "programming languages". It teaches a way of thinking, and it really doesn't matter much which language is used as long as the basic principles are covered. JS might make a good language to look at when studying language design tradeoffs, since in some ways it falls short but has also become the dominant language when measured in terms of the number of runtimes in use in the world at any given moment.
So while the author does seem to wish to be constructive (he links to a vague proposal) the article is just clickbait and really shouldn't be taken seriously. If you are a new programmer reading the article and feeling discouraged, don't lose heart. Build stuff and you'll learn. Eventually try some other languages if all you've tried is JS, but don't listen to the nonsense in the article.
[+] [-] horrido|10 years ago|reply
Nevertheless, schools do not want to teach an inferior language that encourages bad programming habits. They (now) tend to rely on languages with a vocational bent, such as Python and Java. I remember my days in university when odd languages like Scheme and Turing were taught. Now, it's sensible to at least try to prepare the student for the job market. I'm glad they didn't stoop to JavaScript.
> If you are a new programmer reading the article and feeling discouraged, don't lose heart. Build stuff and you'll learn.
Why should a new programmer feel discouraged? There are plenty of good languages to choose from (Java, C#, Python, C++, Ruby, etc.). They offer varying levels of ease, but Python and Ruby would be more than good enough. If you want to do web development, use a transpiled language (). That'll save you much of the grief of JavaScript. (My personal favourite is Amber Smalltalk.)
I agree, build stuff and learn.
[+] [-] horrido|10 years ago|reply
I'm glad you mentioned ClojureScript. I didn't successfully add this link to my previous comment because ycombinator had a hiccup, but I recommend using transpiled languages instead of JS: https://medium.com/javascript-non-grata/the-super-surrogates...
Languages like Amber, Brython, ClojureScript, Dart, Haxe and Scala.js are great alternatives to using JS.
[+] [-] overcast|10 years ago|reply
[+] [-] bluejekyll|10 years ago|reply
[+] [-] gorpomon|10 years ago|reply
1. Javascript popularity is tied to web popularity
2. Web popularity is shrinking
But he makes it in such a histrionic way that it's hard to focus on that over his bombast.
You can sound the alarms over almost any language if you want too, it's fun but hardly informative.
Java - only for companies that don't want to be agile
Python - Great for hacking on the weekends, but no killer use case
Ruby - Only has Rails, and the web is shrinking
Haskell/Scala/Whatever - Never gonna break out of a university
These are well worn arguments that don't really capture that jobs and companies tech stacks are much more nuanced than these simple statements. If you care about code, you'll find work, no matter what language beguiled you first. If anything, Javascript hasn't beguiled a generation of developers, the web has. And if we move on from the web, we'll move on from JS, and as long as we care about what's next, we'll thrive.
[+] [-] losteric|10 years ago|reply
Sure the syntax is pretty meh, the community is disorganized, performance is OK, and there are a lot of poorly written libraries out there... but it's downright amazing how much surface Javascript+Browser covers. WebGL, WebVR, WebCL, WebRTC, hell even just the out-of-the-box cross-platform UI. Install Node and you get access to all the systems stuff as well.
It's my job to write Ruby and I love the language. I also really enjoyed C++ and Python... but Javascript is now my go-to language outside of work. It's amazing, it's like it was made for hacking.
[+] [-] pcwalton|10 years ago|reply
(I think JS has a lot of flaws, but it's not as bad as its reputation suggests.)
[+] [-] abritinthebay|10 years ago|reply
However it's not a simple issue to change it at this point, but people ARE aware.
[+] [-] askyourmother|10 years ago|reply
The only interesting bit is whether it will be webassembly or something else that actually drags us into a paradigm shift for the web.
[+] [-] mbrock|10 years ago|reply
[+] [-] tyingq|10 years ago|reply
I'm interested in this as well. The near term plans, though, don't give wasm languages dom access, and limits wasm to statically typed languages. So, it's basically relegated to being an ffi layer for js for quite some time. I don't see that changing the world much.
[+] [-] nailer|10 years ago|reply
[+] [-] sgift|10 years ago|reply
Replace Javascript with PHP and you get the usual complaint people have about PHP (but there's still Facebook). Replace a few words and Javascript with Java and you get another common complaint, still, all these languages are in active use at various companies, so maybe they have their uses?
[+] [-] ryangittins|10 years ago|reply
[+] [-] abritinthebay|10 years ago|reply
Dunning-Kruger in action.
[+] [-] chrisabrams|10 years ago|reply
[+] [-] StavrosK|10 years ago|reply
[+] [-] horrido|10 years ago|reply
[+] [-] jahewson|10 years ago|reply
So what industry-favourite, startup-embraced, wildly popular language does this author advocate?
Smalltalk.
Seriously?
[+] [-] horrido|10 years ago|reply
As for games, what serious gaming platform relies on WebGL? Most games are written in C++ for a reason: maximum performance. When I was Project Team Leader of the Windows NT Driver Group at ATI Technologies (now AMD), all the OpenGL software I saw was written in C++. JavaScript could never have been usable, even with V8.
Smalltalk, seriously. It's still used today around the world by many businesses. Cincom and GemTalk are major Smalltalk vendors. I have friends working at Cherniak Software and Simberon, both important Smalltalk software houses. ESUG (European Smalltalk User Group) is a mammoth organization representing hundreds of companies using Smalltalk. What did you say about "a position of obvious ignorance?"
[+] [-] reitanqild|10 years ago|reply
I've written serious things in JS (ok, ECMA Script) back before a lot of people around here started coding it seems. Back when IE ruled the web and SVG was an Adobe plugin to IE.
And I say this post isn't too bad.
[+] [-] andor|10 years ago|reply
Next time you make such a bold claim, maybe Google it for a few seconds ;-) Legacy SAP stuff predates Javascript. Modern SAP stuff is different, "HANA Extended Application Services" is actually a server-side Javascript runtime. What is HANA made for? Exactly, "critical Business Intelligence data" ;-)
http://scn.sap.com/community/developer-center/hana/blog/2015...
http://help.sap.com/hana/SAP_HANA_Developer_Guide_for_SAP_HA...
[+] [-] horrido|10 years ago|reply
[+] [-] lost_name|10 years ago|reply
https://medium.com/javascript-non-grata
[+] [-] svckr|10 years ago|reply
(I’m obviously joking here. I’m not 15 anymore. If you pay me to build your house with that particular hammer, fine.)
[+] [-] gmisra|10 years ago|reply
Proceed if you enjoy programming language screeds, this one makes few technical points and focused on the argument that learning JS is not a practical professional decision.
[+] [-] talmand|10 years ago|reply
[+] [-] emodendroket|10 years ago|reply
I'd probably also add that a lot of that is probably copies of popular libraries just getting checked into people's projects implemented primarily in other languages.
I'm more excited about SPAs and other stuff happening in the browser than this guy is but I don't really get the JS outside of the browser hype.
[+] [-] awjr|10 years ago|reply
For one thing, it's an intellectually interesting space to be in and for another, there is so much of the open source community working in this space, it just simply allows me to stand on the shoulders of giants and deliver.
Checkout http://githut.info/ and, yes npm.
I recognise there are failings in JavaScript and that is why I've switched to TypeScript and now transpile to JavaScript.
Do I think there are problems with JavaScript? Of course there are, but does it make it a bad language? No.
[+] [-] acbabis|10 years ago|reply
I'm not sure what the author means by "basing their businesses on JavaScript" but lots of Fortune 500 companies are using the SPA frameworks he decried. Facebook (Fortune 500) - not only uses - but invented React, Google invented Angular, and the Fortune 500 company I work for has Angular applications in production.
Maybe the author meant "No Fortune 500 company is putting all their eggs in one basket," but that's just tech in general.
[+] [-] horrido|10 years ago|reply
[+] [-] uptownJimmy|10 years ago|reply
[+] [-] tyingq|10 years ago|reply
I do agree, at a high level, that the litany of frameworks, and which ones to use together...is a barrier right now.
It's somewhat amusing to compare the effort required to make a relatively simple "SPA", versus doing the same thing in a "fat client" via C#, Java/Swing, or similar.
But, it's a relatively new ecosystem. I'm sure the dust will settle sooner or later, and a reasonable end-to-end solution will emerge.
[+] [-] unknown|10 years ago|reply
[deleted]
[+] [-] nailer|10 years ago|reply
Ember is nearly 5 years old. I don't use it, but it's very much a mature project.
[+] [-] horrido|10 years ago|reply
[+] [-] 91bananas|10 years ago|reply
[+] [-] hsileng|10 years ago|reply
[+] [-] noir_lord|10 years ago|reply
[+] [-] georgebonnr|10 years ago|reply