I find the page here (All Available Versions | The Scala Programming Language) a little confusing. Can someone clarify something for me (and probably quick edit to the page would be helpful). What is a “Maintenance Release”? Is that like a Long Term Support version? I took the Coursera course on Fundamentals of Scala and so I’ve seen version 3, but I started a project yesterday and decided to use version 2.12 because I guess I assumed that was an LTS, but I just remembered when the versions came out and I think I misunderstood that. Can someone clarify if there are LTS versions, and what “Maintenance Release” means?
(I’ll answer for Scala 2 only, since that’s my area of expertise.)
We don’t have a concept of “LTS versions” for Scala 2.
Scala 2.13.x releases will continue indefinitely. That’s very likely true of 2.12.x as well, though the changes on that branch are more modest, which I believe is why it’s referred to as a “Maintenance Version” — it isn’t the current version, but it still gets at least minimal maintenance.
If you get commercial support for Scala through Lightbend, only Scala 2.13 is officially supported for running the Lightbend stack, but we’d do our best to handle support tickets about 2.12 regardless, within reason.
If you choose to use Scala 2, you should definitely use 2.13 unless something specific is really forcing you to stay on 2.12 or 2.11. 2.13 is the best-quality, best-supported Scala 2 version and has the longest future ahead of it.
If you have the choice to use Scala 3, this newest version provides simplifications and more concise syntax together with some new powerful language features that further can scrap your boilerplate and increase abstraction level.
Your Scala 3 code can consume Scala 2.13 binaries, and both versions share the same stdlib, so you are not stuck even if you have dependencies that are still on Scala 2.13.
For Scala 3 there are plans under discussion to provide a “real” LTS versions scheme for Scala 3 and the next LTS will perhaps be 3.3, as proposed in this open PR:
Image depicting potential future releases in a LTS scheme: