LEARN » SCALA

The language of pragmatism

Scala is the functional and object oriented programming language that makes Lightbend Reactive and helps developers write code that’s more concise than other options, so apps are less costly to maintain and easier to evolve.

Martin Odersky, creator of the Sun javac compiler and Java 5 generics, invented Scala as a pragmatic evolution of Java. Scala is the most popular Java alternative on the JVM. Scala offers a seamless migration path, because Java libraries are easy to use from Scala, and vice versa.

Scala has taken over the world of Fast Data, which is what some are calling the next wave of computation engines that rely more on the speed of data processing rather than the size of the batch, and the ability to process event streams in real time. Several prominent examples of that movement are Apache Spark, Apache Kafka, Apache Flink, and Akka Streams, which are rapidly gaining mainstream momentum. Many of the most admired brands around the globe are transforming their businesses with Scala through fast data applications that are changing the world.

Start Learning

Start Building

Scala is poised to be a major mainstream player for decades to come.

InfoWorld

Creating Your Scala Team

To create a Scala team, there are two options - recruit or train. With the popularity of Scala exploding, recruiting developers with more than a year’s worth of production Scala experience can be challenging and it is generally not cost effective or possible to staff an entire Scala team using recruitment alone. A combination of targeted recruitment and a well structured onboarding including training, mentorship and support provides the strongest path to success.


Insights from Twitter and Workday.



Suggested reading for self-learning.


Features
and Capabilities

Based on the actor model

The actor model provides a higher level of abstraction for writing concurrent and distributed systems. It alleviates the developer from having to deal with explicit locking and thread management, making it easier to write correct concurrent, parallel and distributed systems.

Distributed by default

Actors communicate with asynchronous message-passing and are location transparent, which ensures a single unified programming model, with the same semantics, regardless if it is used in a local or distributed context. Allows scaling the system, without changes, from a single process to clusters of hundreds of machines.

Built-in supervision

Actor supervision hierarchies ensures that every single actor's health is monitored and managed—allowing isolation, detection and recovery from failure, in an fully automated fashion.

Resilient self-healing

When an actor crashes, its parent can either restart it or escalate the failure up to its supervisor, responsible for managing the lifecycle of its children. This enables a clean set of semantics for managing failures in a concurrent, distributed system and allows for writing highly resilient systems that self-heal.

Focus on business logic

Akka, through message-passing, raises the abstraction level from low level plumbing to workflow. This allows you to focus on high-level semantics—communication patterns, how data flows in the application, i.e. the business logic—instead of threads, locks and low level protocols.

The perfect fabric for the Cloud

Stateless, asynchronous, and location transparent, Akka is ideally suited for hybrid cloud architectures and the elastic scaling of cloud platforms. In an experiment with Google, we were able to start a 1000 node Akka cluster on Google Compute Engine (GCE) in less than 4 minutes, which included the time to start the GCE instances.

Streaming back-pressure enabled

Akka Streams is the perfect tool for modelling streaming, data pipelines and workflow, with its built-in support for back-pressure—ensuring steady state through flow control—rich graph DSL for data transformations, and growing ecosystem of drivers for integration (Alpakka project).

Subscription for advanced healing

Network partitions are inevitable when running distributed systems. An annual subscription to Lightbend Reactive Platform enhances Akka cluster resilience and prevents data loss with predefined resolution strategies for recovering unreachable nodes during network partitions.

Subscription for monitoring

An annual subscription to Lightbend Reactive Platform includes expert instrumentation for monitoring Akka. The agent-based approach understands streams, flows, futures, and traces and integrates with existing visualization solutions.