Two weeks ago we talked about how many of the projects hosted in Scala Tools are moving over to publish directly to Central. That process is ongoing. In this post, I want to start something new. At Sonatype we touch a lot of different technologies and communities, and I want to make sure that we're doing all we can to help put a spotlight on some of the communities that we're watching. Whether it is a .NET-focused open source foundation like Outercurve, a customer that contributes back to Nexus OSS or, in this post, the Scala community, I think that Sonatype can at least help introduce some of these interesting technologies to a larger audience.
The JVM saw an explosion of "alternative" languages over the past several years. From clojure to jruby to scala, each language tends to have a specific "sweet-spot" it solves more efficiently than other languages. If you are interested in rapid web development, JRuby has become a solid option alongside Rails.
Scala’s “sweet spot” is providing a functional programming language that provides an elegant way to think about concurrency and parallelism while integrating concepts of OO programming. Where languages like Ruby and Python have become logical choices for front-end web development, Scala has increasingly become the default choice for the kinds of massively parallel systems that make sites like Twitter, LinkedIn, and Google run. Scala’s applications range from large-scale scientific simulations, to high-speed, algorithmic trading applications, to systems like ad-exchanges.
Here are some interesting people, projects, and companies that use Scala:
Note: What about Lift? Or Scala-tools? Why didn't I mention X, Y, or Z? We're not done featuring interesting Scala projects, this is the just the first installment.
Now, you might assume that Sonatype has a definite opinion in this space. After all, didn’t we write a series of Maven books?
Yes, we did, but we’re also an increasingly "tool agnostic" company. While you’ll see a good number of our examples focus on Maven, we understand that the world uses more than one build tool.
In Scalaland, it’s a choice between the maven-scala-plugin and SBT. Both seem to present a solid option with most pure Scalaist seeming to prefer SBT over Maven. There was a discussion at scala-lang.org about the relative merits of SBT vs. Maven in December of 2011, and it looks like there are a equal number of people suggesting SBT vs Maven.
Whatever you use, your build tool is still going to download from Central, and it would benefit from using a local repository manager like Nexus. In the next installment of our Scala coverage we'll talk about how to use Scala with a repository manager.
One last thing.... The other nice thing about Scala is that Scala skills are in high demand. Every time I speak with someone running an organization that uses Scala, they are always looking for people familiar with Scala. Most companies that use Scala, end up having to just hire smart developers and train them on Scala. It's clear that knowing Scala well will put you in an advantage for a particular type of company that is engaged in "big data" work. For example, last I heard Square was looking for Scala talent.