July 16, 2007

Linus and the GPLv3

I fully agree with Linux creator Linus Torvalds that the Free Software Foundation are hypocrites and should be ashamed of themselves… I’m sick of free software as a religion, GNU über alles, that proprietary software is “ethically tainted” and a blow to one’s moral character. For me, the open source movement, a lot of it, is the wonderful idea that we can outdo proprietary software… that’s why I’ve always sided with Linus and admired his attitude. If he’s drawing a line in the sand and escalating the well-known open source schism into a full-blown civil war, then I am fully on his side…

Linus once said, “I’m not out to destroy Microsoft. That will just be a completely unintentional side effect.” He also said, “The FSF considers proprietary software to be something evil and immoral. Me, I just don’t care about proprietary software.” I completely agree with both of those viewpoints… the FSF’s preaching and moralizing just takes all the fun out of open source. I just like the idea that we can band together and create something bigger and better than any billion-dollar corporation just by using our heads… it’s freedom, plain and simple, and that’s wonderful. What I don’t like is the FSF’s insistance of their way or the highway, that somehow proprietary software is ethically grievous and should not be used by the conscientious computer user. Honestly, I would imagine a big reason that few major computer games come out for Linux–aside from the annoying stereotype of “Linux users are such huge nerds they could get Doom 3 running on a banana peel”–is because they see developing for Linux as a free-software legal quagmire that they’d rather not get into. That’s something I like about the LGPL, the Lesser General Public License used for libraries and such, that allows code to be compiled into closed-source programs. I want to support open-source development, but I also want to support the indie developer that’s made this cool new game and wants to make some cold, hard cash. There’s nothing wrong with marriages of open and proprietary… in fact, I think the best way to go is often to have open-source backends to your program, to ensure reliability and compatibility, and then if your program is content-based like a game, you can have your content be copyrighted and proprietary and that way you make lots of money.

Now, for applications sold to businesses, none of this matters… open source is definately the way to go, since it gives your program an instant name and reputation (if it’s good) and applications are sold to businesses on the basis of service contracts, which are made tighter and better through the magic of open source, since it ensures greater communication and transparency between parties. I’m talking about direct sales to consumers… now, of course, Ubuntu, my favorite Linux distribution, gives its product away for free and makes money by selling tech support, so that same open-source business model works very well at the consumer level, too. That initial show of trust you give when you make your product free as in free beer is almost as important as the one you give when you make your product free as in free speech, so I think that it’s important to realize that making your software available gratis can make you more money in the end than making everybody pay up front, which will prevent your software and your brand from spreading and make your users feel like serfs or criminals.

I just feel like there’s no reason that, as the FSF seems to feel, we should make Linux a platform hostile to proprietary software. I’d rather revel in the spirit of friendly competition… there’s no reason we can’t invite them over to play and then outdo them on their own terms. That would feel the most fair to me. I feel confident enough–way confident enough–in the superiority of open source that I’m willing to have any company that wants to pile on and peddle their proprietary wares for Linux. They can’t beat us–we’re too strong.

But also, I’m not convinced that the open-source, or at least the entirely-open-source (things like engines and stuff being open source levels the playing field and makes me very happy, even if I admire companies like Epic that make huge wads of cash on proprietary engines and technology–come on, we can beat ’em) model will or can work for games. What, are you going to sell a service contract? Charge for a tip line to beat the level boss? (That, incidentally, would make games spectacularly convoluted; if you think selling tip line minutes and strategy guides leads game companies now to make their games incorrigible by design, try to imagine what it would be like if such income sources were all they had to make money on their games.) Let’s look at other types of media, like video content. Homestar Runner has famously made a good business by building a brand with free cartoons online, and then selling merchandise and DVDs, enough to recoup the cost of building and maintaining the website and make a tidy profit. Would the same model work for a drama, though? I can imagine buying a beanie cap with Homestar on it, but would you do the same for a beanie bearing the likeness of Tony Soprano? Homestar Runner’s business model works because the brand is character-based comedy, and because the characters and situations are downright endearing and make you want to evangelize for the brand. On the other hand, I’m not sure all that many people want to buy Battlestar Galactica T-shirts, no matter how popular that show is. Sure, there are people who do, on their way to sci-fi cons and stuff, but enough to recoup the cost of shooting a science-fiction epic? (Now, action figures, that might work… but again, what about Tony Soprano? Would you buy an action figure of him? And if yes, are you completely crazy?)

