C has an enormous history before it could become popular, and has already become perhaps the most popular language on this planet! A very small percentage of developers and students seem to know how the language evolved, and hence this article.
We start from the early 1960s, when the University of Cambridge invented a language called Cambridge Programming Language (CPL). With the involvement of the University of London, it was then renamed Combined Programming Language, though the abbreviation remained unchanged. In fact, it was also nicknamed Cambridge Plus London, retaining the same abbreviation! Even though the language was announced in 1963, it’s compiler was ready only by 1970 due to slow development. History did not wait till 1970 though, and the language slowly and silently disappeared in the 1970s.
In 1966, Martin Richards from University of Cambridge modified CPL in order to make it easy to develop compilers, and that resulted in the birth of BCPL (Basic Combined Programming Language). BCPL is also history and is no longer used. BCPL is also nicknamed Before C Programming Language.
In 1969, when MULTICS was dropped by AT&T Bell Labs, Ken Thompson and Dennis Ritchie tried their hand at developing a scaled-down version of MULTICS, which was named UNICS by Brian Kernighan, and later spelled UNIX – the very famous operating system. In order to develop MULTICS and UNIX, Ken Thompson stripped down BCPL, inventing a language called B. While the first version of UNIX was written in assembly language, it was rewritten in B.
Due to the frustrating experiences of writing UNIX in B, Dennis Ritchie proceeded to improvise B, inventing a highly portable language in 1972 which was called C, because it was an improvement over B! UNIX was then rewritten all over again in C, and remains that way till this day. While B is almost history, C is very popular and a variety of programming languages have been invented based on it since then.
When the language was originally developed, there were no standard rules that all compilers for the language had to implement. Guidance was taken from the popular book “The C Programming Language” written by Dennis Ritchie and Brian Kernighan. This formed an unofficial standard called K&R C. The first formal standard for C was published by the American National Standards Institute in 1989 called ANSI C (also called C89). International Organisation for Standardization then passed it as an international standard in 1990 under the name C90. This was then revised in 1999 (C99) and again in 2011 (C11).
The successor of C was supposed to be C++, designed by Bjarne Stroustrup in 1983. The name was so given because of the “++” increment operator of C, as an indication that this is the next version of C and the future of C. The most important feature added in C++ was support for Object Oriented Programming. The previous names for this language were C with classes and new C. While there was a lot of expectation that C will get replaced by C++, C continues to exist on it’s own despite C++’s success and popularity, probably because C continues to be more efficient, some of C++’s non-OOP features were incorporated in C and OOP is not required in all situations.
C++ was supposed to be superseded by D, a language invented by Walter Bright in 2001 that boasts of Java and C# like features, making it easier for programmers to code and improving the reliability of the code, but again D could not challenge C++, partly due to the fact that the area was already taken up by Java and C#.
This was a brief and most pertinent history and future of C. There were many more incidents, people and languages involved, and a lot of politics too! With the level of permeation that C has shown, it is currently very difficult to visualise a day when C becomes history!
Related Articles
1 user responded in this post