Drupal vs. WordPress? Who Cares?! They Are Both Open Source.
Every week I hear about someone choosing WordPress over Drupal (or vice versus). While there are certainly differences between the two platforms, they are more alike than people typically care to admit:
- Both are used as content management systems.
- Both are written in PHP
- Both are optimized for the LAMP stack.
- Both are free open source.
- Both are supported by massive and highly active communities
- Both are significantly better than the traditional closed source alternatives that are still entrenched in the enterprise.
For the visually inclined the overlap of just the LAMP stack is shown here:
Not only is Open Source free of licensing fees, but it is also better than closed source licensed software. A perfect example can be found by looking at the failed Healthcare exchange that Oregon contracted with Oracle to create. Even now in February when visiting the website in Chrome I am prompted to "use Safari" if I want to submit my application online:
I'm sorry did you just prompt me to open a new browser, despite me using a perfectly capable modern browser? Oracle, 1999 called and they want their technology back.
Following the Money
Oregon paid Oracle $90MM dollars (and may owe another $69MM) for a website that failed to launch on time and doesn't work. There are open source powered solutions that support millions* of users (we've supported single nights of traffic of over 2 million page views) and yet billions of dollars is being paid out for technology that is failing. How much money?
* The total population in Oregon is 3.899 million.
In 2013 Oracle brought in $37B - that's just the company, not individuals and other businesses consulting on the technology. In the same year, SAP posted revenues of $22B. It is THESE dollars along with the others being spent in the closed source and license-based technology economy that can, should and will be put to better use when they are invested in open source.
Speak Well of One Another
The next time you are invited to share your opinion on WordPress or Drupal (or another open source platform) I encourage you to speak kindly. Whether a particular project is decided to be built on WordPress or Drupal it is a win for open source and the LAMP stack. In both of these cases the company or entity making this investment will see a huge return on their investment when compared to closed source, so these choices should be celebrated by both sides.
It is the hundreds of thousands (and even millions) of dollars needlessly thrown into licensing platforms build 10 to 20 years ago that should cause to shake our heads and sigh. Let's come together to help make sure dollars are invested where all of our customers will see the best return.
"Both are built on the LAMP stack".
Neither Drupal or Wordpress is reliant on Linux (Windows) or Apache (Nginx). Drupal, at least, also works with PostgreSQL, MariaDB and Mongo so it isn't reliant on MySQL either. Both do need PHP though.
Wed, 03/05/2014 - 06:07
While it's technically true you don't need to run Drupal or WordPress on the LAMP stack, I think you'd agree that the vast majority of sites do. We've setup Drupal to work on a Windows IIS server, but the process was extremely painful, and I believe even in this situation the database was MySQL because of the need for most contributed modules.
LAMP stack or not, both systems are open source and have more in common then not. That said, I also amended the article to " both are written in PHP + optimized for the LAMP stack." I hope you find that more accurate. :-)
Wed, 03/05/2014 - 09:58
Windows painful? Oh dear, if ONLY painful it is great result. The better is to make suicide than try to run Drupal seriously on IIS/sqlsrv. Compatibility? Close to zero. Performance? Under zero... At lease memcache and mongo are helping a little.
But here in eastern europe M$ bribed all government to run everything on their software...
Thu, 03/06/2014 - 04:12
Yeah sure it is more painful on Windows, however I have a few sites running on windows (on both iis7 & apache - all with mysql) and they aren't that bad.
Wed, 03/05/2014 - 11:52
The downside to free open source is that it is difficult or impossible to make a living supporting it. Therefore it is not anyone's job (with few exceptions) to maintain their code (core or contrib). The maintainers do it as a gift to the community. This leads to burn-out and to bugs left unfixed (or worse, bug fixed un-committed) for years.
I'm not sure how to craft this, but some sort of system where the millions of Drupal sites pay a small fee to support key developers would result in better Drupal for everyone.
The massive incompatibilities between Drupal 7 and 8, coupled with the massive amount of O-O education that many PHP developers will need, will make the problem of relying on financially unsupported maintainers evident.
Example: Drupal gives no indication when you can't log in because you have cookies disabled. The issue is about a decade old, with multiple viable patches. It is no one's job to push a solution through. Somehow, we need to make this someone's job.
Wed, 03/05/2014 - 17:02
What FOSS project are you referring to that has unfixed bugs? Linux seems to be doing pretty well as are Drupal and WordPress.
It's worth reading the Cathedral and the Bazaar for a take on how and why open source projects lie fallow. Ultimately open source communities decide collectively what to support and what to abandon. I believe that this process is a lot more healthy than the closed source model where software that should be completely scrapped is continued to be sold to non-technical customers who trust salespeople who's primary motivation is selling licenses (which to be fair is how they feed their families). In open source it's the people on the ground - the developers - who decide whether a project should be reinvested in on the merits of the code itself.
Wed, 03/05/2014 - 17:27
I'm referring to unfixed bugs in Drupal, specifically this at-one-time-marked-critical 10.5 year old open bug:
Or maybe this year-old gem that crashes apache without giving any error message, making it very hard to debug:
It has a trivial fix, and a patch for it.
As Dries says, Drupal is always a little bit broken. What it needs is someone whose job it is to fix / maintain / enhance / document / port key parts of it.
As an example, the webform module has 400,000 reported installations. That's 4 in 10 Drupal sites. The module is huge and maintained by essentially one person. Who is going to invest the hundreds -- maybe thousands -- of hours of work to port this to Drupal 8? For free.
People like to work on cutting edge core features. They don't like to document, close bugs, test bugs, and work issue queues. Yes, people do this, but they don't like it, and they don't do it as much as is needed.
I for one would happily pay a little to make Drupal more reliable, better tested, and better documented. Both core and contrib.
One idea: You pay to submit a support request. You get a credit if you successfully answer and close a support request. You pay to report a bug, but get an offsetting credit if you post a patch to fix the bug that gets committed. You get a credit if you test someone's patch. Any profit goes to the maintainers.
Or maybe you pay an iTunes-like price to download a module - $1 to $2. Some of that goes to the maintainer. Some to those who help with the issue queue. Popular modules get more money than obscure ones. If your site used 30 modules, isn't a 1-time fee of $30-$60 more than reasonable to use the tens or hundreds of thousands of hours of work of others? Want to upgrade to the next D7 release? Pay a buck.
Wed, 03/05/2014 - 18:41
If you are in the development space it is really worth reading the Cathedral and the Bazaar. It's actually available online for free and talks specifically about why only one person should be responsible for maintaining open source projects - although the contributions actually come from hundreds if not thousands of people. The author makes specific references to the seminal programming book the Mythical Man-Month, which described the phenomenon that you see in programming of not just diminishing returns when you put more programmers on a project, but more programmers past a certain point actually makes things worse.
In the article on Cover Oregon I referenced, it is clear that the folks at Oracle either are unfamiliar with or ignoring this principal of programming given the way they tried to solve the problem:
"After the site's high-profile failure to launch in October, Oracle threw a 165-person army of contractors at the problem."
165 people? What the hell did they expect would happen? Of course the project failed and continues to fail.
As I mentioned, both the above books are well-worth the read and the Cathedral and the Bazaar - written by someone who was initially a skeptic of open source - may impact your outlook on open source development.
Thu, 03/06/2014 - 01:49
I read the wiki on the Cathedral and the Bazaar. I don't see how this applies. I am not suggest that Drupal development not be open or be done in secret or that may eyeballs on the code aren't good.
I'm suggesting that it is not reasonable to expect a programmer to work for free on some of the big tasks, such as a D8 port of a big module. I'm also saying that people should be willing to pay to make Drupal better. And I'm saying that when it isn't anyone's job to make sure that patches get committed, they often don't. This causes people to stop submitting patches.
Thu, 03/06/2014 - 16:58
Let's take a look at the data on Drupal:
Here are some highlights:
- 360 commits over the past 30 days & 4,595 commits over the past 12 months.
- 6 contributors this past month, though there are spikes where as many as 36 people are committing code - and 149 people have contributed to the project.
- There are over a million lines of code, with an estimated 284 years worth of effort since 2000 when the project was started.
This is not a project in crisis or a model that doesn't work.
Mon, 03/10/2014 - 10:22
People data of Ohloh is irrelevant. We don't credit commits with authorship but with a mention is the commits message, so it is by far more than 6 contributors and quite more than 149 in the past year. 6 is the number of core maintainers who can accept and push code.
See ericduran.github.io/drupalcores/ for more accurate data.
Mon, 03/10/2014 - 21:24
This is awesome! We love data.
It sounds like while my numbers may have been off (like by an order of magnitude) my point that the project is alive and well is being supported even more so by these number numbers.
As aside, it's nice to see Metal Toad on this tally, but I think we need to do a little work to make sure we're ranked better than 104th among contributing companies. :-)
Thu, 03/06/2014 - 18:54
I think that most of key developers are now working(at least partially) for Acqiua, Wunderkraut etc. We have initiatives - with responsible leaders.
Thu, 03/06/2014 - 20:06
Yes, the fun new initiatives have responsible leaders. The boring tasks of D7 maintenance and documentation don't attract much effort. Left to their own, developers develop what's fun. Hey, hell, I hate writing documentation (outside the scope of the code) too.
It is difficult to get Drupal 7 patches written (usually has to be Drupal 8 first, which may be completely different, then back port to 7), then good luck getting them committed. Perfectly good patches sit for months or years because its no one's job to commit them.
And what about important contrib? Many of these modules are maintained by volunteers that aren't sponsored by major Drupal vendors.
I like Drupal as much as the next guy. The system maybe better than closed proprietary code, but it sure can be improved. I'd be interested in hearing ideas for making it someone's job to enthusiastically tend to maintenance of current core (i.e. 7.x), current contrib, and future contrib (e.g. webform 8.x).
Wed, 03/05/2014 - 13:16
Just because the two are on a lamp stack, doesn't mean they overlap near as much as the diagram. Development in the two is vastly different. I'm not saying one is better than the other, except that Drupal is more secure and Wordpress has a much better upgrade path than Drupal. The cost of the Oregon site probably had little to do with licensing fees and more with bad decisions by the Oregon government to attempt to do something so complex with a vendor who threw out a ridiculously high number without reminding them of the low ROI. Let's say they did it in Drupal, which would be a dubious decision. How much would it cost every few years to migrate everything to the next non-compatible major version? My point being is that the benefits of open source are not necessarily the costs. It's more that you have access to a huge community of developers once you realize that a certain vendor can't do the job at the agreed price.
Wed, 03/05/2014 - 16:56
I don't think Cover Oregon (or any health exchange) would be a great fit for Drupal, however I do believe that an open source consultancy could have delivered a working site on time for a fraction of the cost. (I'd estimate hundreds of thousands for the actual technology, and around a million or so once you account for the compliance and regulations required).
Oracle's failure on the exchange is not coincidental. I've had to interact with their software running a business in the state for years and it's always been painful. I'm sure they have very smart people working there but I don't believe it's possible for a single company (no matter how big) to keep pace with open source projects. The amazing book the Cathedral and the Bazaar by Eric Raymond does a great job of reflecting on how and why open source is such a powerful model for development.
Wed, 03/05/2014 - 17:49
I tend to disagree - due to WordPress having backwards compatibility between major versions it suffers from an architecture built for blogging. People then shove other functionality into it creating what a friend refers to as "Frankenblogs". Technical debt is easily created - I always see WordPress people coding lots as opposed to Drupal where most of any code you write is 'glue-code' to join various functionality (core and contrib modules) in order to customise to your particular needs. Personally I'd rather use mostly tried-and-tested code from experts as to code from implementers.
Drupal on the other hand, is a web app platform - a kind of Linux for web apps. It's always been a platform and thus out-of-the-box seems more confusing, however that's up to the implementer to make it super-simple for their client to use. There are plenty of distributions of Drupal for specific uses - intranets, ERP, ELMS, etc. - none I would even contemplate trying to build with WordPress.
Sure, let's get people to use more Free/Libre Open Source Software, but let's not let SMEs miss out on the huge amount of enterprise knowledge and functionality which Drupal has been amassing over the last 13 years by giving clients blogging software and 'pages' just because it's Open Source and initially easy-ish to manage. Drupal 8 certainly helps make it easier with WYSIWYG, inline editing, etc.
Wed, 03/05/2014 - 18:07
It's easy to dismiss WordPress as a "blogging platform", but I wouldn't look at individual developer bad practices and define them as the platform ethos. I've seen plenty of really bad Drupal implementations (hacked core, SQL in the theme, etc.) but the problems there were with bad implementation.
I've posted before on why more people select WordPress than Drupal to build sites and I think in many cases choosing WordPress as a base to build an enterprise-level system may be "less good" than Drupal but there are amazing WordPress consultancies that use that platform to really deliver amazing things.
So in the broader scheme of things what you can do in WordPress or Drupal is lightyears ahead of what Oracle or SAP (or any closed-source platform) can deliver.
Thu, 03/06/2014 - 14:26
As a Drupal developer, I completely agree. I live in a city with a tech community that is filled with primarily Wordpress developers, and whenever we all get together to work on community open source projects, nobody scoffs at each other. We have a site that serves as a directory for local digital creative talent that is based on Wordpress, and another open data platform running on Drupal. We all help wherever we can because we love open source and either way helps us continue benefiting our community.
Despite some of the negative comments above, I agree, it's a great article. We all have our pick of poisons, but ultimately we should just pick what can get the job done while supporting open source.
Fri, 03/14/2014 - 15:36
Thanks for a great post Joaquin. It aligns with something I often find myself saying...
And that is this: Wordpress and Drupal are like athletes from the same team. Sometimes they compete in the same race and one will win. More often though they train together, make each other work harder, learn together, improve together.
The web is a big place, and the people who use it have a diverse set of needs, sometimes Wordpress is a better choice, sometimes Drupal is, but either choice is a win, because it's Free and Open Source Software.
Thu, 09/04/2014 - 23:02
Like it or not, but Drupal is a product of human laziness and greed - to build a hassle - free and really powerful apps you need to use frameworks like Django or Rails, even if your ass itches of the learning curve. As any LAMP, Drupal is slow, Drupal is full of bugs, Drupal is "all or nothing" and Drupal is unintuitive collection of ideas that do not perfectly fit a philosophy. Drupal tries delude the lazy by giving a bunch with a very narrow space of tuning things or upgrading them.
Fri, 09/05/2014 - 14:53
You are welcome to your opinion, but I think it would be better received if it were backed up with some concrete issues. Tossing out LAMP along with Drupal makes me wonder where you've spent the majority of your programming hours. We are fans of Django too, though it's not a great fit for every project.
Fri, 09/05/2014 - 15:13
Fri, 09/05/2014 - 15:18
And yes, Joaquin, there are situations when from the pure business perspective Drupal is the way to go - those are the cases when a client does not have sufficient funds, time is limited and skill set from the hired employees does not allow teaching everyone Python or Ruby.
Fri, 09/05/2014 - 15:25
Another issue with Django - you HAVE to work in Linux shell to make thins happen - Drupal allows you configuring much more at a lower price and out of the box compared to Django Admin, where you have to build everything but contributed code yourself - there's no escape of building models, but if you're a programmer it's not a problem. Not everyone has time and money, that's true.
Wed, 03/05/2014 - 01:43