IntroductionIn this post, I'm going to talk about "Dotty" in brief. Will try to deliver more and more posts about it soon.
Dotty is a Next Generation Compiler for Scala Programming Language.
What is Dotty?
Dotty is a platform to try out new language concepts and compiler technologies for Scala. The focus is mainly on simplification. We remove extraneous syntax (e.g. no XML literals), and try to boil down Scala’s types into a smaller set of more fundamental constructors. The theory behind these constructors is researched in DOT, a calculus for dependent object types.
What are the complications that I can have If I start using Dotty?
How do I migrate my code to Dotty?
What about scalac:
|Union, Intersection and Literal singleton types||Implemented|
|Fast compilation(phase fusion)||Implemented|
|@Static methods and fields||Implemented|
|Sbt incremental build||Implemented|
|Non-blocking lazy vals||Implemented|
|Option-less pattern matching(based on name-based patmat)||Implemented|
|Function arity adaptation||Implemented|
|Non-boxed arrays of value classes||In progress|
|Working contravariant implicits||In progress|
|Whole program optimizer||In progress|
|Library defined optimizations||In progress|
|HList & HMaps\Record types||Under consideration|
|Implicit functions||Under consideration|
|Auto-completion in repl||Under consideration|
|Spec Option-less pattern matching||Under consideration|
|Multiverse equality||Under consideration|
|Exhaustivity checks in pattern matching||Under consideration|