The C programming language is hard to learn, its popularity is waning and demand is shifting. Is there any point in learning C? Credit: Thinkstock Take a look at the TIOBE Programming Community Index — an indicator of the popularity of programming languages — and you’ll see that Google’s Go and, to a lesser extent, Dart and Perl are trending up. The venerable C, however, is a language whose popularity is plummeting, according to the index. In a world where there is huge demand for mobile and web applications coded in higher-level languages that are easy to learn and debug and difficult to make mistakes in — at least compared to C — one might assume there’s no reason to bother with a low-level language that’s going out of fashion. Does this mean that C isn’t worth learning? The answer isn’t quite that simple. Demand dynamics C is a fundamental language that is still in use in the IT industry. But that may change, says Mark Driver, a research analyst at Gartner. “They [C and C++] are the native tongue for system-level programming, and they probably will be for many years. Eventually, though, languages like Google Go or D may replace them.” “We see almost no demand for C or C++ among our IT centric clients,” says Driver. “What we see is Java and other managed code languages being used,” he says. “C doesn’t allow you to address many modern architectural best practices, and the rise of languages such as Java and C# has been largely to address this.” But Driver says there’s one rapidly growing area where there is likely to a be a huge demand for programmers with skills in C: the internet of things (IoT). He says that the rise of IoT could lead to a huge revival in the need for small footprint codebases and runtimes. “For traditional workloads there is no need to be counting the bytes like there used to be. But when it comes to IoT applications there is that need once again. So we may well see a resurgence in demand for C skills.” To C or not to C? In the many forum threads on this topic, one popular argument in favor of learning C is that it is a little like learning Latin — you may never need to use it, but it makes other languages quicker to learn and easier to master. Azriel Fasten, a software developer who also gives lessons in JavaScript, says this about learning C to make it easier to pick up other languages: “I think learning C for that purpose is a bit like taking a liberal arts degree. Does a history degree help you? Yes, it helps you. Does learning C? Yes.” Does that mean that C is the language someone considering a move into software development should start with? Fasten doesn’t think so. His view is that students’ time is better spent learning fundamental programming skills like developing algorithms or solving problems than tracking down bugs, which is likely to be necessary in C. “C is very error-prone, which can also cause security problems,” he points out. “Other languages cut out 80 percent of the errors you would be likely to make in C.” Fasten also points out that people who take up programming without taking a full computer science degree often look for work in the web or mobile app development fields, where C is irrelevant. (That’s because if an application is doing a significant amount of I/O — like a web app will — then the application will be waiting for the network for much of the time and the benefits of programming in C would be lost. It’s only high-performance applications, such as data processing, along with low-level code, such as operating system kernels and drivers, that really need to be in a language like C.) One person who has no doubt that C has made him a better programmer is Miguel Morales, a former AT&T, HPE and Cisco software engineer who is currently enrolled in online learning company Udacity’s Self Driving Car Nano degree using C and C++. “Indirectly, a knowledge of C has made me a better programmer,” he says. “Understanding how the machine works, how it uses registers to hold data, how the allocation of memory works, gives you an extra edge even when you are not using C. You become more responsible when creating variables, try to use the best algorithm available for a task, and use the ‘continue’ and ‘break’ commands to avoid executing unnecessary statements. And sure, modern languages have great optimizations features, but the point is that the extra responsibility you are granted gives you an edge in writing quality code.” Perhaps the most common view encountered when researching this article is that C is a language that’s still worth learning, but only as a second or third language. That way you can get coding (and earning a living) relatively quickly, and then build a deeper understanding later. That’s certainly the view of Raymond Phan, a computer vision engineer at Zebra Technologies. “Some of the concepts of C are quite intimidating, so it is better to get a grounding in the fundamentals in a higher level language and then do a deep dive into C if you want to do high-performance programming,” Phan says. “But otherwise I would just stick with high-level languages.” What about the idea that learning C makes learning other languages easier and makes you a better programmer? Phan has mixed feelings. “You are not going to be learning about memory management if you don’t learn C, so I guess that learning C does give you an appreciation of what is going on ‘under the hood’ in a system. C can help with that, but when you go further with C it could just get confusing.” One final point: Could having a knowledge of C on your resume make it easier to get a job — even if the job doesn’t require it? Does C make you more employable? “I think C is a benefit to have on your resume as it is hard, but you would still be evaluated on your relevant skills. So it would be a bonus, but not a deciding factor,” says Phan. Gartner’s Mark Driver agrees. “The trial-by-fire of learning C tends to weed out the noncommitted, so a knowledge of C at the very least makes you stand out,” he says. Join the conversation on Facebook Join the conversation on LinkedIn Related content feature Red Hat embraces hybrid cloud for internal IT The maker of OpenShift has leveraged its own open container offering to migrate business-critical apps to AWS as part of a strategy to move beyond facilitating hybrid cloud for others and capitalize on the model for itself. By Paula Rooney May 29, 2023 5 mins CIO 100 Technology Industry Hybrid Cloud feature 10 most popular IT certifications for 2023 Certifications are a great way to show employers you have the right IT skills and specializations for the job. These 10 certs are the ones IT pros are most likely to pursue, according to data from Dice. By Sarah K. White May 26, 2023 8 mins Certifications Careers interview Stepping up to the challenge of a global conglomerate CIO role Dr. Amrut Urkude became CIO of Reliance Polyester after his company was acquired by Reliance Industries. He discusses challenges IT leaders face while transitioning from a small company to a large multinational enterprise, and how to overcome them. By Yashvendra Singh May 26, 2023 7 mins Digital Transformation Careers brandpost With the new financial year looming, now is a good time to review your Microsoft 365 licenses By Veronica Lew May 25, 2023 5 mins Lenovo Podcasts Videos Resources Events SUBSCRIBE TO OUR NEWSLETTER From our editors straight to your inbox Get started by entering your email address below. Please enter a valid email address Subscribe