Programming Languages for EEs That Aren’t Worth Learning

2 months ago by David Rutland

Unlike software developers, electrical engineers often use code to interact with the outside world; driving sensors, gathering data, powering motors, and other practical uses.

Different development languages are suited for different development purposes—game devs wouldn’t code the next big MMORPG using MATLAB, and it’s unlikely that any engineer working on data analysis would find the Unity 3D platform in any way useful. Naturally, every language is good for something, but there are valid reasons not to prioritise the ones listed below.

In this article, we’ll be covering the specific programming languages that aren’t necessarily suited to EEs.

 

Python

Python the most popular programming language for beginner programmers because it is incredibly accessible. If you are dipping your toes into the pool of programming for the first time, there are few better languages to learn with.

Invented nearly three decades ago, Python has a simple syntax that doesn’t require you to learn about overly complicated data structures. It’s a staple of computer science 101 courses, and there are dozens of MOOCs (Massive Open Online Courses) available that provide affordable, or even free, instruction.

A huge downfall is Python’s accessibility; its ubiquity will mean you have the same coding skillset as a first-year computer science student, and you won’t stand out in a crowd; and for more specialised tasks, there are more suitable tools.

 

Javascript is more useful to web developers than it is to electronic engineers. Image courtesy of Ruiwen Chua.

 

C++

C++ is an object-oriented language. Originally developed as 'C with classes' at Bell Laboratories, it was renamed as C++ by its inventor Barney Stroustrup in 1983.

Despite its age, C++ is still widely used today. It is updated regularly with new features and extensions to the standard library, which makes it even more useful to coders and engineers. It can be considered a low-level language, meaning that it is used to write programmes which relate to the specific hardware of a particular type of computer. Only Assembly is closer to the native language of the computer.

C++ is ideal for applications that require more control of how computer resources are used, and for systems programming and embedded system-related projects. However, by giving programmers more control, C++ also gives them more issues to think about and to control.

Many features which are taken for granted in higher-level languages are absent here. It lacks automatic memory management and, as a compiled language, C++ applications need to be written for each individual platform.

 

Fortran

Fortran is more than 60 years old but, thanks to its utility, it is still in use today, with the most stable version released in November 2018. It is especially useful for modelling and large scale simulations, as well as being astonishingly fast—rated by some benchmark tests as being around 100 times quicker than Python.

If you want to build large scale climate simulations or model molecular interactions then Fortran should be your first choice. It is the industry standard for the largest and most complex scientific models.

As the specifications were first laid down in 1954, much of the code still in use today is poorly documented and would be classed euphemistically as a legacy—designed and optimised for computer systems that no longer exist.

Few development environments are available for the language, and most Fortran programmers work with “little more than a text editor, compiler, debugger, and perhaps some performance analysis tools”.

 

The first mass-produced computer, the IBM 704 running Fortran code. Image courtesy of NASA.

 

MATLAB

The MATLAB platform was designed specifically to be used by engineers and scientists and is an abbreviation of Matrix Laboratory. It was written in C, C++, and Java.

MATLAB is exceptionally versatile and is widely used in embedded systems, communications, robotics, measurement, analysis, and motor control; it can be found in almost every scientific and industrial setting.

The software holds inbuilt libraries and add-ons covering neural networks, fuzzy logic, power systems, and communication, among others, and it can be very visual in its inputs and output, simplifying data for comprehension.

MATLAB and other products from the developer, Mathwork, are expensive; with individual license costs starting in the four-figure range. There is also a high cost to add-on modules, fees for software maintenance, and other charges, so it isn’t ideal to start unless you already know that you will be using it heavily throughout your career.

MATLAB is also very memory-intensive, with parallel processes sucking up resources, even on 16 core machines with 64GB of RAM. This makes it difficult to use on older and slower machines.

No programming language is perfect for every situation, and factors which might discourage users range from cost to ubiquity, to the depth of knowledge needed to even start learning. In the end, when it comes down to choosing a programming language to use, it depends on the situation and whether the advantages in that particular case outweigh the disadvantages.

Electrical engineers are involved in the design, development, simulation, prototyping, and testing of electrical equipment and systems. For sheer versatility and a reasonable amount of power, C++ is probably the most useful language to learn. For its arcane origins, lack of support and development tools, Fortran would be one to avoid unless your area of expertise involves impossibly large simulations and modelling.

Comments