It's interesting to note the approach Microsoft and Sun have each taken:
Microsoft
1 platform - many languages
Sun
1 language - many platforms
I personally find it difficult to blame each for what they've done.
Microsoft owns the world's most widely used operating system: Windows. It's natural that they would want to make it easier for people (skilled in any programming language) to write software for their operating system; it helps to proliferate it.
Sun wants to contain the expansion and usage of Windows and at the same time increase their OS's (Solaris) marketshare. So they created Java, a language/library package that's supposed to allow you to write your software once and run it everywhere. This reduces the appeal of Windows since now you can just get a cheap PC loaded with Linux (or Solaris) and run a Java application that could just as well run on a mainframe.
I think we as the developers have to judge what's important. Is an application that can run everywhere (with some tradeoffs such as lower performance) what's important; or is it more important to write an application that will only run on only one platform but run efficiently and be used by a much larger audience?
What do you think?
Alvaro
