Thoughts on web programming and the world of technology

May 03, 2011, reading time: 3 minutes

The modern web developer and open source licenses

The world of open source is full of wonders. People write code for free and make it available for free for anyone to use. If you write a quick little program on the weekend, it’s usually because there is a need that has to be filled. There’s a repetitive task that you wish you didn’t have to do so you write a short program to do it for you.

Web development can be hard. You have to worry about your database, your server-side code, your client-side templates and javascript and it all has to magically work together. We web developers have created a ton of tools to help us get the job done. And those of us who are really commited to the best and most reliable software make what we create in our spare time available for everyone else to use. We share the awesome idea we had in hopes that someone had the same problem and we could help them solve it. Massive projects like Django and Ruby on Rails come to mind. jQuery and Prototype. Fabric and Capistrano. The list just goes on.

The world of open source is full of wonders. All of this is possible by releasing our code under a license. And not just any license. If you were to publish your code online without describing how it can be used, by default you are reserving all the rights to yourself. Nobody else can legally use it. You as the creator have the right and responsibility to decide how your code will be used.

I was introduced to the world of open source by Linux and the GNU movement. For the longest time, I would claim that the only true open source license is the GPL. It’s a great license. It ensures that your software will never be used in a non-free way (free as in freedom). It works great for medium to large scale pieces of software, such as the Linux kernel or git. The two are self contained and don’t usually have any dependencies.

However, the more I moved from desktop software development towards developing for the web, the more I found myself frustrated and confused by the GPL. If a user downloads a web page generated by a GPL-covered web framework, do I need to also make available to the user the code that generated the page? If I use jQuery on my page (which is released under the GPL) and my scripts use it, do I have to provide non-minified versions of my scripts? Can I legally use a GPL-covered web framework to build a website for client and not make the source code available?

There are plenty more options to think about and my head starts to hurt every time I try to make a sense of it all.

I believe that the General Public License is unsuitable for web-based projects such as web frameworks, javascript libraries, etc. In a modern web application, there are way too many moving parts created by different parties. It’s the web developer’s job to find the best tools to get their job done. I believe that the best tools available today are of the open source variety (MS SQL server, anyone?).

I was reading Jeff Atwood’s article on software licenses and became convinced that I should abandon the GPL for my projects. After all, I want people to use my software and making them try and understand the intricacies of the legal language of the GPL is unnecessary. Starting today, I will make my projects available under the terms of a more permissive license. My current favorites are:

They are all short and easy to understand. Peoples’ time is expensive, let’s not waste it.

If you are a developer and you maintain a project that’s useful for making the web a better place, I would ask that you consider using a permissive license for your project.

Update (2012-01-09): After reading Van Lindberg’s book on Open source licenses, I have learned that the WTFPL isn’t a good idea. It doesn’t actually do anything in terms of legal protection or warranty.