It’s been long since I have blogged any thing. The primary reason is that I have been working non stop during the last 6 weeks for my summer job (kind of makes me wonder, how much free time I have during school year :S).
I am posting this blog entry to chronicle my new endeavors in software development. These days software development is all about the cloud and web/Internet development in general. At the same time there is this notion of renisnace in software development with upcoming languages and paradigms (some thing I am totally psyched about). I have been fortunate enough to get a taste of some of these new languages through my course work at Chalmers and plan to continue on learning advanced features of languages in coming quarters.
In the last few weeks I have come to notice things coming out of SpringSource, namely STS, Spring ROO and Grails.
Grails is a natural choice if you want to cook up a web based application on the fly. It’s power relies on simplicity of Groovy, principles akin to ruby-on-rails, core and plugins which utilize proven Java technologies like Spring/Hibernate, JMS etc and last but not least built in Google AppEngine support.
Spring Roo is a newly released console based system for cooking up a Spring 3.0 application. It’s power relies on constructing a base spring application which is flexible (can be detached from spring roo at any point).
STS is essentially an Eclipse based IDE by Spring source, made free for developer use.
In the beginning I took Grails to be an attempt to rip off Ruby on Rails, and to some extent that feeling could be attributed to being a fanboy of RoR. Now you can call me a bigger fan boy of Springsource or some one with skeptical view of rails and 37signals.
The first thing which bothers me about rails is performance. Twitter is visible example with it’s massive outages, rails is not the primary contender in the performance arena (but that is probably overrated as likes of Twitter have a really large volume and not every RoR app would reach that volume). The second problem is too much power in ruby. I think that ruby is a nice language, but there are lots of features which are bit too scary for a first time developer, compared to Groovy i think Ruby would take more time to learn (I have to admit that I have been lazy learning both, but in my defense these are both not the primary languages at work or school). Last but not least with Springsource backing Grails makes Ruby-on-Rails the less enterprise friendly choice (in my opinion). There is an interesting comparison done here.
I will be focusing on even newer frameworks and paradigms as time permits, but for now I am stuck with what spring source has to offer. The primary reason is the current projects I am involved with are based on Spring 2.0 and it’s evolution is highly coupled within the ‘spring family’.
The new frameworks/languages I am looking forward to are Scala(Lift), Erlang, Ocaml and perhaps even F# (from Microsoft). Scala is some thing I have yet to touch (I plan to work on it during my functional programming course this Fall). I have gotten a bit of hype on it from Java Posse pod cast which I have begun listening to (along with SERadio.net) Lift is to Scala what rails is to Ruby. I wonder if some thing similar exists for Erlang.
