Scala

Updated 2022-04-09

Bernard DeffargesBernard Deffarges
scala_logo

Often people are asking us why we have chosen Scala as our main programming language at llaama. Why not Java (after having enjoyed it for so many years…), Python, Go, C++ or Rust, etc.?

There are many reasons for this decision but the top one is related to the main goal we want to achieve with the products we are developing. We want to help organizations that are doing Data Analysis and AI to produce results that are Transparent, Traceable, Replicable and Reproducible (aka T2R2). For that, we need a programming language that is very strong, very powerful, mature and ready for true cloud native software engineering.

It seems to us that Scala is currently the best possible choice ! It has a great statically typing system that seems dynamic from a developer standpoint. Scala is the perfect mixture of Object-oriented (OO) and functional programming (FP). It has many very powerful features like pattern matching, case classes, traits, etc.

For concurrency and cloud native engineering, the super-powerful Akka library written in Scala and supported by Lightbend, Inc. implements the Actor model and hundreds of features around it (like clustering, sharding, streaming, split-brain resolution, etc.). It is a great choice that enables us to develop amazing solutions that are designed for the cloud from the very beginning.

A lot of my Java developer friends keep asking me, “many features in Scala are now coming to Java, thus why change ?”. But why wait ? Many new features in Java today were available in Scala 15 years ago and Scala was and is running on the JVM and is fully compatible with Java and its ecosystem… It’s very likely that Java in 10 years will be very close to today’s Scala :-)

One of my favorite books on Java is “Effective Java Programming” by Josh Bloch. When I started with Scala back in 2011, it felt like many topics, best practices or design patterns that Josh is describing were just directly available in Scala as language features (e.g. enforcing immutability as much as possible).

What also gets really interesting with language like Scala is how a program gets closer to a human readable textbook.

So, thanks a lot and congratulations to the great people behind Scala and especially to Martin Odersky who invented it at the École polytechnique fédérale de Lausanne almost 20 years ago.

BTW, if you are wondering who is using Scala… LinkedIn, Tesla, Netflix, Zalando, Twitter, etc. are all using Scala. Many very powerful data science or streaming platforms like Spark, Kafka or Akka are written in Scala.

So, if you have decided to learn a new programming language in 2022, give Scala a try, you will love it!