rc3.org

Strong opinions, weakly held

Language wars

Bruce Eckel has a good essay on language wars. He starts out talking about how hyper-enthusiasts from the Java world have migrated to Ruby on Rails and winds up asking whether Ruby is really better than Python or not.

From my own perspective, I can say that the days of hyper-enthusiasm are behind me. When it comes to picking tools to get things done, I use one of the XP maxims — use the simplest thing that could possibly work. There are two important attributes of environments for developing Web applications as far as I’m concerned. Simplicity and structure. PHP wins the simplicity fight. If you need to pull stuff out of a database and print it on a Web page, you can do it in PHP with almost no code wasted on structure. Java wins the structure fight. You can make things as structured as you like, to the point of absurdity. Ruby on Rails, right now, represents the best compromise between structure and simplicity for a huge portion of the Web application problem space.

I started building the last application I wrote in Java before Ruby on Rails existed, but if I had to do it over again, I’d still use Java. On the other hand, for the content management system/knowledge management system I’m working on right now, Ruby on Rails is the better choice. Django would certainly have been fine as well, but I picked Ruby on Rails, and I’m not regretting it. The idea that one language or platform can be all things to all people or somehow makes everything before it obsolete is absurd. Fervor can be good thing in that it can encourage productivity, but don’t let it blind you.

1 Comment

  1. Unfortunately, it is a rare shop where one gets to pick the language choice.

    The PHBs, being too ignorant about development, often look only at the skillsets of potential future employess to determine which way to go. I suspect this is why some shops are all Java and some are all .NET, even though the two are so close together that switching is not insurmountable for skilled folks.

    I have been doinking around with Ruby/Rails after reading Bruce Tate’s Beyond Java, and I really like the rapid “CRUD a DB via the web” ability, but I haven’t dug enough into the language to see all of the cool things I already know how to do in Java (e.g., if the user’s session times out, forcing her to log back in and then plopping her down at the screen she originally tried to access). I understand it is still a new langugage, but it looks very promising.

    The idea that one language or platform can be all things to all people or somehow makes everything before it obsolete is absurd.

    This is why I believe it is useful to know several languages—not that you have to be an expert master guru in all of them, you just need to know what language is best suited for which task. For example, if I needed to do some text/xml/etc file processing, I’d use AWK or PERL, but not Java, PHP, or Ruby.

    If I were building some huge, complicated application (or a small one that would grow into a large one), then I’d pick Java now (in a few years Ruby/Rails could be the viable alternative).

Leave a Reply

Your email address will not be published.

*

© 2024 rc3.org

Theme by Anders NorenUp ↑