Language Wars

OK, a lot of people are going to comment on this, Joel's take on the language wars.

Now, I've used all of the technologies involved in a business context. The fact that we use .NET as our primary technology now is because we evolved from an ASP/vbscript/ActiveX DLLs site using MSMQ as a primary publishing tool, and it's simply been easier to go this route rather than sit down and rewrite everything from scratch. Like one of those clapboard houses, I'm sure every line of code has been replaced at least twice in the last 6 years though!

New RAD projects we've done in PHP, and sometimes we do Java to integrate with other folks (even Domino which was a bit of a steep learning curve given that I had two days to deliver code). In a previous incarnation I built as my first major public, business-focused project a mod_perl based database interface of which I was immoderately proud but in retrospect (of course) it was terrible. I've been having a play with Ruby on Rails recently, and I actually find all the shortcuts a bit tedious, but I'll give it time. Perhaps actually buying or reading more about Ruby first would help :->

So I think I'm in a good position to add my 2p-worth.
  • Have I been able to achieve everything I wanted in those languages? Yes.
  • Have the languages themselves put obstacles in my way? No, because I knew enough about each to make sure we didn't pick languages which were unsuitable for the job in hand.
  • Are all languages equal? No.
For large-scale web-based projects such as the one that Guy was originally asked about, I agree absolutely that if you have an existing team you should pick a language where you will have a strong lead. Rent one in if necessary, it soon rubs off on the others. The second point is that it is a good idea to pick a language which enforces a certain amount of planning (read object-oriented thinking). From this perspective I think .NET and J2EE are the easiest options to take. Don't get me wrong, it's easy to write applications in both with little use of your own objects, or, worse, poor use of objects, but they at least (perhaps J2EE slightly more than .NET) encourage object-oriented thinking.

For a desktop application, things are a lot less clear. Perhaps Joel will write on that another time - I'm not sticking my neck out, I don't do enough of them (I use .NET when we do, "Because It's There.")


Post a Comment

Links to this post:

Create a Link

<< Home