C# is a programming language from Microsoft designed to work with the .net Framework. It is seen as Microsoft's response to Java, which in many ways it resembles. Microsoft broke with long- standing practice with C# by inviting developers to contribute to the language; by getting it ratified by a standards body; and by making the source code available so that versions for other platforms such as Mac and Linux could be developed. The C# Language Specification describes it as a "simple, modern, object-oriented, and type-safe programming language derived from C and C++".
Where did it originate?
In the late 1990s, rumours that Microsoft was developing a Java-like language began to circulate. The specifications for C# were published in mid-2000. With co-sponsors Hewlett-Packard and Intel, Microsoft submitted the language to standards body ECMA, which was later instrumental in getting C# made an ISO standard, like Cobol and other non-proprietary languages.
What's it for?
Two strands seem to be emerging in .net development. Those who have previously used C++, C or Java adopt C#, while Visual Basic developers stick with VB.net.
Where earlier languages relied on external technologies such as Com and Corba, C# was designed from the ground up for component-based development, as well as having the full range of object-oriented features, including encapsulation, inheritance, polymorphism and interface-based programming.
What makes it special?
C# is catching up with features and capabilities familiar to Java users, such as anonymous methods. It now supports generics, iterators and partial and nullable types. Although easier to work with than Java, C# lacks the range of third-party tools, but Microsoft is hard at work developing a network of partners to provide these.
Visual C# 2005 includes a lot of productivity enhancements, including an Intellisense feature which anticipates what developers are trying to do and provides a template which automates it. C# has no runtime library of its own, but uses the class library in the .net Framework.
How difficult is it to master?
C# will be fairly familiar to C, C++ and Java developers. There is also a choice of integrated development environments, including Microsoft's own Visual Studio and Borland's C# Builder for those happier with a Delphi-style approach.
You can download a free beta of Visual C# 2005 Express Edition, designed for beginners and hobbyists and capable of a limited range of development - it does not include ASP.net web applications, XML web services and mobile platforms.
How widely is it used?
The latest Computer Weekly/SSL Quarterly Survey of Appointments Data and Trends puts C# at number 15 in the list of most in-demand skills, up from 25 in 2003.
What systems does it run on?
Microsoft's openness in publishing source code means that versions of .net technologies are also being developed for other platforms.
What's coming up?
A confusing number of different versions of Visual Studio 2005 products are due for release this year.
Those looking for C# training can go the Microsoft authorised training centre route, or download a tutorial from the web - there are dozens to choose from.
Rates of pay
C# is at a premium compared with "commodity" skills such as Visual Basic. Developers can expect a salary of £30,000-£35,000, rising to £40,000 for senior developers and team leaders.