I haven't even quite moved into my new house, but what was waiting for me on the porch? Programming in Scala. Of course, I seem to be straying towards Clojure in terms of where-to-go-on-the-JVM-after-Java. But we'll see. Certainly reading about any new and powerful language will give you ideas even if you don't adopt it for day-to-day usage.
I'd be interested to see what you think of it. I've been reading through the book and playing around with it.
ReplyDeleteI really like how clean/short your code becomes, and how succinctly some idioms can be expressed.
But Scala feels like a large language, with lots of new rules to learn. And although I'm just a scala n00b, it does make you realise the simplicity of Java.
I'm not sure if Scala will take off in the mainstream, but I hope Java learns some lessons from it soon ... my wishes:
1. Type inference. Scala gets this right! Why, oh why do I need to types so often when the compiler knows.
2. Closures (and/or some sort of method delegates).
I hope you'll post you impressions of Scala. I'd be interested to know.
My copy was delivered yesterday. I can't wait to get into it.
ReplyDeleteI'm still waiting for my version, but France seems to be longer to reach ;)
ReplyDeleteHoward, I'm really happy that you are looking toward functional programing... We already talk about that in France, but really, you already use so many "functional" pattern in T5 architecture, I believe that you will like not having to fight the language for them :)
For your grief about Scala, and in particular Scala syntax... Well, you are not alone (the buzz around Guido's post on Scala raise some voices...)
But one think that make me prefer Scala over Clojure (or Groovy, even if it does not play in the same level) is the "static typing" part. I really don't feel at ease with dynamic typing, and I can't think to develop non-tpy project with such a language (I don't say it is not possible, it is just my personal feelings).
So... Perhaps we are all wainting for a good and efficient port of Haskell to the JVM ?