Scala has been around for quite some time, and when it first came out, it was touted as the best language to replace Java. If you are looking for an exciting job and learning a functional programming language, then Scala should be your first choice. When I heard that Twitter was using Scala, I got curious and started collecting all the sites and articles to learn how to program in Scala. The result is that there are indeed code distinctions and paradigm shifts that can make early learning Scala programming a bit difficult, but the result is a much cleaner and well-organised language that is ultimately easier to use and increases productivity.
The Scala language is maintained by the Scala Centre at EPFL which focuses on documentation, education, the open source community and its partnership with different organisations. Scala is a type-safe JVM language that incorporates both object-oriented and functional programming in an extremely concise, logical and extraordinarily powerful language. Scala's supposed weakness of being too complicated or too rich can be countered by developing coding standards, creating more robust editors and tools, and better educating polyglots on how best to use Scala. The popularity and use of Scala is growing rapidly, as evidenced by the increasing number of vacancies for Scala developers.
The name Scala is a blend of two words, Scalable and language, representing that Scala is scalable and designed to grow with the needs of the users. A large part of the Scala community only uses Scala because it needs to interoperate with Spark in some way. Some of the more complex features of the language (tuples, functions, macros, to name a few) ultimately make it easier for the developer to write better code and increase performance by programming in Scala. A recent tweet from a friend of mine pointed out that public interest in the Scala programming language seems to have stagnated or declined, which coincides with my sense of the latest trends and zeitgeist.
I can honestly say that if someone had shown me the book Programming in Scala by Martin Odersky, Lex Spoon and Bill Venners in 2003, I probably would never have created Groovy. While there will always be use cases where high-concurrency reactive architectures or purely functional programming are the best tool for the job, I hope that in the future developers will be able to get into the Scala language easily and simply, and only have to learn those more advanced techniques when they need to. More recently, with Typed Actors and Reactive Streams, the Akka developer experience has moved much closer to the type checking experience you would expect in typical Scala programs. Evangelism has died down, to some extent, but usage is still strong and everyone recognises functional programming as a possible style in which to write their Scala applications.
This blog post will look at why I think this has happened, where Scala is now, and what the future holds for the Scala community. Scala enough to give you a preliminary idea of Scala's power and capabilities and whet your appetite for learning the language.