Simplifying Concepts.
Accelerating Innovation.

Jacob's Blog

Jacob Beningo
| | | |

It’s the end of C as we know it!

The C programming language has been with embedded software developers since its creation in 1972. Ever since then C has been a blazing constant, surviving even the big push in the late 90’s and early 21st century to move to C++ or other object oriented languages. Undoubtedly, C will continue to be a foundational language for embedded systems but over the last year, the language has begun to see a decrease in popularity.

Don’t believe me? Take a look at the TIOBE Index image snapshot taken in early August 2016. Since November 2015, C’s popularity has been dropping like a rock, reaching an all-time low (well at least since the index started back in 2001).

04-TIOBE

Now keep in mind that the TIOBE index calculates the popularity for programming languages as a whole and not just for embedded system use. TIOBE scans the internet, search engines and websites looking for programming language search trends. It’s interesting to note that up until just recently, C has always been a constant pillar programming language. So what exactly is going on?

There are multiple changes that are currently driving change in industry. First, the big push to IoT devices and infrastructure is putting a large emphasis on programming languages for mobile devices and cloud based services. The C programming language is not well suited for these applications. C is meant for low level programming that needs to be fast and efficient. As more developers adopt web based technologies, it only makes sense that the general use for the C programming language as a whole would decrease.

The next big area to consider is the embedded space. Traditionally embedded software is mostly written in C. Microcontroller manufacturers provide example code in C, drivers, etc. Most middleware and RTOSes are written in C. Example code and open source software is written in C. C programming is engrained in the embedded space.

Using C in the embedded space is starting to change. The reduced cost and availability for 32-bit microcontrollers is beginning to cause a change in the industry. Efforts by ARM to push out mbed along with RTOSes and examples in C++ may start to change the trend to C++ rather than defaulting to C. Microcontrollers are becoming so complex that for many applications it doesn’t make sense for developers to work at the hardware level twiddling bits and bytes. Instead, using higher level languages such as Python are beginning to become more popular. The trend is not just at the application processor level either such as with Raspberry Pi’s but is even being seen with resource constrained microcontrollers that can run ports like Micro Python.

The C programming language has survived trend after trend over the past 44 years and remained rock solid in its use. Despite predictions for its demise C has always bounced back and remained entrenched as a critical tool for developers. Is C finally ready to give up its center stage position and become just one of many possible languages that can be used? Only time will tell but the trend over the last year might make one wonder.

* * *

Struggling to keep your development skills up to date or facing outdated processes that slow down your team, raise costs, and impact product quality?

Here are 4 ways I can help you:

  • Embedded Software Academy: Enhance your skills, streamline your processes, and elevate your architecture. Join my academy for on-demand, hands-on workshops and cutting-edge development resources designed to transform your career and keep you ahead of the curve.
  • Consulting Services: Get personalized, expert guidance to streamline your development processes, boost efficiency, and achieve your project goals faster. Partner with us to unlock your team's full potential and drive innovation, ensuring your projects success.
  • Team Training and Development: Empower your team with the latest best practices in embedded software. Our expert-led training sessions will equip your team with the skills and knowledge to excel, innovate, and drive your projects to success.
  • Customized Design Solutions: Get design and development assistance to enhance efficiency, ensure robust testing, and streamline your development pipeline, driving your projects success.

Take action today to upgrade your skills, optimize your team, and achieve success.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *

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