Why I (A/L)GPL

In the Python world the GPL is frequently frowned on, with most people preferring to use a more permissive license such as BSD, MIT, or Python’s. It’s understandable then when people get angry because I’ve licensed Lamson under the GPL. Many people just hate the license, since they feel it goes contrary to the spirit of Python.

However, I’d like to explain why I use the GPL after decades of writing open source software and after a couple of “successful” projects. These are my reasons for using it, and only apply to me and what I want to do with my software from now on. You are free to your own opinions and choices, and I hope you’ll respect mine.

It’s The Author’s Right

I believe that whatever the author wants to do with his or her works is their right. They wrote it, despite everyone telling them it wouldn’t work. They slaved over it rather than going out with friends. They debugged it, and wrote documentation for it so everyone else could use it. They may have even spent a part of their time promoting it and helping people with it. All for free, and for whatever reason they choose.

When you rip on a project or someone for their choice of license you are being gigantic jerk. They worked on it, not you. At a minimum you’re insulting someone’s belief in open source and free software, and how they feel it should progress in our culture.

At the worst you are being ungrateful turds because someone is giving you a piece of software, but you insult their work not on its technical merits, but on a license file you disagree with.

I really don’t care what license people use on their software, it’s their software and bitching at them for the license they choose is offensive. They wrote it, put their blood and sweat into it, and you should be glad that you get the privilege of even seeing it.

That’s my first reason I use the GPL:

Because I want to, and if you disagree with it then don’t use my software. It’s as simple as that.

I Don’t Want To Be Ignored Again

I wrote Mongrel and then gave it away, on the hopes that it would help a bunch of other people, and that giving it away would come back to me in some way. Maybe a job, or some respect, or hell maybe my own company doing more software like it.

Mongrel was a wild success, and lots and lots of companies are making lots and lots of money off it. It not only powered Rails, but nearly every Ruby web framework, other Ruby web servers, and was even ported to other languages. Mongrel is and was a super project and I’m really proud of it.

Let me give you an idea of how advanced Mongrel was. Remember the “new” attack on Apache called Slowloris that was recently released? I actually predicted that attack, and wrote Mongrel so that it was resistant (as much as Ruby could let me). I called it the “trickle attack” and even demonstrated it. That was in 2004. Five years ago. I even added it as an attack to RFuzz in 2005.

Sadly, none of Mongrel’s success mattered for me. Even though everyone was using my software, the vast majority of firms using Mongrel were startups. The last thing a startup wants to admit is that they don’t own their intellectual property. They want everyone, especially the VCs and investors, to believe that they’re all geniuses who “innovated” everything they run.

When I looked around, companies had no problem admitting they used Ruby on Rails, hell that probably got them their funding. What I didn’t see was them saying they used anything else, which meant that when I would try to get work, it was impossible for me to explain the magnitude of Mongrel’s impact. To them it was just some simple web server that their system administrator had to use, “RoR” was the real money maker.

This is my second reason I use the GPL:

After Mongrel I almost need companies to have to admit they use my software. I would actually rather nobody use my software than be in a situation where everyone is using my gear and nobody is admitting it.

Or worse, everyone is using it, and at the same time saying I can’t code.

Venture Capital Changed The Industry

There has been a change in the software industry since about 2000. I’d put the mark at around Google’s IPO actually, but I can’t say exactly when. What I can say is that the current way technology companies are grown promotes an attitude of exploiting open source rather than contributing.

I can’t really blame these companies though, they are designed to flip. A VC backed firm is almost always going to be setup for a short-term gain in the hopes of bringing a handsome return on investment later. For a VC, expecting a payout in 20 years is unheard of, especially if you plan on doing it without an IPO and stock options for everyone involved.

For a VC backed firm it is entirely about ever increasing revenues to give the illusion of growth so that shareholders will invest and drive the price of a stock as high as possible. It is not in their best interest to not do an IPO. They want money now, as much of it as possible, and they aren’t interested in good technology investments or people.

What they want is tons of free technology they can hide from investors. They want that technology all run by people who didn’t write any of the software so that these employees can’t claim ownership later.

This nearsighted management, combined with limited funding at the start, means that these companies exploit open source. They will use it, make their money, and then run off when they’re done. Which, actually, is totally alright, because that’s just how things are, and honestly if you’re a company looking to make money that way, then that’s what you should do.

However, the unwritten contract between firms and open source developers is now gone. I have no reason to give them unrestricted use of my software since they are only interested in turning my software into a hot IPO 2–5 years from now.

This is my third reason I use the GPL:

