I have been playing with .NET and Mono on my own time recently. Java the language and C# are so similar that saying one is any better than the other is waste of time. As a Java developer who likes Java, I really like this similarity. This means that I can write java-like "native" windows code to do windows specific things. I always hated C++/COM and C#/.NET is exactly like Java with system dependent libraries. This is great if I need to do windows development.
Where this starts to fall apart is with the .NET and Mono libraries. The Java API writers have always been very careful not to introduce an API which does not make sense on all platforms. This makes Java extremely portable at the cost of not being able to do native system programming in pure Java. With .NET, Microsoft went ahead and wrote all kinds of APIs for accessing the registry, accessing COM objects, changing NTFS file permissions, and other very windows specific tasks. In my mind, this immediately eliminates .NET or Mono from ever being a purely system independent platform. Yes, it is possible to implement some sort of Windows Registry Proxy that would run on Unix. Would it always work? Of course not. But, more importantly, is this a good idea?
I think some of this stems back to the issue that many people still do not see the difference between Java the language and Java the platform. The Mono C# compiler is a great piece of work. In my mind, C# the language is absolutely superior to C++. However, with C++ we learned the lesson that STL had portability problems. The .NET and Mono libraries are no solution to the libraries that are used with C++.
It's the libraries stupid.
@ 10:42 AM PDT
Posted by David Knight on June 10, 2004 at 04:42 AM PDT #
Posted by Ian Bicking on June 10, 2004 at 10:10 AM PDT #
Posted by James Curran on June 10, 2004 at 12:40 PM PDT #
Posted by Mark Levison on June 10, 2004 at 01:11 PM PDT #
Posted by Scott Hanselman on June 10, 2004 at 07:13 PM PDT #
Posted by David on June 10, 2004 at 09:02 PM PDT #
Posted by pb on June 10, 2004 at 09:14 PM PDT #
Posted by Judah Himango on June 11, 2004 at 03:07 PM PDT #
Posted by David Taylor on June 11, 2004 at 06:21 PM PDT #
Posted by Daniel on June 13, 2004 at 11:51 AM PDT #
Posted by pixelmonkey on June 13, 2004 at 11:10 PM PDT #
Posted by Numbering Peano on June 14, 2004 at 08:36 PM PDT #
Posted by Joe Ganley on June 17, 2004 at 09:15 AM PDT #
Posted by James Curran on June 18, 2004 at 01:18 PM PDT #
Posted by Judah Himango on July 18, 2004 at 02:15 AM PDT #
Posted by Caffeinated BEANS on July 19, 2004 at 08:46 AM PDT #