- Currently supported versions
- 2.12
- 2.13
- Important progress on compiler performance and collections rewrite
- New, binary compatible
Vector
implementation - Most recent release 2.13.11
- Allow, under some restrictions to use Scala 3 libraries in Scala 2 code (using Tasty) and vice-versa. See the Compatibility Reference pages in the Scala 3 Migration Guide
- Dotty 0.21.0-RC1: feature complete for Scala 3 (December 2019)
- 3.0.0 released on May 13, 2021
- Current release 3.3.0 released on May 30th, 2023
- IDE support
- Visual Studio Code with Metals
- integrated support in Metals including Scala Worksheet support!
- IntelliJ
- Scala 3 support with the Scala Plugin
- Visual Studio Code with Metals
- There's the Scala 3 Migration Guide!
- As mentioned before, the Scala 2 application we'll be working with, uses the Akka toolkit and is composed of a number of so-called Actors
- Akka Actors are based on the Actor Model invented by Carl Hewitt in 1973
- The Actor Model provides:
- A higher level of abstraction for writing concurrent and distributed applications
- Alleviates the developer from having to deal with explicit locking and thread management
- An Actor is the base unit of computing in the Actor Model
- An Actor
- Has an address (of type ActorRef)
- Can send messages to other Actors
- Can create other Actors
- Has a behaviour that can potentially change after processing a message
- An Actor has a Protocol that defines
- The message [types] it can process: so-called Commands
- The messages it can send in response: so-called Responses