[Grace-core] Scala Language Levels

James Noble kjx at ecs.vuw.ac.nz
Sun Feb 17 00:51:46 PST 2013


http://docs.scala-lang.org/sips/pending/modularizing-language-features.html

The Scala language defines a range of powerful abstractions that enable the construction of high-level libraries and DSLs. As with every powerful feature, these have to be used with care and responsibility. With the increasing adoption of Scala in mainstream programming, we have seen rising demands for better guidance. Not every Scala programmer needs to make use of every specialized tool in Scala’s arsenal to write libraries or DSLs. I therefore propose a scheme where some of the more advanced and contentious language features have to be enabled explicitly, typically using an import from a new language enumeration object (there are also alternative ways to enable a feature). The hope is that this will provide a good balance between the wish to provide the most powerful abstraction facilities possible and the wish to control of these features by making their usage more explicit.


peripherally related to: 

http://www.scala-lang.org/node/8610

Scala is a bit of a chameleon. It makes many programming tasks refreshingly easy and at the same time contains some pretty intricate constructs that allow experts to design truly advanced typesafe libraries. This means that, depending at what piece of code you look at, Scala might look very simple or very complex. But which pieces exactly are easy for beginners and which are more advanced?  In the end, everybody will have their own yardstick. Nevertheless, I am trying here to give a rough categorization.



More information about the Grace-core mailing list