TL;DR

  • ES6 is the new standard.
  • CoffeeScript is past its prime.
  • A new wave of JavaScript flavors is coming.

When you talk about “JavaScript”, you're not just talking about a single language: it's actually more like a family of closely related cousins.

What started with CoffeeScript back in 2009 has become an explosion of choice over the past couple years: ES6, TypeScript, Elm… they all have their strengths, and they're all growing more and more popular.

JavaScript Flavors

Filter:
  • All
  • Interest
  • Satisfaction
Show:
  • Percents
  • Numbers
  • Never heard of it
  • Heard of it, not interested
  • Heard of it, would like to learn
  • Used it before, would not use again
  • Used it before, would use again

How To Read This Chart

The All view presents all five options on the same chart, while the Interest and Satisfaction lets you isolate the “interested/not interested” and “would use again/wouldn't use again” pairs.

Note that when selecting the Interest or Satisfaction view, percentages are relative to the current pair (in other words, the two highlighted bars combined total 100%).

Awareness

ES6, CoffeeScript, and TypeScript all have near-perfect awareness, which surprised me since TypeScript isn’t quite as popular as the other two yet.

Elm and ClojureScript on the other hand have much lower scores, which makes sense since they’re more tied to their own ecosystems, and harder to use in existing apps.

Interest

It’s interesting to look at ES6: a large proportion of developers have already jumped on the bandwagon, and almost all (89%) of those who haven’t yet want to learn it as well.

TypeScript and Elm are in the same boat: not many people have used them, but they have 53% and 58% interest scores respectively, which isn’t bad by any means. If I had to guess, I’d say that both TypeScript and Elm might be having a hard time articulating their advantages to the average JavaScript developer. After all it’s hard to understand the advantages of something like static typing if all you know is JavaScript.

Also, few developers have used CoffeeScript, and apparently almost nobody wants to learn it. There goes my plan to write a 12-volume CoffeeScript Encyclopedia…

Satisfaction

We now come to the key question: how many developers have used each specific flavor, and how many would use it again?

While plain JavaScript has the largest usage numbers, in terms of satisfaction the big winner here is ES6, and I think it’s safe to say it’s now the default way to write JavaScript apps.

TypeScript and Elm both also have similarly high satisfaction percentages, around 85%. And once more, poor CoffeeScript trails the poll with only 17% of developers willing to consider it again.

How likely are JavaScript flavor users to also use other technologies?

Plain JavaScriptES6CoffeeScriptTypeScriptElmClojureScriptNo FrameworkReactAngularAngular 2EmberVueBackboneReduxMobXRelayREST APIFirebaseGraphQLApolloFalcorHorizonMeteorFeathersJSDoneJSMERNMEANMochaJasmineEnzymeJestCucumberAvaPlain CSSSASS/SCSSLESSCSS ModulesAphroditeWebpackGruntGulpBrowserifyBowerNative AppsReact NativeCordovaPhoneGapNativeScript
Plain JavaScript
100
7
-2
-4
-5
-1
22
-1
4
0
2
2
8
-3
-2
-2
12
3
-3
-4
-1
0
-1
-3
-1
1
8
2
5
-1
-2
0
-1
21
5
4
-3
-1
-1
9
8
7
3
4
-4
4
5
0
ES6
7
100
-2
14
6
3
-1
42
-5
8
9
7
2
37
8
6
19
11
11
5
2
4
6
2
-2
10
9
34
20
18
11
5
11
-3
13
3
11
5
43
-6
10
15
-11
2
17
1
-2
2
CoffeeScript
-2
-2
100
1
4
4
0
1
1
0
5
3
5
-1
1
2
2
0
2
3
3
2
5
1
1
2
1
3
3
-1
1
9
1
-3
6
6
1
1
-2
5
2
4
8
4
2
1
2
2
TypeScript
-4
14
1
100
6
4
-5
-3
20
48
-2
-1
-4
0
5
2
8
5
2
2
3
3
-1
-1
0
-1
14
5
15
-3
-1
1
2
-3
3
5
-1
-1
7
1
9
0
3
5
1
9
5
14
Elm
-5
6
4
6
100
15
-1
10
-6
-2
2
2
-2
11
5
5
2
4
7
2
2
3
0
1
1
4
-5
8
4
6
7
3
10
-2
1
0
5
6
8
-6
-4
1
-6
3
6
-3
-3
-2
ClojureScript
-1
3
4
4
15
100
-2
10
-4
0
5
1
1
7
5
11
3
3
9
1
6
3
0
4
2
2
-3
7
3
7
7
4
6
-2
1
1
3
4
6
-3
-1
3
-3
3
7
-1
-1
0

Note: “user” defined as people who picked “I've used it before, and would use it again”. Phi coefficient values go from -100 to +100, darker red indicates stronger positive correlation, darker blue indicates stronger negative correlation.

The heatmap clearly shows that preferring Plain JavaScript correlates with an old-school approach that favors using Backbone, or even no framework at all, whether it's for JavaScript or even CSS.

On the other hand, ES6 correlates strongly with the React stack, while TypeScript is used by Angular 2 developers as expected.

Recommended Resources

Presented by ES6 For Everyone & Egghead.io

ES6 For Everyone

Wes Bos
A premium training course to strengthen your core JavaScript skills and master all that ES6 has to offer.

Up and Running with TypeScript

John Lindquist
In this course you'll learn about using the TypeScript compiler, configuring your project, definition files, and more.
Thanks to our partners for supporting this project. Check them out for more awesome programming courses!

On a scale of 1 to 5, how happy are you with your current JavaScript flavor of choice?

Show:
  • Percents
  • Numbers

The high satisfaction scores we saw previously are confirmed here: with an average score of 3.96 overall, people are really happy with JavaScript as a language.

It’s hard to say if this is because of JavaScript’s recent improvements, or because maybe (just maybe) JavaScript isn’t as horrible a language as people make it to be. But it’s certainly comforting.