The Impact of Coding Over 30 Years

Electrical engineering is without a doubt one of the fastest growing disciplines today. Between the constantly changing curricula and rapidly advancing technology, engineers are required to keep themselves up-to-date with the latest tech and tools. Over the past 30 years, we have seen a significant advancement in the tools engineers are using to learn and innovate. Fueled by the growth of digital electronics, computers along with software and programming languages have helped us shift away from the use of logic components. As a result, while designing and fabricating circuits, many people choose the much simpler approach of the microcontroller (MCU).

In the 1980s, students, engineers, and scientists were just beginning to use their computers as tools. This was due largely to the emerging home computer market and the software being developed for those computer systems. Exactly 30 years ago, two great software programs were developed and showed people just how useful a computer can be, and many industries were never the same after.

WordPerfect 2.20 was introduced to the IBM PC as a port from Data General minicomputers in 1982. The program featured a 30,000 word dictionary, newspaper-style columns, and proportional spacing. The product quickly became a favorite among users, surpassing other competitors at the time such as WordStar. It would remain dominant until the very early 1990s when people began updating their computers with Windows. Unfortunately, the company was slow to make the transition from DOS to windows and stiff competition with Microsoft proved to be too much.

The Intel 8008, the first general-purpose 8-bit microcontroller. (Source: Intel)

Also in 1982, AutoCAD software was introduced by Autodesk. AutoCAD has had a tremendous impact on the engineering community. Up until this time everything was hand drawn, most of the time using T-squares, triangles, and compasses. Using CAD software not only made the process quicker and easier to work with, it enables us to share our drawings within seconds to anyone around the world. Today, we can now run 3D model simulations on computers, designing, building, and testing virtually, saving money and even more time. Computers even make our projects more accurate. Creating a 2D or 3D model and sending it to the CNC machine or laser cutter yields engineered parts with more precision than ever before. Arguably, modern CNC began 30 years ago.

Along with software, we have also seen a very strong development of programming languages. During the 1980s there was still a widespread use of machine language and punch cards. However, with the increased complexity of computers and the tasks they were being asked to do, scientists realized higher level languages were needed. Languages such as C, FORTRAN, and BASIC had already been developed by this time and started to influence the birth of new languages.

In 1983 Bjarne Stroustrup released C++. Building on the original C language it was originally dubbed "C with classes." In addition to the added functionality of classes, it also included a strong type checking system, inlining, and default function arguments. The “++” in the name was a reference for a new way to increment variables within the language and also gave some insight on how it would function. Later features would also include templates, exceptions, namespaces, new casts, and a Boolean type. For users' convenience, the language has received many important updates and has also had an influence on the creation of Java.

Deriving much of its language from C and C++, Java was released in 1995 by James Gosling at Sun Microsystems. Built as a general-purpose, class-based, and object-oriented language, Java is now an invisible force behind numerous applications and devices we use every day. Java was released with the intent to allow application developers to run code from one platform to another, without the need to recompile it. Using any computer architecture it can accomplish this by compiling code to bytecode, enabling it to run on any Java Virtual Machine. In addition, with the Internet starting to take off in the 1990s, Java jumped right in, announcing in 1995 that the Netscape Navigator would incorporate Java technology. Using such tech, developers could now create programs within a Web browser and access available Web services. Today, 1.1 billion desktops run Java, 3 billion mobile phones run Java, and there are more than 930 million Java Runtime Environment downloads each year.

Stroustrup suggests that the origin of the name C++ is related to George Orwell's "Newspeak" described in the appendix to his novel 1984: "any word ... could be strengthened by the affix plus-, or, for greater strength, doubleplus-." This is part of a soi-disant "C" language. See Orwell, 1984, pp 315 and 322.

tekochip- I think you hit the nail on the head with "limited resources." Based on my experience in interviews and seeing CS's in action, it seems many CS schools don't touch on coding efficiency.

Now that I think about it, I haven't seen strong evidence CS schools even touch on good code. Graduates seem to hit the field either "having the knack," or (to paraphrase Steve Martin,) "not have knack.)

