I’ve been working with the Java programming language recently. That work led me to investigate the Scala language. Scala is similar to Java but has many functional language features, and can be executed by a command line interpreter.
I installed Scala from scala-lang.org without too much difficulty and did a basic Hello World introductory program.
I’m skeptical about the usefulness of Scala. After my very brief exploration, I had the feeling that Scala was the result of researchers investigating interesting programming language concepts, rather than engineers creating a language which has practical improvements over an existing language.
I found myself agreeing with most of the criticism of Scala that I found on the Internet: Scala is overly complex and has a steep learning curve. Now to be sure, there are plenty of Scala advocates out there but they seem to be a minority group. The situation reminds me very much of the F# programming language and its relationship to C#.
In the end, all programming languages are wrappers around machine code. For developers, programming language preferences vary. For me, Scala just doesn’t feel right and I don’t see any significant technical/language advantages to using Scala rather than Java (except of course when an interpreted language is needed or useful, such as with the Spark Big Data framework). In addition, the fact that there are so few Scala programmers means that a company that decides to use Scala could easily run into staffing issues. I have no issues with someone wanting to use Scala, but I don’t think I’d want to work in an environment where Scala was the primary language.