by the Typesafe Team
Since the inception of Scala, it has never suffered a shortage of opinions and feedback. This has been a tremendous advantage! If anything, we have noticed discussions about commercial applications of Scala accelerating in various forums, online and offline, in the past few weeks.
At Typesafe, we take feedback about practical applications of Scala seriously. Experiences from real world commercial applications play a large role in our planning and prioritization. Our ambition is to continually improve Scala and the rest of the Typesafe Stack so that it is accessible to an ever broader audience of developers.
In this spirit, we thought it would be a good time to summarize a few of the areas where Typesafe is working to ease the adoption of Scala in commercial settings:
- IDE Support -- Historically, inconsistent Eclipse IDE support had been a frequent complaint from early adopters of Scala. Recognizing this challenge, Typesafe led a major refactoring of the community-initiated Scala IDE for Eclipse starting in early 2011. This has culminated in Scala IDE for Eclipse 2.0, with greatly improved stability and performance, currently available as a release candidate. After the final IDE 2.0 release, Typesafe will continue to invest in adding new IDE features, such as improved refactoring support.
- Learning curve -- Scala builds on many familiar concepts from Java and other languages, but introduces powerful new elements to the mix. In order to get commercial development teams up to speed quickly, Typesafe has developed dedicated training courses including Fast Track to Scala (for newcomers to Scala) and Advanced Scala (for experienced Scala developers) that are delivered in conjunction with our growing network of partners. Complementing Typesafe’s efforts are free resources like Twitter’s Scala School and Cay Horstmann’s excellent Scala for the Impatient. Recently, Typesafe partnered with leaders of the Scala community to launch an exciting new collaborative Scala Documentation site. And for those looking to ease into the Typesafe Stack, both the Akka middleware framework and the Play web framework offer native Java APIs in addition to Scala APIs.
- Build times -- There’s no question: because it does more for you, the scalac compiler has more work to do than javac. At Typesafe, we are working to address build times through a holistic approach that considers not only raw compile times but also techniques like incremental compilation and parallel builds. Core to this effort are build tools like sbt, where we are pushing improvements aggressively.
- Binary compatibility -- To ensure a stable platform for commercial deployment, Typesafe has introduced the Typesafe Subscription, which includes long-term, commercially supported and maintained releases of Scala and the rest of the Typesafe Stack. This means you can put your application into production with the confidence provided by ongoing technical support and binary-compatible fixes for key issues that may arise. To support this effort, we are working on the Migration Manager, a tool that checks binary compatibility across releases, which was recently used to verify that Scala 2.9.1 was compatible with 2.9.0. Finally, we are exploring opportunities to provide a larger set of core libraries that are continuously built together with new releases of Scala, including common libraries for testing, IO, and transactional memory, among others. This is intended to reduce the dependency synchronization challenges for developers moving between major versions of Scala.
- Performance -- We take application runtime performance quite seriously, and target continual performance improvement based on feedback from real world applications. At the same time, we are cautious to avoid premature optimization. As a high-level language, Scala encourages developers to take advantage of scalable software architectures (such as Akka’s distributed actors) that would be more difficult to implement in a lower-level language. And as a statically typed language running on the Java Virtual Machine, Scala benefits from a natural performance tailwind when compared with many alternative commercial languages.
- Frameworks -- It’s no secret that much of our focus at Typesafe has been on higher level frameworks including Akka event-driven middleware and, more recently, the Play web application framework. Our effort goes beyond the Scala language to these frameworks that use Scala to make it easier (and more fun) for developers to build applications that solve real world problems, at scale. Look for more to come from Typesafe on this front.
- Community -- The Scala community is much broader than Typesafe. We’re honored to work alongside a broad, diverse, talented, opinionated, and downright quirky group of individuals. We’re trying to do our part by collaborating on projects like moving the main Scala repository to Github (completed today!), where it joins many other projects built with Scala.
No doubt, there’s tremendous room for improvement in Scala, on many fronts. And we are hard at work. But at the same time, Scala is used in production today, with great success, by many major companies ranging from global financial services firms to web leaders like Twitter, LinkedIn, and -- yes -- Yammer.