TheServerSide's going to be chatting with Giles Alexander, a lead developer at ThoughtWorks, in the upcoming week or so. We last chatted with him just over a year ago about his experiences with mobile application development, which produced a couple of very popular articles, including a couple on the Y-shaped mobile development method which got retweeted and blogged about ad-infinitum.
I pinged Giles (@gga) on Twitter last weekend, suggesting that we catch up. He's got his fingers in a lot of pies, which makes him a good bellwether for what's happening in the industry. He indicated that he had less to say about mobile these days, but had plenty to say about Scala, as he pointed me to a recently published blog entry, unaffectionately titled Scala: 1-star, would not program again. Apparently, Giles isn't exactly enamored with the language, or as he says, " I don’t ever want to touch Scala again."
With Scala you feel smart having just got something to work in a beautiful way but when you look around the room to tell your clojure colleague how clever you are, you notice he left 3 hours ago and there is a post-it saying use a Map.
- Daniel Worthington-Bodart
The problems he cites? Crazy slow compile times that make test driven development (TDD) completely impractical. Stability of the libraries is a concern. The punctuation strewn syntax that supposedly keeps the language flexible, but instead, makes it incredibly difficult to discern bears mentioning. The list is long, and Giles has no problem rhyming off annoyances: "The confused array of build tools. The hopeless confusion of even the most powerful of IDEs. The enormous array of types of types. The horrible repetition required by case classes."
New languages are indubitably exciting to learn and play with, and everyone is interested in improving upon what we already have. Sometimes it appears that languages like Scala or Clojure or Ceylon are the fix that the Java ecosystem needs to improve productivity and obtain that linear scalability that simply doesn't exist with traditionally written Java applications. But the fact is, Java, despite some misgivings, is a well thought out language that is both powerful and consistent, making it easy to learn, and more importantly, easy to maintain. Sure, new systems will appear that will try to knock the crown off the Java language, but for now, the want-to-be emperors of the JVM are increasingly being shown to be wearing no clothes.
As was mentioned earlier, TheServerSide is going to be talking with Giles in the near future. If you've got an issue or two you would like us to take him to task on in terms of his assessment of Scala, let us know.
Scala - 1 Star: Would Not Program Again by Giles Alexander