Friday, May 14, 2010

Biography: Last of the True Hackers

Being called a hacker is now considered a bad thing. A hack now refers to an exploit or an illegal activity. It wasn't always this way.

A hack used to refer to the *ahem* "re-configuring or re-programming of a system to function in ways not facilitated by the owner, administrator, or designer". The more elegant and unexpected the hack the better. Those who could perform those hacks were hackers in the older and better sense of the word.

By that standard Richard Stallman deserves the title Steven Levy gave him of "the last of the true hackers".

Most famous for starting the free software movement Stallman is a true character. An extremist in his views, dedicated to what he believes is right and correct, and completely unable to compromise. Which is why you get articles like St. Stallman: A Hero of the Highest Order that praises his ideas while confidently stating that he's wrong. If only because he's so extreme.

The whole story of Stallman and how he came to his ideas and the impact they've had is in the book Free as in Freedom: Richard Stallman's Crusade for Free Software by Sam Williams. The book is available online to read for free.

For me thought his greatest hack isn't computer code. It's a license to put on software. A license that keeps things free by putting restrictions on what you can do with those free things. Think that sounds backwards and impossible? Here's how he did it.

Stallman believes that software should be free. Not that it should not cost money but that it should be free as in freedom. The phrase that's been often used to differentiate between free as in no cost and free as in the sense of freedom is "free as in beer" vs "free as in speech". Stallman believes that software should be "free as in speech".

When we buy software we tend to think we own it but that's not exactly true. We own a license to use a copy of the program. I can't buy one copy of Windows and resell it hundreds of times. I can't reverse engineer or hack the innards of my copy of Word. The software license doesn't allow it. The license is that long winded legalese we scroll through and click past. Remember those pages of small text that you "had" to read before opening the envelope with your newly purchased disks or CDs? That's the license.

If you buy a DVD you have a license to use that copy of that movie for your own personal use but you can't play that DVD in a theatre to a paying audience. When you buy a book you have ownership of that physical copy but you can't retype the latest hardcover bestseller and sell a paperback before the publisher does. The licenses don't allow it.

So in order to keep software free it needs a license that keeps it free. One that lets you know that you aren't restricted and can do many things with the software you wouldn't expect. Stallman wrote the GNU General Public License (or GPL) to do this. Many software projects have adopted the GPL as their license of choice in order to keep their software free as in speech. The GPL is one of the greatest hacks of all time.

Unlike the small print from most software corporations the GPL is surprisingly readable. It lacks intricate legalese and jargon. It does take a while to understand the implications of what it says though.

It states what freedoms you have if you receive or buy a program licensed with the GPL. You can use the program in any way you see fit. You have the right to access to the source code so that you can reprogram or change the software to your hearts content or just see what it does and how it works. You have the right to redistribute the program and even to sell it.

The hack comes into play when the GPL tells you what you must do and what you can't do. If you redistribute or sell the program (either in its original for or after you change it) you must also distribute the source code. If you distribute the software you can't restrict the purchaser. The person you distribute it to has to have the same rights you do. You can't take away any of the freedoms the license guarantees you. That person also can't remove the freedoms from the next person. To accept the license is to accept that the software has to stay free.

In other words... to keep something "free as in speech" you have to limit people's ability to remove freedoms. Counterintuitive but brilliant. It's a hack of the highest order.

There are other licenses for non-commercial software. Some allow people to take the program and restrict their copy and their changes. The GPL doesn't allow that at all. The opponents of the GPL (usually corporations or individuals who wish they could take GPL code and restrict it in some way) call the GPL viral. In that sense they are correct. If a program is created with the freedoms of the GPL attached they can never be removed. It will always be free.

This hack may be why so much open source software written by volunteers around the world is licensed using the GPL. They know that their contributions to the software won't be controlled or owned by a single corporate entity. Their work will be kept free. People may make money from it but those people can't stop others from using it for free. If you're going to dedicate time and effort into helping a software project it is nice to know your work won't be exploited mercilessly.

The GPL alone ranks Stallman as one of the greatest of the hackers in my books. And that's before any of his "real" programming work is considered. He is an extremist though. One whom I can understand but not fully agree with. I don't think all software has to be free or even should be free. I think every company and programmer should be able to choose how they license their programs. Not all software will be "free" because some people will decide their work shouldn't be shared and they should have the right to restrict their work. So while I prefer open source and free software I don't find myself actively avoiding commercial and closed software.

Yet Stallman's creation of the free software movement has helped make sure that we have the choice to make things free and that we have free options that aren't under corporate control. Much of the internet runs on free software and without Stallman, the GPL, and the free software movement much of that software wouldn't exist.

If you want to get an additional glimpse into the mind of a man who can deviously turn the entire licensing regime from one that restricts freedom into a regime that also has to enforce freedom then read a short story he wrote. Jinnetic Engineering is a perfect example of his mind at work. Let's be thankful minds like his exist.

No comments: