C# - C Sharp

What is C#

The C# programming language (pronounced "C-Sharp") is one of the most powerful object-oriented programming languages developed by Microsoft. According to them, "C# is a modern, object-oriented language that enables programmers to quickly build a wide range of applications for the new Microsoft .NET platform, which provides tools and services that fully exploit both computing and communications." Actually, C# was originally codenamed "Cool" before being released as a beta in 2000. Microsoft then released different versions of the language including the latest release of C# 2.0. With each release, the product shipped with improved features for developing secured and scalable applications along with high quality documentation and code samples.

C, C++, and Visual Basic 6.0 had dominated the computer industry for the past two decades. The main drawback with these languages is that a programmer has to devote a long time to develop and deploy an application. Also, the syntax used by one language is different from the other; hence, it took a long time for a programmer to migrate between two different languages. Programmers were searching for a programming language that would not only reduce the development time of applications but also to attain good productivity. These difficulties were eliminated with the introduction of C#. This is because all .NET languages, including C#, commonly follow the Common Language Specification (CLS) and target the CLR.

Some of the notable features of the C# programming language are namespaces, type-safe variables, multi-dimensional arrays, jagged arrays, operator overloading, indexers, delegates, versioning, attributes and overriding. C# also comes with features like "pass by reference" and "pass by value" for parameters, XML based documentation with special comment tags, Integration with COM components developed using Visual Studio 6.0. Further, C# has also been approved as an International Standard Organization (ISO) standard. For more details regarding this topic, refer to http://msdn.microsoft.com/en-us/netframework/default.aspx.

You can develop console applications (executed from the command prompt), Windows applications, ASP.NET web applications, ASP.NET web services, and Mobile Web Applications, class libraries, Windows control libraries, smart device applications and web control library applications by using the C# language. In addition to these applications, you can also create setup files for your C# projects using Visual C# .NET.

C#  is an object-oriented programming language developed by Microsoft Corporation as part of their .NET initiative in response to the success of Sun Microsystems' Java programming language. C# source code—as well as those of other .NET languages—is compiled into an intermediate byte code called Microsoft Intermediate Language (MSIL).

Primarily, C# is a hybrid of the C, C++, and Java programming languages with some features of Microsoft Visual Basic thrown into the mix. Like its Java ancestor, C# features automatic garbage collection (GC), scalability, simplified type declarations, type safety, and versioning support plus a few new features for Microsoft COM+ and Web services development.

Hewlett-Packard, Intel, and Microsoft submitted the Microsoft C# Specification to both European Computer Manufacturers Association (ECMA) and the International Standards Organization (ISO). In time, it was approved as a standard by ECMA and called the Standard ECMA-334 C# Language Specification. The C# language was architected by Anders Hejlsberg—a Delphi designer—, Scott Wiltamuth, and Peter Golde.


The Birth of the CLR

In a nutshell, the CLR was born out of the COM+ team, created by merging the MTS and COM teams, and some of the people from the JVM team. The COM+ team was working on the next generation of COM, then called COM 2.0 and the JVM guys were realizing that the JVM was not going to give them the support for other languages and the flexibility they were looking for. Combine this with disagreements on some fundamental technology issues, such as object management and garbage collection, and you end up with two teams: COM+ and CLR.

The CLR team was also eventually joined by people from other Microsoft teams, including some of the C++ teams, which helped with the evolution of the IL instruction set, which is based on the Microsoft p-Code instruction set introduced in MSVC 5.0.

Perhaps the most interesting aspect of this is that the initial architecture and prototype for the Garbage Collector was written first in Common Lisp. Unfortunately, Patrick doesn't give a reason for this.


The history of C#

C# was designed for developing components in a fully object-oriented manner as part of the Microsoft .NET initiative. C# debuted in the year 2000 at the Professional Developers Conference (PDC) where Microsoft founder Bill Gates was the keynote speaker. At the same time, Visual Studio .NET was announced.

The primary architects of C# were Peter Golde, Eric Gunnerson, Anders Hejlsberg, Peter Sollichy, and Scott Wiltamuth. Of these, the principal designer of the the C# language was Anders Hejlsberg, a lead architect at Microsoft. Previously, he was a framework designer with experience with Visual J++ (Microsoft's old version of the Java language), Delphi, and Turbo Pascal.

Both C# and the Common Language Infrastructure (CLI) have been submitted to international standards organizations European Computer Manufacturers Association (ECMA) and International Organization for Standardization (ISO) / International Electrotechnical Commission (IEC).