Saturday, March 8, 2008

Groovy versus Scala

After looking at Groovy and Scala for a bit, I've come to a decision about how I plan to learn and work with them in the near future. I'm going to learn and use Groovy first and then move on to Scala. In this post, I'll explain why.

First, I'll cover the areas in which I see the two languages as similar. They are both script-friendly, object-oriented, can integrate easily with Java libraries and run on a JVM, and make heavy use of closures. Once you're familiar with either of the languages, it's obvious that they'd be great for dashing off a quick script. At the same time, their fundamental OO natures helps you produce (but does not guarantee!) maintainable code. Being able to use and interact with Java code means that you can take advantage of investments in existing technologies and that you can gradually transition a code base from Java to Groovy or Scala. Closures are a very succinct, clear way of expressing solutions to a lot of common problems. Whether or not Java gets them as a language feature, they're unlike to work as well in Java as in these two languages, where they haven't been shoehorned in.

Of course, there are also ways that the languages and developing in them are different. Scala has a greater emphasis on functional programming, has implicit static typing, and (having looked at a decompiled bytecode generated by scalac and groovyc using Jad) appears to translate into tighter code. On the other hand, Groovy looks much more like Java (making the transition easier), Sun has endorsed Groovy, the development tools for Groovy are currently in better shape (and that's without trying what they've got in NetBeans), and Grails seems like a very promising application framework.

So, when I put all of those considerations together, blended them a bit, and took a drink, I decided that Groovy should come first. It helped me make the decision to realize that whatever time and energy I put into Groovy should pay off when it comes time to move on to Scala. I think the languages require a similar mindset and follow similar enough philosophies that once I've got one down, the other should be substantially easier.

Friday, February 29, 2008

Barack Obama for President

At first, I thought that I would avoid talking about politics on my blog, but I've changed my mind. I've supported Obama since before Super Tuesday and I want everyone who reads this entry to know that. On my wife's birthday, we attended his rally in Boston on February 4th and that helped change me from feeling generally positive about him to feeling enthusiastic. I think he can win and start pushing for real change. As I learn of his primary victories in state after state, I'm actually excited! Thanks to Ian Clarke for linking to Larry Lessig's "20 minutes or so on why I am 4Barack".

Wednesday, February 27, 2008

LibraryThing and Book Reviews

Jeff Winkler noticed that I like books and like talking about them and pointed me at LibraryThing. It's a website that effectively functions like a giant book club, allowing you to see who else has and likes the same books as you and what they'd recommend. I decided to set up my account and put a few of my books in my catalog. I plan to review books here and link to my reviews from LibraryThing - I've seen others doing the same thing.

Wednesday, February 20, 2008

Book: Free Agent Nation

I just started reading Free Agent Nation: The Future of Working For Yourself. So far, I like it quite a bit. The number of people working independently in the US (30 million or more as measured by several organizations) is staggering. I'll add more about the book as I make progress through it.