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.
|