Scala is an elegant and concise programming language that integrates both functional and object oriented paradigms

OVERVIEW:

Write beautiful, powerful code

The Language of Pragmatism

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. Scala smoothly integrates features of object-oriented and functional languages, enabling developers to be more productive while retaining full interoperability with Java and taking advantage of modern multicore hardware. Scala makes it easy to avoid shared state, so that computation can be readily distributed across cores on a multicore server, and across servers in a datacenter. This makes Scala an especially good match for modern multicore CPUs and distributed cloud-computing workloads that require concurrency and parallelism.

Productive

Thanks to its type inference and other features, Scala is a succinct language, typically enabling developers to reduce the size of source code by at least a factor of 2 or 3 compared to Java. Scala is bundled with a rich set of developer tools, resulting in productivity comparable to languages like Ruby or Python, while retaining the performance advantages of Java.

Scala allows us to write better, more beautiful code, and it just makes us better engineers. It strikes the balance between conciseness, expressiveness and practicality, and you can do amazingly complex things with few lines of code.- Wix

Scalable

Scala emphasizes scalability - large development teams, large codebases, and large numbers of CPU cores. Adapting to a multicore and distributed computing world, the Typesafe Reactive Platform pairs Scala with an industrial-strength implementation of the Actor concurrency model, called Akka.

Interoperable with Java

Since Scala is a JVM language, all of your existing Java libraries and tools can be used seamlessly, ensuring that previous investments are fully protected. Furthermore, you’re able to fully leverage your developers Java programming skills as they become proficient with Scala.

Scala programs are compiled directly to Java bytecode that runs on the extremely mature JVM, and leverages the JVM’s robust just-in-time compilation, garbage collection, and well-understood deployment techniques. The operations team won’t see a difference. Developers keep working in their familiar tools. But they’re writing code that’s shorter, faster, more scalable, more correct, and even more fun.

The Scala programming language was originally developed by Typesafe co-founder Martin Odersky's research group at EPFL.

GETTING STARTED:

To get started with Scala, we recommend checking out the following resources:

Scala Code Samples & Tutorials

Hello Scala 2.11 Activator Template

Scala is a general purpose programming language designed to express common programming patterns in a concise, elegant, and type-safe way. This very simple Scala application will get you started building and testing standalone Scala apps. This app uses Scala 2.11 and ScalaTest.

Atomic Scala Examples Activator Template

The Atomic Scala Examples Activator template is a companion to Atomic Scala, by Bruce Eckel, but is useful in its own right. The template takes each of the examples in the book and provides them in an executable and easily runnable form. If you want to help someone to learn to program using Scala, here’s your template.

Scala Reading Materials

Dzone Refcard for Scala

Atomic Scala

This should be your first Scala book, not your last. Dianne Marsh and Bruce Eckel show you enough to become familiar and comfortable with the language – competent, but not expert. You’ll write useful Scala code, but you won’t necessarily be able to read all the Scala code you encounter.

Scala for the Impatient

Cay Horstmann does for Scala what he did for Java in his global best-seller Core Java: he offers a rapid, code-based introduction that's relentlessly practical and 100% useful. Every concept and technique in Scala for the Impatient is presented in "blog-size" chunks that can be digested quickly and reviewed as needed for specific tasks.

Scala in Depth

Scala in Depth, by Senior Typesafe Engineer, Josh Suereth, is a unique new book designed to help you integrate Scala effectively into your development process. By presenting the emerging best practices and designs from the Scala community, it guides you through dozens of powerful techniques example by example.

Scala Videos & Webinars

Welcome to Scala 2.11

The Scala team at Typesafe has been busy over the last year working to make the platform faster, smaller, and more stable, as well as continuing to refine experimental language features. In this webinar, the Scala team will take you on a tour of these changes, give you tips for upgrading, discuss the plans for the upcoming releases and field your questions.

Scala: The Simple Parts

Martin Odersky, creator of Scala, takes you on a journey to what he views as the core of the language. The core is built from a moderate number of general and orthogonal concepts that can be combined freely. The parts are simple, but the combinations can be as elaborate s one wants to make them.This keynote from Scala Days 2014 covers how, when done right, simple parts in the language lead to libraries that have clear interfaces and can be used in flexible ways.

Scala Testing

Deep Dive into the Typesafe Reactive Platform - Akka and Scala

In this episode of the "Deep Dive in to the Typesafe Reactive Platform" series, Nilanjan Raychaudhuri walks you through building Reactive apps with Akka and Scala. He will expand on both projects and outline how they support the Typesafe Platform.

Scala Success Stories

Improved Scaling with Scala and Akka! - WhitePages

By replacing Perl and Ruby applications with Scala-based code and an Akka runtime environment, the WhitePages team was able to deliver order of magnitude improvements in application speed and hardware utilization.

From 5 to 50 Million Users and Beyond - Wix

Typesafe aids in managing cable operations - CCAD

Scaling developer productivity, improving code quality and removing locking and contention were reasons that influenced CCAD’s decision to move away from the traditional Java-based stack they were using to look for more sustainable alternatives. The Typesafe Reactive Platform assisted CCAD in addressing these issues, and enabled process changes elsewhere in the organization that improved overall product quality too.

SUBSCRIPTION:

Ensure the Success of Your Scala Application

If you plan to develop a commercial application, your business could benefit from a relationship with Typesafe. The Typesafe Together annual subscription program is designed to mitigate risk and ensure the successful launch and operation of your application by delivering certified builds and amazing service throughout the entire project lifecycle—from prototyping to production.

From the blog

At Typesafe, we have already partnered with quite a few consulting firms to provide professional services to companies looking to Go Reactive. In doing so, we ask each of our partner candidates to put together a Typesafe Activator template that showcases their skills, capabilities and quality of work. However, that doesn't give us much visibility into the specific strengths each firm brings to the table. To help provide that visibility, we recently created a capabilities model for partners that reflects the many different aspects of our technologies...

Typesafe Deputy CTO Viktor Klang goes into the world of microservices to see how these architectures emerge from the constraints of reality. Viktor reviews the problems imposed by reality, and shows how they can not only be solved, but how the constraints free us from misconceptions that are otherwise very easy to acquire. We also explore how distributed systems are at the heart of microservices-based architectures and how communication shapes the structure, behavior and development of the software...