../_images/scalalogo.png

About Scala

“Scala is an object-functional programming and scripting language for general software applications, statically typed, designed to concisely express solutions in an elegant, type-safe and lightweight (low ceremonial) manner. Scala has full support for functional programming (including currying, pattern matching, algebraic data types, lazy evaluation, tail recursion, immutability, etc.). It cleans up what are often considered poor design decisions in Java (such as type erasure, checked exceptions, the non-unified type system) and adds a number of other features designed to allow cleaner, more concise and more expressive code to be written.” [ScalaWikipedia]

Scala has no connection to La Scala or Teatro alla Scala (the world renowned opera house in Milan), but we (especially Dr. Thiruvathukal) love the name because it addresses the traditions of programming languages and scalable computing, while La Scala is the title of one of his favorite jazz piano albums by Keith Jarrett, who often names his concerts by the venues where he performs. [LaScalaConcert]

We’d like to think that the Scala language represents the design ideal of being “small and beautiful” but also great for computer science and practical problem solving. We hope you agree!

../_images/640px-Milano-scalanotte_e.jpg

Source is Wikimedia Commons [LaScala]

Why Scala?

Scala is an object-oriented, functional, and concurrent general-purpose programming language. As the language behind Apache Spark, a widely used data science framework, Scala has proven to be a suitable choice for data science. Scala can also be an effective choice for learning computer science.

But why not Python, R, or Julia?

Unlike those dynamically typed language, Scala is statically typed, which means that type errors are caught at compile time rather than at runtime. This typically helps with both reliability and performance. Because Scala’s type system is mostly implicit, we can use Scala in a way that is similarly concise and expressive as Python, but with the above-mentioned benefits of static typing.

Scala thereby addresses the P3 concerns of performance, portability, and productivity in high-performance computing.

Scala appeared on the programming language landscape in 2004 and has had a stable presence among the top 20 languages for over a decade.

RedMonk Language Rankings

Based on the RedMonk programming language ranking, which combines data from GitHub and StackOverflow, Scala is ranked 14th in 2024, along with shell scripting languages and Kotlin.

RedMonk Programming Languages Rankings - 2024-2025

Rank

Language

1

JavaScript

2

Python

3

Java

4

PHP

5

C#

6

TypeScript

7

CSS

7

C++

9

Ruby

10

C

11

Swift

12

Go

12

R

14

Shell

14

Kotlin

14

Scala

17

Objective-C

18

PowerShell

19

Rust

19

Dart

../_images/lang.rank_.0624.wm_-2048x1689.png

It was ranked similarly (13th) ten years earlier.

Technology Radar

Thoughtworks maintains a resource known as the Technology Radar [TWTechRadar], which uses four classifications for items in various categories, including languages and frameworks:

  • Adopt

  • Trial

  • Assess

  • Hold

Scala has been listed under Adopt since October 2012.

Language Complexity

See our 2013 ACM SIGCSE Scala Workshop presentation for now, http://goo.gl/Q68fA.

References