Last week, Ann Arbor was abuzz with celebrity sightings and fake snow movie sets connected with the filming of “Five Year Engagement.”
But at the same time, a group of “software celebrities” were in town conducting training on Scala, an emerging programming language for the Java Virtual Machine.
Bill Venners, co-author of the leading book “Programming in Scala” and Dick Wall, co-host of the Java Posse, provide comprehensive Scala training, and we were thrilled to host them in Ann Arbor.
Most of their public training has been in the San Francisco Bay Area, but they had heard some interest from people on the East Coast, so they were receptive to my request about doing training in our town. About 60 percent of the attendees were from out of town, mostly from Chicago, New York and Washington, D.C.
The remaining attendees were from Ann Arbor and the Metro Detroit area. It’s great to see that Ann Arbor is centrally located enough to be able to attract an East Coast audience for training.
The attendees left the class understanding the fundamentals of the Scala language, from how to integrate with existing Java libraries and applications, to how to develop in a greenfield environment.
Consistent with some of the techniques described in the Java Posse Roundup session on increasing the adoption of Scala, the course also introduced opportunities for improvements for companies still using Java, including an improved testing environment. Attendees left well-trained, and the businesses that sent them are poised to take advantage of this new language.
The questions that I hear most often from business leaders are: Why would a company transition from Java to Scala? And is the language ready for enterprise use? And while this article focuses on the specific question of moving from Java to Scala, these questions are relevant in any technology shift that your company may be considering.
Why transition?
When companies have an investment in a language, migrating to a new language often seems alarming, and concerns are often raised about how the migration might impact productivity and working code.
A focus on writing less code while depending on the compiler to do more of the work for you has been consistent since the beginning of the software industry. Scala and Java interoperate, so you can continue to use your existing Java code with new Scala code. This makes a Scala transition a win for everyone.
Switching to any new technology can be a scary proposition for business owners, so it’s important to understand if the transition will ultimately help your team work less and accomplish more.
Is the language ready for enterprise use?
To answer this question, it’s significant to look at what companies are using it. Scala has become the darling of Internet companies such as Twitter, FourSquare and LinkedIn. It’s also in use at established companies such as Siemens, Xerox, Sony and The Guardian (UK).
By focusing on the domain problem and minimizing the boilerplate code, all of these companies are finding success with Scala. LinkedIn reports that the concurrency aspects are key, while Twitter identifies the expressiveness of the code. Foursquare uses a popular Scala web framework. The Guardian initially wrote only their tests in Scala, but realized the benefit in their delivered code as well and migrated that.
In fact, the Guardian has recently reported on InfoQ that they have found “A good Java developer can learn to write Java-style code in Scala in a day, ... and very soon they're more productive than they were in Java.”
Scientists are also finding favor with Scala, enjoying the simple concurrency model and, in the latest version, support for parallel collections.
Looking to established businesses as models of change is valuable to business owners for a range of reasons. These existing businesses can help you understand how the new technology might be deployed within your enterprise as well as shed light on best practices.
Software developers aren’t typically very good at making a case for switching to a new programming language. They will focus too much on what the new language can do. They don’t connect those new features to business value.
By moving from Java to Scala, you can write more expressive code with less effort, take advantage of constructs that allow you to parallelize your code more easily, and still take advantage of your previous investment.
New technology is often more than “cool.” It’s good business.
Dianne Marsh is co-founder of SRT Solutions, an Ann Arbor custom software development firm that specializes in using newer technologies to build effective software.

AnnArbor.com