Friday, February 22, 2008

Java dying?

Interesting link from InfoWorld, worth at least a brief read.
Java increasingly threatened by new app dev frameworks

I can't really disagree with his supposition and he pulls a lot of numbers to support his case. But from a high-level view, what the heck is happening?

I remember 1998, when Java was still a fledgling "web" language. I was around in 2000 when I became the last class at my University to use C++ for first year courses. And here we are in 2008 talking about the "death of Java" and comparing it COBOL. The article explains that Java is effectively being supplanted by .NET, Ruby on Rails and PHP, but I don't think that it's capturing why?

Here's my theory: languages are alive but Java hasn't really fought to survive. Microsoft's .Net is a comparable technology, but the last few years have seen several innovations from MS: WCF, WPF, LINQ (and and everything underneath it), MVC (i.e.: struts) and all kinds of other things that seem to be just around the corner. Even VS 2008 doesn't feel done. Most people are barely rolling out .Net 3.0 and MS is already pushing around 3.5 and elements of future versions.

But Java just doesn't have that developer backing. Sure IBM evangelizes the stuff and educational institutions like to use anything they can find for free, but it's still "behind the curve". Eclipse is definitely becoming competitive, but I just don't see the whole framework of tools/language/support being pushed as hard or as fast by IBM/Sun as MS is doing with their tools.

Of course, we'll see how PHP and Ruby (the apparent heirs) actually perform over the coming years. All of the arguments I've heard for/against the technologies seem mostly ideological. People don't like tools that make them uncomfortable.

But at some point the language becomes just as relevant as the tools around that language. And I'm not convinced that Java is really dead, so much as Java needs a better toolset.

Of course, YMMV

Tuesday, February 12, 2008

News? Bad requirements-gathering hurts IT projects

Study: Bad requirements-gathering hurts IT projects

Obviously nobody is surprised by the results... actually, I lie, I am surprised by the results.

The number of failures is huge. They provide some ideas, but I have two pretty solid explanations myself.
1. IT is voodoo magic
2. People still don't know what they want so projects become too big.

The second one is quite self-explanatory, but still widely misunderstood. Undertakings of more than 2000 man hours (that's 3 people for 4 months) are never as simple as we'd like to believe. They're also too big for most software.

Software is organic, it needs growth time. It's also really easy to spend way too much time on software. The big industry fallacy is that good software can be developed over several months (or sometimes years) and then just magically work at the end of the day.

It can't but very few people in power understand this. Until we start "growing" software with smaller deliverables (call it Agile or Iterative if you want), but until it's "organic", then our software is going to suck. Until we recognize the organic limitations, we're going to keep budgeting software projects like we would a bridge and this too is going to fail spectacularly.

Of course, YMMV.