Scala, short for Scalable Language, is a hybrid functional programming language. It was created by Martin Odersky, professor of programming methods at École Polytechnique Fédérale de Lausanne (EPFL) in Switzerland. Scala smoothly integrates the features of object-oriented and functional languages. Scala is compiled to run on the Java Virtual Machine. Many existing companies, who depend on Java for business-critical applications, are turning to Scala to boost their development productivity, applications scalability and overall reliability.
The design of Scala started in 2001 at the École Polytechnique Fédérale de Lausanne (EPFL),after an internal release in late 2003, Scala was released publicly in early 2004 on the Java platform.
Scala runs on the Java platform (Java virtual machine) and is compatible with existing Java programs. As Android applications are typically written in Java and translated from Java bytecode into Dalvik bytecode (which may be further translated to native machine code during installation) when packaged, Scala’s Java compatibility makes it well-suited to Android development, more so when a functional approach is preferred.
Scala is object-oriented and a functional language in the sense that every function is a value and every value is an object so ultimately every function is an object.
Scala is not the only attempt to create a “better Java”. Alternatives such as Kotlin and Ceylon have also gone down that path, but they made the fundamental decision to remain very close in syntax to the Java language itself, so as to minimize the learning curve. This may seem like a great idea, but it is ultimately somewhat self-defeating in that it forces you to stay within a number of those very same Java paradigms that were the reason for wanting to create a “better Java” in the first place. In contrast, Scala was created specifically with the goal of being a better language, shedding those aspects of Java which it considered restrictive, overly tedious, or frustrating for the developer. As a result, Scala has a steep learning curve that keeps some companies away from it. However, companies like Twitter, Apple, Linkedin, Airbnb or UBS are using it.
About Martin Odersky
Martin Odersky (born 5 September 1958) is a German computer scientist and professor of programming methods at École Polytechnique Fédérale de Lausanne (EPFL) in Switzerland. He specializes in code analysis and programming languages. He designed the Scala programming language and Generic Java (and Pizza before) both with others. He implemented the GJ compiler, and his implementation became the basis of javac, the Java compiler.
In 1989, he received his Ph.D. from ETH Zurich under the supervision of Niklaus Wirth, who is best known as the designer of several programming languages, including Pascal. He did postdoctoral work at IBM and Yale University.