Winner of the ScriptBowl contest at the 2012 JavaOne conference, Scala first appeared on January 20, 2004 though its development and design started a few years earlier, in 2001. The open source programming language for general software applications was designed by Martin Ordesky and developed by Programming Methods Laboratory of École Polytechnique Fédérale de Lausanne.
According to Wikipedia, ‘many of Scala's design decisions were inspired by criticism of the shortcomings of Java,’ but the language was also influenced by Eiffel, Erlang, Haskell, Lisp, Pizza,Standard ML, OCaml, Scheme, Smalltalk, and Oz. An acronym for “Scalable Language”, Scala is designed to grow every time its users’ demands increase. “Scala grows with you. You can play with it by typing one-line expressions and observing the results. But you can also rely on it for large mission critical systems,” according to Scala’s official website.
Aiming to develop ‘a small set of core constructs that can be combined in flexible ways,’ Scala’s functions, which are similar to other regular classes, are also objects and work together perfectly. Scala’s functional nature makes it ‘easier to write safe and performant multi-threaded code.’ “Scala particularly shines when it comes to scalable server software that makes use of concurrent and synchronous processing, parallel utilization of multiple cores, and distributed processing in the cloud,” Ordesky explains under the Future-Proof section.
Similar to Java, Scala is also object-oriented, and uses a similar syntax, but differs from Java due to its use of various features of functional programming languages such as Scheme, Standard ML and Haskell, and also featuring operator overloading, optional parameters, named parameters, raw strings, and no checked exceptions. According to Scala’s official website, “every value is an object and every operation is a method-call.”
Besides using classes and traits to support ‘advanced component architectures,’ Scala allows its users to add new operations to existing classes, even if new operations don’t come from Scala, or other popular programming languages.
Unlike other programming languages, Scala is very functional, easy to work with, saves a lot of time and most importantly, it is fun. “Even though its syntax is fairly conventional, Scala is also a full-blown functional language. It has everything you would expect, including first-class functions, a library with efficient immutable data structures, and a general preference of immutability over mutation,” Odersky writes. “Maybe most important is that programming in Scala tends to be very enjoyable. No boilerplate, rapid iteration, but at the same time the safety of a strong static type system,” he adds.
Scala’s diverse community, which is an important part of the Java ecosystem, includes mailing lists such as Scala-User, Scala-Announce, Scala-Language, Scala-Debate, Scala-Tools: Scala-SIPs, and Scala-Internals. People from all around the world can contribute, learn, teach others, and also communicate with each other by joining the Scala community, which includes chat rooms, user groups, and conferences as well.
Among giant companies that use Scala are Apple, Intel, Foursquare, LinkedIn, The Guardian UK, AOL, Sony Pictures Entertainment, Coursera, Xerox, etc. Twitter is also using Scala as its main programming language. You can check out this article here to read more about it and learn more about Scala School as well.
44B Borisova Str.
7012, Ruse, Bulgaria
1000 Brussels, Belgium