When is it worthwhile for an organization that has a long history with Java to experiment with a new programming language such as Scala? There really isn’t any one specific project type that necessitates the use of any specific language, be it Scala, Clojure, Ceylon or Java. With the exception of very complex domains, where infinite scalability is a functional requirement, success can be achieved using pretty much any language, given that time, money and resources are unlimited. So when should organizations start to seriously think about switching to a new programming language like Scala? Beyond simply the desire to write more compact code and deliver applications that scale linearly, two points that pretty much go without saying when it comes to comparing Scala to Java, here are some other reasons why migrating towards a Scala based solution is the right direction for your organization.
Rising from the ashes of a software project gone sideways
Has a big Java project gone sideways? Are the IT directors looking for serious and innovative suggestions on how to bring the development process back on track? Sometimes the best way to switch tracks is by hopping on an entirely different train. Furthermore, switching to a new language and a new technology is a simple way to attract a fresh crop of programmers. And when it comes to Scala programmers, those people tend to be passionate about their craft.
Sometimes, clearing away the clutter and starting fresh is the key to success. This scorched earth approach isn’t always necessary, but it can be the ticket to restoring stakeholder confidence when a project cannot be salvaged any other way. Organizations shouldn't be afraid to make a clean sweep of contractors and code if the situation demands it.
Breathing new life and enthusiasm into a good team
Scala projects work best with small, tight-knit teams. When this is a good fit for the culture and mentality of an existing team, the transition to Scala may breathe new life into the development process. There's an old proverb that says 'a change is as good as a rest.' And if the business case is strong for moving to Scala, a simple change like moving to a new programming language can be the tipping point that breathes life into a team of good developers that might be getting a little tired of their craft.
Leveraging the talents of available experts
In many ways, Scala is more about the people and processes than the actual end product. If your organizations was entertaining the idea of moving to Scala, making the move at a time when the organizations has a couple of really adept Scala developers on the payroll is a good move. Why? Because a couple of strong Scala developers can develop libraries and drive the Scala based ALM process in ways that makes development much easier for those who don't have as long of a history with the language. Martin Odersky, chairman and co-founder of Typesafe and the creator of the Scala language, says that good team dynamics, led by a couple of skilled Scala professionals, can be a recipe for unprecedented success. “Scala is a two tier language." Says Odersky. "You can have a couple of experts who produce artifacts such as high level libraries that make things much easier for everyone else in your company. With Java you can’t really do that. You need a uniform level of expertise for everyone.”
Since a leading complaint about Scala is the lack of consistency and standards in the most popular libraries, it makes sense to have someone with big picture experience, riding herd on this aspect of the language. It also frees the second tier developers to explore and implement Scala in a safe and effective way.
Tacking novel problems with a no-so novel new language
Odersky also points out that Scala is at its best when it is used to explore unusual software development scenarios. “Whenever you have a new technology you want to introduce, you need to find new challenges and new application areas. We are much more interested in areas where there are problems that are yet to be tackled and solved. That’s where the uptake of new languages and tools happens.” When an organization is faced with an issue they’ve never seen before, considering it from a Scala perspective might help the pieces fall into place. So if your team is facing a difficult to resolve problem, take Scala for a test drive to investigate its potential. And when the potential for Scala development is realized, the organization can roll it out on a larger scale for more global initiatives.
There is no one size fits all programming language in the enterprise development ecosystem, but given its ten year history of success in some of the most demanding and complicated application development scenarios, Scala has proven itself as a technology that can get big and complicated jobs done. Organizations shouldn't be scared of adopting a new programming model, but should instead be excited about the benefits and improvements a new programming language might bring.
What was your motivation for moving to Scala? Let us know.
Java evolves into a functional programming language