Hackers, Heroes of the Computer Revolution - Steven Levy (top books to read txt) 📗
- Author: Steven Levy
- Performer: 0141000511
Book online «Hackers, Heroes of the Computer Revolution - Steven Levy (top books to read txt) 📗». Author Steven Levy
Sometimes program bumming became competitive, a macho contest to prove oneself so much in command of the system that one could recognize elegant shortcuts to shave off an instruction or two, or, better yet, rethink the whole problem and devise a new algorithm which would save a whole block of instructions. (An algorithm is a specific procedure which one can apply to solve a complex computer problem; it is sort of a mathematical skeleton key.) This could most emphatically be done by approaching the problem from an offbeat angle that no one had ever thought of before but that in retrospect made total sense. There was definitely an artistic impulse residing in those who could utilize this genius-from-Mars techniques black-magic, visionary quality which enabled them to discard the stale outlook of the best minds on earth and come up with a totally unexpected new algorithm.
This happened with the decimal print routine program. This was a subroutines program within a program that you could sometimes integrate into many different programs—to translate binary numbers that the computer gave you into regular decimal numbers.
In Saunders’ words, this problem became the “pawn’s ass of programming—if you could write a decimal print routine which worked you knew enough about the computer to call yourself a programmer of sorts.” And if you wrote a GREAT decimal print routine, you might be able to call yourself a hacker. More than a competition, the ultimate bumming of the decimal print routine became a sort of hacker Holy Grail.
Various versions of decimal print routines had been around for some months. If you were being deliberately stupid about it, or if you were a genuine moron—an out-and-out “loser”—it might take you a hundred instructions to get the computer to convert machine language to decimal. But any hacker worth his salt could do it in less, and finally, by taking the best of the programs, bumming an instruction here and there, the routine was diminished to about fifty instructions.
After that, things got serious. People would work for hours, seeking a way to do the same thing in fewer lines of code. It became more than a competition; it was a quest. For all the effort expended, no one seemed to be able to crack the fifty-line barrier. The question arose whether it was even possible to do it in less. Was there a point beyond which a program could not be bummed?
Among the people puzzling with this dilemma was a fellow named Jenson, a tall, silent hacker from Maine who would sit quietly in the Kluge Room and scribble on printouts with the calm demeanor of a backwoodsman whittling. Jenson was always looking for ways to compress his programs in time and space—his code was a completely bizarre sequence of intermingled Boolean and arithmetic functions, often causing several different computations to occur in different sections of the same eighteen-bit “word.” Amazing things, magical stunts.
Before Jenson, there had been general agreement that the only logical algorithm for a decimal print routine would have the machine repeatedly subtracting, using a table of the powers of ten to keep the numbers in proper digital columns. Jenson somehow figured that a powers-of-ten table wasn’t necessary; he came up with an algorithm that was able to convert the digits in a reverse order but, by some digital sleight of hand, print them out in the proper order. There was a complex mathematical justification to it that was clear to the other hackers only when they saw Jenson’s program posted on a bulletin board, his way of telling them that he had taken the decimal print routine to its limit. FORTY-SIX INSTRUCTIONS. People would stare at the code and their jaws would drop. Marge Saunders remembers the hackers being unusually quiet for days afterward.
“We knew that was the end of it,” Bob Saunders later said. “That was Nirvana.”
COMPUTERS CAN CHANGE YOUR LIFE FOR THE BETTER.
This belief was subtly manifest. Rarely would a hacker try to impose a view of the myriad advantages of the computer way of knowledge to an outsider. Yet this premise dominated the everyday behavior of the TX-0 hackers, as well as the generations of hackers that came after them.
Surely the computer had changed THEIR lives, enriched their lives, given their lives focus, made their lives adventurous. It had made them masters of a certain slice of fate. Peter Samson later said, “We did it twenty-five to thirty percent for the sake of doing it because it was something we could do and do well, and sixty percent for the sake of having something which was in its metaphorical way alive, our offspring, which would do things on its own when we were finished. That’s the great thing about programming, the magical appeal it has … Once you fix a behavioral problem [a computer or program] has, it’s fixed forever, and it is exactly an image of what you meant.”
LIKE ALADDIN’S LAMP, YOU COULD GET IT TO DO YOUR BIDDING.
Surely everyone could benefit from experiencing this power.
Surely everyone could benefit from a world based on the Hacker Ethic. This was the implicit belief of the hackers, and the hackers irreverently extended the conventional point of view of what computers could and should do—leading the world to a new way of looking and interacting with computers.
This was not easily done. Even at such an advanced institution as MIT, some professors considered a manic affinity for computers as frivolous, even demented. TMRC hacker Bob Wagner once had to explain to an engineering professor what a computer was. Wagner experienced this clash of computer versus anti-computer even more vividly when he took a Numerical Analysis class in which the professor required each student to do homework using rattling, clunky electromechanical calculators. Kotok was in the same class, and both of them were appalled at the prospect of working with those lo-tech machines. “Why should we,” they asked, “when we’ve got this computer?”
So Wagner began working on a computer program that would emulate the behavior of a calculator. The idea was outrageous. To some, it was a misappropriation of valuable machine time. According to the standard thinking on computers, their time was too precious that one should only attempt things which took maximum advantage of the computer, things that otherwise would take roomfuls of mathematicians days of mindless calculating. Hackers felt otherwise: anything that seemed interesting or fun was fodder for computing—and using interactive computers, with no one looking over your shoulder and demanding clearance for your specific project, you could act on that belief. After two or three months of tangling with intricacies of floating-point arithmetic (necessary to allow the program to know where to place the decimal point) on a machine that had no simple method to perform elementary multiplication, Wagner had written three thousand lines of code that did the job. He had made a ridiculously expensive computer perform the function of a calculator that cost a thousand times less. To honor this irony, he called the program Expensive Desk Calculator, and proudly did the homework for his class on it.
His grade—zero. “You used a computer!” the professor told him.
“This CAN’T be right.”
Wagner didn’t even bother to explain. How could he convey to his teacher that the computer was making realities out of what were once incredible possibilities? Or that another hacker had even written a program called Expensive Typewriter that converted the TX-0 to something you could write text on, could process your writing in strings of characters and print it out on the Flexowriter—could you imagine a professor accepting a classwork report WRITTEN BY THE COMPUTER? How could that professor—how could, in fact, anyone who hadn’t been immersed in this uncharted man-machine universe—understand how Wagner and his fellow hackers were routinely using the computer to simulate, according to Wagner, “strange situations which one could scarcely envision otherwise”? The professor would learn in time, as would everyone, that the world opened up by the computer was a limitless one.
If anyone needed further proof, you could cite the project that Kotok was working on in the Computation Center, the chess program that bearded Al professor “Uncle” John McCarthy, as he was becoming known to his hacker students, had begun on the IBM 704.
Even though Kotok and the several other hackers helping him on the program had only contempt for the IBM batch-processing mentality that pervaded the machine and the people around it, they had managed to scrounge some late-night time to use it interactively, and had been engaging in an informal battle with the systems programmers on the 704 to see which group would be known as the biggest consumer of computer time. The lead would bounce back and forth, and the white-shirt-and-black-tie 704
people were impressed enough to actually let Kotok and his group touch the buttons and switches on the 704: rare sensual contact with a vaunted IBM beast.
Kotok’s role in bringing the chess program to life was indicative of what was to become the hacker role in Artificial Intelligence: a Heavy Head like McCarthy or like his colleague Marvin Minsky would begin a project or wonder aloud whether something might be possible, and the hackers, if it interested them, would set about doing it.
The chess program had been started using FORTRAN, one of the early computer languages. Computer languages look more like English than assembly language, are easier to write with, and do more things with fewer instructions; however, each time an instruction is given in a computer language like FORTRAN, the computer must first translate that command into its own binary language. A program called a compiler does this, and the compiler takes up time to do its job, as well as occupying valuable space within the computer. In effect, using a computer language puts you an extra step away from direct contact with the computer, and hackers generally preferred assembly or, as they called it, “machine” language to less elegant, “higher-level”
languages like FORTRAN.
Kotok, though, recognized that because of the huge amounts of numbers that would have to be crunched in a chess program, part of the program would have to be done in FORTRAN, and part in assembly. They hacked it part by part, with “move generators,”
basic data structures, and all kinds of innovative algorithms for strategy. After feeding the machine the rules for moving each piece, they gave it some parameters by which to evaluate its position, consider various moves, and make the move which would advance it to the most advantageous situation. Kotok kept at it for years, the program growing as MIT kept upgrading its IBM
computers, and one memorable night a few hackers gathered to see the program make some of its first moves in a real game. Its opener was quite respectable, but after eight or so exchanges there was real trouble, with the computer about to be checkmated. Everybody wondered how the computer would react. It too a while (everyone knew that during those pauses the computer was actually “thinking,”
if your idea of thinking included mechanically considering various moves, evaluating them, rejecting most, and using a predefined set of parameters to ultimately make a choice). Finally, the computer moved a pawn two squares forward—illegally jumping over another piece. A bug! But a clever one—it got the computer out of check. Maybe the program was figuring out some new algorithm with which to conquer chess.
At other universities, professors were making public proclamations that computers would never be able to beat a human being in chess.
Hackers knew better. They would be the ones who would guide computers to greater heights than anyone expected. And the hackers, by fruitful, meaningful
Comments (0)