I'm going to put my curmudgeon hat on here and take a rail at the attitudes of Java and Linux developers (and developers in general). I read Weiqi Gao's post on how Java developers should make peace with Microsoft and I agreed with Weiqi to a certain extent, but thought some of the comments were asanine and indicative of the rotteness in the current "software engineering" culture.
There is huge problem in software development. It is a discipline which supports other disciplines (like Mathematics), but the majority of people trained to do it well don't recognize this fact. They are somehow lost in the hey-day where there were many unsolved problems (like with the rise of graphical computing), and they view software engineering as an end unto itself.
The hubris that infects sofware engineers is perpetuated by marketing organizations within software companies. There is a myth out there that all these software companies are producing innovative software, and if you don't get on board and push the features of the latest release of your favorite software then the businesses you serve will fall hopelessly behind. The fact is that very little innovation has occurred in the past ten years.
All software developers are doing is incorporating old technologies into their products. C'mon Oracle, how long have regular expressions been around?
Software engineers are basically sheep. They read all the tripe that software marketing units spit out and it appeals to their basic fear of becoming obsolete. So instead of focusing on solving real problems by applying a basic understanding of how to write a program or understand a relational model they focus on pushing yet another OS or Office development suite. Wow, I doubt anyone that likes this software has ever really bothered to understand the power of a simple Microsoft Office technology like Excel.
The problem with pushing a second rate technology that has a certain "Cool Factor" is that it degrades the entire discipline of Computer Science (if it can even be called that). The good tool has already been built, and a lot of times that tool isn't very sexy - like Excel. A good software developer knows the hell out of the old tools and focuses on using the proven technologies to solve business problems. The goal of a good software developer should be to understand a business or scientific problem first and apply existing tools to solve that problem. Too often I see talented developers (and others as well) waste their talents chasing new ways of doing things like pushing Linux applications or some other technology fad.
I don't want to say the Linux is a bad thing because it is overly hyped or because it doesn't solve the business problem of building applications. It's a stable, dumb OS that stores files and networks well. I'd be happy to run Oracle 10g on Linux! I run Samba on Linux at home and it solves my home network and storage management beautifully. I just wouldn't use it to do applications development.