Daily del.icio.us for Apr 03, 2007

Ruby Ruby Ruby Ruby!!

After playing with Ruby for a while now, I am starting to play with Rails to see what the buzz is all about. Here are some interesting resources in addition to the Rails Wiki:

  • Rolling with Ruby on Rails by Curt Hibbs — The Ruby community is abuzz about Rails, a web application framework that makes database-backed apps dead simple. What’s the fuss? Is it worth the hype? Curt Hibbs shows off Rails, building a simple application that even non-Rubyists can follow.
  • Rolling with Ruby on Rails, Part 2 by Curt Hibbs — Curt Hibbs introduced Ruby on Rails by building a simple but functional web application in just a few minutes. Does the ease of use continue? He thinks so. In the second of two parts, Curt completes his example Rails application in merely 47 lines of code.
  • Ruby on Rails: An Interview with David Heinemeier Hansson by Edd Dumbill — Few can have missed the rise of the programming world’s latest star platform–Ruby on Rails. Rails’ creator, David Heinemeier Hansson, already wowed the crowds at this year’s OSCON, and is set to keynote the European O’Reilly Open Source Convention in Amsterdam this October. O’Reilly Network talked with him about Rails’ success and future.
  • Ajax on Rails by Curt Hibbs — XMLHttpRequest and Ruby on Rails are two hot topics in web development. As you ought to expect by now, they work really well together. Curt Hibbs explains the minimal Ajax you need to know and the minimal Ruby you need to write to Ajax-ify your Rails applications.

Ruby On Rails at the Tipping Point?

Cobbie just sent me a link to David Geary’s article entitled Tipping Rails. David is wondering out loud if Ruby on Rails has reached a tipping point and is about to break out and garner mass adoption. I don’t really have any opinion on this topic but I do know that Ruby is stealing a lot of mind share from Java and even .NET. Dave Thomas introduced me to Ruby like thousands of others at one of the NFJS events and I’ve loved learning more and developing in Ruby. My copy of the Pickaxe book is looking pretty worn which is unbelievable as most technical books have a shelf life of about 3-4 weeks, if that.

I wish Ruby on Rails really gives Java a run for the money as competition is great and I hope Java and Rails force each other to get better. But I still see Java and Rails solving different problems. While Java or specifically Enterprise Java’s sweet spot is the large, distributed, scalable applications (See Cameron Purdy’s trading systems post on TSS), Ruby on Rails can fill the niche for small to medium web applications where time-to-market is the most critical item. I guess time will tell – In 2 years, the Ruby Insurgency will have taken hold and displaced Java and the must-learn language. And if Sun keeps coming up with more technologies like JSF, Rails will be the dominant web development framework. ;-)

Goodbye Groovy – Hello Ruby

I guess the wheels are coming off the Groovy bandwagon and I am jumping off before it’s too late. I’ve blogged about Groovy before and how I had drunk the Kool-Aid. I loved Groovy and that love was based on Java and the fact that I could use my existing Java classes in my Groovy apps and vica versa. But the JSR hasn’t brought the excitement to the Groovy cause that I had hoped and so I am now officially jumping off the bandwagon.

I’ve tinkered with Ruby before – Dave Thomas makes a great case to explore Ruby or any other programming language to expand your horizons and learn to think differently. I guess I finally get a chance to take a serious look at Ruby and see if it can fill the gap I currently have for simple tasks that don’t need all the features of Java. I’m sure most developers write simple ‘one-off’ applications that read the database, send emails, parse a file and stuff it in the database, etc. Ruby seems like a nice solution to fill that role at face value.

