What is it?
In 2005, analyst firm Gartner said, "Migrating developer skills from Visual Basic 6 to C# will require a substantial investment of time and money." Gartner has recommended that organisations allow nine months for this move.
When it was launched, C# represented a departure for Microsoft, in that it would be maintained by an external standards body, the European Computer Manufacturers Association (ECMA).
Despite the involvement of the user community, Microsoft and its partners still set the direction for the language, which is inextricably bound to the .net platform and the Common Language Infrastructure.
A new addition to C# and Visual Basic in the forthcoming Visual Studio 2008 will be Language Integrated Query (Linq), a SQL-like language for querying SQL, XML and other data.
Where did it originate?
Development of C# is led by Anders Hejlsberg, previously involved in the design of Visual J++, Borland Delphi and Turbo Pascal. Although the syntax was based on C++, some have noted a similarity to Java. Seven years on, and with C# 3.0 imminent, C# champions accuse Java of copying features of C#.
What's it for?
In June 2000, Microsoft described C# as "a modern, object oriented programming language built from the ground up to exploit the power of XML-based web services on the .net platform".
The ECMA said C# should be "simple" and "general-purpose". It is intended for use in developing software components that can take advantage of distributed environments, and it is suitable for writing applications for both hosted and embedded systems.
"Although C# applications are intended to be economical with regards to memory and processing power requirements, the language was not intended to compete directly on performance and size with C or assembly language," said the ECMA.
Linq adds a native language query syntax to C# and Visual Basic, and provides class libraries to take advantage of these capabilities.
What makes it special?
C# is not only integral to the .net environment, it is widely used outside it.
How difficult is it to master?
Microsoft intended the migration from C and C++ to C# to be easy. The syntax should be reasonably familiar to C++ developers, and to a lesser extent to Java users.
A free version of Microsoft's C# integrated development environment, Visual C# Express, is available on Microsoft's website. Linq's syntax is generally similar to SQL, making the transition relatively simple.
What systems does it run on?
Windows. Implementations of C# and other .net technologies for Linux and other operating systems include DotGnu, Novell and the Mono project.
What's coming up?
C# 3.0 was previewed in 2005, and marks a move towards functional programming. A beta of Visual Studio 2008 is available free of charge from Microsoft's website.