The Source for Java Technology Collaboration
User: Password:



Simon Morris's Blog

February 2008 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...





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