The Scala Programming Language
The name Scala comes from the word scalable, and true to that name, it’s used to power the busiest websites in the world, including Twitter, Netflix, Tumblr, LinkedIn, Foursquare, and many more.
Here are a few more nuggets about Scala:
- It’s a modern programming language created by Martin Odersky (the father of
javac), and influenced by Java, Ruby, Smalltalk, ML, Haskell, Erlang, and others.
- It’s a high-level language.
- It’s statically typed.
- It has a sophisticated type inference system.
- It’s syntax is concise but still readable — we call it expressive.
- It’s a pure object-oriented programming (OOP) language. Every variable is an object, and every “operator” is a method.
- It’s also a functional programming (FP) language, so functions are also variables, and you can pass them into other functions. You can write your code using OOP, FP, or combine them in a hybrid style.
- Scala source code compiles to “.class” files that run on the JVM.
- Scala also works extremely well with the thousands of Java libraries that have been developed over the years.
- The Akka library provides an Actors API, which was originally based on the actors concurrency model built into Erlang.
- The Play Framework is a lightweight, stateless, web development framework that’s built with Scala and Akka. (In addition to Play there are several other popular web frameworks.)
- A great thing about Scala is that you can be productive with it on Day 1, but it’s also a deep language, so as you go along you’ll keep learning, and finding newer, better ways to write code. It’s said that Scala will change the way you think about programming (and that’s a good thing).
- Of all of Scala’s benefits, what I like best is that it lets you write concise, readable code. The time a programmer spends reading code compared to the time spent writing code is said to be at least a 10:1 ratio, so writing code that’s concise and readable is a big deal. Because Scala has these attributes, programmers say that it’s expressive.