DesktopLinuxAsm - predictions and history




In the late 60's a fellow programmer said assembler is dead, Algol owns the future. In the 70's some of my fellow programmers was telling me that Pascal was the future and assembly was a waste of time. In the 80's the rage was C and people were telling me that C was as fast as assembly and compilers now produced optimized code.

Of course, there is an element of truth in most comments, HLL languages have dominated programming. It also appears to be true that programmers become attached to a language and ignore is failings.

In the late 70's I performed several tests to determine the truth about some of the prevailing opinions. In one test several sort programs were written in both C and assembler, then run on a Intel 80386 processor.

The assembler code was about 40 percent faster and the code size also about 40 percent less. There was a large variance in both C and assembler performance. Results depended upon who wrote the code. In one case the assembler code was twice as fast and half the size of the C code. In another the code size and speed was about the same. You can form your own conclusions from all this.

Another claim was that assembler is a nightmare to maintain. This was certainly true of some projects at the time. It also appears to be true of some projects written in other languages. I was never able to prove anything with hard data, but did find some large assembler projects that were easy to follow. Also, some mixed language projects that were easy to maintain.

My overall conclusion is that assembler is easier to turn into spaghetti, but well planned projects and talented programmers can work with any language.

So.. is assembler dying or will it make a comeback?

I think assembler has two niche's that will never go away. The first is on the bleeding edge when new cpu's are created and before most of the HLL tools exist. This includes embedded systems where the hardware does not support large HLL code and applications where assembly code fits better. Another niche is mature applications where performance is important. This happened with DOS as it matured. A few assembly applications appeared that outperformed all others. They executed faster and used less memory. This compennsated for the extra time it took to create them. What made these programs possible was the existence of libraries and talented programmers.

What does the future hold?

I predict learning Algol is a bad idea. Assembler hasn't changed much since the Algol era and most assembly programs use 8 or 9 simple instructions over and over. These instructions are the same in any assembly language due the nature of "Von Newman" style processors. So, I suggest we tell fellow programmers that assembler is tedious and difficult to maintain. Then, put assembler on your resume. Maybe someday the business world will realize they could save billions of dollars by optimizing frequently used applications with assembler libraries. Time is money, and todays machines are running slow bloated code.


Fork me on GitHub