C programming is one of the most powerful coding languages of the modern era. It is what drives modern software, databases, and other coding compilers. To think that a coding language written forty-nine years ago to fix the shortcomings of other coding languages would still be relevant in the modern era is something that would baffle any computer scientist, especially since computing has grown at an exponential rate since then. Not only has the programming language remained relevant, but it is still the preferred programming language for operating systems and many applications.1
It all started in New Jersey in 1972 when Dennis Ritchie and Ken Thompson were at AT&T Bell Laboratories trying to fix the shortcomings of the B programming language in the Unix operating system. Eventually, instead of trying to amend the problems with the B language, they decided to create a new one. Both Computer Scientists thought that they ought to create a new language that was able to be cross-platform, that allowed control over the most minute details of a machine, and that allowed for programs to run at lightning speed. To accomplish this, they re-designed the core code of the Unix operating system and allowed for the C coding language to store numbers, characters, and other coding values such as strings at the RAM memory level.2
RAM memory, or Random Access Memory, is the fastest level of memory in a computer, storing less than traditional storage but is accessed much faster. In contrast, a hard drive would be slow in terms of computing, but can store a much larger amount of information. For example, if a computer were to search for information stored in RAM, it would be like looking for a book on a singular bookshelf. However, searching for information on a hard drive would be like looking for a singular book in an entire library. So, allowing for storage of information at the RAM level allows for programs to be executed many times faster than languages prior. It also allows for the greatest control over a program, because you can see where in the memory you have stored something in your code. This can be a name, a variable, or other pieces of data, and it allows for debugging or fixing an error in the program extremely easily. With this new ability to directly control what your machine does and manipulate the control over a variety of aspects of your computer, Dennis Ritchie and Ken Thompson found great success at overcoming the original shortcomings of the coding languages before C. Once they fixed the Unix operating system and distributed the operating system, the C programming language began to gain popularity.3
One of the main reasons for its popularity is the fact that the Unix operating system was supplied to educational organizations, and ~90% of computer science departments were licensed to use Unix. So, many computer science students began to learn this new language, and when they graduated, they continued to use this language in their workplace or to complete their own personal coding projects. The reason they chose to stick with the C programming language is again its fast run time and because it was the language they were used to. Also, Unix was an extremely popular operating system, and its influence can be seen in the code behind many modern-day operating systems, such as those that run Macintosh, Windows, and IBM computers. In fact, Mac and Windows both wrote their operating systems in the C programming language.4 Yet, the C programming language is not only important to operating systems. In fact, many of the applications on modern machines are written in the C programming language and are the preferred programs to use by students and professionals worldwide. Some recognizable applications that use C include Adobe’s popular Photoshop and Illustrator programs, Firefox, and Microsoft applications that come pre-installed.5
Another important reason that C programming has held on to its relevancy and has maintained its position as one of the most powerful computing languages is its syntax compared to other languages. Before C, programmers had to use a programming language called assembly. This language consisted of commands that appeared useless to the human eye because it seemed to be strings of random letters and characters that would be interpreted by the computer as instructions. However, with the C programming language, the ability to use human language to communicate the same instructions became more favorable than assembly code. Now in the place of characters and random letters, a programmer could say commands like “while” and “for” to communicate specific instructions to the computer. A computer science professor at Stanford University had this to say about the C language and its power: “C was designed to unlock the power of the computer and offers programmers considerable control over the programs they write. It is precisely this power that has contributed to the widespread use of the language.”6
It is this simple syntax that allows the language to be easily understood by others and makes the learning of the language easier than other languages that require long complex words to complete simple tasks. The C language has used this to its benefit and its simplicity and familiarity have kept it alive for so long. In addition, the power behind C comes from the users themselves. This means that as the programmer becomes more skillful with the language, the power of the language grows with the programmer.7 Also, one of the most demanding tasks in a computer is encoding and decoding information. This is usually done by the Central Processing Unit or CPU of the computer. The amount of power a CPU has in a modern computer is immense and the CPUs of today truly are impressive breakthroughs in technology in their own right. Furthermore, the CPU needs to take in all of this information quickly in order to give the user a response. The ability of a C program to operate quickly by being stored in RAM allows for the CPU to receive, translate, execute, and give a response to the user faster than most other applications that might be written in a different language. It’s this speed and responsiveness that lures developers into coding in the C language.
So, why is the C programming language still so important today? Well, C was extremely popular and sometimes is still the language of choice when it comes to operating systems.8 So, when operating systems are being developed or tweaked, the C language is vital to know in order to add onto or fix a bug in the operating system. Without knowing the C programming language, some operating systems, and Unix, would not be able to be understood or tweaked to keep up with the modern computing era. If updates to those systems were to not happen, they would most likely die out and another more efficient operation system would take its place. Another reason goes back to the C language being able to store variables and other data to the RAM memory level. This allows for programs to run quickly and efficiently. While this seems like a basic requirement for any program, the C programming language excels at this. C programs can run many times faster than programs written in another language, and they take up less space on the computer itself. In addition to this, many legacy programs that a future computer scientist might look at have a high probability of being written in the C programming language. Because of this, the ability to read, write, and amend C code will be an extremely necessary tool for programmers that are now entering the workforce.
Due to the fact that many legacy and new programs are written in the C programming language, C will continue to be impacting the world of computer science even if a more efficient language comes around. In order to convert a program or an entire operating system from one coding language to another requires a very complex understanding of both languages, a lot of time, and most importantly, money. Most of the time, if something is not cost-effective to a company, they will continue to put out updates and tweaks to older software if it means they do not have to spend the money to upgrade. So, if a more efficient language comes along in the near future, new programs may be written in the more efficient language. However, behind the scenes, the C programming language will still be the glue holding the operating system and program interactions together.9
The C programming language has left its mark on computer science and will continue to do so for quite some time. Its roots are deeply embedded in many modern-day operating systems and its ability to run programs at lightning speed while taking up little storage is unrivaled. To think that a programming language that was created to fix the shortcomings of another would become so powerful and would continue to be the glue behind many modern-day systems is absurd to think about. In an industry that is constantly growing and seems to continuously break through computing barriers, we never imagined a programming language that was designed to be simple, and lightning-quick is what has remained consistent.10
- Dennis M Ritchie, Bell Labs, and Murray Hill, “The Development of the C Language*,” The Development of the C Language 28, no. 3 (1993): 16. ↵
- Dennis M. Ritchie, “The Development of the C Programming Language,” in History of Programming Languages—II, ed. Thomas J. Bergin and Richard G. Gibson (New York, NY, USA: ACM, 1996), 671. ↵
- Dennis M. Ritchie, “The Development of the C Programming Language,” in History of Programming Languages—II, ed. Thomas J. Bergin and Richard G. Gibson (New York, NY, USA: ACM, 1996), 671. ↵
- Saba Zamir, Handbook of Object Technology, First Edition (CRC Press, 1998), 8. ↵
- Raoul-Gabriel Urma and Alan Mycroft, “Source-Code Queries with Graph Databases—with Application to Programming Language Usage and Evolution,” Science of Computer Programming, Special Issue on New Ideas and Emerging Results in Understanding Software, 97 (January 1, 2015): 126. ↵
- Saba Zamir, Handbook of Object Technology, First Edition (CRC Press, 1998), 9. ↵
- Dennis M. Ritchie, “The Development of the C Programming Language,” in History of Programming Languages—II, ed. Thomas J. Bergin and Richard G. Gibson (New York, NY, USA: ACM, 1996), 671. ↵
- Conor Ryan, JJ Collins, and Michael O. Neill, “Grammatical Evolution: Evolving Programs for an Arbitrary Language,” in Genetic Programming, ed. Wolfgang Banzhaf et al., Lecture Notes in Computer Science (Berlin, Heidelberg: Springer, 1998), 88. ↵
- Dennis M. Ritchie, “The Development of the C Programming Language,” in History of Programming Languages—II, ed. Thomas J. Bergin and Richard G. Gibson (New York, NY, USA: ACM, 1996), 671. ↵
- Saba Zamir, Handbook of Object Technology, First Edition (CRC Press, 1998), 12. ↵
1 comment
Rafael Macedo
I really enjoyed reading this article because C programming is “one of the most powerful coding languages of the modern era”. The information that I took from this article is going to be very helpful for me because I am going to take a C programming class next semester. I have an advantage now that I know more about the story of C programming. I feel that I am one step ahead of everyone in my future class. thank you.