Clement May Blogs

The Pros and Cons of C

The Pros and Cons of C The latest TIOBE Programming Index, a resource reporting current trends in programming languages, indicates a sharp drop in both Java and C. The two top languages have spent a couple of decades as the most popular languages, but their dominance is being severely challenged and they’ve dropped over six per cent in the last year alone.

While others such as Google Go, Perl and Dart are taking up the slack, is it even worth learning C, or encouraging newer programmers to do so? We weigh up the pros and cons:

Pro: Still the Go-To

While languages such as C# and Java might be taking C’s mantel when it comes to modern architectural contexts, C and C++ are still very much the base languages for system-level programmers. While they may eventually be replaced by competitors such as Google Go, they certainly don’t seem to be posing an imminent threat to C’s crown. Many programmers consider C to be the base language from which all others have sprung. The consensus is that learning C makes sense for those who want to master more contemporary programming languages, just as learning Latin does if you want to pick up modern European tongues.

Con: It’s error prone

Anyone who’s used C will tell you it’s notorious for its susceptibility to syntax, logical and runtime errors. This often makes for a frustrated programmer and can, more seriously, cause a host of related security problems. It’s one of the main reasons younger programmers are often advised to learn broader skills such as algorithm development rather than how to track bugs, something that C requires on a very regular basis.

Pro: Still in demand for the IoT

Anyone sounding C’s death knell too prematurely would do well to pay attention to the exponential rise of the IoT. Despite its fiddliness, many developers find C provides the most precise language for IoT programmers, especially when it comes to smaller, underpowered devices that need to maximise their performance as much as possible.

Con: Irrelevant to Mobile and Web Apps

C is only useful for higher level applications that don’t use much I/O and require low level code – criteria that certainly don’t apply to the burgeoning mobile and web app development fields. Many programmers who aren’t qualified computer scientists don’t bother learning C, choosing HTML5 or Objective C instead.

Pro: It still has caché

If you’ve proven yourself committed to dedicating the time and energy necessary to reach a decent level of C, don’t worry, you haven’t wasted your time. Your tenacity alone is likely to make you stand out to potential employers, though it certainly isn’t a golden ticket and you’ll still be judged on your other relevant skills when going for a new role.

Con: It can be confusing

The reason it has such an ability to make programmers stand out is also one of C’s main drawbacks – it really is difficult to master. A heady and intimidating combination of security issues and increasing complexity the more you progress means it really is worth thinking carefully as to whether it’s the best use of your time.