Every Java lover on Slashdot is up in arms over, this comment from a blog (from a pretty good professor at MIT & Haavard, iirc):

A project done in Java will cost 5 times as much, take twice as long, and be harder to maintain than a project done in a scripting language such as PHP or Perl. People who are serious about getting the job done on time and under budget will use tools such as Visual Basic (controlled all the machines that decoded the human genome).

Now of course people miss what he says next:

But the programmers and managers using Java will feel good about themselves because they are using a tool that, in theory, has a lot of power for handling problems of tremendous complexity.

I think that's a good point, taken out of context. He's right there. Let's dig around some more.

We've got two issues. First, he's assuming very specific types of tasks. In Java, he assumes Oracle. In PHP, PostreSQL, etc. If you know both Java/JSP and PHP, yes, PHP is much better for quick, inexpensive web sites, like blogs or shopping carts for small businesses with a website. If you only know one or the other, well, naturally that tech's going to be best for you. But if you load the deck like he does, you're really comaparing Oracle to PostgreSQL.

Second, the fellow's plain wrong. Java's not difficult. If it were difficult, I wouldn't have been able to hack up my trialware app in just a few months using it. The first 70% (feature-wise) of a programming project goes by about 300% faster in VB, but the last 30% of an app, feature-wise, is always going to take 80+% of your time. Why sacrifice cross-platform deployability, true object-oriented programming, and better error handling, etc, for a 7% overall gain in time to market? Granted, I'm assuming you want crossplatform, etc, but I'm just trying to say that his anecdotal evidence for VB is just that -- it wasn't wrong to code the genome crud in VB, but that's no argument Java would've have done just as well -- or better!

I don't know -- I could ramble for a while, but the main point is that you have to pick the right tool for the job. Want a very simple site that needs Windows to run? Use ASP 3 & vbscript. Need a headless, server-side app that you can deploy anywhere? Use Java. Want the cheapest way to get a very simple web site up quickly? Use PHP & friends. Only know one technology? Well, if it's time sensitive, use that as well. Same thing goes for RDBMS -- Oracle expensive and scalable, PostreSQL cheap and powerful, MS-SQL Server a good compromise for easy usability, integration, and scaling.

And I guess my final point is that, if I'm right and there really isn't that great a development cost for programming in Java (forgetting the backend for now, since all three techs can use all three backends relatively interchangably), all other things equal, why not drive the SUV when programming? There's no cost inherent in Java over PHP (JVMs and IDEs are free), and it's cheaper than a VB.NET IDE. Most importantly, you're much more likely to go off-road when you're programming than you are on your commute to work.