The programming language where object-oriented meets functional.

Technologies
jvm, scala
Topics
programming languages, functional programming, programming tools, compiler
The programming language where object-oriented meets functional.

A Scalable language

Scala is an acronym for “Scalable Language”. This means that Scala grows with you. At the root, the language’s scalability is the result of a careful integration of object-oriented and functional language concepts.

Scala is the preferred workhorse language for many mission critical server systems. The generated code is on a par with Java’s and its precise typing means that many problems are caught at compile-time rather than after deployment.

Object-Oriented

Scala is a pure-bred object-oriented language. Conceptually, every value is an object and every operation is a method-call. The language supports advanced component architectures through classes and traits.

Functional

Even though its syntax is fairly conventional, Scala is also a full-blown functional language. It has everything you would expect, including first-class functions, a library with efficient immutable data structures, and a general preference of immutability over mutation.

Seamless Java Interop

Scala runs on the JVM. Java and Scala classes can be freely mixed, no matter whether they reside in different projects or in the same. They can even mutually refer to each other, the Scala compiler contains a subset of a Java compiler to make sense of such recursive dependencies.

Fun

Maybe most important is that programming in Scala tends to be very enjoyable. No boilerplate, rapid iteration, but at the same time the safety of a strong static type system. As Graham Tackley from the Guardian says: “We’ve found that Scala has enabled us to deliver things faster with less code. It’s reinvigorated the team.”

2017 Program

Successful Projects

Contributor
Andrzej Sołtysik
Mentor
Martin Duhem, Denys Shabalin
Organization
Scala
Reimplement the JDK in Scala Native
Scala Native is a new target for Scala. It uses llvm to compile Scala to native assembly code, instead of compiling it to JVM bytecode. However, as...
Contributor
Trevor Sibanda
Mentor
cvogt
Organization
Scala
Slick bug and feature hunt
This is a project to tackle as many issues as possible open in the Slick issue tracker with a priority on resolving long standing bugs and...
Contributor
Rémi Coudert
Mentor
Denys Shabalin
Organization
Scala
Implementation of concurrent java library for Scala Native
Scala Native is the a new Scala compiler under development. This compiler will permit Scala users to compile directly Scala code to binary and use...
Contributor
Dmitrii Petukhov
Mentor
Rory Graves, Guillaume Masse
Organization
Scala
Auto-completion and type information in Scastie
Scastie is an online Scala programming environment which, unfortunately, does not provide such common features as automatic code completion and ad...
Contributor
Vladimir Polushin
Mentor
Sam Halliday
Organization
Scala
Case classes a la carte with scala.meta
case classes are a very useful feature of the scala language, but can be limiting. For example, there is no way to modify the internal representation...
Contributor
Michael Viveros
Mentor
Heather Miller
Organization
Scala
Connecting potential contributors with Scala projects via Scaladex
This project's main goal is to make it easy for potential contributors to use Scaladex to find Scala projects they can work on. This will involve...
Contributor
Valthor Halldorsson
Mentor
Felix Mulder
Organization
Scala
Enforcing type safety in Dottydoc code examples
This project aims to extend the Dotty documentation compiler (alias "Dottydoc") to make code examples found in comments type safe, with the purpose...
Contributor
Ilya Kirillov
Mentor
cvogt
Organization
Scala
CBT IntelliJ IDEA‎ plugin
Add an IntelliJ IDEA‎ support for the CBT by writing a plugin or extending an exciting Scala plugin.