State of the Art JavaScript in 2016
Francois Ward

Seems like you haven’t discovered Scala.Js yet:

It does not have any of the shortcomings of TypeScript or Flow:

  • It has algebraic data types (and semi union support for Js integration), and handles Nulls well (by use of Option->None/Some wrapping)
  • It is easy to setup. Just pull a template and Sbt sets up all for you
  • All OS-es are good supported

Other benefits that makes many of the categories here redundant

  • Build system, packer and dependencies are all handled by the same tool, Sbt, and Webjars are used for JS dependencies
  • For testing you don’t need to use a JS test library, there are many native Scala testing frameworks available, including the most popular: scalatest
  • Linter: already included as the compiler!
  • Universal (Isomorphic) JavaScript: yes! The Scala source code for the server is almost the same, just some features like reflection is not supported on the client. It means code can be easily shared between client and server and changes on the server should not break the client without it failing to compile.

“Types are not nearly as critical to front end development as some will have you believe“. I don’t agree on this after having writing Js and always started with a either non working, non outputting program or “null” in the console. I prefer types and “if it compiles, it works”.

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.