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.
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 emphasizes scalability - large development teams, large codebases, and large numbers of CPU cores. Adapting to a multicore and distributed computing world, the Typesafe 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.
The most popular IDEs support Scala
Scala IDE for Eclipse
If you've used Eclipse then check out the Scala IDE for Eclipse. It provides complete Scala tooling in a familiar environment. You can grab a pre-packaged distribution and start coding right away. Get started with the Scala IDE for Eclipse
Scala Support in IntelliJ IDEA
Scala Support in Sublime Text
Scala Support in NetBeans
The Scala Plugin for NetBeans provides syntax checking, syntax highlighting, auto-completion, pretty formatter, occurrences mark, brace matching, indentation, code folding, function navigator, go to declaration, project management and a shell console.
Free E-Books to Get You Started
Check out these free e-books to get you started or further into Scala:
- Scala for the Impatient by Cay Horstmann
- Scala in Depth by Joshua D. Suereth