So, anyway, yes, I do not want to make Linux a platform hostile to proprietary software because I think that’s been an enormous barrier to Linux adoption. I want to see people be able to go to the store and buy software for Linux, even if I think there are better alternatives available… I love the fact that I can download Inkscape from the package manager and not shell out huge amounts of money for Illustrator. That competition is enough, I imagine, to keep closed-source from flooding Linux and drowning out open collaboration. In fact, if Adobe decides not to release a Linux version of Illustrator, for instance, because of the entrenched competition in Inkscape, I would be doubleplus happy because it would be an example of the Linux platform succeeding on merit and not legal maneuvering. Trying to win in the courts and not in the code is the kind of thing Microsoft does… we need to open up our clubhouse and let everybody in, and show everybody just what open source is really made of.

So, yes… I’d love to be able to go to the store and buy, say, Doom 3 for Linux (I actually have no interest in Doom 3, it’s just the first thing that came to mind writing this), and play it on my compy at the same time as I help develop the open-source competition. There’s no reason we can’t have both, and there’s no reason we can’t fight closed-source on our own turf in the spirit of friendly competition. Besides that, I don’t see why I shouldn’t support indie developers who want to make money on small, closed-source projects. If some indie developer has made a promising new single-player game and I want to play it and support them, I want to be able to buy a native version for Linux and not have to struggle with Wine for hours. (“Massively multiplayer” online games don’t count, here… in fact, an open-source client, charging for the service instead of the game, is really the best way to go for projects like this. That’s a place where the service-contract business model can work for the consumer. Linden Labs has already open-sourced the Second Life client, hooray for them.) I don’t want to see the industry become dependent upon Microsoft’s DirectX… I want to see open source and open standards fluorish.

But also… I want to evangelize for open-source, and evangelism doesn’t work if you insist people be all in or all out. I started out in the open-source world simply using the GIMP for Windows, and seeing just how good it was, and now I’ve got a full Ubuntu installation with its native GIMP and Inkscape and Scribus and a billion other wonderful, wonderful tools and I’m a full convert to the House of Tux. We shouldn’t make Linux unfriendly to closed-source development, because that won’t win us any new converts. We should open it up and let everyone partake in the goods of open source, let everybody bask in the sunlight of freedom and eat from the gardens and the vinyards of open development, whether or not they subscribe to Stallman’s or even Linus’s worldview. I like open-source because it creates good stuff, because it allows me to participate in a community, because it makes computer software a two-way conversation, because, for the first time in ages, I’m having fun with my computer again and rediscovering why I got interested in computers as a little kid programming in C++ in the first place. For the first time, I’m seeing the computer as more than a faceless mass of bits and bytes… I’m able to customize to my heart’s content… I’m able to help build bigger and bolder new features to help people all over the world… I can ask for help from a community and not spend hours on the phone with tech support… and for the first time, I’m not treated like a criminal, I’m not forced to click through a billion “AS IS” end-user license agreements, placing me in a corporate fiefdom whenever I want to install anybody’s software. For the first time, I’m free… and that feels good.

And that kind of utilitarianism, the FSF says, is evil and the enemy of free software, and that makes me mad… I like open source because it’s good. Is that so bad? And by the way… it’s Linux, not this hideous beast called “GNU/Linux.” Linus made the kernel, and then the GNU tools were ported to it. You want to name your OS, you make your own kernel. Mlehhhhhhh.

So I side with Linus because I like freedom, and I want everybody in the world to share in it… I don’t want to see the open source world battening down the hatches and turning anybody away from the clubhouse if they don’t sign the GNU Manifesto in advance. If we let people develop proprietary products for Linux more easily, in time they’ll see that it’s better to open up your code, trust your users, and let the checks roll in on their own… Linux fights the hoarding of knowledge and information just by being what it is, an example of something better. When the FSF says that proprietary software is immoral, and tries to make it illegal, they ruin the spirit of open source and take the fun out of open-source development. Open source is an example of how a community, working together, in the commons, in the public view, can succeed where billion-dollar projects have failed, can make something much better than what Microsoft or even Apple or Sun can create… Open source is intrinsically fun and triumphant, and nothing should make it mean-spirited or nasty, certainly not Richard Stallman moralizing on the evils of proprietary software. I want to show everybody that open-source is better, and we can’t do that if we keep the clubhouse closed… if it were easier to develop proprietary software for Linux, than businesses would come to Linux and make proprietary software for it and would soon see that open-source is a better business model. That said, I’m not sure the traditional open-source business model works for all kinds of content–like certain games–and we need to leave people and corporations open to experimentation if we want to achieve optimum results, balance the interests of private citizens and corporations and the public good, and create something where everybody has a chance to make money and give back to the community. I’m against an all-consuming drive to make money, since people should know that checks don’t just start rolling in when you start programming, you need to develop a name and a reputation, and open source is easily the best way to do that. I’m just not sure that an all-consuming drive against proprietary software is all that good, either, and that’s why I share in Linus’s view that open source is just better. With open source, anyone can build on what you’ve created and share in a global community that helps all people and helps you much more than you would have been able to on your own. With open source, programmers are allowed to stand on the shoulders of giants, and for the first time individuals are finding how much they really can make a difference, all over the world. Open source is, I feel, the first attempt to harness the brainpower of the entire world and create something bigger and better than ever before. That’s why Linux has been so successful in the third world… no Microsoft protection payments and the chance for anyone with a computer and the requisite gumption to become a part of the global community and help his or her local community become bigger and better than ever before. Open source is so good that I want everybody to see it, and we can’t do that if we keep building barriers and scaring people off.

