The video below is a very cool talk on why we use Scala by Martin Odersky.
As processors are no longer getting significantly faster per core (Moore’s law), but we get more cores, we need to figure out how to execute our programs faster.
Through Scala we can use parallel and concurrent programming.
Other languages use functional programming too (e.g. JS can do it) but Scala is one of the more modern languages built specifically for it. It also allows us to solve problems such as a mutable variable changing when there are concurrent changes. (Too many tweets changing the net number of tweets at the same time, the variable can be multiple different values at the same time, and this can cause bugs).
In Scala we think in terms of space rather than time as in iterative languages (we do this, now we do this, and last we do this…) which allows multiple ‘workers’ to perform different tasks at the same time.
Von Neumann, the smartest man who ever lived and one of the pioneers of the computer (and a pioneer in about 50 other extremely important fields), is my personal hero, so I thought this was pretty cool:
The current computer behaves in very much the von Neumann paradigm. The thought that this style is actually limiting is an interesting paradigm.