A list of programming languages is modest when compared with the catalogue of natural languages. Beginning in the 1940s with Plankalkül, more than 1,000 programming languages have been documented. Like natural languages, the variety and diversity of these languages is impressive: the succinctness of assembler, the verbosity of COBOL, and the efficiency of C.
The motivations that inspire the creation of languages are diverse: FORTRAN was created for scientific analysis, COBOL for building business applications, RPG for report generation, and so on. Some languages serve as refinements of earlier languages. CPL combined the best ingredients of several languages, including ALGOL, FORTRAN, and COBOL. C# is an independently developed, object-oriented language and a member of the C family of languages. It shares similar syntax and some concepts with other C-family languages; more important, however, C# has few if any vestiges of procedural programming, in which the basic programming element is the procedure (that is, a named sequence of statements, such as a routine, subroutine, or function). Unfortunately, C++ inherited many of the artifacts of procedural programming from C. C#, however, was designed to be a purely object-oriented language.
ALGOL is arguably the most influential programming language in history. The language was introduced in 1958 but became popular when ALGOL-60 was released in 1960. Its impact on future languages such as Pascal, C, and Java is undeniable—these languages grammatical syntax borrows heavily from ALGOL. The major design goals of ALGOL were portability, a formal grammar, and support for algorithms. ALGOL-68 extended the language, but the additions increased complexity and furthered abstraction from hardware. This abstraction prevented developers from easily accessing devices and the lower tiers of the operating environment. Soon, languages were introduced that were less complex and not as abstracted from the architecture.
The journey from ALGOL to C began with CPL. CPL, a derivative of ALGOL-60, was developed at the Computer Lab of Cambridge University. CPL was created in 1963 by David Barron, Christopher Strachey, and Martin Richards. Although CPL is not as abstracted as ALGOL, it did maintain one characteristic of ALGOL: complexity. Martin Richards introduced Basic CPL (BCPL) in 1967 as a lean version of CPL. Ken Thompson of Bell Labs drafted B in 1970 as the successor to BCPL. B was lighter, faster, and more appropriate for systems programming. C was developed by Dennis Ritchie, also of Bell Labs, in 1972. C returned some of the abstraction removed from B while keeping that language simple and quick. Although initially consigned to the UNIX operation system and systems programming, C is a general-purpose language and has been used for a diverse assortment of applications across a variety of platforms and operating systems.
FORTAN, ALGOL, and COBOL dominated the procedural programming landscape in the 1960s. On a separate track, Simula was created between 1962 and 1965 by Ole-Johan Dahl and Kristen Nygaard at the Norwegian Computing Center. Simula is notable for being the first object-oriented programming (OOP) language. It was designed for simulation, but evolved into a general-purpose language. Simula introduced the important OOP concepts of classes, inheritance, and dynamic binding.
Combining aspects of C and Simula, Bjarne Stroustrup introduced C with Classes in 1979 as an enhancement of the C programming language. Later, under Stroustrup's stewardship, C++ was created as a direct descendant of C with Classes and was publicly recognized in 1983. C++ rapidly became the premier object-oriented programming language and introduced structured exception handling, templates, and much more.
C# premiered at the Professional Developers Conference (PDC) held in Orlando, Florida, in 2000. The primary architects of C# were Anders Hejlsberg, Scott Wiltamuth, Peter Sollichy, Eric Gunnerson, and Peter Golde. C# was designed to be a fully object-oriented language focusing on developing components in a distributed environment and was launched as part of a larger initiative by Microsoft called Microsoft .NET.