First, a little background for those less familiar with GPL:
WordPress is licensed under something called GPL. There’s a lot of text in that licensing document, but the gist of it is this:
- You are free to view and edit the code.
- You are free to give the code to whoever you want.
- You are free to build upon and extend the code and use it in your projects (provided your new projects are licensed under GPL too).
- You can even turn around and re-sell that code to someone else.
Although there are some rules (like how to license new projects), the main gist of it is: you’re largely free to do whatever you want with GPL code.
WordPress is so wildly successful largely because it’s licensed under GPL, which gives people so much freedom to work on the project and build plugins/themes.
Now let’s look at why I love GPL. 🙂
It helped me learn how to code.
I have no doubt that I wouldn’t be where I am today if not for the freedoms that GPL provides. Being able to look at other peoples’ code, dissect it, and adapt it for my own projects has taught me so much—far more than any courses I’ve taken.
I’ve worked with a few closed source platforms, and it’s so hard to learn ANYTHING when you can’t wade through the code and understand it. You have to rely on documentation (which can often leave much to be desired).
I can make my code better.
Sometimes I’ll come across a plugin doing something really cool or just doing something really well. For example:
- Creating Customizer pages for plugin settings (and overriding the preview).
- Brilliantly leveraging the settings API in a way that’s easier to manage.
- Super cool implementation of using the media frame to add content to the visual editor (with previews).
For the most part, those plugins are in a totally different area/niche from the plugins I create. And yet, they all have features or code that have inspired me and helped me make my own plugins even better.
My business isn’t “competing” with any of those plugins, but they’ve still been able to help me. And hopefully my code has been able to help someone else.
With GPL, we can:
- Share features and code (even across niches).
- Contribute to that code to help make it even better.
- Push each other to do the best job possible.
- Create an environment that makes it so easy to learn and improve as a coder.
I wasn’t always a GPL fan.
I grew up in an environment that shamed copying, sharing, and borrowing. Perhaps it’s because my first love was art rather than code, the art community (at least the one I was in) largely focused on, “DO NOT STEAL. DO NOT COPY. DO NOT BE ‘INSPIRED BY’. PROTECT YOUR WORK.” And I’m not now saying those are bad things, but that’s kind of how I grew up.
So by the time I found WordPress, I was naturally drawn to be one of those people that didn’t understand GPL and tried to slap arbitrary requirements on my products, like:
- Do not remove my credit link.
- Do not share or redistribute this theme to anyone else.
- la la la
But somewhere along the line, I finally got it.
First, I finally understood what the hell GPL was and how it applied to the plugins and themes I created. But at first I went along with it a little begrudgingly.
But then, somewhere I came to actually love and appreciate GPL. Maybe because I realized that I wouldn’t be where I was today without it, and it actually felt like a huge slap in the face to find WordPress work licensed under anything but GPL. Now my logic is a bit like this when I see a theme that isn’t GPL:
- You were able to make this theme because WordPress is licensed under GPL.
- You were able to start your business because of GPL.
- You are probably successful because of GPL.
- Now you turn around and deny your customers the same freedoms that WordPress and GPL gave you.
That being said, I understand that coming to terms with GPL can be a process—just like the one I went through. Although it’s not “right” to violate the GPL when releasing derivatives, I get that some people need to go through a process before they can understand and appreciate GPL.
See, I’m the same way! I think in some ways we’re more visual learners. I mean, documentation is technically visual but to me, it’s kind of like when you’re in school and you learn by reading a textbook which I call listening even though it’s not or a teacher “telling you” something. Then there’s when a teacher writes stuff out on the board or the textbook gives detailed examples. To me, that’s what I consider visual. I think it has to do with me being a writer or maybe the reverse is true and that’s why I’m a writer, IDK… Anyway, coding is the same way. Now, I can’t do much WordPress yet, or plugins — well I can, I just can’t create my own except some basic ones like adding simple custom fields and what not… But I’ve able to write a lot of other PHP code and I taught myself HTML back in the day when it was new. But more to the point, I learn by looking to — especially looking through other people’s code — which might not be exactly what I’m looking for but it gives me ideas of what how to do things and then I can go from there and create my own. It’s how I learned PHP. I’m a big self-taught type of person when it comes to web stuff.
GPL and open source development is the only way so many new developers are introduced to the practice of coding. WordPress has likely single-handedly taught more PHP to new coders and developers than any other library ever devised. It’s a great thing!
I totally agree. If HMTL had been proprietary waaaaaaaaaaay back in the 1990’s, there’s no way the web would have taken off like it has. When I asked someone in 1995 about “that web stuff”, my friend pointed me to a copy of “HTML for Dummies” and gave me a copy of Hot Dog Pro. Don’t laugh, that was high tech software back then!
My first experience with GLP was when I learned Perl (again, no snickering at your elders! 😉 . I now have a career built off these technologies and truly appreciate the structure and organization behind GPL.
Without it, I don’t think we’d all have websites to comment on the wonders of technology.