
JavaScript has beguiled the current generation of software developers - wodahs02
https://medium.com/javascript-non-grata/the-lie-that-has-beguiled-a-generation-of-developers-1b33e82de94f#.pcxol3uhd
======
colemannerd
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.

~~~
bryanlarsen
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.

1: [https://medium.com/javascript-non-grata/javascript-the-
next-...](https://medium.com/javascript-non-grata/javascript-the-next-
generation-45b93f1db7fd#.s1rpntltj)

~~~
k__
> create a new Javascript that is the same as the old JavaScript > without all
> the bad parts

Google tried this with Dart and failed.

------
grandalf
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.

~~~
horrido
> 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.)

I agree, build stuff and learn.

------
overcast
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.

~~~
bluejekyll
He doesn't disagree with that. Just that JavaScript's niche is frontend. And
even that may be threatened with the advent of webassembly.

~~~
abritinthebay
Meanwhile Node is killing it on the backend.

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.

~~~
emodendroket
Did you read the article? He considers and rejects that argument.

~~~
k__
Did you?

"Node has been ... relegated to a web niche. ERP solutions ... aren’t using
Node... don’t expect any serious shop to be washing their ... data through JS
code...Fortune 500 shops aren’t basing their businesses on JavaScript ...
JavaScript is intrinsically a dysfunctional language.... more flaws than any
other programming language... JavaScript is wholly unsuitable for serious
software... tens of thousands of lines of code ...difficult to ensure a
specific level of quality..."

He's just ranting around. Even the "sources" are just scattered links to other
rants of him...

------
gorpomon
The author makes two decent points:

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
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.

~~~
k__
1\. The JavaScript ecosystem is open

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

------
pcwalton
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.)

~~~
abritinthebay
Not to mention the "Number as Double" issue has been called a massive mistake
by most people involved in writing the standards.

However it's not a simple issue to change it at this point, but people ARE
aware.

------
askyourmother
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.

~~~
mbrock
Everything will always be horrible. I promise.

~~~
reitanqild
JavaEE is not horrible.

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.)

------
sgift
> 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?

~~~
ryangittins
There are two kinds of programming languages: The ones people complain about
and the ones no one uses.

------
chrisabrams
NASA, PayPal, Uber, Facebook, Yahoo, Fitbit, Intuit are all using
Node.js...guess they're all just niche too?

~~~
StavrosK
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.

~~~
dcwca
So nobody's really using anything unless they use it exclusively? I guess
nobody's using anything then. Google isn't using Go. Microsoft isn't using C#.

------
jahewson
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?

Smalltalk.

Seriously?

~~~
horrido
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?"

------
andor
_" 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" ;-)

[http://scn.sap.com/community/developer-
center/hana/blog/2015...](http://scn.sap.com/community/developer-
center/hana/blog/2015/10/25/sap-endorses-nodejs)

[http://help.sap.com/hana/SAP_HANA_Developer_Guide_for_SAP_HA...](http://help.sap.com/hana/SAP_HANA_Developer_Guide_for_SAP_HANA_Studio_en.pdf)

~~~
horrido
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.

------
lost_name
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.

[https://medium.com/javascript-non-grata](https://medium.com/javascript-non-
grata)

~~~
svckr
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.)

------
gmisra
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.

~~~
talmand
The article is worse, it suggests that the Javascript language itself is what
has doing the lying. Not people, the language. Keep that in mind.

------
emodendroket
> 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.

------
awjr
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.

Checkout [http://githut.info/](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
> 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.

~~~
uptownJimmy
No big corporations are building their apps on Node, I think was his point.
And he's right.

~~~
thinkdevcode
Walmart must be considered a small corporation then. Good to know.

~~~
uptownJimmy
Help us out, those of us who remain unenlightened:

1.which app(s) did Walmart build with nothing but Node on the back end?

2.How has it worked out? Are they happy with that software?

3\. Any internal plans to rebuild with something else, or are they going to
use Node in even more places in the near future?

Honest questions.

~~~
thinkdevcode
A good place to start is this quora link[1] that has many further links to
read.

[1][https://www.quora.com/What-are-the-biggest-websites-built-
wi...](https://www.quora.com/What-are-the-biggest-websites-built-with-Node-js-
on-the-server-side)

~~~
uptownJimmy
That Quora post perfectly illustrates my confusion with all the claims about
Node: every example of Node usage there is 3 to 5 years old, as far as I can
tell.

I'm really interested in what large-scale production apps, commercial or in-
house enterprise, are currently using Node on the server? For sure, not just
misinterpretation and wishful thinking?

------
tyingq
Basically a big rant about javascript.

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.

------
nailer
> 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.

~~~
horrido
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).

------
hsileng
As I am reading this, my reaction is "Don't let perfect be the enemy of good"

~~~
noir_lord
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.

~~~
talmand
So, if I take your favorite language and somehow manage to cause its ecosystem
to get as bad as you claim Javascript's is, does that mean your favorite
language is now bad?

~~~
horrido
But _why_ did the ecosystem get out of hand so easily? Because the sloppiness
of the language encouraged it or made it easy to abuse it. JavaScript's
ecosystem is notoriously bad in this respect (cf. with Java or Python or
Ruby).

~~~
talmand
I totally disagree with that, but that's just my opinion.

------
georgebonnr
Check out his facebook feed... a theme definitely emerges.
[https://www.facebook.com/richard.eng1](https://www.facebook.com/richard.eng1)

------
groby_b
Well, the previous generation of developers (or maybe that's more than one
ago) came here via BASIC. As it turns out, availability trumps theoretical
beauty when it comes to learning.

------
cm127
This article is over five years late. Get over it: JavaScript is a usable
language.

------
_fizz_buzz_
I love javascript, and if love is wrong I don't want to be right!

------
sassyalex
Une debliteration de conneries non fondées, comme d'habitude.

Stupid article.

------
Polarity
it works

------
brador
Maybe developers value it's simplicity over it's ability to tick functionality
boxes? I know I do.

Same with PHP and JAVA. Dysfunctional languages, yes. But fun and easy to use.

~~~
emodendroket
I'm not sure I'd call it "simple." There are a lot of complexities created by
the desire to make it easy to implement one- or two-liners.

~~~
brador
Sorry, I meant it's simplicity in it's pick up and play-ability. It's very
easy for beginners to learn Jquery and JS because it doesn't come with the
arcane syntax bloat that OO Languages have (void function etc. etc. ).

In terms of (Power)/(Time to Learn) Javascript comes very high, if not top.

~~~
emodendroket
Well sure, but when you want to develop larger applications you end up
learning to need a lot of stuff that is harder to understand (like I don't
think there is anything intuitive about IIFEs or that sort of thing)

