At the end of 2019, Design News editor Jacob Beningo wrote about two game-changing trends that were predicted for the embedded systems space in the 2020s: #1 – The rise of python as a dominant language, and #2 – Machine learning at the edge. I’d like to add some perspective to that 2020 list.
As Beningo pointed out, Python is already the most popular programming language used by software developers outside the embedded systems industry. In fact, a survey conducted in 2019 by IEEE verified that amongst engineers, Python is the number one programming language followed by Java and then C. The Aspencore 2019 Embedded Markets Study also found that in the last two years, the number of projects programmed in Python in the embedded space has doubled! Keep in mind the study also found that there was no change in the number of projects using C, noted Beningo.
|Top 10 Most Popular Programming Languages.|
A recent study in 2020 by Northeastern University confirms the popularity of Python, Java, and C/C++. The study notes that Python is widely regarded as a programming language that’s easy to learn, due to its simple syntax, a large library of standards and toolkits, and integration with other popular programming languages such as C and C++. Python is the first language that students learn in the Northeastern University Align program, a course of study specifically designed for students who want to transition into computer science from another field of study.
Python is used in a wide variety of applications, including artificial intelligence, financial services, and data science. Social media sites such as Instagram and Pinterest are also built on Python. The one major drawback with Python is its unsuitability for mobile application development.
The second game-changing trend in the embedded space on Beningo’s list was machine learning, especially for IoT edge applications. As he pointed out, machine learning holds a lot of potential for embedded systems developers as the new decade begins.
How important is it for software developers and programmers to gain machine learning skills? To answer this question, consider the comments from Andrew Feldman, co-founder and CEO of Cerebras Systems Inc., from his virtual keynote presentation during the 2020 Design Automation Conference (DAC). “… the requirements to train the largest deep learning models increased by 300,000x between 2012-2018. This represents a doubling every 3.5 months or 25,000 times faster than Moore’s Law.”
To highlight this point, Feldman shared a recent poster he found at a bus stop in Palo Alto, CA, offering courses in AI for third graders. (Image Source: DAC 2020 Andrew Feldman)
DAC 2020, Andrew Feldman
|15 Takes on the Semi Future|
Here’s where I add my own list of embedded software skills, challenges, and emerging platforms to Beningo’s list of game-changers:
Software for Spaceships
The rise of the number of commercial space flights in the last decade has prompted renewed interest in engineering careers, including EE, ME, CS, and software programmers-engineers. Highlighting the growing interest in the software side of space and similar mission-critical applications was an ecosystem talk during the Arm DevSummit.
Keenan Johnson, Head of Robotics Software Engineering at Bedrock Ocean Exploration, talked about his experience with software development at SpaceX, NASA, and on electronic aircraft systems and deep-sea drones. One of the biggest challenges he saw in developing software for the space industry stemmed from unreliability and the high failure rate of applications in the consumer market. Most people simply don’t trust software to work all of the time. While a software failure in most consumer apps is inconvenient, it’s often fixed by simply rebooting the computer, cell phone, or other devices.
“GIT” and Versioning Control
Lots of designs are taking place in the automotive space. The automotive standard ISO 26262 requires a higher level of traceability and functional safety awareness in the hardware and software design process. Standards have a greater influence on IP functional safety than in the past. As a reminder, functional safety defines what is required to avoid unreasonable risk due to hazards caused by malfunctioning behavior of electrical and electronic automotive systems.
Version control and management of intellectual property (IP) have become a necessity for mission-critical and non-mission-critical applications. Many embedded (and chip-level) software developers have been using GIT and other versioning tools. Several tool vendors, such as Methodics and others are integrating GIT interfaces to their system requirements and simulation tools.
Security Issues with Outdated IP
Given the importance of IP to electronic hardware, software, and mechatronic design and manufacturing, you’d think it would be a highly prized and well-managed asset. Such is not the case, according to a recent 2020 Open Source Security and Risk Analysis (OSSRA) report. One of the key findings of the report, which was produced by the Synopsys Cybersecurity Research Center (CyRC) and focused solely on open-source software components, was that 91% of commercial applications contain outdated or abandoned open-source components —a potentially serious security threat and legal concern.
Further, the report revealed that 99% of the 1,250 commercial codebases audited contained open-source code, with open source comprising 70% of the code overall. According to a press release, what was, “more notable is the continued widespread use of aging or abandoned open source components, with 91% of the codebases containing components that either was more than four years out of date or had seen no development activity in the last two years.
RISC Open Software
The free and open RISC-V Instruction Set Architecture (ISA) has been grabbing more and more headlines lately. One reason is that RISC-V might become a less expensive yet viable competitor to global processor leader Arm, especially if the latter is acquired by GPU-giant Nvidia.
RISC-V is supported in the open-source domain like GCC and Linux. However, there is a large commercial software ecosystem being developed around RISC-V. The great thing about RISC-V is that it acts as an intermediate open specification. This means that, as long as the hardware processor developers follow the spec, then they can take advantage of the large software ecosystem, noted Asanovic. Similarly, the software developers understand that their tools will work across all the hybrid implementations from many different vendors.
John Blyler is a Design News senior editor, covering the electronics and advanced manufacturing spaces. With a BS in Engineering Physics and an MS in Electrical Engineering, he has years of hardware-software-network systems experience as an editor and engineer within the advanced manufacturing, IoT and semiconductor industries. John has co-authored books related to system engineering and electronics for IEEE, Wiley, and Elsevier.