|
|
11.04.2005 |
|
|||||||||
| Death of Java? | |||||||||||
I've been a computer geek since a boy, and thoughts related to computers and software engineering get dropped here for the benefit of humanity and my own hubris.
|
There seems to be waves of online articles discussing that Java has reached its end, and in its wake are the fresh, energetic youths of dynamic languages like Python and Ruby… yeah, when I was a kid, we used to call them scripting languages, but everyone nowadays have illusions of grandeur. But I come not to praise or to bury Java, as I completely agree with the idea of using the best tool for the job. But scripting languages, while very useful, have a sinister side. It lulls you into its easy embrace of “get something done quick” and before you know it, you’re left supporting a mountain of cards. I was recently helping out a company get their website up and running, and when I logged onto the machine, I was aghast. Here was a Seldom do we make the right design decisions the first time, we don’t always know what we want, or the best way to build it, and so for my money, it isn’t how easy it is to initially write it, but how easy it is to refactor it. The other day, as I was analyzing a bit of code that needed a better API for its client, it became obvious that a class with a gargantuan list of methods shouldn’t be passed around. We should, instead, use a simpler interface to the class… but this class was referenced everywhere. But this is where a strongly typed, compiled language shines when it holds hands with a good IDE. In Eclipse, I simply right-clicked on the class, and under the Sure, you may have to type more in Java than in a shell script, but I don’t have to. My IDE, with its “context assist”, and its “templates”, and its automatic code generation does most of the work. This is why projects such as Groovy look interesting for about 3 minutes. A simplified scripting language in Java that ends up getting compiled into Java, really doesn’t help that much. The advantage that it saves one from typing “public void main()” is moot since I haven’t typed a class wrapper since I first installed Eclipse. I’ll be the first to admit that EJB’s were a huge mistake, but hasn’t Spring redeemed us? Well, it will as long as they keep it from getting bloated… but that’s another issue. Language philosophy aside, I’ve seen terrible programs written in every language, and I would suggest every aspiring developer to learn a collection of good design and coding skills, and a half-dozen languages, because a language is another tool in your box. An old friend of mine, Levi, wrote me the following rebuttal: Although I agree with a number of the points you made here, I have a different perspective on how it all fits together. Thought originally posted on Friday, 4 November 2005
© 2005-2006, Howard Abrams • Except where otherwise noted, all original content is licensed under a Creative Commons License (see details). |
||||||||||
|
|||||||||||