Roads to the GPL
"They give back all extensions they made so as to help EMACS improve. I called this arrangement 'the EMACS commune'"
The hacker culture at MIT in the 1960s revolved around the AI (Artificial Intelligence) Group under the enlightened leadership of Professor Marvin Minsky and John McCarthy, the inventor of Lisp. In 1963, the AI Group was incorporated into MIT's Project MAC - for the development of Multiple Access Computing and Machine Aided Cognition - which was funded by the Defense Advanced Research Projects Agency (DARPA) of the US Department of Defense.
McCarthy and Minsky encouraged self-motivation, research and investigation, and the core group of ten or twelve AI hackers were encouraged to follow their own paths of discovery within the broadening scope of the AI Group. In 1970, the AI Group, still the home of a flourishing hacker subculture, gained its independence and became the MIT Artificial Intelligence Laboratory, or AI Lab, from which research and exploration into the more arcane reaches of the computer were continued much as they had been during the preceding years, rummaging among the building blocks of artificial intelligence to find ways of representing knowledge and expressing algorithms, with the objective of building a thinking machine. The AI Lab continued to be funded by DARPA, which embarrassed many of the AI hackers, who like their fellow students, were opposed to the Vietnam War which was still at its height.
Noodles and monitors
Into this environment came Richard Stallman in 1971. Born in 1953, Stallman seems to have been, in the words of the Jerry Jeff Walker song, "contrary to ordinary, even as a child." Brought up in Manhattan by his mother, a teacher, who had separated from his father in his early years, he excelled at school in everything but human relationships. He skipped grades, learned calculus at the age of seven, and taught himself Latin as a teenager out of curiosity, but didn't participate in the teenage culture of the 60s, as he felt no affinity with the fashions, pop music and hedonism of the times, and railed at the naivety and anti-intellectualism he perceived around him.
Unable to fit in with his peers, and classed as a difficult child at his public school, he was sent to a private school and survived against the grain, because he was clever and couldn't be ignored. His first encounter with computers was reading the manuals for the IBM 7094 when he was at summer camp, aged ten. He taught himself how to program a computer by reading books and programming manuals, but didn't get proper programming access to a computer until his final year at high school, when he was hired to write a program in FORTRAN, a language he didn't like, at the IBM New York Scientific Center.
Stallman found his way to the AI Lab towards the end of his freshman year at Harvard, looking for manuals to feed his thirst for knowledge. He gained access to the machine, and quickly found an acceptance and sense of belonging that was unlike anything he had known before. He spent his weeks as a regular student at Harvard, working for his physics degree. But come Friday he would make his way over to the AI Lab to escape his fellow students and immerse himself in code, surviving on noodles, andrenalin and the warm green glow of the monitors.
From the beginning he busied himself with the task of rewriting and incrementing parts of the system, most specifically the TECO editor which evolved into Emacs (for Editing MACros), and thrived in the self-motivating atmosphere of the Lab, where the hackers chose their own projects and designed their own systems to suit their own purposes, where an obstacle to an objective was a challenge to be overcome, and passwords were scorned as impediments to the Hands-on Imperative.
Emacs became legendary, a text editor that became a way of life because of its endless extensibility, easy reconfigurability and infinite adaptability, of which the anonymous coward once said in passing: "Emacs is my operating system, and Linux my device driver", to which the standard response was â€œEmacs isn't a bad operating system. It just lacks a good text editor.â€
From the beginning Emacs was widely used in academic and software circles, and a culture developed around Stallman's one condition for its use, "that they give back all extensions they made so as to help EMACS improve. I called this arrangement 'the EMACS commune", he wrote. "As I shared, it was their duty to share; to work with each other rather than against."
In 1974, he graduated magna cum laude in physics from Harvard. and pursued a post-graduate degree at MIT, which he abandoned after a year to become a fully fledged hacker and full-time employee at the AI Lab where, like others of his kind, he made his office his home.
By the early 80s the culture in the Lab began to change, reflecting a change in the culture of the outside world. Because of its versatility and elegance, the language of choice among the hackers was Lisp, the language that had been invented by John McCarthy, but Lisp was heavy on memory - which gave rise to the project of Greenblatt and Knight, two of the core AI Lab hackers, to invent the Lisp Machine, a workstation dedicated to Lisp, written in Lisp, and for the use of Lisp programmers, networked to a community of Lisp Machines. Little did they know it at the time but the Lisp Machine, in some senses a culmination of their work, was also the beginning of the end of their way of life â€“ and no-one grieved more keenly for this loss than Richard Stallman, for whom the culture of the Lab was everything, his community, his life and his purpose.
The hackers' company
On the ninth floor of their block, the hackers had inhabited a sheltered world, free from the obligation to barter their lives to make a living - they had nurtured a spirit of cooperation and mutual development that had resisted all-comers. But perspectives began to change when the hard realities of economics and the encroaching world of business began to intrude on the equation.
Hardware and software began to appear with proprietary licenses and other corrupting influences. The Lisp Machine had become attractive to the wider world outside the Lab, and DARPA had asked MIT to build six prototype Lisp machines at $50000 a piece. As a response to this, Greenblatt, "the hacker's hacker", proposed the founding of a hackers' company, to be called Lisp Machine Incorporated, or LMI, which would build and market Lisp machines in the original spirit of the Lab community, a garage band of hackers that would be self-financing, paying its way on a sale by sale basis, resisting the corrupting influence of outside capital while playing to the intellectual and technical strengths of the hackers themselves.
But Russell Noftsker, a former administrator of the Lab who had been the one that had originally hired Stallman, but had left in strained circumstances to enter the world of business in 1973, had other ideas. He disdained Greenblatt's idealism, and proposed a rival company to be called Symbolics, set up on a commercial footing with input from proprietary investors, and all the compromises that that would entail - a move that Stallman called, with typical forthrightness, a "stabbing in the back, clearly a real businessman."
While Greenblatt was the ideal hacker, loved and respected for his deeds on the machine, he was notoriously shambolic and hard to envisage as a company president. Noftsker brought the promise of financial reward, and to Stallman's distress his fellow hackers began to abandon him, the Lab, and LMI to their own devices.
Some of the mainstays of the Lab, including Tom Knight, who had been instrumental in creating the Incompatible Timesharing System (ITS) and the original Lisp Machine, and Stallman's mentor Bill Gosper, were getting older, and chasing lives outside the confines of the Lab, and were seduced by the promise of a better future with Symbolics. The culture of the Lab began to fall apart as the hackers seeped away. Of this situation Steven Levy records that Stallman wrote:
"It is painful for me to bring back the memories of this time. The people remaining at the lab were the professors, students, and non-hacker researchers, who did not know how to maintain the system, or the hardware, or want to know. Machines began to break and never be fixed; sometimes they just got thrown out. Needed changes in software could not be made. The non-hackers reacted to this by turning to commercial systems, bringing with them fascism and license agreements. I used to wander through the lab, through the rooms so empty at night where they used to be full and think, 'Oh my poor AI Lab! You are dying and I can't save you.' Everyone expected that if more hackers were trained, Symbolics would hire them away, so it didn't even seem worth trying ...the whole culture was wiped out..."
Stallman took his revenge the only way he knew how, by going on a two year coding binge to reproduce every advance that was made by the team of hackers at Symbolics, and match it feature for feature on behalf of Greenblatt and LMI. But it was an ultimately futile task, as he recognized himself, and by 1983 he gave up the task and the job at MIT that had sustained him for so long, to found GNU (GNU's Not Unix), and single-handedly revive hacker culture by other means.
The path to GNU was not smooth. Betrayed by his community, Stallman continued to live and work in his office at MIT, and dedicate his energy, his talents and his considerable stubbornness to reviving the culture, and the impossible dream of making software free.
As far as the hackers at the AI Lab had been concerned the code they had written had always been free, in the sense that it was in the public domain, but they had had no concept of free software, as it came to be known, because the concept of ownership of software was alien to the culture of the Lab, and if software couldn't be owned, how could it be free?
The first GNU software was released in the same spirit. GNU Emacs first appeared in 1985, mainly written by Stallman, but incorporating some code from James Gosling's version of Emacs. Gosling Emacs was a rewrite of Stallman's original MIT Emacs, in C for Unix. (Much later, Gosling became much better known for the creation of Java, but that's another story.)
Gosling initially allowed free distribution of the source code, to which others had contributed, but as Stallman tells it: "He stabbed everyone in the back by putting copyrights on it, making people promise not to redistribute it, and then selling it to a software-house.â€ Stallman was hurt by this betrayal, and was later to say of Gosling; â€œMy later dealings with him personally showed that he was every bit as cowardly and despicable as you would expect from that history. "
Stallman's experience with Gosling and Emacs gave rise to his invention of copyleft and the GPL. It was a typically stubborn response. If the outside world wouldn't accept the hacker ethic, then the hacker ethic would be imposed on the outside world, and if the way to achieve that transformation was to use the mechanics of copyright law to invert the conventions of copyright law, then so be it. The result of Stallman's intuitive hack on copyright was the General Public License, or GPL.
The GPL was devised as a means of enhancing and protecting the freedoms of the user, the coder, and the code alike. All software released under the auspices of GNU and the Free Software Foundation would use copyright to invert the tenets of copyright law to ensure that the software stayed free.
The GPL encourages freedom by granting the user a number of rights and responsibilities. The user has the right to use the software, to have access to the source code, and to change, copy and give the code away. This, of course, is totally antithetical to the purpose of the standard licenses that come with proprietary software â€“ which is to prevent copying, inspection and transfer of the code, and to limit the liabilities of the software provider.
The only restriction imposed by the GPL is that the user must preserve the license, and pass on the same rights, unimpaired, when the software is sold or given away to other users, which by definition includes giving access to the source code, and to any changes that have been made to the code. Any software that incorporates code that has been released under the GPL must also be released under the GPL. The software can be used for any purpose the user pleases, and can be packaged and resold, or given away free. Verbatim copies can be made of the program, but must be accompanied by the GPL and any notices referring to the GPL, including the copyright and disclaimers of warranty for the software. All changes to the code must be noted, with notice of the changes and who made them.
The central thesis of the GPL is that you can do anything you like with the software, except claim ownership, or authorship, of its contents. And thatâ€™s about it.