Now, we have the latest There was a Scala Improvement Document (Updated link) written by none other than Marc Stiegler, one of the major participants in the E effort. Coincidence?
Tangentially, Marc is also the author of Earthweb — an extremely interesting SF novel that posits a method of solving really big problems (planetary existential risks!) by harnessing the collective wisdom of huge numbers of people using microeconomic incentives.
]]>I can honestly say if someone had shown me the Programming Scala book by by Martin Odersky, Lex Spoon & Bill Venners back in 2003 I’d probably have never created Groovy.
(emphasis added)
]]>David R. MacIver and Martin Odersky have both been working on Just A Library versions of break and continue, which Scala otherwise lacks.
Say it with me! “When you have the right language features, you don’t need any more language features!”
]]>Scala’s flexible syntax, implicit conversions and powerful support for abstraction are extremely conducive to the implementation—as libraries—of useful software constructs and idioms that would normally need to be “baked in” to other languages.
Many of my cheeky pot shots at Project Coin are illustrative in a small way of this capability.
To illustrate further, I thought I’d start off by listing just a few of the well-liked features of other languages that have been implemented successfully as Just A Library In Scala:
Other Language | Feature | Scala |
---|---|---|
Erlang | Actor concurrency | Scala Actors |
(many) | Map Literals | Map("hi" -> true, "bye" -> false) |
(many) | List Literals | List("hi","there") or "hi" :: "there" :: Nil |
(various) | Automatic Resource Management | manage(stream) { stream.write… } |
Before you write to complain that any of the above has annoying syntax, please remember that It’s Just A Library, and if it bothers you enough, you can write your own.
]]>Scala teams should live by the Spider-Man™ principle—“With great power comes great responsibility.”
Meaning, when you’re using a very flexible and powerful language, be sure that you use that flexibility and power to make things easier to understand, not harder.
]]>Why “Project Wallet”? Well, why settle for a handful of coins?
]]>Are you a new programmer?
Me neither. Let me have my software Sawzall™. If I cut off my own leg, I won’t go crying to the manufacturer, I’ll admit that my training, experience, technique and/or luck were insufficient.
]]>A scant few days ago I started throwing WBJUS around, and tonight, Small Language Changes for JDK7 appears. What timing!
Don’t get me wrong: I have the utmost respect for Sun’s stewardship of the bottom two-thirds of the Java ecosystem. The Java VM spec, Memory Model, HotSpot and significant chunks of the Java runtime library are world-class.
But Java-the-language? Scala, C#, Clojure, Haskell and every other language whose designers and managers are not cringingly risk-averse are beating it up and stealing its lunch money every damned day, and instead of fighting back, Sun is shopping for big dark glasses to hide the bruises.
Update: This article was posted to dzone where some additional discussion has taken place.
]]>Alice: I am guessing there is a good reason for Fortress to be implemented using a mix of Scala and Java rather than just one of them?
Bob: There is. Scala’s a much better language for writing type-checker-like code in, and Fortress makes amusing demands on type inference and checking.
Alice: Perhaps Scala is the language that Java should have been ? (Or is that just too contentious :-)
]]>