Are C and C++ Relevant in 2021?


A common question students ask these days is “Why learn C and C++ in the age of Python?” Students often wonder why colleges still teach C and C++. Is any software development taking place in these two programming languages? You can’t even build anything with these programming languages? It seems that the entire world has been bitten by Python!

Let me start by saying that not only will C and C++ be important in 2021, they are likely to be very relevant for quite some time. C and C++ can be used to build any type of software such as operating systems, compiler, interpreter, integrated development environment (IDE), graphics tools, And are these two languages still popular? The TIOBE index for November 2020 is self-explanatoy:

TIOBE Index November 2020: https://www.tiobe.com/tiobe-index/

The TIOBE Programming Community index is an indicator of the popularity of programming languages. This index is updated once a month. The ratings are based on the number of skilled engineers world-wide, courses and third party vendors. This index is not about the best programming language, it is about the one where skills are in demand.

This should convince you that C (and C++) are very much in demand. Although Python has overtaken Java and C++ is at number 4, that doesn’t reduce the importance of these languages. The reason Python has reached number 2 position is that it is being used by a very diversified set of people, not necessarily from computer science background. So you could find Python being used by students and researchers of history, economics, languages, law, as well as artificial intelligence and machine learning. But for applications such as IoT (Internet of Things), operating systems, compilers, etc., C, along with Java, are still very important.

Students generally find a few features of a programming language difficult. E.g. pointers in C are generally avoided by students. Yet, pointers are the heart of most applications developed in C. Object oriented features of C++ like polymorphism, inheritance and encapsulation are again topics where students tend to start ignoring the language – but those three features are the pillars of all object-oriented programming.

Some universities also teach Scratch. Now, Scratch may be good enough to introduce programming concepts to those who need only an overview of programming without having to deal with the inner working of computer, Scratch is certainly not a language to develop highly optimized mission-critical applications. It is good as an introductory language in schools but certainly not a college-level subject.

When you are learning Python and C or C++, you may begin to fall in love with the simplicity of syntax of Python. Not for Python the cumbersome semicolons (;) and curly brackets ({, }) or the mind-numbing public static void main of Java. Python offers you a very rich library of pre-defined functions that you can plug and play and build applications quickly. So there is no doubt that you can code faster in Python, but the point is this – you write code once, but the user has to run it many times. But an application built in Python may not run as fast as one in C.

A general-purpose programming language like C or C++ provides you with the basic tools and infrastructure to develop an application. You can always use libraries, frameworks and APIs to generate a commercial application.

So where are C and C++ being used? To start with, the very browser you are using could be in C/C++. If you are using Java, then the Java Virtual Machine (JVM) is in C. Then again, compilers, interpreters, IDEs, graphic editors, video editors, animation applications, relational database applications, games, banking applications, embedded systems, IoT systems, robotics, etc., are all n C/C++. In fact, even the libraries and frameworks that other languages depend on are written in these languages. Many Python packages are coded in C/C++. Infact, Python itself has been developed in – you guessed it: C language.

If you are not being taught C and C++ in your regular courses, now is the time to enroll for an online course – Udemy, edX, Coursera, IITs all have many courses on these languages. A good book like those mentioned below will help you in learning these languages very easily. YouTube videos and online PDF exercises will also be good supplements. Follow the sequence of topics as given in a text or if you are studying online where the chapters are often not hierarchical, follow the sequence as given in my syllabus in the links below. Ask questions on online forums or to online teachers or here in the comment box.

Happy learning.

My Online Course on C Programming

My Online Course on C++ Programming



Categories: Blog, C Programming, C++ Programming, Computer Science, Programming

Tags: ,

1 reply

Trackbacks

  1. Is 24 too old to learn programming? – SciTechGen.Com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: