Scala to many is just another language, more or less useless, and never going to bother their path to awesome. To others, Scala is a lovely programming language that provides scalable environment – hence: Scala – and allows to have fun along the way.
It’s worth mentioning that companies like LinkedIn, The Guardian and even Sony, use Scala to power their infrastructure. You can see a great example of how versatile Scala is by taking a look at this database migration library, published as an open-source project from Sony.
The Scala Migrations library is written in Scala and makes use of the clean Scala language to write easy to understand migrations, which are also written in Scala. Scala Migrations provides a database abstraction layer that allows migrations to target any supported database vendor.
Even though its syntax is fairly conventional, Scala is also a full-blown functional language. It has everything you would expect, including first-class functions, a library with efficient immutable data structures, and a general preference of immutability over mutation.
Need a Scala pastebin? Why not give Scastie a try? It’s also open-source. I’ll try and provide a quick brief for each of these minimal Scala web frameworks, but I’ll leave the rest to you. I’m not overly familiar with Scala myself.
Finatra is built on the Twitter-server platform, running on top of the Finagle, inspired by the ever lovely Sinatra. It’s fully asynchronous and provides great support for those who’re looking to try something new.
I do like the look of the homepage of Play Framework, highly interactive and delivers a smooth user experience. I guess they take their design principles very seriously. Play is a high-productivity Java and Scala web application framework that integrates the components and APIs you need for modern web application development.
As you can see, it works for both Java and Scala, and the team behind the framework is very focused on building something that scales, and also delivers great experience – aiming for more productivity. The above preview video is quite lengthy, for those with time management issues, but it’s worth taking a look at to get a glimpse of the framework from an expert.
Scalatra is an extremely minimal web framework, inspired by Sinatra that will help you build API’s and highly accessible web sites in no time. Scalatra is a simple HTTP DSL that allows you to start with a tiny amount of code and then add the exact libraries you want as your application grows. They’ve got a book written for it, but it’s price tag might be off putting for those who’re just looking for something new to try.
Quite a few big names are using Scalatra to power their sites, and applications, take a look on their Built with Scalatra page for more information.
Spray API’s are supported by asynchronous integration, avoiding blocking code whenever possible. Spray itself does not like to call itself a web framework, and instead believes that you can build your web applications on top of your favorite frameworks base, and use Spray merely as a base to integrate all of your HTTP requirements. Read this page on how Spray can be used for web development.
Web frameworks for Scala
It’s not a huge list, and it might lack some of the common concepts that I probably missed along the way, but at the end of the day, I only intended to gather up whatever I was able to find, and I welcome any other web frameworks like these to the list. (if they’re using Scala, of course)
Which one of these is your favorites ones, and what can you tell about it that others might enjoy learning about? I’m always looking for new languages, and frameworks to try out.