Brief history
This International Standard is based on a submission from Hewlett-Packard,
Intel, and Microsoft, that
describes a language called C#, which was developed within Microsoft. The
principal inventors of this
language were Anders Hejlsberg, Scott Wiltamuth, and Peter Golde. The first
widely distributed
implementation of C# was released by Microsoft in July 2000, as part of its
.NET Framework initiative.
ECMA Technical Committee 39 (TC39) Task Group 2 (TG2) was formed in
September 2000, to produce a
standard for C#. Another Task Group, TG3, was also formed at that time to
produce a standard for a library
and execution environment called Common Language Infrastructure (CLI). (CLI
is based on a subset of the
.NET Framework.) Although Microsoft.s implementation of C# relies on CLI
for library and runtime
support, other implementations of C# need not, provided they support an
alternate way of getting at the
minimum CLI features required by this C# standard.
As the definition of C# evolved, the goals used in its design were as
follows:
. C# is intended to be a simple, modern, general-purpose, object-oriented
programming language.
. The language, and implementations thereof, should provide support for
software engineering principles
such as strong type checking, array bounds checking, detection of attempts
to use uninitialized variables,
and automatic garbage collection. Software robustness, durability, and
programmer productivity are
important.
. The language is intended for use in developing software components
suitable for deployment in
distributed environments.
. Source code portability is very important, as is programmer portability,
especially for those
programmers already familiar with C and C++.
. Support for internationalization is very important.
. C# is intended to be suitable for writing applications for both hosted
and embedded systems, ranging
from the very large that use sophisticated operating systems, down to the
very small having dedicated
functions.
. 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.
The development of this standard started in November 2000.
It is expected there will be future revisions to this standard, primarily
to add new functionality.