How was Scala created? What are some of its key features? And why are many tech giants using it?

|

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.

 

Here are some of Scala’s key features according to Stackoverflow:

 

Functions are Objects

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.

Object-Oriented

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.

Fun and Functional

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.

Diverse community

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.


Silvae Technologies Ruse, Bulgaria

44B Borisova Str.
7012, Ruse, Bulgaria

Silvae Technologies Brussels, Belgium

1000 Brussels, Belgium