Hot skills: C# is number 42 in the CW/SSP list of top IT skills The sharper option for the web?
What is it?
C# is one of Microsoft's .net technologies for building and deploying web services. It is related to both Java and C++ although, despite its name, it is generally considered to be closest to Java.
Like the earlier languages it is object-orientated, but unlike them it was designed from the outset to support component-based development. It is fully optimised for the web.
Usually when Microsoft brands a language, it makes it more proprietary (such as Visual C++ or Visual Basic), yet C# has been made more open.
A beta version was initially posted for comment and input from the entire developer community (playing Linux at its own game), and then C# was submitted to standards body the European Computer Manufacturers Association, before being passed to the International Standards Organisation.
There is even potential for versions of C# for non-Microsoft platforms.
C# is often described as a Java-killer, and Microsoft's submission to the ECMA and the ISO is viewed by some as a gesture to highlight Sun's refusal to hand Java over to a standards body, rather than Microsoft relinquishing any real control over the language.
Where did it originate?
Rumours of a new language, Cool, began to circulate in the late 1990s. Microsoft had fallen out with Sun over the locked-in nature of its Java implementation and needed an alternative.
The specification for C# was released in 2000. The ECMA ratified it as an international standard in December 2001.
What is it for?
C# is designed to combine the ease of use and rapid development of Visual Basic with the low-level coding capability of C and C++.
It can make use of existing resources, such as Visual Basic and Visual C++ class libraries and Com objects. According to Microsoft, it is suitable for developing a wide range of components, from high-level business objects to system-level applications.
What makes it special?
Components developed in C# can be converted into XML web services, which should allow them to be invoked across the internet from any language running on any operating system.
How difficult is it?
C and C++ developers will find much that is familiar, but it is Java people whom Microsoft really wants to capture.
However, the apparent similarities with Java and other C languages can lead to pitfalls. For example, see Ten Top Traps in C# for C++ Programmers (www.ondotnet.com/topics/dotnet/csharp.net), where you will also find comparisons with Java.
Where is it used?
While demand for C++ and Java fell by 75% in 2002, job adverts requiring C# rose by 59% (although from a low base), making it the fastest growing skill in the Computer Weekly/SSP survey of employment trends' top 50 most in-demand skills.
Microsoft users and application suppliers are now gearing up for .net.
What does it run on?
Mostly it runs on Microsoft's own platforms. However, the Mono project from Ximian aims to create a version of .net, including C#, for Linux.
Not many people know that...
You do not have to buy Visual Studio .net to get C#. You can download the .net framework software developer's kit for free.
The sharp symbol with a hash mark. Would you want to work with a language called C Hash?
What is coming up?
Borland (the supplier of Delphi) is building a suite of C# and.net tools that will offer alternatives to Microsoft.
You can go the Microsoft authorised training partner route, but there is also a mass of free C# tutorials on the web. Check out:
Jobs and money
With one year's C# experience you can expect a salary of between £35,000 and £40,000. The skill is in such short supply that employers are offering to cross-train people from Visual Basic, C++, Java and even Delphi backgrounds.