Debating web development toolsets

Ian Petersen ispeters-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org
Mon Jan 7 21:08:45 UTC 2008


I've used Ruby on Rails, PHP, Perl, and Java to build web
applications.  They each have their strengths and weaknesses.

Ruby on Rails is, generally, a well thought out platform.  It makes
the right way easier than the wrong way, assuming the you agree with
the platform designers about what is the "right way".  I started a
project in Rails and was generally enjoying it, but my take on
database design conflicts heavily with DHH's (David Heinemeier Hansson
is the primary author of Rails) and so we had to restart in a
different language.  (The problem was that a single-column primary key
wasn't enough to model the data we cared about and I didn't want to do
referential integrity in the application.)  For applications with a
simple database schema, Rails is a really good way to go--the code is
readable, the tools are useful and easy to use, and the community is
good.  One potential problem is that the ruby interpreter is pretty
slow, but it's apparently easy to scale Rails applications by running
more servers.

I found PHP to be a horrendous language.  It's obviously very popular,
the interpreter is apparently pretty fast, and the documentation is
very good, but I'll never voluntarily use the language again.  It's
been too long to remember the details of why, but I just found the
whole language had a funny smell to it.

I have a bit of a love-hate relationship with Perl.  You have to be
disciplined and make sure you keep your code readable when you write
in Perl.  It _is_ the ultimate Swiss army knife, though.  There's a
module on CPAN for just about every conceivable computing task and the
Perl interpreter is quite speedy.  I think, with Perl, the big task is
finding the right tool for the task at hand.  The rest is a Simple
Matter of Programming (TM).

Java is just a beast.  I'm struggling right now with a Java EE
application fronted by a GWT interface (GWT is the Google Web
Toolkit--it compiles Java source to Javascript for running in the
browser).  It's taken me a long time to understand the ins and outs of
running an application inside an application server like JBoss.  The
little things like the difference between a session bean, a persistent
bean, and a message-oriented bean are easy to understand, but
configuring the container to host your application is a twisty maze of
documentation, all alike.  I think Java EE probably has a good
scalability story and there are components to do all sorts of legacy
integration things, but it's not an easy framework to understand.  In
my experience, building a web app on Java teaches you how to wrangle
app servers instead of how to build a web app.

Ian

-- 
Tired of pop-ups, security holes, and spyware?
Try Firefox: http://www.getfirefox.com
--
The Toronto Linux Users Group.      Meetings: http://gtalug.org/
TLUG requests: Linux topics, No HTML, wrap text below 80 columns
How to UNSUBSCRIBE: http://gtalug.org/wiki/Mailing_lists





More information about the Legacy mailing list