The Source for Java Technology Collaboration
User: Password:



Simon Morris's Blog

Programming Archives


Evolution vs Intelligent Re-design?

Posted by javakiddy on February 13, 2008 at 04:12 PM | Permalink | Comments (18)

You know you're getting old when you find yourself complaining about how English is being butchered, instead of inventing new ways to butcher it yourself.

Languages change and evolve, they cannot stand still. This applies to programming languages just as much as natural written/spoken language. The difference is, of course, natural languages don't require backwards compatibility. It's this which causes the headaches — if we could just add keywords whenever we wanted, or retrofit the grammar at the drop of a hat, there wouldn't be a problem. But there's a huge body of Java code already out there, and it would be nice if none of it got broken by any changes.

I wonder if this is why programming languages, unlike natural languages, seem to have shelf lives? In nature the success of a species is constrained by the size of its compatible habitat. As the environment changes a species may evolve, but only up to a point. Eventually its popularity fades and better adapted animals arrive to dominate the landscape.

In programming, a dramatic environmental shift began at the end of the Seventies when the personal computer saw the end of dinosaur Mainframes, and with them stalwart languages like COBOL in favour of C and later C++. Fifteen years on and the internet saw C and C++ slowly retreat into niche markets, replaced by net-savy new blood in the form of Java, JavaScript, PHP, etc.

Why couldn't COBOL just evolve to become less 'records and batch processing', and more 'files and interactivity'? Why couldn't C just evolve to be less 'bytes and memory pointers', and more 'bytecode'? The answer is they could have — but there's only so much retro-fitting one can do to an established technology...

So how far can Java continue to evolve before it too goes the way of the dinosaur?

Continue Reading...



Justifiable Homicide

Posted by javakiddy on January 24, 2007 at 03:15 AM | Permalink | Comments (7)

Despite not being a violent man (honest!) I've found myself increasingly being moved by the argument that programmers, and perhaps other technical staff too, should be given limited license to kill people under the defence of justifiable homicide.

All you programmers reading can stop cheering though -- I'm not suggesting a complete free-for-all. We can't have programmers just going around killing people willy-nilly, that would just be unfair. And far too arbitrary. For example. there's a guy in my office who would love to decapitate anyone who makes excessive use of the colour printers. Which, to my thinking, is a tad extreme (although, admittedly, does score favourably in the "saving the planet" stakes.)

No, instead I propose that the license to kill be restricted to certain key phrases. If a client, management, or even fellow workers utter these words, or anything remotely like them, all programmers within earshot are given immediate dispensation to dispatch them to the great Steering Group Meeting in the sky, pronto.

And so, with tongue planted firmly in cheek, I present the first in an occasional series (for which, read: "if anyone likes them I might write some more") of IT crimes which should be covered by the defence of justifiable homicide...

Continue Reading...



Java Episode VI : The Fanboy Menace

Posted by javakiddy on September 12, 2006 at 09:45 AM | Permalink | Comments (7)

There's been a lot of discussion lately about the Java language: were the Java 5 features a mistake, will the features being suggested for 7 be worth it? One aspect of this debate is a kind of 'feature envy', in which pressure mounts to support a feature or particular mode of working because a rival language supports it. It seems that increasingly we live in a world where languages are not seen as merely tools addressing specific problems, but flags around which communities rally to practice their own peculiar brand of fanboy devotion.

Time was when each language did a different job. Working with a lot with numbers? Fortran may well be your thing. Want to write a company payroll? COBOL is where you should look. Want something quick, easy, and beginner friendly? Let me point you in the direction of BASIC. (Big fan of Jedi Master Yoda? Then try, you must, Forth!)

The COBOL folks never fretted that their language didn't have the mathematical dexterity of Fortran. The BASIC folks didn't spend sleepless nights wondering when they'd be able to define record field formats. And nobody seriously wondered whether they should adopt Object Orientation. Each language was a tool, with its own focus, strengths and weaknesses -- you learnt as many as necessary for the type of work you did and picked the right one for the job at hand.

Continue Reading...





Powered by
Movable Type 3.01D
 Feed java.net RSS Feeds