Story starts from failure. in 1969 a big project named Multics was in trouble. It was a joint venture between General Electric, MIT, and Bell Telephone Laboratories to build an operating system. This operating system was not fast and stable as per expectations so the Bell Lab staff withdrew from this project. Team of Bell lab including Dennis Ritchie, Ken Thomson has realized that they people are missing one language which produce compact and speedy programs.
At the same time Ken Thompson (1943) was working hard to build a new operating system for running on PDP-7 machines which is simpler and lighter-weight than Multics. This OS was written in assembler and it was the first version of famous operating system which is known as UNIX. Writing code in assembler was hard to implement and understand, so Thomson created another language called B which was the light version of BCPL language. B was thereafter used for further development of the Unix system, which made the work much faster and convenient. But language B proved unimpressive when development switched to the newly introduced PDP-11 machine. Performance and hardware support
for different data types were the main issues with B. In the same time another genius researcher Dennis Ritchie(1941-2011) built “New B” language with high level functionalities and features which are required to program an operating system. Name of “New B” was changed and they called it C. Because of its convenience and power, C went on to become the most popular programming language. It made the Unix portability easy and trouble-free from one machine to another. C language was so powerful that the most of the components of Unix including kernel was rewritten.
In 1979 a danish guy Bjarne Stroustrup was working on his PhD thesis in Cambridge University England. His research topic was to find the alternatives of system software distributed systems. He wrote his first simulator in Simula language on IBM 360/165 mainframe. Simula is object-oriented language and it helped Bjarne to think about the problems in application. He created computer object, network object and protocol object to send messages on different points. Every thing was looking fine but when he started running his simulation then he realized that this language is unsuitable for larger programs. Linking time with already compiled classes was extremely bad and more than 80% of the time spent in the garbage collector despite that code was so clean and well-managed. Bjarne took BCPL language and implemented everything from the scratch. BCPL was very fast language but it was close to hardware level and it did not has high level abstraction. Then Bjarne decided that he will not start his work until he will not get a right “tool”.
He started working with C language and introduced classes in it and people really loved it. “C with classes” was the beautiful merger of two languages. He took the nice feature of SIMULA which is OOP and run time efficiency of C. With the passage of time this language started growing with power full libraries and features. Now a days this language is known as C++ 11.
C++ is everywhere. You can imagine the popularity of this language that every major product and application completely or mostly written in C++. Adobe System, Amazon.com, Apple IOKit and Finder, AT&T provisioning system, CEREN data analysis, ERICSSON TelORB and GSM TDMA-CDMA Java VM core and GOOGLE Chrome.
Few more are
- Windows XP, Vista, System 7
- Windows NT (NT4 and 2000)
- Windows 9x (95, 98, Me)
- Microsoft Office (Word, Excel, Access, PowerPoint, Outlook)
- Internet Explorer (including Outlook Express)
- Visual Studio (Visual C++, Visual Basic, Visual FoxPro)
- (Some parts of Visual Studio like the Base Class Libraries that ship with the .NET Framework were written using C# but the C# compiler itself is written in C++.)
The Design and Evolution of C++ by Bjarne Stroustrup
Expert C programming: deep C secrets by Peter Van der Linden
The C Programming Language by Brian W. Kernighan and Dennis Ritchie
Picture Dennis Ritchie, Ken Thomson: courtesy Wikipedia
Picture Bjarne, http://www2.research.att.com/~bs/