I seriously do not know Java. No matter how much I try, I have never managed to code up a page in Java, let alone an entire application. On the other hand, my first application in .NET was so quick and easily done that I felt I am a .NET pro since ages!The first languages I learned were HTML and ASP-VBScript, and I never managed to come out of the Web markup mode for quite some time.
I have Eclipse and JCreator installed at home - the Add or Remove Programs list terms them as 'rarely' used. The first programming language I learnt was C and believe me, C is beautiful. All the includes, conditions, loops, functions, structs, arrays, pointers got me hooked on to C big time and I thought C is the best language in the world. Then came C++, and OOP was revealed to me. For some time, I still preferred C, but eventually, for want of better programming experience, I embraced C++.
Java was introduced to me after a considerable period of time, and frankly, I never got round to it. Java was never meant for me and it always took me quite some time to code up a line. I always felt there must be something like Java, yet different from it. This is certainly not it.
And then came the big one - C#. It was just C all grown up, and I forgot all about Java. I must thank Visual Studio 2008 here for introducing me to all the beauties of C#, and believe me, Visual Studio 2008 is a great IDE. I could have used it to learn VB (mind you, VB 2008 is not IN ANY WAY like VB 6 of old), but I preferred C# due to my firm grounding in C and C++. The environment allowed me to learn C# well and fast, and applications were developed in no time. In fact, my final year project was a dazzling WPF application, which was supposed to be developed over a year, but being the quintessential engineering student, I started in the last 2 weeks and finished it just before the deadline. After all, the .NET Framework is just meant for RAD (Rapid Application Development).
Microsoft managed to wean away many Java developers like me towards the .NET Framework, not just because it gained significant mileage over a short period of time, but because it has some sound principles running behind it, original and otherwise. Platform Independence through Intermediate Language, Garbage Collection, Language Interoperability are just some of the principles guiding the .NET Framework and they go a long way in keeping developers loyal to .NET. However, the .NET Framework is so popular maybe only because of the Visual Studio, an excellent IDE which has evolved from its 2005 version to its 2008 version as the .NET Framework has evolved from its 2.0 version to 3.5. With new technologies like WPF, WCF, LINQ and WF (of which I have 'mastered' WPF as yet) in its latest 3.5 version, .NET is indeed attractive.(.NET 4.0 and correspondingly, Visual Studio 2010 to be released later this year)
Java is still preferred by the 'pure' programmers - people who require complete control over each and every aspect of their application and leave nothing at the mercy of their IDE. That is precisely the reason why Java does not assist much in laying out a good UI for your application - Java programmers still grapple with the SetBounds function for different UI elements in their application. .NET, on the other hand, just says, Do not stress yourself out, lemme help you! .NET is as powerful as Java, but easier to learn and more addictive than Java.