DEV Community

Cover image for Why C?
Pulkit Saini
Pulkit Saini

Posted on

Why C?

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 functionsdata 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.

Top comments (1)

Collapse
 
pauljlucas profile image
Paul J. Lucas

C is a successor of the BCPL (Basic Combined Programming Language) which was popularly called ‘B’ language and introduced around the early 1970s.

No. First there was BCPL, followed by B, followed (briefly) by NB ("new B"), followed by C. The details are here. So BCPL and B are not the same language.

The language was formalized in 1988 by the American National Standard Institute (ANSI).

No. See here for details. TL;DR: The first official standard was C89 (in 1989, obviously).

Programs written in C are efficient and execute much faster.

Faster than what?

C has high-level constructs and it is more user-friendly as its syntax approaches to English-like language.

More user-friendly than what? Also, while C has several strengths, being English-like isn't one of them. That attribute describes COBOL.

C has only 32 keywords and several standard built-in functions ...

No. As of C23, C has 47 keywords. And it has far more than "several" standard functions; see here just for the headers (in which there are many functions declared each).

Programs written in C are efficient due to the availability of several data types and operators.

That's not what makes C programs efficient. Most programming languages have the same fundamental types and operators. What makes C programs efficient is virtually zero run-time overhead (no complex memory or resource management, no dynamic dispatch, no garbage collection).

The naming of variables and constants is done by following some rules which are all same in every programming language.

No. While many programming languages have the same requirements for what constitutes a valid identifier, it's not the same in every programming language. One example is XQuery.

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.

While that's technically true, any programming language can be used for CGI. There's really nothing advantageous about using C for it.