Technology firms are now designed to be created and destroy fast for large VC profits while keeping costs low. That means they have no economic incentive to give back, so I have no social incentive to “give” them my software.

Programmers Are Plagiarists

Let’s not kid ourselves here, everyone has to eat and pay rent. For many people, their money needs are modest, and if you work on something, you generally expect that you get something out of it that helps with those needs. It might not be money. Maybe it’s respect or accolades, but you really are expecting something for your work.

Alright, then I find it bizarre when I run into a comment like this:

ericholscher @zedshaw Would be nice if the Django interface/code to Lamson was BSD’d. Really useful to use at work. REST interface works as well :)

Eric is a totally nice guy, so I’m not slagging on him at all, but on this general attitude. “Hey your software is awesome! Can I get it for free so I can use it at work and make money or please my boss? That’d rock! (for me).”

Honestly, how many of you people who use open source tell your boss what you’re using? How many of you tell investors that your entire operation is based on something one guy wrote in a few months? How many of you out there go to management and say, “Hey, you know there’s this guy Zed who wrote the software I’m using, why don’t we hire him as a consultant?”

You don’t. None of you. You take the software, and use it like Excalibur to slay your dragon and then take the credit for it. You don’t give out any credit, and in fact, I’ve ran into a vast majority of you who constantly try to say that I can’t code as a way of covering your ass.

It’s now even more condoned and accepted that all you guys plagiarize the works you use. Just as the companies you work for need to have the illusion of “innovation”, you need to have the illusion of being smart. What this leads to is you lie, and steal anything you can get your hands on to claim as your own.

That’s quite alright, but that means you broke the unwritten contract between open source/freesoftware advocates. As long as you give me credit and promote my works, I’ll give you my software. Since none of you do, that means I have no incentive to “give” you my software in the same way I don’t need to abide by the contract with the VC backed firm.

This is my fourth reason for using the GPL:

I use the GPL to keep you honest. You now have to tell your bosses you’re using my gear. And it will scare the piss out of them. Good. Because I have a solution to that too.

If It’s Good, Pay For It

I love working on Lamson because doing email applications are so much more fun that web applications. When I sit down to do an email app it takes only one set of technologies and I’m done. If I want to do a web application it involves design, and templates, and javascript, and databases, and endless streams of bullshit.

The other reason I love writing email software is nobody else does. You guys are all giant pansies, even with a project like Lamson you’re still all afwaid of big bad monsta SMTP. Hell, the day I said I might have “Mail over REST” you guys about shit your pants. Yeah, ’cause that’ll be way easier.

And I love giving Lamson away, because it’s a part of who I am. It’s that perfect mix of showmanship, technical chops, marketing, and writing that I love and excel at. Even if I eventually go on to make tons of money building things with Lamson, I’ll always keep Lamson free to keep myself honest.

But, I am also writing my own software and projects with Lamson. I’m going to use it to create as many badass awesome email services as I can. Some free, some ad supported, some for pay, but all using Lamson in some way to kick ass at email.

Now, given that there’s no incentive for a company to admit they use my stuff, and there’s no incentive for a programmer to give me credit, ask yourself this one question:

Why the fuck wouldn’t I charge people money who can’t use the GPL?

I know, I know, many of you freesoftware diehards are thinking that makes me a traitor, but think about it. You have the software, and it’s GPLed, and as long as you’re a rock solid open source project who releases their code you are free to use it and do what you want with it.

I love open source, but companies? Companies are going to have to pay from now on. That’s how economics works. If it’s good enough for you to use, why then it’s good enough for you to pay for it.

My fifth reason for using the GPL:

I’ll always be an open source developer, but quite frankly, we’re dying off because the companies who use our software do not give back. The irony of the situation is that, in order to improve my motivation to do open source, I have to charge for it.

I obviously won’t ever charge an open source project, since they are honoring the unwritten contract: If I give, you give.

But the days of quick-flip corporations and ingrate programmers making money on my software are over. My new motto is:

Open source to open source, corporation to corporation.

If you do open source, you’re my hero and I support you. If you’re a corporation, let’s talk business.

Finally, Value

In closing, I’d also like to give a small reason why I use the GPL: perceived value. When people can get something for free without having to think about it, they perceive it as worth less than even something they pay a single penny for. It’s just how people are, and there’s not much you can do about it.

My final reason for using the GPL is I think my projects have value, and I want people who use them to perceive that value in them. I think they are so valuable that I’m willing to put a complex untested legal document down as my bet to their utility. If I wanted it easy I would simple BSD license it and everyone would use it.

I want people to appreciate the work I’ve done and the value of what I’ve made.

Not pass on by waving “sucker” as they drive their fancy cars.