Assembly language is a computer programming language that gives the programmer a high level of control over the machine. Or perhaps the illusion of control, as the programmer's work will coexist with Microsoft programs deleting stuff from his hard disk that he isn't supposed to have, Google recording each porn site he visits while he waits for his programs to assemble, and Facebook mining his personal information and selling it to marketeers.
In other words, assembly language is a refuge in fantasy for computer users who are hopelessly maladapted to modern life.
The following program in assembly language compares two numbers:
CLA CLL /CLEAR ACCUMULATOR AND LINK TAD FIRST /BECAUSE WE CAN'T MOVE BUT ONLY ADD TO ZERO CIA /FLIP THE BITS AND THEN ADD ONE, CAPISCHE? TAD SECND /SO THIS SECOND ADD IS OBVIOUSLY A SUBTRACT SNL /THIS IS MY FAVORITE TV PROGRAM JMP I PNTR /GOTTA MISSPELL EVERYTHING HLT /ONLY WAY TO CONFIRM RESULT IS TO SHUT OFF COMPUTER PNTR, .-. /HALF-FROWN, WITH DIMPLES
The reader will be able to verify that this program compares two numbers...if the reader has a spare hour. Those without that much spare time can simply note how much it improves programming to have a five-letter limit on symbols, to spend all your time dicking with mechanics rather than getting down to business, and to code the exact opposite of the thing you want to test. These are three reasons that assembly language programmers TEND TO SHOUT A LOT. The reasons that assembly language programmers tend to wear the same T-shirt for an entire work week is unknown, but clearly assembly language doesn't leave them much spare time to do laundry.
The primary reason to use assembly language is exactly the fact that it is inscrutable. Programmers desire this for the following reasons:
- It impresses chicks.
- It gets the boss off your ass.
- It keeps the boss from firing you because he knows no one else will ever decipher your code.
These very reasons (except the chicks) created a demand for high-level languages. The very best of these is COBOL. We could increase the readability of the previous example by coding it in COBOL as follows:
001 COMPULSIVENESS DIVISION. 002 PROGRAM-ID. COMPARE-TWO-NUMBERS. 003 ANAL-RETENTIVE DIVISION. 004 NITPICKY SECTION. 005 SOURCE-COMPUTER. IBM-360. 006 OBJECT-COMPUTER. IBM-360. 007 SPECIAL-NAMES. 008 CONSOLE IS CNSL. 009 I IS AFRICAN-AMERICAN. 010 ACTUAL-PROGRAMMING-SUBSECTION. 011 COMPARE FIRST-NUMBER TO SECOND-NUMBER GIVING FIRST-NUMBER-IS-GREATER. 012 IF FIRST-NUMBER-IS-GREATER THEN DISPLAY "HELLO, WORLD." 013 UNSOLICITED-WISECRACK-SUBSUBSECTION. 014 DOES ANYONE THINK THIS IS USEFUL. 015 AFTERGLOW DIVISION. 016 STOP RUN.
You see? It is almost English.
Unlike COBOL, assembly language lets the programmer use pointers and create complex data structures involving things like linked lists. Assembly language also provides entertainment, as when the links get screwed up and render an entire database unusable.
Assembly language is completely unportable. This means that, if you get a new computer, nothing is going to work. This confers a tremendous advantage in the workplace of knowing that innovation and productivity improvement will be virtually impossible. It also ensures follow-on purchases of old, transistor-based computers, some of which have 16 "K" of core memory. For this reason, use of assembly language is mandatory at government agencies such as NASA. In other agencies, large unions serve these purposes.
Assembly language is the method of choice for all the programmers who believe they must type the exact same text, ten thousand times, to make the Nazi storm-troopers go away.
For these reasons, nearly all modern software is written entirely in assembly language. It is only unimportant code such as bootstrap loaders that are written in arcane languages like Visual Basic.
Notable computer scientist Edsger Dijkstra has criticized assembly language for its frequent use of JUMP statements, to the near-total exclusion of well-structured loops and branching statements. He has called the result unintelligible "spaghetti code." Happily, Dijikstra is currently enrolled in an Ethnic Sensitivity course to avoid further hurtful remarks toward persons who happen to be Italian.
Dijkstra, of course, also claimed that COBOL "cripples the mind" and recommended that the government criminalize it. Obviously, he did not have much nice to say about anything.
In contrast, renowned software thief Linus Torvalds (pictured), made famous by the Peanuts comic strip in which he concealed his purloined algorithms inside a large blanket, has credited assembly language for letting him recode other people's innovations without them knowing it. This resulted in what is now the complete code for Linux, except for the 98% of it written by anonymous hackers.
It is frequently noted that, "Avengers Assemble!"