From: Robert Klemme Date: 2004-01-27T22:29:56+09:00 Subject: Re: choosing ruby? "Piergiuliano Bossi" schrieb im Newsbeitrag news:bv5moi$q2a$1@lacerta.tiscalinet.it... > We are on the way to start a new project, a web application with a bunch > of pages and the following features: > *) users are maintained within a persistent repository (it could be as > easy as a yaml file, we are talking about no more than 10 users); first > page is a login page, of course > *) through these pages (around 10, warning & error pages included) a > user can invoke a transaction on a legacy system ==> we already have > java code that encapsulate a transaction or we can rewrite it in ruby, > it is a simple text based protocol over sockets, just like a telnet session > *) some transactions may not be invoked directly through the webapp, but > they are scheduled instead for late night execution; of course, we can > store these info in a yaml file too, there is no real need of a > relational db > *) we are talking initially about 2-3 transactions per day (not very > hard, isnt'it?) > > We have an (almost-)ready framework in java for building webapps. > Although that, we are asking ourselves if developing in ruby could be a > better choice, mainly in terms of development speed. Infact, having > around 2 or 3 transactions per day I don't think that application speed > really matters (as long as users will not complain). We are just ruby > newbies, but we like it. We are considering perl too, because in our > team there's a perl fan, sponsoring mason for this project. > > We can develop: > *) everything in java > *) mix ruby (html-based frontend, maybe fastcgi or mod_ruby) and java > (transaction invocation) > *) everything in ruby, > *) mix perl and java (we have tried a 30' spike with Inline::Java, it > seems to work) > *) everything in perl. > > If we mix ruby & java I was thinking about using rjni or rjava. > > One thing to take into account is that the application will be deployed > on a Sun cluster (5500, I guess) and I am not sure that the customer > will permit to compile the ruby interpreter there. They are quite > "conservative", if you know what I mean. > I know that this depends on os version, but may I expect to find in any > "official" place an already compiled interpreter for Solaris /whatever/? > This thing may affect negatively the whole choice. Unfortunately the > customer is pretty rigid on things like that. > > Apart from that, development speed is the most important thing in this > project: not very comfortable, but sometimes you have to do it. Even if, > or because of we are quite in a rush we follow an XP process, applying > the whole set of practices like TDD, continuous integration, small > releases, etc. We don't want just to hack some code together. We are > quite experienced in java, a lot less in ruby, and even less in perl, > but with the latter we have at least an experienced person. Considering all this I'd recommend to go for plain Java. Reasons: - you're quite proficient in Java - the JSP / Servlet framework is there and not really difficult to understand (IMHO) if you know web app basics (HTTP, HTML, control flow etc.) In your case that seems sufficient, no need for some fancy web app framework (don't use Struts) - not mixing languages means saving yourself a lot of effort and a huge source of bugs - you might not even be allowed to use Ruby (because of interpreter compilation) Next would be Ruby since it is IMHO more easily learned than Perl and there are webrick, eruby and others. I would not consider Perl since you don't benefit in this situation: Learning Ruby is easier and you don't need the additional speed that Perl exposes over Ruby for some applications. Kind regards robert