The programming language where object-oriented meets functional.

Technologies
jvm, scala
Topics
compilers, programming languages, functional programming, programming tools
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.”

2016 Program

Successful Projects

Contributor
Adam Wyłuda
Mentor
Denys Shabalin
Organization
Scala
Better off-heap collections for Scala
Scala-offheap is an experimental project which provides type-safe off-heap memory management for Scala language. The goal of this project is to...
Contributor
vovapolu
Mentor
Li Haoyi
Organization
Scala
Flexible Fast Parser Combinators
The FarstParse library is a simple replacement for the original Scala Parser Combinators. It uses the same ideas and implements the same...
Contributor
M.Chav
Mentor
cvogt, Steven She
Organization
Scala
Working towards a fully featured version of CBT
CBT is a build tool in its infancy with a lot of room for optimisation and enhancement. As such, development is still very fast moving. The goal of...
Contributor
Felix Mulder
Mentor
Heather Miller, darkdimius
Organization
Scala
Dottydoc
During the winter break I decided to give back to the Scala community. I re-built the entire documentation website and implemented a new search...
Contributor
Piotr Moczurad
Mentor
Sébastien Doeraene
Organization
Scala
Java source code to Scala.js IR compiler
As Scala.js is Scala compiled to JavaScript, it seems only fitting that it can also compile Java code. One of the things that make Scala so popular...
Contributor
Jess Smith
Mentor
Aleksandar Prokopec
Organization
Scala
Implementation of Coroutine-­Based Utilities
Scala Coroutines generalizes subroutines in a clean and composable way, but currently provides little value to the average user who wants to use...
Contributor
Akhilesh Srikanth
Mentor
Rory Graves, Eugene Burmako
Organization
Scala
Source Code Preserving AST
The goal of this project is to design a unifying AST which helps preserving source ­code attributes thereby allowing...
Contributor
sugakandrey
Mentor
Rory Graves, Sam Halliday
Organization
Scala
ENSIME Graphocalypse
ENSIME is an IDE feature provider, available for most popular text editors. Currently, it uses regular relational database with a Lucene full-text...
Contributor
coderabhishek
Mentor
Li Haoyi
Organization
Scala
Ammonite - Better Scripts in Scala
Ammonite is an improved Scala REPL supporting convenient and robust File System operations and Typesafe bash scripting coming over lot of sloppiness...