Steve Bate and I have debated a while back a rewrite to Ruby on Rails.
Outside of the geek coolness factor of ROR, I can see the following advantages of ROR.
However there is a significant investment in xplanner already both in software and people.
We are just facing a typical "innovator's dilemma" the same as anybody writing web application nowadays.
new ROR version advantages
Simpler
No spring-bean.xml, struts-config.xml, screen-definitions.xml, *.hbm.xml...
Programming by convention! I always built my frameworks like that. ROR just felt right in that way! Explicitness is overrated IMHO!
Development cycle speed
No compile, no jsp compile!, no server restart. Some of our antiquated laptops at work takes 4mn to restart tomcat!
Terseness of Ruby
Compare to java ruby shines. java closures where are you!!!!
To some extent, java 1.5 syntax solves some of it (foreach, autoboxing...)
AJAX builtin into ROR
ROR has embraced AJAX and even push it. Unfortunately the java space is trailing (no pun intended) behind.
Clean slate
The current xplanner is showing its age in some parts: untested, full of duplication, inconsistent...
Right now XPlanner is 60% automatically tested
Maybe the current best web AT framework
Watir is maybe the best web acceptance test framework around and it is written in ruby.
As I have learned with xplanner, having your AT framework in the same language as your application speeds your development up in more than one way.
| I don't believe the initial scafolding is a significant bonus since it is a one time only framework and is only intended to get you started fast. |
Current java version advantages
The obvious advantages of the current java
Already built features
Let's list them here so we can estimate how much it would take to implement them in ROR
Specifically the current features that would be hard to replace are: charts and the different exports (pdf, jasperreports, mpx, excel...). They are usually the features that people uses to integrate xplanner in their environment.
Large base of free java components
xplanner already uses lots of free components:
- cewolf(charts),
- spring,
- itext (pdf),
- mpxj (ms project),
- poi (excel),
- jaspereports (reports)
From a java component perspective ROR="java, struts, ajaxtags, hibernate, axis, javamail"
Easier enterprise integration
- User management through LDAP/Active directory.
- JMS for future integration with CRM/DTS... (At work we are looking at a Siebel integration through SeaBeyond EAI)
Static typing
The small case for static typing is the few errors caught at compile time. However these would be caught anyway in testing if we had 100% coverage as we should strive for in a rewrite.
My biggest preference for static typing is its clarity. The typing system allows to define clear contract:
- interfaces
- collection element types (generic)
- parameters...
Next steps
After 0.7, I believe we need to look into measuring how much it would take to get to the same level of features. Anybody want to help?
Wait but there is another way!
The other alternative is to leverage the existing codebase and use groovy instead. groovy is as good a language as ruby in my mind. What it has for itself is the fact that you can embed groovy in java and vise-a-versa. There is even a ROR port to groovy under way: grails
Eric,
This is great! The development of xplanner is rather painful right now. There is a significant amount of refactoring that needs to be done and I am etching to stretch my legs outside of java
Let me know privately when you would be available.
I am sorry to learn that you found xplanner setup frustrating. If you have some time could you send me a brief email explaining your view on it and what needs to improve? For example was that from a developer or an installer point of view?
There is already an ongoing project called eXPlain that is written using ROR. Version 2 is in the works. Check out explainpmt.com (link broken at the moment, but it was working last week).
Links no longer broken. Unfortunately, the webserver that hosts the site had hardware issues, and it took me a few days to get everything set up on a new server.
I have been using XPlanner for nearly two years now both at my last company and currently for small consulting projects. I come from a heavy Java background and have been doing Ruby and Rails work more recently.
Though I have wanted to contribute to the project the currently implementation has been a barrier. My experiences in setting up XPlanner alone have been extremely frustrating, though I have been very happy in using it once it is running.
I have felt more recently that the Rails platform is a much better fit for the size/target deployments that I can invision. I certainly would be a contributer to a Rails rewrite of XPlanner and would rather do this then begin a new implementation or rewrite in Rails on my own (which is another option).
Perhaps I could be of help in making a determination of level of effort to achieve the same (or similar) features.