The only apprehension I have with Groovy and Ruby and many of the other technologies out there is the introduction of these technologies in the enterprise. Like most developers, I have a full-time job where I work with a team of developers with varied skills. As the technical lead, I am always looking for ‘things’ that make our development team deliver a better solution, faster and cheaper. But the introduction of anything new comes with consequences – Developers need to get comfortable with the new technology and feel confident writing code using that technology. Support people need to understand the new ‘thing’ and how to debug, explore issues, etc. All these factors have to be taken into consideration before exposing the developers to something new. I need to spend more time reading the Ruby Insurgency presentation from Dave Thomas, which is a nice presentation on how to successfully introduce Ruby into your organization.

Groovy, Ruby

No Fluff Just Stuff – Day Three

The 3rd and final day of the Wisconsin Java Software Symposium was another great day. The day started with the ‘Groovy Programming’ session by Richard Monson-Heafel. Richard currently serves on the J2EE 1.4 (JSR-151), EJB 2.1 (JSR-153) and EJB 3.0 (JSR 220) expert groups for the Java Community Process. He is also one of the founders of the Apache Geronimo and the OpenEJB open source projects. Richard is also the award winning author of Enterprise JavaBeans, 4th Edition, and the awesome J2EE Web Services. I blogged about this book earlier in the year as I really loved that book and recommended it very highly.

The first session was all about Groovy and it was great to have Richard lead this session. He is serving as specification lead for the Groovy JSR along with James Strachan. As you probably know, Groovy is a new language for the JVM combining lots of great features from languages like Python, Ruby and Smalltalk and making them available to the Java developers using a Java-like syntax. The reaction of the Java community has been mixed and a lot of people have asked the question about why Groovy was selected over JRuby or Jython. Richard makes the point that Groovy makes sense over JRuby or Jython or any of the other scripting languages as Groovy is built on top of the Java platform and uses syntax that is familiar to Java developers.

I was a little skeptical about Groovy but went in the session with an open mind. As Richard walked us through Groovy, I started to see the potential of Groovy. The fact that I can use existing Java classes in my Groovy apps and vica versa makes Groovy a very powerful option. Richard did a great job of walking us through the language features and explored the built-in support XML, SQL and HTML parsing. I was very interested in the Groovy features but it was also nice to have Richard leading the session as he was able to give us inside info on the status of the JCP and language. Apparently Dave Thomas and Mike Spille are working on trimming down the language and so mixin’s can’t be that far away from Groovy. Some of the language features seemed really cool like the File I/O – Being able to copy a file with 2 lines of Groovy code will make me use Groovy. Richard described Groovy as ‘syntactic sugar’ for Java – I like that description. I hope Groovy succeeds and learns from all the mistakes Perl, PHP, Ruby, and Phyton have made while duplicating the simplicity and power of those languages.

I really liked what I saw about Groovy at this session. I’ve tried in the past to get into Ruby and Jython, but it never really took. I see a lot of value in a simple scripting-like programming language that would allow you to create simple one-off applications in mere minutes. Every one of us has to write a little script to upload a file automatically once every 6 months, or import a file from a vendor and stuff it in the database, etc. and I always try to write them in Java. Now I have the option of using Groovy and I am going to try and learn Groovy to see if it lives up to the expectations. Here are some great Groovy resources:

After the Groovy session, Richard and I went out for lunch. Richard and I had communicated over email in the past and had talked about getting a beer when he was in town. I had a blast spending a few hours with Richard. I’ve always loved his books and his writing style and it was just a lot of fun to pick his brain and get insights into his world. He is a really nice guy and he was very generous with his time. Thanks Richard – You made my weekend.

After lunch, I sat in the ‘Unit and Acceptance Testing web applications’ session by Cobbie Behrend. Cobbie is a friend and it was nice to be there to see him and support him. Cobbie did a great job in walking through some of the web test frameworks. Cobbie walked us through HttpUnit, jWebUnit, Fitnesse and Cactus. Cobbie spent a lot of time talking about his personal experience and shared his best-practices in terms of testing. This was a great session and totally interactive and we have some great observations from the attendees including Brennan Stehling, Dave Colwell, and Ed Chaltry. All in all a great session and a lot of fun.