That said, I do strongly dislike Microsoft’s business tactics and I forever recognize the GNU General Public License as the awesome force for good that it’s always been, routinely keeping free code from falling into proprietary hands. I just dislike Richard Stallman’s preaching and moralizing and subscribe to Linus’s view that open-source is better, and everybody should see that. That said, I don’t want to discourage the small games developer or someone like that from wanting to make a quick buck on his or her wares. In fact, open-source code and proprietary content may be the wave of the future, and I don’t want to discourage that. Maybe it’s not, I don’t know. I just think that, to find the best solution, we need to open up our minds and our business models the way we open our source code. Community and collaboration, as we’ve learned, not hoarding, is the best way to find the most reliable and the most workable solution.

That’s why I’m firmly in Linus’s camp, and think that Stallman’s way is going the way of the dodo… there will always be fundamentalists among us who think that closed-source programmers are heretics should be burned at the stake. But, perhaps why “Linux” has caught on and “GNU/Linux” hasn’t is because it took Linus’s moderated temperment for open source to catch on in general. “Linux” is friendly to business, “GNU” is not… “Linux” sees shades of gray, “GNU” sees black and white. And honestly, forcing all the world’s developers to open their source code is not where I want to make my stand. I fall with Linus: open source is better, and we need to prove that to the world, and we’ll never do it by being hostile and hoarding our strategies and code and business models the way that Microsoft does. We need to open up and show the world that Linux is a good platform for everything… and once closed-source companies begin partaking in the fruit of open-source, they’ll help along and never want to go back. Open source is the way to go, and we need to prove that to the world. Steve Wozniak recently said that he’s not sure if one is morally obligated to release his or her source code, but he said it sounded like the right thing to do, and he’s right. Open source is better, and let’s show that by letting the sunlight into our closed world of open source.

There’s one problem: the GPLv3 has many, many advantages. It’s updated for a newer world, fifteen years later, and addresses evils such as software patents and new innovations such as server-side Internet software more thoroughly and effectively than version 2. Honestly, when I saw that article I thought I had read that Linus was starting his own license, or something. That wasn’t the case–I read the first paragraph impressively wrong–but I’d be super stoked if Linus decided to do so, bypassing the FSF entirely by creating a license that would offer the new social improvements of the GPLv3 without the grab at people’s hardware. I like Linus’s perspective, that we shouldn’t try to restrict hardware in a software license… hardware restrictions aren’t good, but they’re a business reality and I want to see TiVo keep using Linux technology, promoting its widespread use, without having them go down in flames because nobody wants to make deals with DRM-less DVR manufacturers.

(By the way, DRM is not an issue for me at all, the DMCA is. Rootkits are, as well. The analogy that I always like to use is that I’m okay if a videotape has a microfilm to prevent me from copying it, but I’m not okay if it has a cartridge of blue paint that explodes if I attempt to do so. I’m also not okay if the FBI busts down my door because I wanted to make a backup copy of my old “Tomorrow People” tapes. If a content company wants to make it difficult for me to copy something, that’s okay with me because that kind of inconvience is what stops 99% of piracy in its tracks, I would imagine. What I do wish for is the liberty, as a consumer, to do what I want with my own home copies of stuff that I bought, within reasonable boundaries such as not sending it to all my friends. Companies are entirely too afraid of piracy, when within limited boundaries it’s absolutely the best way to pick up new fans and adherents. I would never have been such a big fan of Puyo Puyo–and bought lots of Puyo Puyo games, even a few imported from Japan–if I had never downloaded Dr. Robotnik’s Mean Bean Machine from a pirate website in the pre-DMCA days as a little kid. I’m totally okay with DRM so as long as the law doesn’t codify a religious devotion to it, and companies understand that it hurts their brand to treat customers like criminals. …And software platforms adapt to support other companies’ DRM, because I’m sick of closed models of content delivery like iTunes and Xbox Live Video that leave you no guarantee of recourse once your device is obsolete, and prevent marketplace competition through closed channels of delivery. That’s another reason why open source is good, and why open source needs to be able to support proprietary content. Ain’t I grand?)