That is for certain. The ability to make the process between program writing and the production of correctly functioning code can be quite daunting at best.

The closest I get to embedded code is writing detailed functional specifications that describe both the "screens" and the I/O actions in sequential detail. The challenge is that in addition to creating the description of what happens when everything goes exactly right, it also needs to describe what happens when things don't function correctly. That part requires an excellent understanding of the entire non-software portion of the system, and sometimes requires extensive discussions with the person writing the actual code. The problem there is that most programmers don't seem to be quite normal people. It is not clear to me if it is programming that makes them that way, or if they are programmers because they are that way.

William, learning a tool or software for professional work and learning a programming language is different. In some of the tools, command line access and writing scripts are very much requires for executing the batch file during simulation or synthesis. Such command line access may be difficult for most of the non-IT professionals.

AutoCAD wasn't the first drafting program at all, but that is when they started. Now they are an industry standard. The first "modern" as we know it CAD package that stuck. Keep in mind, Photoshop wasn't the first graphical program. The iPOD wasn't the first MP3 player either. But they are now considered the most important.

I agree apresher. I hired a couple of CS majors for my embedded designs and quickly found that they really didn't have the proper skill set for developing embedded designs. I'm sure there are CS guys that can get the job done, but EEs perform much better with the limited resources (execution speed, memory, etc) of an embedded design and the EEs also do a better job at troubleshooting system errors since they have a better understanding of glue logic and the other components in a system.

WilliamK, I agree with your perspective on the need for other skill sets beyond programming. The biggest challenge over the last number of years, and continuing into the future, is the need for multidisciplinary engineering teams that combine a broad set of capabilities from mechanical, to electrical, to electronic design and software. There's no doubt that engineers need to understand how software works but everyone doesn't need to have specific programming skills themselves.

Electrical and electronic engineering are quite a bit different from program writing, probably almost opposites. Yes, engineers do need to understand a lot about computers if they are qoing to design a system that uses or interfaces with a computer, but really, desgining circuits that actually function and are constrained by cost and size limitations is a quite different thing than creating code that is so very bloated that one person can't even read all of it, let alone understand exactly what it is doing.

Seriously doubt he ever really uttered it, but IBMs Thomas Watson supposedly said in the 1940s that there would only ever be a need for about 5 computers in the United States. Microcomputers changed that whole paradigm.

They came on the scene when computer science was making some great strides, and application software written by companies other than the computer manufacturer was really coming into its own.

BTW, AutoCAD was hardly the first Computer Aided Design software. There were numerous, completely incompatible and incomprehensible electonic drafting programs before it. AutoDesk had the vision to see that the PC would grow up.

As for Java, don't slight the contributions of Sun co-founder Bill Joy in the development and emergence of the language. Interestingly in light of recent issues with security, the license has always included a caveat that it was not to be used to program safety systems - medical, missiles, or nuclear sites.

Virtual Reality (VR) headsets are getting ready to explode onto the market and it appears all the heavy tech companies are trying to out-develop one another with better features than their competition. Fledgling start-up Vrvana has joined the fray.

A Tokyo company, Miraisens Inc., has unveiled a device that allows users to move virtual 3D objects around and "feel" them via a vibration sensor. The device has many applications within the gaming, medical, and 3D-printing industries.

While every company might have their own solution for PLM, Aras Innovator 10 intends to make PLM easier for all company sizes through its customization. The program is also not resource intensive, which allows it to be appropriated for any use. Some have even linked it to the Raspberry Pi.

solidThinking updated its Inspire program with a multitude of features to expedite the conception and prototype process. The latest version lets users blend design with engineering and manufacturing constraints to produce the cheapest, most efficient design before production.

Focus on Fundamentals consists of 45-minute on-line classes that cover a host of technologies. You learn without leaving the comfort of your desk. All classes are taught by subject-matter experts and all are archived. So if you can't attend live, attend at your convenience.