Scala.js: Web Development on Steroids
We Scala enthusiasts cherish Scala’s expressive power, strong typing guarantees and its potent functional features (not to mention its performance on the JVM).
Scala.js brings these advantages to Javascript platforms such as web browsers and Node.js. By targetting Javascript the language, as well as its rich ecosystem, Scala.js endows Scala developers with a much deeper and robust language in which to develop web applications.
Scala.js implements most of its JVM counterpart’s functionality. This interoperability extends to powerful functional libraries like Scalaz or Shapeless as well as advanced language features like full-blown macros!
Differences between Scala.js and JVM Scala reflect limits imposed by Javascript itself, such as the absence of multithreading or the featuring of a single numeric data type. Also excluded are JVM-specific constructs like dynamic class loading or runtime type reflection. Luckily, we Scala developers don’t miss such constructs anyway as Scala encourages safe, compile-time type resolution by means of a stronger type system, a much richer standard library, type-level programming and macros.
Scala.js most unfair advantage over plain Javascript probably lies in its superb IDE and editor support. Both Intellij Idea and Eclipse provide type-safe code completion, early error detection and ample refactoring operations. This IDE support goes well beyond what Typescript and other typed Javascript supersets have to offer.
Speaker: Ricardo Rocha
Ricardo Rocha is a software developer with a predilection for programming languages and software tool development.
As a Scala enthusiast Ricardo has used the language professionally and personally during the last 5 years. In addition to his daily use of Scala and Java he studies other JVM languages, like Xtend, and funcional languages like Haskell and Elm. He’s also currently interested in Rust.