I mean, we don't have shit-flavored corn flakes on the shelves
May 15, 2020 9:38 AM   Subscribe

Drupal is awful. How, then, is there a market for Drupal?

(For the purposes of this question, please take it as axiomatic that Drupal is, in fact, awful. If you're here to explain to me why Drupal actually isn't awful, then please don't answer, because that's not the question that's being asked.)

This is a sincere question. I'd like to understand what forces keep the Drupal market alive, when it's such a profoundly unpleasant piece of software for user and developer alike. It seems like simple market forces should've buried it years ago. Sure, it seems to be on the decline – but it's still very much around.

One clear part of the puzzle: government agencies often specifically request (or require) contractors to build sites in Drupal. But, that only kicks the can down the road: why do government agencies request such an awful platform?

It seems like it became established as a standard in that sector, years ago, and just keeps stumbling along like a zombie. Is it as simple as that? Or are there subtler factors at play? I really don't get it.
posted by escape from the potato planet to Computers & Internet (19 answers total) 6 users marked this as a favorite
I'd like to understand what forces keep the Drupal market alive, when it's such a profoundly unpleasant piece of software for user and developer alike.

Inertia, features, scalability, and experience.

Organizations that have standardized on Drupal have to weigh its awfulness against the costs of migrating and uncertainty of different kinds of awfulness for other CMS platforms. What's the business case for moving? It's a big cost with no clear ROI. So, inertia.

Drupal is very full-featured and can be hammered into doing just about anything you'd want to do with a CMS, at least that's my understanding. There's probably a module for most things, which means less dev time in creating something from scratch.

It successfully powers some very large sites. There's uncertainty, again, when looking at other solutions and whether they can scale.

And if your shop has a bunch of people familiar with Drupal at various levels, there's a very substantial cost to switching.

The company I work for uses Drupal. It is awful. It is less awful than other CMSes and more awful than others. But ripping and replacing Drupal would be a major undertaking. I would argue that Drupal was the best option at the time it was chosen and after taking root it simply becomes too difficult to switch to be worth considering for many organizations.

There's a term an acquaintance of mine, I believe, coined -- "data gravity." That is, the more data you have in a service or provider, the harder it is to extract yourself. Drupal has some pretty powerful data gravity, any CMS does, really. The longer you use it, the more you're bought into it and the harder it will be to get out.

(Note - I've worked with a number of CMSes over the years and been involved in many migrations. Each one has its flaws and every migration has been full of problems and unexpected conversion issues.)
posted by jzb at 10:04 AM on May 15, 2020 [19 favorites]

IME, a common question 10+ years ago--particularly in academic institutions--was 'what open source CMS will allow me to build my own little public database on the web, through the web, with no understanding of databases.' At the time, Drupal's custom content features met that need better than Joomla and way better than WordPress. I also recall Drupal having some pretty rich bibliography/citation module that mattered a lot as a special case of the same scenario. I'm not disputing Drupal's drawbacks--only saying it had some features that mattered a lot in academia.
posted by Wobbuffet at 10:25 AM on May 15, 2020 [14 favorites]

Data gravity is a good term, and supposed ease of hiring as well. For one non-profit I worked with, the idea that because Drupal is free and open source, the organization would be able to find candidates with disadvantaged backgrounds who had been able to boot strap their way into becoming expert in it. (I am not saying this is a truth, it was a narrative.)

I remember when organizations were first considering open source and as Wobbuffet said those were kind of the choices at the time, or the perceived choices. Wordpress had bad rep as for blogs only, and Drupal won over Joomla for some organizations.
posted by warriorqueen at 10:28 AM on May 15, 2020 [3 favorites]

Have a Drupal. It's bad (migrating from an old version to a new one was a total mess and we are still missing bits and pieces). But better that the alternatives for our primary concerns: accessibility and extendability.

We also have a couple of Wordpress sites - and the security is a repeated and catastrophic issue for these.
posted by zenon at 10:43 AM on May 15, 2020 [5 favorites]

I can’t speak to Drupal specifically, but there is one part of your question I want to call out:

“ It seems like it became established as a standard in that sector, years ago, and just keeps stumbling along like a zombie. Is it as simple as that?”

Yes, it very well could be as simple as that. Have you read the news stories about how the software that’s being used to print the stimulus checks was written in COBOL? COBOL! I worked for a large financial institution in 2011-12 that had a critical program that only ran on a machine that ran O/S2. It seems quite common, especially in large institutions, to adopt something and then stick with it forever even though newer options might be better.
posted by kevinbelt at 11:21 AM on May 15, 2020 [2 favorites]

>There's a term an acquaintance of mine, I believe, coined -- "data gravity."
Ooh, I like that. I've worked places where weekly export-transform-load patterns enforced, not freed us from, data gravity.

To answer the question: the ORM at the core of Drupal. Break the link between database and program representation and ... uh ... you can save both the cheerleader and the world.
posted by k3ninho at 11:24 AM on May 15, 2020

In 1985, my father wrote software for his new business in GFA Basic on an Atari ST. In 1992, I went to work for him. When cancer killed him in 1995, I inherited the duties of maintaining his software. When our main ST died around the same time as DAD, we brought in the spare computer. When THAT died in 1998, I had to learn how to program Visual Basic in Windows 98. I created new versions of our software with that platform.

To this day, our business runs on the software I coded in 1998. The problem? To the best of my knowledge, Visual Basic is no longer supported as a development language. (I think it's a scripting language still? Maybe?) Plus, I no longer work for the company and don't give a fuck about maintaining the software. Still, when suppliers raise prices, I have to come back and go into the code to make changes. (When I wrote the software, I was still a year away from understanding that stuff like price sheets should be abstracted into data files; instead, they're all hardcoded into the programs.) This is made challenging because our company's server is a 1998-era Dell PC with a dying hard drive. That's where everything lives, and everything is hardcoded to that machine on the network. Not joking. When it dies, I have no idea what the company will to generate price estimates. (I do have backups of my Visual Basic files, for whatever good that will do me.)

If I still worked for the family business, I would spend a few weeks re-writing everything in a modern language -- and I'd use abstracted data files. But I don't work for the company and have zero interest in doing this. I want them to pay somebody to do the work. They don't want to spend the money.

This is why some people still use Drupal.
posted by jdroth at 12:01 PM on May 15, 2020 [9 favorites]

Drupal is awful. How, then, is there a market for Drupal?
Around 2000, Drupal starts as a tool to do little slashdot-style community sites, with some RSS action thrown in. It goes open-source a year later, weighing in at around 100K of PHP. It consists of a light frontside controller, router, and HTML templating tool with a pre-baked user login system. Assorted web devs poke at it and use it as a starting point for their sites.

In 2003, a group of OSS developers volunteering for the Dean Campaign use its plugin system to build a turnkey "campaign web site in a box" system. Although the Dean Campaign flames out, the cluster of developers and nonprofit organizers build several businesses and agencies on top of their work, cross-pollinating with the broader Drupal project. Drupal begins to develop a reputation as a lighter and less crufty alternative to Mambo.

At this point, Movable Type dominates the blogging world. In January of 2004, Matt Mullenweg releases the first version of Wordpress.

Drupal's community at this point is largely hobbyists or small "web shops" using it to build sites for their clients. The project has grown considerably: it has more than a hundred contributors and weighs in at almost 500K of PHP. It continues in that vein for a while, and absorbs a community of UserLand Frontier developers interested in building a metadata-driven content modeling tool. Their vision will shape community development energy for several years.

DHH and company debut the first version of Ruby on Rails.

A handful of enterprise organizations begin using it for internal knowledge management systems and Intranets; the aforementioned metadata-driven content modeling tools allow them to shoehorn rapidly-changing business requirements. When combined with a new visual query-building tool written by a hobbyist developer, hobbyists can bang together sites with complex content, dynamic listing pages, multiple contributors, and user-generated content without writing any code. The Daily Koz moves from Scoop to Drupal; RedState follows soon after.

Over the next year or two, a number of media and entertainment companies began to adopt Drupal for similar reasons. Many of them are using home-grown systems written in Perl, or spinning up dedicated Flash web sites for every new communications campaign. Some consider adopting Vignette.

The first version of jQuery is announced.

Workflow management tools start rolling into Drupal. A content translation and localization system that was always sort-of-there received a major revamp, allowing all the localized versions of a site to be built in one content repository. Old APIs were built upon. New ones were added. Agencies started growing up around Drupal work as demand spiked, and as those agencies grew they built tooling to support the kinds of clients they served. Sometimes that tooling got rolled into the core Drupal project. Other times it turned into popular third-party plugins. Other times it just lived in those agencies' own toolboxes.

The first iPhone is released; John Dvorak declares it a ridiculous failure.

It's 2008. Of the cluster of college students who originally started the project, only one remains. He gets VC. They start investing VC-funded engineering resources in solving more "enterprise class" problems. Tensions between "I want to build a site for my local Boy Scout Troop" and "The World Bank needs a new CMS" become more visible and contentious.

Senator Barack Obama is elected president. Google announces a new project called "Chrome."

[takes sip of coffee]
posted by verb at 12:25 PM on May 15, 2020 [26 favorites]

Government agencies (IME, YGMV) request a certain technology because either a) there is a policy that states that that technology should be used, or b) because the requestors believe that using that technology is the only way to meet other policy requirements such as security and accessibility. This view is often encouraged by contractors that specialize in that technology. Usability rarely forms part of the decision making or policy writing, risk avoidance almost always does.
posted by quaking fajita at 12:26 PM on May 15, 2020

It, like many technologies, is still around because:
  • some people like it and create new systems in it
  • some people have legacy systems built on it and it's not worth the investment to rewrite them.
As a side note, condemning a technology as shit/awful instead of outlining its strengths/weaknesses breaks implicit (and some explicit) norms in a lot of tech communities. TBH I was shocked when I read this question. I haven't seen someone say something like that in a long time, and I sure wouldn't want to talk shop with them.
posted by homodachi at 1:47 PM on May 15, 2020 [8 favorites]

It's open source with a huge ecosystem of close enough themes and plugins.

You can hire someone who knows it really well.

Lots of web hosts have it in a one click install.

And most importantly, over the last ten years of people saying it's trivial to make a better open source content management system, no one has done it yet.*

* One could argue that WordPress has, and it has nearly all the same arguments for and against it.
posted by advicepig at 3:09 PM on May 15, 2020 [1 favorite]

In my experience Drupal survives in part because it is frequently used as a platform on which to build systems in which the authors and editors are sheltered from the complexities of installing, managing, and extending Drupal itself.

For example, OpenScholar is a Drupal-based SaaS used by "23,000+ scientists and scholars" at Harvard, Princeton, Rice, the University of Virginia, and many others.
posted by jedicus at 3:11 PM on May 15, 2020 [3 favorites]

One clear part of the puzzle: government agencies often specifically request (or require) contractors to build sites in Drupal. But, that only kicks the can down the road: why do government agencies request such an awful platform?

Governments like open-source because there's no licensing fees to pay year after year. So Drupal got popular because gov't sites needed something more than a Blog via WordPress ( which is also used quite a lot by gov't, maybe more than Drupal ). Joomla was an option sure, but it's contrib space had always been a paid sort of environment so if you needed something out of the box, there was more cost.

All software is awful though, it just boils down to the ol' fast,cheap,on time paradigm
posted by 922257033c4a0f3cecdbd819a46d626999d1af4a at 3:14 PM on May 15, 2020 [5 favorites]

Inertia. Almost certainly inertia.

I ran a few Drupal sites around a decade ago. At the time, it was hard to find something that was as powerful, extensible, open source (this was back when Movable Type was still a major player in the CMS space) and that would run on pretty much any halfway-decent webhosting package available. This was the height of the prevalence of the LAMP (Linux/Apache/MySQL/PHP) stack, and web "apps" were still a nascent thing, with the heavy lifting of dynamic sites done by server-side languages spitting out mostly plain HTML.

Drupal was one of the better options for the LAMP stack at the time (given the usual constraints of budget and time), and you could leverage the plentiful and cheap-as-chips PHP/MySQL developer market to set one up instead of hiring a more expensive Java or Python dev. Eventually you have a bunch of devs with experience in Drupal (often to the exclusion of other technologies) and they're more likely to recommend something they're experienced with than something new that they'd need to learn the ins-and-outs of, and so Drupal gets used for new projects. Nevermind that PHP is terrible, or that Drupal's extensibility API was extraordinarily poorly-thought-out, and that it's codebase was a mess (I say was, as I checked out of Drupal development a decade ago and never looked back, so I don't know what it's like now), it was popular enough to be self-sustaining and we are where we are today.
posted by Aleyn at 3:30 PM on May 15, 2020 [3 favorites]

Three things that stand out to me:

Internationalization/localization. Drupal has robust features for translating content and interfaces, and for managing multiple versions of the same content in different languages. This is big anywhere that's not monolingual and/or not primarily English-speaking.

Accessibility. The current state of its code, and the processes for including accessibility in the development of new features, are ahead of other CMS options. This is a differentiator anywhere that has an accessibility policy, and a big reason why government agencies lean toward it.

And as jedicus mentioned: Drupal and its ecosystem are vast and complicated and prickly, but there's a lot of providers who package it up with their favorite modules included and the messy bits already done, and sell the resulting system, where most of the complexity is hidden and most of the users neither know nor care that it's Drupal underneath.
posted by expialidocious at 3:43 PM on May 15, 2020 [4 favorites]

The Accessibility/Government Users side is an interesting synergy with Drupal. A long time ago (2002-3, maybe?) I worked on a small Worthwhile Canadian Initiative that needed a bilingual CMS. Drupal was the only option, and the developers noticed that Drupal was well enough structured that you could build web pages that could be read by the crude screen readers of the time. This mattered to us because one of the developers had a vision impairment. While the project is now almost totally forgotten (something something e-government something McLuhan mumble … that's literally all I remember about it) it got a lot of press in democracy activism circles, and some of those civics nerds grew up to be politicians and civil servants with budgets who remembered that little Drupal project, and …
posted by scruss at 4:54 PM on May 15, 2020 [6 favorites]

Beyond what others have said, it's sort of like ... well, what's the alternative? I find Joomla less intuitive and Wordpress, while great at what it does (I am a huge Wordpress fan), requires a lot of extras to get to where Drupal is. Yes, Drupal is a mess, but once it's configured it mostly ... works.

I also want to say from the user end, Drupal's fairly straightforward when it comes to how it does things. Once a website is developed, you can basically hand it to the customer and they can update their own content without a lot of extra support. Both Wordpress and Joomla are way messier when it comes to that. I think that's an important consideration. (And yes, inertia is also important there -- if a group of people is used to updating a Drupal site, they are going to want their new site to also be Drupal. People like what they know.)

(I am a web developer with a background in Wordpress & currently working for a place that primarily does Drupal sizes. We also maintain a couple of Joomla and ... yes, you're reading this right, straight HTML sites.)
posted by darksong at 6:10 PM on May 15, 2020 [1 favorite]

Let’s play a game. Pick a random Drupal sight and I will try and use it with a screen reader. If I can, you give me $500. Then we pick a random Drupal sight, and if I can’t use it with a screen reader, I’ll give you $500. Now let’s pick a random react JS site. If I can use it with a screen reader, I’ll give you $500. Let’s pick another random react JS site. If I can’t use it with a screen reader you give me $500.

Want to play?

Now, a further assertion: if you thought my above paragraph was kind of silly or unimportant. And you still think Drupal is something that no one should use, and you consider yourself someone who wants to make websites for people, I would posit that right now you probably aren’t a very good developer, and you have a lot to learn.
posted by Space Coyote at 9:51 PM on May 15, 2020 [6 favorites]

Internationalization/localization. Drupal has robust features for translating content and interfaces, and for managing multiple versions of the same content in different languages. This is big anywhere that's not monolingual and/or not primarily English-speaking.

Came here to say this. Having been out of website creation for a bit, I’ve been tinkering around with some Wordpress and Shopify installations as of late, and find their continued lack of out-of-the-box multilingual content support to be shockingly obnoxious.
posted by romakimmy at 4:11 AM on May 16, 2020 [1 favorite]

« Older How are you finding out about cool virtual events?   |   Would you rush an interstate move right now, to... Newer »
This thread is closed to new comments.