[Read the story.]
As a computer scientist that develops in many languages and on several operating systems I see this as a critical issue not just for developers but for consumers as well. Almost all languages have libraries to interface with other languages to perform functions that are not performed well in that specific language. Standardization even in languages such as C, C++ and the most standardized language of all -- the Department of Defense's Ada -- is still a daunting task because of the nature of the hardware the compilers are targeted at.
The article mentions Microsoft's COM (Component Object Model). It should be noted that the .Net framework is moving away from COM because of some technical difficulties associated with it. This is an example of immature technologies and why the Windows operating system has such a bad reputation among developers and users alike. Immature technologies are not well tested and made stable. Change for change's (in this case profit's) sake is not good for anybody other than Microsoft. (My position is showing.) Now developers steeped in the COM mentality will have to shift gears for .Net, and the experience curve will be shifted again and new problems (bugs) introduced as a result.
It is not in Microsoft's interest to have a stable OS because the OS is such a substantial portion of their revenue. As such, new technologies are always moving into the OS, causing consumers and developers to decide which "target OS" to shoot at. This is part of the reason the change in popular programming languages is moving to .Net. It is not because VAX or Unix developers have changed habits but because Microsoft platform developers have to change in order to keep pace with Microsoft's change in goals.
This continuous change in technology (which Microsoft argued as its "ability to innovate" in the earliest antitrust suit) allows Microsoft to dominate the personal computer market, because its revenue stream is continuously modified to keep computer users, who are like addicts with Microsoft as their dealer, up-to-date on the desktop. The best example of this is Microsoft Office 97's inability to function with Windows NT5.0 (Windows 2000). There was no reason other than profit for Office 97 to be incompatible with Windows 2000. But it is, so users in offices worldwide, if they wanted technical support from Microsoft, had to upgrade to Win2K and now to Windows XP. Already Microsoft is working on its next incarnation of its operating system, which will use a different file format and as such none of the applications that Microsoft or other software companies develop will be compatible with MS operating systems.
It should be noted that the most recent release of Microsoft's venture into the cellphone market had two security holes discovered in it in short order. This is just another example of the frenetic movement to new for new's sake.
-- John M. Resler
Farhad Manjoo asks: "If Java wins, and most programs run across all software, what use will any of us have for Windows anymore?"
Until open-source [software] is more easily set up by the average user and/or Apple's OS runs on off-the shelf, DIY hardware, there's going to be a use for Windows, if only as the basic OS to install all those lovely cross-platform applications on.
Apple's OS is beautiful, but it only runs on hardware so far behind the cutting edge that it's in danger of being lapped by the field (again). Linux, in all its flavors, is still not as user-friendly as Windows, and the typical user doesn't want to recompile their kernel when they upgrade a video card.
Windows, for good or ill, is the answer to a question that nobody likes to ask: "Is there something idiot-proof out there that I can put all my cool stuff on top of?"
Windows is like Astroturf -- ugly to look at, painful to fall on, but easy to configure. What the world needs is the electronic iteration of that pseudo-turf they've got on the field in ... well, whaddaya know -- Seattle.
-- Rafe Brox
Farhad Manjoo completely misses the point. Whether Java is a good language to write Windows applications is irrelevant to its success at this point. Today, the de facto user interface for most application development is the Web browser, which does not require a client-side development language. Java is overwhelmingly the language of choice for server-side applications, usually running on Unix, which build the pages to be displayed at the browser. This is particularly true in the larger, enterprise-class customers that provide most of the income to software vendors.
-- Paul Ilechko
I have two comments.
First, I believe that the reference cited to rank programming languages downplayed the use of Visual Basic. I find it hard to believe that it was rated as low as it was.
Second, the article failed to mention what may be the most important factor in comparing the .Net platform to Java, which is the availability of a standard graphical user interface. This feature has always appealed to users of Visual Basic and is now available for the other .Net languages. It cuts down considerably on the time required to create a software application. Unless Java comes up with something equivalent, it is going to be left behind.
-- Martin P. Cohen
I'd like to point out a small factual error in Farhad Manjoo's otherwise good "Is There Hope for Java?" article. On the third page, he says of .Net, "The system doesn't lock people in to one language, as the Java platform does; instead, developers can write code in almost anything ..." As it happens, the Java Virtual Machine (JVM) is just another virtual machine. It is possible to compile other languages for it.
Here is a list of a vast array of various languages (other than Java) that will work on the JVM.
-- Tess Snider
Overall very well written; the links especially were helpful.
However, there's an almost pathological refusal to mention Visual Basic, which is pretty high on the list of TIOBE's "most popular" languages and which, like C#, is one of the languages of the .Net family that can be compiled to (theoretically) cross-platform CLR.
There are a lot of us out here who have labored under the stigma of VB as a "toy language" since VB3 or 4 (or longer), and now that it has finally become a full-fledged object-oriented language, it'd be nice to have some recognition that our perseverance (or dogged laziness) has borne fruit ... even an aside would've been nice.
-- John Roy
I enjoyed your article on the Microsoft vs. Sun Java issue. My only two comments are that Microsoft's Java was widely recognized as being a better version for Windows.
My second point is that I believe that Visual Basic is probably the most widely used programming language used in the Windows environment.
Keep up the good work.
-- Mark Lewis