Functional programming meets the client side: Scala.js
- by Rafa Paradela
- June 02, 2015
Although I have been developing apps on the backend side for many years, I’ve always been strongly attracted to front-end technologies, especially those which improve user experiences.
Several weeks ago I read that, after two years of development, Scala.js was no longer experimental. The semantics of the language, the standard library, and the sbt builds will remain backward source compatible. Therefore, it became production-ready! I knew it was the right time to carry out my first attempt at Scala.js. I had this idea of making a self-referent project that teaches the required steps to make your own site. You can take a look at this simple project in this repository, and the result here:
The little bit of experience I have with Scala.js has made me realize the potential value it offers. I’ll mention some of the most highly-rated aspects by the community, to which I concur.
- Share code between client and server
- Tooling: IDE support, sbt integration, dependency, unit testing, stack traces and source maps, cross-compiling projects
- Fast compilation cycle
- The Scala Standard library
- Great community, welcoming to new users and helpful
- Very good documentation
In conclusion, I would like to emphasize the possibilities. Scala might be a nice language, but you’ve never been able to use it to make anything cool that a non-backend-systems person would understand, until now.