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-...
Google tried this with Dart and failed.
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.
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.
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.
Sorry, but this author is just the equivalent of an old man yelling at kids to get off his lawn... but worse, it's not even his lawn, never was, and the "kids" are the ones who built his home over the last 15 years.
He looks out of date, out of touch, and unwilling to develop skills and knowledge.
Not a good look.
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.
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.
2. JavaScript does about everything
3. There are many JavaScript developers
1. and 2. are enough for me and 3. is enough for most companies.
JS is the next stage of the Web after PHP
(I think JS has a lot of flaws, but it's not as bad as its reputation suggests.)
However it's not a simple issue to change it at this point, but people ARE aware.
The only interesting bit is whether it will be webassembly or something else that actually drags us into a paradigm shift for the web.
It is rock solid, has a nice and friendly community, tons of resources, several high-quality open source implementations and the Java language itself has 2 or 3 IDEs in the top 10 IDEs list (ok, the last one is my subjective opinion.)
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.
After all, why have a simple left-pad function, when I have lots and lots of modules, just to achieve the same result?
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?
Dunning-Kruger in action.
Your comment ignores legacy code bases, which are common at large companies, in favor of an unrealistic yard stick.
So what industry-favourite, startup-embraced, wildly popular language does this author advocate?
Smalltalk.
Seriously?
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?"
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.
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...
(I’m obviously joking here. I’m not 15 anymore. If you pay me to build your house with that particular hammer, fine.)
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.
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.
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.
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.
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.
Ember is nearly 5 years old. I don't use it, but it's very much a mature project.
Stupid article.
Same with PHP and JAVA. Dysfunctional languages, yes. But fun and easy to use.
In terms of (Power)/(Time to Learn) Javascript comes very high, if not top.