Some things get better with age, like wine, and whiskey, and cheese. And jeans. And, apparently, cast-iron skillets.
Nobody ever says that technology gets better with age. Old technology is … well, old technology. Have you ever tried to install your favourite app on a not-so-smart older cell phone?
It seems that as soon as we buy that new cell phone or tablet or computer, a better one hits the market.
Here’s a fun fact. The Electronic Numerical Integrator and Computer, better known as ENIAC, was developed in 1945 at Princeton University. Scientists were excited about its computational power, speed and programmability. It cost almost 500,000 dollars (more than 6 million dollars today), and weighed 30 tons.
ENIAC, the world’s first digital computer, had six primary operators. These women were the world’s first digital computer programmers. (Source: Phillyvoice.com)
I found a 2013 comparison between ENIAC and an average cell phone. The cell phone costs about 17,000 times less, is 40,000,000 times smaller, uses 400,000 times less electricity, but is 1300 times more powerful! (And that was a 2013 cell phone.)
What about programming languages?
Some developers are always looking for the latest programming language. Junior programmers, in particular, often worry about learning an “old” language.
The TIOBE Index for October 2019 made this point:
“Every year new programming languages emerge and seem to become popular, but in fact not much changes. If we compare the current TIOBE index top 8 of today with the one of 2014 (5 years ago) and 2004 (15 years ago), there is only one different programming language.”
Despite all the competition, two of the oldest programming languages stay in the TIOBE index top 5: C and C++.
- The C language was developed in 1972/3. It was the TIOBE language of the year in 2008 and again in 2017. Its highest position on the TIOBE index was #1. Its lowest position since 2001 was #2, which is its current ranking.
- The C++ language was developed in 1979. It was the language of the year in 2003. Its lowest position on the TIOBE index was #5 in 2008. Its highest position was #3. It is currently #4.
Both C and C++ were created before IBM introduced the Personal Computer (PC), and before the Internet existed. In tech terms, that’s very, very, very old.
C and C++ power your world
Don’t believe me? Here are some ways that C and C++ power your world:
- Your operating system is developed mostly in C and C++. That’s true whether you are running Windows, Linux, Mac OS X, iOS or Android.
- Your database management system is probably written in C and C++. That’s true if you are using Oracle, Microsoft SQL Server, MySQL, and PostgreSQL.
- Do you drive a car? Own a microwave? Watch TV? We use devices every day that contain embedded systems. And almost every embedded system contains C and C++.
- Are you a gamer? Serious gaming engines, like the one used in Call of Duty, contain lots of C and C++ code.
Take a moment to think about that. The technology you use today relies on programming languages developed in the 1970s. That’s amazing.
Must I learn C and C++?
When it comes to choosing a programming language, there is no such thing as “one size fits all”.
It’s like choosing a car. If you want to start a gardening or building business, a bakkie (pick-up) is a good choice. If you are planning a big family, choose something with plenty of seats. If you want to park in small spaces, you need a nippy little run-around. If you want an amazing driving experience, splurge on a sports car.
Many business systems don’t justify the investment in C++. And using C to build a web application would be like using a crane to pick up a pencil.
But if you are serious about programming, here are some good reasons to learn C:
- You will master other programming languages faster.
- You will learn how to improve the performance of your code.
- You will develop a better understanding of computers. Even with modern programming languages, there comes a time when you need to understand fundamental computer theories about architecture, compilers, operating systems and networks.
- You will be able to create fast, portable, efficient programs for embedded systems.
C is the foundation for C++. If you want to build solid C++ skills, you need to understand the foundation. (Just read up where the name ‘C++’ comes from, and you’ll understand.)
Why learn C++? C++ is hard-core. It’s not for the faint-hearted. But if you want high performance and high reliability, it is still the language of choice.