Microsoft technologies are very good and supported by very good tools (the most user friendly Visual Studio), made by a company that lives from software, has a very good marketing and really wants to sell that
good tools. Under the pressure of the market that largely embraced the virtual machine (at a moment of the computer history when using a virtual machine better than native code was rather a handicap), Microsoft created it's own "virtual machine" (.Net) and performed the huge and admirable work of rewriting all the supported compilers (Basic, C++, ...) in order to generate .Net compatible code. They even created a wholly new language C#, Java-like, but taking good advantage from the Java youth faults. More than that, they created something that Sun has wished to do for long but never dared: an operating system natively implementing a virtual machine (Vista). All that huge and admirable work could not be done by a community and it had to be done by a unique company with a clear strategy - the strength and the weakness of Microsoft.

    However, from my perspective, the long-term history is written by the hardware manufacturers. Some computer languages (Fortran, Cobol) better imposed themselves to the market than others (Algol for instance) because some computer manufacturers had chosen them to be delivered in standard with the hardware.
I personally loved Pascal - a perfect programing language to be learned and to be used. It's limits were largely compensated by genial implementations (anyone remember the most famous "TurboPascal" and its direct child "Delphi"?). However, the language that succeeded was the "C" language, a sort of a caricature of Pascal . 

Why C? 
C was developed by a hardware company, DEC (Digital Equipments Corporation) in tandem with Unix in order to offer an easily portable platform. Hardware corporations need quickly portable solutions in order to be able to promote their latest product with the old applications already running on it. DEC is no longer on the market (sold to Compaq, sold to HP), but the C language still exists and recent operating systems still have
their lives depending on it (including Linux and Windows!).

C language is a low level language - a language to write operating systems, database engines and compilers, but not easy to use for business applications. Hardware providers are interested in having a good highly portable technology for business applications (in order to have their hardware up to the market faster).

Why Java?
Java was thus created by a hardware company. Sun was not interested in selling Java compilers but gave them (more or less) for free in order to sell hardware. It's success was due also to IBM, another hardware manufacturer, who was seduced by this schema and I suspect them contributing to the JEE overall picture (contrary to LAMP based solutions, JEE architectures make me think to twenty person analyst teams with neckties - LAMP solutions are rather in T-shirts and jeans :-) .  When Oracle acquired Sun, they didn't "buy Java" but bought the hardware production line. The main concurrent of Oralce on the database market is IBM (Oracle and IBM are the early implementors of the "relational database" model and they imposed the once arguable SQL language), but IBM can sell global solutions, including hardware well optimized for their database and application servers that are well optimized for the hardware. Oracle couldn't until now. As a good deal of Oracle user interfaces are well written in Java (for portability), and as Oracle will need a good software platform in order to start offering IBM-like global solutions, I don't think they will kill Java. And I
don't visualize .Net replacing Java on Sun/Oracle platforms, nor on IBM platforms (I don't see them forgetting that easily the OS/2 chapter).
So, I think Java will have a still long life and it will not be replaced by  .Net. Microsoft is big and rich because very many home users rather employ Windows than Solaris or AS/400 (Linux became a mature technical
alternative, but I think Linux providers still lack a certain marketing maturity or force for the home market). Microsoft Windows servers became largely more powerful and stable than big mainframes or minis used to be only thirty years ago. However, they don't replace the mainframes and the minis, because they equip companies that could not afford mainframes or minis otherwise. For the last couple of years, I could see companies that replaced AS/400 or big Unix systems by Windows in order to save money, due to the financial crises. But they did that when they became smaller. I saw also a larger company replacing the small Windows server by a highly available virtual Linux in a virtual hardware tandem as they became bigger. I don't mean that Microsoft doesn't do well their homeworks, but that the others do them very well too, so each preserves more or less (with temporary fluctuations) their market. I think Microsoft needs to continuously adapt to the market request and that is what they do by providing enterprise scale operating systems, by creating .Net and the virtual machine based operating system (Vista) and by slowly renouncing to the .Net universality (it seems that Seven is closer to the traditional C/C++ philosophy than Vista who was closer to

There are also other very interesting, innovator and creative technologies: PHP, Ruby or Rails, Python, and so on and they don't deserve to be forget. They are also (still) on the market and they have their public. They didn't replace Java, nor they really concurrence .Net. I think each has its public.

Sorry for my huge these. I didn't intend to be so long when I started.

Reviewed by Kamalakannan JS