The issue for me is that I’ve just started doing open-source programming, and I need to know which license to prefer when writing code. Dual-licensing is obviously an option, so that I can choose my own license while still making the code available to GPL or LGPL projects. I’ve been using GPLv3 because I feel so strongly about the evils of software patents and I really want to fight the ignoble spread of philosophies of knowledge hoarding and patentable business models. But I also side with Linus in feeling that the GPLv3 goes too far, in the area of the eeee-vil “Tivoization” (dun dun DUNNNN!), and begins restricting people’s rights in the name of promoting freedom. I don’t like hardware restrictions, but I don’t see any way around them. I want to use the GPL to promote open source by showing people that it’s a better way than hoarding your own knowledge for a pipe dream of vast personal gain. And in order to do that, we need to be able to show how much open source outdoes proprietary on even terms, that open source is simply better, and the FSF routinely states that such utilitarianism and pragmatism is the enemy of freedom. I feel that it is freedom’s friend, because we can’t win new converts by trying to force people into beleiving every one of our ideals. We can simply present the arguments and allow people to choose for themselves, and I believe the argument for open-source is a convincing one.

Don’t believe the FSF when they say proprietary companies are evil… they’re trying to shrink the open-source world down to a small, fundamentalist community wielding torches and pitchforks, and thus suck all of the fun and camraderie out of open source, a fundamentally light-hearted movement to bring down Microsoft as an “unintended side effect.” I do think Microsoft’s business model is often fundamentally evil, and I want to show that ours is better, and I want to do so on merit, and I’m entirely confident that we can do so without hiding behind a Microsoftian legal cloak (or, in Microsoft’s case, a patent figleaf). The GPL serves to protect peoples’ code and grow the world of open source, and the GPLv3 makes a dangerous grab at the hardware that the code is on. That’s murky territory, and I hope the FSF realizes where that road leads. It is often that the most fervent idealists become tomorrow’s oppressors, and that is why moderation is necessary. I hope that Stallman, in calling the free software movement’s founding document “The GNU Manifesto,” hasn’t cursed himself into a descent from the idealistic Marx to the revolutionary Lenin to the totalitarian Stalin. That analogy is quite a stretch, but it shows the importance of moderation and choosing carefully where you make your stand. Stallman has chosen to be a fundamentalist, and that deeply scares me. I’m not sure he recognizes that the free software movement has long been out of his hands, and for good reason. More of us are aligned with Linus because he symbolizes a world that is free and open and is just plain fun. Now’s the time to cut our ties with the FSF, lest they lead us down a dangerous path of control in the name of freedom. Such corruption has happened before and it will happen again, and that is not to downplay the enormous gifts and achievements of Richard Stallman, Eben Moglen, and their compatriots to the open source movement. I simply believe they’re heading down a dark path, and to let them go is the best way to move ahead.

Anyway, yes, I would be interested in knowing what a good license to use would be, since I support the GPLv3’s attempts to meet the challenges and innovations of the modern age but show great concern over its hardware power grab. Of course, the Open Source Development Lab, Linus’s employer, is not a legal organization and I’m not sure any organization save the FSF has the know-how and ability to develop a license as thorough and robust as the GPL. I guess I could use a dual license, two versions of the GPLv3, one with an exception (“don’t lock down your hardware” removed, while “don’t sue your users” stays), one without, to ensure that people are able to use my code in their own projects. But I guess what I’d love to see most is a Linux License that embodies the ideals of the greater Linux community, of freedom and protecting code from privatization, and ensuring that knowledge stay open and shared, and digging into every complicated legal grotto that the GPLv3 does, without any chilling power grabs. I’m a firm believer in copyleft, of requring that derivative works be released under the same license, because of how much it helps and has helped open-source development. I simply believe that Stallman’s fundamentalism has gotten out of hand and is in need of temperance, and in its absence, we may wish to consider going it alone.

“Me, I just don’t care about proprietary software. It’s not ‘evil’ or ‘immoral,’ it just doesn’t matter. I think that Open Source can do better, and I’m willing to put my money where my mouth is by working on Open Source, but it’s not a crusade — it’s just a superior way of working together and generating code.It’s superior because it’s a lot more fun and because it makes cooperation much easier (no silly NDAs or artificial barriers to innovation like in a proprietary setting), and I think Open Source is the right thing to do the same way I believe science is better than alchemy. Like science, Open Source allows people to build on a solid base of previous knowledge, without some silly hiding.

But I don’t think you need to think that alchemy is ‘evil.’ It’s just pointless because you can obviously never do as well in a closed environment as you can with open scientific methods.”