Have the best of both worlds. Construct elegant class hierarchies for maximum code reuse and extensibility, implement their behavior using higher-order functions. Or anything in-between.Learn More
click the boxes below to see Scala in action!
Scala runs on the JVM, so Java and Scala stacks can be freely mixed for totally seamless integration.
So the type system doesn’t feel so static. Don’t work for the type system. Let the type system work for you!
Use data-parallel operations on collections, use actors for concurrency and distribution, or futures for asynchronous programming.
Combine the flexibility of Java-style interfaces with the power of classes. Think principled multiple-inheritance.
Think “switch” on steroids. Match against class hierarchies, sequences, and more.
Functions are first-class objects. Compose them with guaranteed type safety. Use them anywhere, pass them to anything.
Today, we are excited to release Dotty version 0.1.2-RC1. This release serves as a technology preview that demonstrates new language features and the compiler supporting them.
Dotty is the project name for a language and compiler that is slated to become Scala 3.0. This is an ongoing development, transparently developed as open source software. The Dotty project started more than 4 years ago. It reached a major milestone in 2015 by achieving bootstrap, that is, showing that the new compiler could compile itself. Today we have reached another milestone with this first release of the codebase. Developments will not stop here, but they will in the future all be part of regular time-based releases.
You have several alternatives: use the
sbt-dotty plugin, get a standalone
installation, or try it online on Scastie.
Using sbt 0.13.13 or newer, do:
sbt new lampepfl/dotty.g8
This will setup a new sbt project with Dotty as compiler. For more details on using Dotty with sbt, see the example project.
Releases are available for download on the Releases section of the Dotty repository: https://github.com/lampepfl/dotty/releases.
We also provide a homebrew package that can be installed by running
brew install lampepfl/brew/dotty
Scastie, the online Scala playground, supports Dotty. You can try it out there without installing anything.
This technology preview demonstrates new language features planned for Scala 3:
We also ship with tools that help you try out the Dotty platform:
See here for the full release notes.
Starting from this release, we are adopting a time-based release schedule: - Nightly builds will be published, for those wanting to be at the forefront of development. - Every 6 weeks, a release candidate will be cut based on the latest nightly build. - Every 6 weeks, the latest release candidate becomes a release.
At the end of 6 weeks, the milestone will be promoted to a stable release. See here for the full version number explanation.
Over the coming weeks and months, we plan to work on the following topics:
If you want to get your hands dirty with any of this, now is a good moment to get involved! Join the team of contributors, including Martin Odersky (@odersky) Dmitry Petrashko (@DarkDimius), Guillaume Martres (@smarter), Felix Mulder (@felixmulder), Nicolas Stucki (@nicolasstucki), Liu Fengyun (@liufengyun), Olivier Blanvillain (@OlivierBlanvillain), and others!
Dotty now has a set of libraries that are built against every nightly snapshot. Currently this includes scalatest, squants and algebra. Join our community build to make sure that our regression suite includes your library.
To get started, see https://github.com/lampepfl/dotty.