Language Origin

Language Origin

From the time when the first natural language appeared, hundreds of thousands of languages have emerged. Many of these languages are now extinct, leaving about six thousand languages that are currently spoken. Some of these languages are similar and grouped by classification. Other languages are quite distinct, such as Kora, which incorporates a series of click sounds and is spoken by bushmen in Africa.

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. For a comprehensive list of programming languages, visit this link:

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. ALGOL quickly became the dominant language in Europe during the 1960s. Its impact on future languages such as Pascal, C, and Java is undeniable—these languages' grammatical syntax borrows heavily from ALGOL. I've programmed professionally in ALGOL, assembler, COBOL, FORTRAN, C, C++, C#, Basic (in various renditions), Forth, JavaScript, HTML, XML, MISL, and many more—and ALGOL remains my favorite language. 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. One of these new languages was C.

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. Underscoring the importance of .NET to Microsoft, Bill Gates was the keynote speaker at the PDC that year. I attended the PDC in 2000 and was both intrigued and motivated by the introduction of .NET and C#. .NET is emblematic of a philosophical change at Microsoft and an embracing of the standards community.

Both .NET, as defined by the Common Language Infrastructure (CLI), and C# were submitted to two international standards organizations: ECMA and ISO/IEC. Also, .NET and .NET languages, described in the Common Language Specification (CLS), continue the trend toward truly portable code. You can write an application in one environment and run it anywhere else. Simultaneously, a new version of Microsoft Visual Studio was announced: Visual Studio .NET. Visual Studio .NET provides rapid application development tools for developing a wide variety of .NET applications.

More Info 

For information on the various standards for C# and .NET, follow these links. The current ECMA standards for the C# Language Specification: The current ECMA standards for the Common Language Infrastructure: The current ISO/IEC standards for the C# Language Specification: The current ISO/IEC standards for the CLI:

Image from book
Figure 1-1: Evolution of programming languages from inception to C#