- dynamic typing
- object prototypes
- asynchronous programming
But guess what? It’s not unique at all!
Python, Ruby, Perl, PHP, Clojure, and Smalltalk are all dynamically typed.
Java, Python, C++, C#, Ruby, Perl, PHP, Scala, Clojure, and Smalltalk all support lambdas.
Asynchronous programming has been with us since the earliest days of computing. It can done in practically any language, including Java, Python, C#, and Smalltalk. What’s the big deal???
This is no different from using a language like C or Go to compile into x86 assembly language.
Here is a short list of transpiled alternatives:
- Bridge.NET (C#)
- Cheerp (C++)
- ClojureScript (Clojure)
- GopherJS (Go)
- JSweet (Java)
- Opal (Ruby)
- PharoJS (Pharo)
- Scala.js (Scala)
- Transcrypt (Python)
You have a cornucopia of choice, an embarrassment of riches.
Expect future versions of ECMAScript to be even bigger.
From the above list, the only languages that can’t be used for front and back ends are CoffeeScript and Elm.
It’s actually a similar story for languages like Python and Ruby. Both are quite versatile, but they really are best known for data science/machine learning and Rails, respectively. Python does well in the web space, too. But Python is hardly used for desktop and mobile.
Are front end, Node, Electron, and React Native everywhere? Talk about delusions!