As a programming language, C# has a rich ancestry. As its name suggests, it is a descendant of C and C++. C was developed by Dennis Ritchie in 1970. It was developed to aid structured programming through its well-defined control statements and its tight syntax.
As programs got larger and larger, they get harder to read, even if structured programming techniques are used. Object Oriented Programming (OOP) techniques allow the programmer to work with much larger and more complex programs. 'C With Classes' or C++ was developed by Bjarne Stroustrup in the early 80's. By the 90's, C++ had become the most widely used programming language for development. Its suitability for high-performance applications made it a highly successful language.
Java was derived from C++ with a focus on portability. The idea was to allow programmers to develop applications that would work on many platforms. The solution to this was not to compile programs to source code but to an intermediate form called bytecode. The Java Virtual Machine (JVM), residing on the user's machine, can execute the bytecode.
C# was developed within the context of the .NET framework. The .NET framework uses the Common Language Runtime (CLR) feature to execute programs allowing programmers to use a range of different languages to develop their applications. The .NET Framework Class Library provides a set of classes that are common to all .NET languages.