A day ago I attended a presentation run by a couple of young Sun engineers entitled ‘Java Platform Web Applications Vs Ruby on Rails: This Time With Tools’. They were big fans of Rails, and set about examining two important questions:
- Can you develop a JSF webapp as rapidly as a Rails one if you have the right tools?
- Is the Ruby and Rails tooling sufficient?
By ‘tools’ they really meant NetBeans, but this was understandable given that they are Sun employees.
They gave a little demo of NetBeans generating the skeleton of a JSF web application, in a similar manner to how Rails can generate an application skeleton. And superficially speaking, the resultant directory tree certainly looked no worse than that generated by Rails.
The chief concession they made was that with the Java solution you need several frameworks, whereas with Rails you get a full stack. What they didn’t mention was that with Java, support for important things like migrations, fixtures and integration testing is missing. This is where I think that Rails still has an edge.
They ran the server from NetBeans, demonstrating that compilation and deployment of JSF apps is now down to around the 10 second mark, making development speed on par with Rails a possibility. They did admit, however, that memory problems and server restarts are still an issue.
With regards to the Ruby on Rails IDE support, I think that NetBeans has definitely advanced the state of things. I’ve already covered the NetBeans Ruby support, but the Rails support is also pretty cool, although it’s really just a wrapper for the Rails infrastucture.
We already know that Rails offers a great environment for rapidly getting a web application up and running. Whilst we acknowledge that Rails may well be subject to the 80/20 rule, frankly I wasn’t convinced that the NetBeans JSF support was helping get a new JSF project very far at all.
As a framework Rails still seems more potentially productive. Consequently the real benefit of NetBeans that I see is not that it can build a great JSF app for you, but that it provides great support for Ruby and Rails – which is already a great framework.