Before we can start writing serious C programs, it would be interesting to find out what C really is, how it came about, and how it compares to other computer languages. In this chapter we will briefly present these issues.
Four important aspects of any language are how it stores data, how it operates on that data, how it performs input and output, and how it allows you to control the execution sequence of instructions in a program. We will discuss the first three of these blocks in this chapter.
What is C ???
C is a programming language developed at the Bell Laboratories of the US AT&T in 1972. It was designed and written by a man by the name of Dennis Ritchie. In the late seventies, C began to replace the more popular languages of that time, such as PL / I, ALGOL, etc. No one pushed C. No “official” Bell Labs was created. Thus, without any advertising, C’s reputation has spread and his user group has grown. Ritchie seems to have been quite surprised that so many programmers preferred the C to older languages like FORTRAN or PL / I, or newer ones like Pascal and APL. But that’s what happened.
Possibly why C seems so popular is because it is reliable, simple and easy to use. Moreover, in an industry where newer languages, tools and technologies are emerging and disappearing every day, a language that has survived for more than 3 decades must be truly good.
An opinion often heard today is – “C has already been overvalued by languages like C ++, C # and Java, so why bother learning C today”. We seriously ask to differ with this view. There are several reasons for this:
- We believe that no one can directly learn C ++ or Java directly. This is because while you are learning these languages, you have things like classes, objects, inheritance, templates, exception handling, references, etc., not dealing with the knowledge of the actual language elements. Learning these complicated concepts when you are not even comfortable with the basic language elements is like putting the wagon in front of the horse. Therefore, you should first learn all the elements of the language very well using C language before migrating to C ++, C # or Java. Although this two-step learning process may take longer, but at the end of it you will definitely find it worthwhile.
- C ++, C # or Java use a principle called Object Oriented Programming (OOP) to organize the program. This organizing principle has many advantages to offer. But even while using this organizing principle, you will still need a good hold of the C language elements and basic programming skills.
- Although many C ++ and Java-based programming tools and frameworks have evolved over the years, the importance of C is still undisputed, because knowingly or unknowingly using these frameworks and tools will require you however, you should use the basics of C – another good reason why one should learn C before C ++, C # or Java.
- Major parts of popular operating systems such as Windows, UNIX, Linux are still written in C. This is because even today when it comes to performance (execution speed) nothing beats C. Plus, if you want to expand the system operating systems to work with new devices must write device driver programs. These programs are written exclusively in C.
- Mobile devices such as cell phones and palmtops are becoming more and more popular. Also, everyday consumer devices such as microwave ovens, washing machines and digital cameras are becoming smarter every day. This intelligence comes from a microprocessor, an operating system and a software built into these devices. Not only do these programs have to run fast, but they must work in a limited amount of memory. No wonder such programs are written in C. With these constraints on time and space, C is the language of choice as you build such operating systems and programs.
- You must have seen some professional 3D computer games in which the user navigates an object, such as telling a spaceship and shooting bullets at the invaders. The essence of all these games is speed. Needless to say, such games will not become popular if it takes a long time to move the spaceship or shoot a bullet. To match the player’s expectations, the game must respond quickly to the user’s input. This is where the C language registers over other languages. Many popular game frames have been built using C language.
- Sometimes it is necessary to interact very closely with the hardware devices. Because C offers several language elements that make this interaction possible without compromising performance, it is the programmer’s preferred choice. I hope these are very compelling reasons why we should adopt C as the first and most important step in your quest to learn programming languages.