

Programming in Scala(2.8), 2nd Ed.(preprint/draft book), Odersky, Spoon, Venners - gtani
http://www.artima.com/shop/programming_in_scala_2ed

======
meastham
I read this book as part of a reading group during my internship this summer.
It's a good read, but I couldn't help but feel like the language designers
perhaps could have used a bit more restraint in their design. It is very much
a "kitchen sink" language.

~~~
nadam
"the language designers perhaps could have used a bit more restraint in their
design."

The problem with that if they would follow your advice it would not be Scala
anymore. There are dozens of programming languages which used more restraints
in their design, but I've chosen Scala. The reason is that I don't want to use
different languages for different tasks unnecessarily. Scala is almost a no-
compromise solution: statically typed, fast, concise, supports functional
style where I prefer that and supports imperative style where I prefer that.
I've been programming in Java for almost 10 years, and it was a no-brainer for
me to switch to scala. This is the most important production language for me
right now. The only drawback is that it is not for beginners. It is for mature
programmers. A beginner will be annoyed by the lot of information this book
contains. But after lots of years of programming let's say in Java all the
features in the language feels as a bless from god.

By the way the languae is not particularly complicated. Its language
specification is someting like 200 pages while Java's language specification
is something like 600 pages. The BNF syntax description of Scala is smaller
than Java's. It contains fewer keywords. Scala is not more complicated than
Java, rather it is deeper, and feel more complicated (espceially in the
beginning.)

~~~
jules
The size of a specification does not correlate strongly with it's mental
complexity. For example what do the boolean formulas (a <=> b) => (c <=> d),
and a & b & c & d & e & f mean? Or I could give you a specification of core
Lisp in half a page. Does that mean that Java is 1200x more complicated?
Certainly not.

Scala is definitely more mentally complicated than Java, and on the bright
side this makes it much more powerful too.

------
lhnn
I just bought the first edition... I need to sell it quickly to some other
sap!

