Why C?
Tags: programming, c
Published: 2022-03-03 18:21:12

Today a junior asked me a question that ‘There are more advanced languages like C++, C#, and Java so why bother to learn C today? Why C is still being taught in Colleges?‘

The questions he asked were genuine, I mean these types of questions come into every student's mind, and it is obvious too. C is one of the oldest languages and is still taught in colleges, and in interviews, we are asked questions regarding the same. So, for him and every student and person with these kinds of questions, I am gonna try to help you to get the answer.

First, I want to know if you also ask questions like, “Why do colleges still teach chemistry when you can’t use any chemical element or chemical compound for anything?” or “Why do colleges still teach English when you can’t even write a book or paper or paragraph or sentence with it?” And the list goes on. I mean you can question every subject like it but they are still there in your curriculum because they have some special role in our life, they teach us about everything around us. The same is with C. The fact is that the C programming language can be used to build any type of software you can think of. It has been done, and it continues to be done today.

> “In an industry where newer languages, tools, and technologies emerge and vanish day in and day out, a language that has survived for more than three decades has to be really good.”  - Yashavant Kanetkar (Let Us C)

## What is C?

You already might know that C is a programing language developed at AT & T's Bell Laboratories of the USA in 1972. So, I gonna not bore you by telling you that and obviously not that it was designed and written by a man named Dennis Ritchie. C become popular because it is reliable, simple, and easy to use.

C programming language is a MUST for students and working professionals to become great Software Engineer especially when they are working in Software Development Domain. 

Some of the key advantages of learning C Programming:

- Easy to learn
- Structured language
- It produces efficient programs
- It can handle low-level activities
- It can be compiled on a variety of computer platforms

C language is considered as the mother language of all the modern programming languages because **most of the compilers, JVMs, Kernels, etc. are written in C language**, and most of the programming languages follow C syntax, for example, C++, Java, C#, etc.

It is important to learn C languages not just because it is widely used (and will be for many years to come), but also because it **helps you better understand how a computer works at a low level.**

The fact is that C and C++ are used *heavily* today and have been used for many years, to build many different things - from the Operating System, you’re probably using right now, to the Browser you’re probably using right now, to the JVM (which you use every time you run a Java application), to the CLR (which you use every time you run a .NET application), to Compilers and Interpreters.

Also, Graphic/Video/Animation Applications, Google Applications, Relational Database Software, Media Players, Games, Banking Applications, Embedded Systems, Flight Simulators, Radar Processors, Robotics, and the list goes on and on and on. In addition, many libraries and frameworks that other languages depend on are written in C language.

C++ or Java makes use of Object-Oriented Programming (OOP) to organize the programs. But still, it still needs a good hold over the C language. There is a close analogy between learning English and learning the C language. Like we have alphabets and digits in English, by combining alphabets to words and in turn combine these words to form sentences and sentences combine to form paragraphs. In the same way, we learn alphabets digits and special symbols, then make variables using them and make keywords and finally make the code while learning C. 

## Some Facts about C

- C was originally developed to write an operating system called UNIX.
- C is a successor of the BCPL (Basic Combined Programming Language) which was popularly called ‘B’ language and introduced around the early 1970s.
- The language was formalized in 1988 by the American National Standard Institute (ANSI).
- The UNIX OS was totally written in C.
- Today C is the most widely used and popular System Programming Language.

## **Features of C Programming**

- Programs written in C are **efficient and execute much faster.**
- C has only **32 keywords and several standard built-in functions** which can be used for developing different programs.
- The naming of variables and constants is done by following some rules which are all same in every programming language.
- C has **high-level constructs** and it is more user-friendly.
- C can be used for website programming using the Common Gateway Interface (CGI) as a "gateway" for information between the Web application, the server, and the browser.
- C is often chosen over interpreted languages because of its speed, stability, and near-universal availability.

## **Importance of C Programming**

- C is a robust language and has a **rich set of built-in functions, data types, and operators** which can be used to write any complex program.
- Programs written in C are efficient due to the availability of several data types and operators.
- **C is a highly portable language** i.e. code written in one machine can be moved to another which is a very important and powerful feature.
- C supports low-level features like **bit-level programming and direct access to memory using pointer** which is very useful for managing resources efficiently.
- C has high-**level constructs** and it is more user-friendly as its syntax approaches to English-like language.
- C language is best for structured programming, where the user can think of a problem in terms of function modules (or) blocks. It has the ability to extend itself.

We can write `printf()` for printing the output or stings rather than `System.out.println()` which is used in java, nor do we need to import any package like `Scanner` class which is used to get user input, and it is found in the `java.util` package, we simply write `scanf()` for getting inputs. The syntax in C is very simple and that's why many choose it as their first language.

Another thing to keep in mind is that *programming languages are just tools*. Any general-purpose, real-world, high-level programming language can be used as a tool while you’re learning the fundamentals of programming, data structures, algorithms, etc. Although, I would not recommend starting with JavaScript, as your first programming language.

## Conclusion

C is a simple language in the sense that it provides a **structured approach** (to break the problem into parts), a **rich set of library functions**, **data types**, etc.

If anyone is saying to you that you can’t build anything using C, then frankly that person has no clue what they’re talking about. And anyone who states this is risking the loss of their credibility in the industry.