C# is essentially Microsoft's answer to the need for a compact, powerful, object-oriented language that supports easy programming of Web interactivity, either on the client side (what Java calls an applet) or the server side (what Java calls a servlet). C# differs from Java in syntax, reserved words and in some areas of functionality. It most notably differs in its support for the Windows APIs, which were also added to Microsoft's implementation of Java, J++. It became the foundations for Sun's claims that Microsoft was corrupting the platform neutrality of Java. This claim ultimately led to Microsoft's decision to abandon Java (in the wake of a lawsuit that found that Microsoft had indeed violated Sun's Java License by adding support for those APIs to its implementation). Thus, some might say that C# represents a new version of C++ designed to compete with Java, but also a language that Microsoft controls and can therefore lash up tightly to the Windows APIs. Microsoft claims that C# is better than Java because it:
* Supports Rapid Application Deployment (RAD) technologies * Supports cross-platform deployment (a claim viewed with skepticism by Java bigots and those outside the Microsoft camp) * Provides access to native platform resources (the Windows APIs, in other words) * Support for COM and .NET platforms (more proprietary Microsoft technologies. This fact is important to those inside the Microsoft development world, annoying or downright irritating to those outside it)
However, not everybody agrees with these claims and this is a very contentious subject. Let me therefore point you to some further reading so you can make up your own mind on this subject:1. For a pro-MS view, please read: http://www.javaworld.com/javaworld/jw-08-2000/jw-0804-itw-csharp.html 2. For a pro-Java rejoinder, please read: http://www.javaworld.com/jw-11-2000/jw-1122-letters.html 3. A nice comparison of C# to C++ and Java (but still somewhat MS-biased): http://genamics.com/developer/csharp_comparative.htm 4. A cool collection of side-by-side listings in Java and C# that shows (at least to me) that they're more alike than different: http://www.ddj.com/ftp/2001/2001_02/csharpj.txt 5. Great list of C# articles and references: http://www.dur.ac.uk/~dcl0bjc/bookmarks/CSharp/ If you visit your favorite search engine, and search on "C# versus Java" or "Java versus C#" you will come up with all kinds of additional resources on the subject, many of them highly inflammatory. This is a hot subject, with many sharp and opposing views on both sides.
This was first published in July 2001