Skip to content

Instantly share code, notes, and snippets.

@unconed
Created May 26, 2013 20:59
Show Gist options
  • Star 41 You must be signed in to star a gist
  • Fork 5 You must be signed in to fork a gist
  • Save unconed/104331390d4054b33b43 to your computer and use it in GitHub Desktop.
Save unconed/104331390d4054b33b43 to your computer and use it in GitHub Desktop.

Open Source, The Religion

On the terrifying power of sincerity

When I left the Drupal project, it was without a doubt the single most formative event of my life. I was involved for years at the heart of an open source community, the vast majority of it on a purely volunteer basis. Yet it took me less than a year of working with it professionally to abandon it all.

Since then, while it's still helped pay the bills, I've always resented it, but kept on observing it from the sidelines. It took me a long while to realize what was actually bothering me. It wasn't the people. They were genuine, honest, dedicated. It was the system they had made themselves part of. A system that's always there, but invisible, only expressed through the choices they collectively make for themselves.

L. Ron Huh?

See, because of Anonymous' Scientology protests, I'd been reading up on it. Not the teachings of L. Ron Hubbard, but the organization he created. How it works, which pressures it places on people, what it tells them, and what they tell themselves. One of the most educational videos is an interview with Jason Beghe—a Hollywood actor who followed the religion for decades, before leaving completely disillusioned. The resemblance to my experience was uncanny.

Now, the open source world and Drupal in particular are self-aware enough to laugh at their own cult-like vibes. There are celebrated symbols, massive gatherings, songs and mascots, the lot. That's not the comparison I'm trying to make.

Rather, it's what Scientology convinces people of. To understand it, you have to know how it works.

They find people who are down and offer them a completely supportive environment. They teach them basic academic and motivational skills, and then set them loose on the teachings of L. Ron Hubbard. What follows is a long and manipulative process, taught by others who are also merely cogs in the machine, a bit further up the food chain.

The advice slowly but surely evolves from practical life skills to deluded pseudoscience and science fiction, including promises of perfect health and perfect memory. The Scientologist quickly notices they are not succeeding, not getting any wins. The cognitive dissonance is resolved with a single meme: Scientology works. If it doesn't work, it's because you're applying it wrong. If you can convince people there is meaning somewhere, they will find it, no matter what. Stories of aliens in volcanos might seem ridiculous, but is it any more ridiculous than Moses parting the sea?

This encourages Scientologists to put up a fake facade to each other, and it becomes a giant club of people who are all secretly miserable on the inside. They refuse to admit it to themselves and each other, because it is a taboo in their social circle. Instead, they hope that the next exercise, the next counselling session, the next book or video tape, will be the one that makes everything better. To further fuel this desire, the Church eagerly re-releases old materials with minor updates, often at exorbitant prices.

The overall idea is simple: if you keep giving us your time and money, we will save you, and then you can save the world.

The Drop Is Always Moving

Now let's look at how Drupal operates. The goal of the Drupal project is, by design, one that is perpetual: to build and maintain the Drupal software. It is implicitly assumed that this is so, because the web is always changing. Each release supposedly brings the software in line with the latest trends and brings new, innovative features.

Well first of all, we can now safely observe that is no longer the case. What Drupal has been arduously doing for the past few years is keeping up with what was fashionable several years ago. The websites that the majority of users now spend their time on—Facebook, YouTube, Twitter, Gmail—bear little resemblance to the mid-2000s web portals that Drupal still creates out of the box, or the tools it offers to manage them.

I'd like to propose a radically different view: Drupal is perpetual, because there is no real goal and never really has been. It merely sustains itself.

Whatever it is that Drupal is supposed to be, there is no specification for it. No global plans were ever drawn up, no requirements to verify. The development process is always the same: notice something Drupal does not do, figure out which pieces need to change in order to add it, and then make only those changes. Implicitly, it's assumed that everything that currently is, should be. That somehow, an invisible person has gone over it all, and decided that this is still the best way to realize their master plan.

There is no-one doing that. The list of people who remember where it all came from only gets shorter. The one person who is ostensibly at the top hasn't done any actual architecting in years. Can he still look at any line of the code and know what it does? Can anyone else?

For example, when the Drupal project sets its mind to usability, the question is always, "Which new components can we build to improve this UI?" These are two questions that have been mangled into one: What's the best UI for this scenario? and Which components do we need to make good UIs? Instead of focusing on the end-result, the focus is on the process of development: to make Drupal better, piece by piece. Better for what?

Take Spark Drupal, the effort to add inline editing. It's an admirable goal to add WYSIWYG. But what is being built bears little resemblance to what was considered normal in desktop publishing a decade ago. When you create a new document on the desktop, you get an empty document. You flip from slide to slide in Keynote as you click and drag and edit. You don't fill out a form and save the file first before seeing it. Neither do you have to save the title separately from the body.

The act of inline editing isn't something that should be done piecemeal, textfield by textfield. Rather, a user should be presented with the website as an open canvas, able to make any number of changes freely. They should be able to click around, see a change in context on multiple pages, and publish them after. Unsaved changes shouldn't be an exceptional edge case to be solved with a Yes/No popup, they should be the primary way of interacting with the system.

The problem here is one of architecture: Drupal's UI layer is incapable of lying. It's only designed to show you the current state of a database. Yet by design, any client-side UI has to show you what you want to see, rather than what's actually stored server side.

That's what we know after decades of experience in building intuitive publishing UIs. If Drupal wants to keep up, why isn't it building that? They are adding styluses to their BlackBerries when they should be designing iPhones.

A similar problem exists in the latest efforts to improve the core architecture with Symfony. See, they're not bringing Drupal into the world of Symfony. They're bringing Symfony into the world of Drupal. The already impossibly-headed hydra is merely being reconfigured and augmented, rather than slain and resurrected from its ashes. There is always an overarching Drupal-way that must be maintained, a sensibility and taste that is superior. Chx said as much: Drupal always did it better. Always. What is that, other than a belief?

The development cycle is then a precarious process of trying to build a product that nobody understands, on a foundation of slowly shifting quicksand. Which then leads to the next release: a giant orgy of enthusiasm, the next best thing, the most amazing Drupal ever. If that's the case, why do developers instantly start developing again? I thought you guys just said you were done fixing things. It's because of what happens next.

The entire Drupal ecosystem springs into action. Clients are notified, updates are scheduled, new development is requisitioned, and the bills get paid. Until the next release, when things will break again. And remember, If your Drupal site is not usable, you're using Drupal wrong. Sound familiar? Don't you just love your vanilla contrib site whose UI resembles Hotmail before Gmail showed them up? Aren't we all happy? If what separates a good Drupal site from a bad one is not found in Drupal at all, then what is the purpose of going through it?

After more than a decade of development, Drupal the Software has already died the death of a thousand cuts several times over. The frog has been cooked by raising the temperature degree by degree. It's now dead, but rather than get rid of it, they've slit it open on the operating table and hooked it up to a Frankenstein-like machine that makes its limbs twitch in a convincing fashion. Enough to impress the clients, and bill them for it, release after release.

The Never-Ending Story

The Drupal project was modelled after the successful OS projects of its time, such as the Linux kernel. A core was created, an ecosystem of contributed modules on top. But the Linux kernel works because it has a well defined goal: to provide a complete environment to run native binaries correctly and safely. The purpose of drivers is to provide a uniform abstraction as well as specialize. If an application breaks, someone fucked up, and regression tests are written to avoid it.

In this light, Drupal's insistence that breaking backwards compatibility is necessary to maintain innovation is a complete misdirection. There are no stable APIs, no cleanly separate parts to interface between, nor is their behavior prescribed in anything but the code itself. Everything is connected, and no core changes can be made without forcing everyone to invest again. It is a symptom of an architecture that is perpetually unprepared for the future.

The Drupal community thrives on hard work, respect and admiration. Accomplishments are celebrated, new people are recruited, business deals are struck, and the numbers keep swelling, both the people and the money involved. But whenever Drupal 8 and Drupal 9 will get here, several years from now, they will still have the exact same problem. They'll have built an incomplete answer to two separate questions that were incorrectly smushed together. It's impossible to fix simply by chopping the result in two, you have to reorganize the question itself.

Drupal has always aimed to eliminate the middle men, to empower end-users. Yet it has become the biggest community of middle men around. For Drupal's mission to succeed, it has to be abandoned in its current form entirely, and be reborn as a dozen different solutions to individual problems, each of which can stand alone. Structure, layout, templating, formatting, visualization, interaction, these are the tools of the publisher. Not database entities and router links.

But this article doesn't change anything. Power is never threatened by truth, only by a better lie. Drupal has already been displaced, not by other CMSes, but by hosted services, which provide a better illusion of control than the promise of having the source code. How much control do Drupal clients truly have over it at the end of the day, when it's implemented at a cost of hundreds of dollars per hour, often just for ticking a couple of boxes in the back-end?

It's interesting to note that Drupal's star ascended simultaneously with the release and subsequent stagnation of IE6. Now the dark days of HTML4 are finally behind us, we find Drupal has spent its time solving problems of its own making, rather than showing the way ahead.

I can only conclude that Drupal has become the Scientology of open source. It's an ant mill of sincerity, each person taking their cue from those that came before, all convinced there is cake in the middle. As they march in circles, those that fall off are quickly replaced with others. It is both amazing and terrifying that the internet has allowed such a structure to form, fuelling an entire ecosystem of misplaced commerce with nothing but good intentions. I managed to reach the middle, there was nothing there.

People. Just stop.

@cpliakas
Copy link

Drupal is a tool that can be used to solve problems. It has passionate people who work to improve the tool so that others can use it to solve their problems. It is by no means perfect, just like any other technology on the planet. Bringing in religious parallels is clearly a reflection on the author, and not the community that is being targeted.

@Jaza
Copy link

Jaza commented May 29, 2013

I too have my gripes with Drupal - what Drupal dev doesn't? But comparing Drupal to Scientology is inaccurate and insulting, in my opinion.

If you want to abandon Drupal tomorrow, nobody is gonna stop you. The Secret Drupal Agents aren't going to hunt you down to your remote hideout in the jungles of Nicaragua, and sacrifice your children to the alien overlords. You yourself should know this better than anyone, Unconed. In a "real" cult, the more deeply involved you are, the harder it is to leave. Hmmm, let me see... you were Number 2 in a community of thousands, and one day you decided you wanted out (and you made sure that everyone heard your exit)... I trust you and your family are alive and well, and that none of your loved ones has been disembowelled?

Several years ago, I decided to shift my focus away from Drupal, and to do more work in Django... mainly because I increasingly dislike the technical direction in which Drupal is heading. However, turns out that Drupal work still pays most of my bills, turns out that Drupal is still the best community around, and turns out that you can dabble with "the enemy", and still also be involved in Drupal (and perhaps even bring some of what you've learned elsewhere back to Drupal). Doesn't sound like a cult to me.

Unconed, you are a talented individual, and you produce elegant code and gorgeous designs. Why do you continue to expend your energy in a negative and unconstructive way against Drupal? I hope you're also expending positive energy elsewhere; if not, you're wasting your (very bright) potential.

@patrickocoffeyo
Copy link

Drupal is a tool that can be used to develop websites, and web applications. It's code base is relatively clean, and it's a pretty well written content management system. If you don't like a tool, don't use it! Nobody is forcing you to use Drupal, so don't gripe about it. If you know what you are doing (how to write code properly) then you'll have no problem creating great Drupal sites.

If you have ideas on how Drupal can be improved, then write the code up and show us how it's done! Otherwise, just don't use it.

It's true, however, that there aren't a whole lot of examples of fantastic Drupal sites, and a lot of the larger Drupal sites are pretty poorly designed, slow, old, and un-maintainable. That does not indicate that one cannot properly build a modern, fast, maintainable, intuitive site in Drupal. The reason there are massive amounts of crappy Drupal sites is the same reason there are massive amounts of crappy WordPress, Django, CodeIgniter, Yii, Zend, etc sites. Bad developers write bad code and have no idea how to build applications and websites, and bad developers (sadly) are cheaper to hire, so guess what, if inexperienced developers can get the job done with tools that are written by someone with better skills then they, then why not (as a business) pay less money for the inexperianced guys, and get the same result? (from a business standpoint). It's a problem with the industry... If you want to be intuitive and innovative, why are you writing about Drupal anyway? That's not what it's primary purpose is. It's primary purpose is to be a stable, extendable solution for people that need to build apps that are organized, and get things done.

Off to build some Meteor stuff... ;)

@otavialabs
Copy link

Scientology? Pfff... there's a module for that!

Joking aside, nowadays Drupal is a Big System that wants to do everything ever that can be done properly or improperly by anyone ever.

So it's not surprising that we have these perpetual fights including everything from hardcore supporters, to disillusioned ex-members, and everyone in between.

IMO it's simple: Drupal is bloated. It just is. But, honestly, there are so many real life use cases solved quickly by its contrib modules, and other Drupal-favored solutions, that people who use Drupal don't really care as long as they can avoid being bitten by the bloat.

But the implications of Drupal being so bloated are more profound than that. For example, it also becomes way harder to evaluate Drupal now that it is this beast.

I mean, do you want to criticize Drupal? That's great, but consider this: What should Drupal be like nowadays?. What's the prototype that it should inherit from?. You can no longer compare it to WP, Joomla, Symfony, Magento, etc. Drupal has become this OS-like thing that no longer can make use of the simple/easy reasoning that involves thoughts such as "We should architect like this because that's how a TYPE_OF_SYSTEM should do it" during architectural decision making. In its taxonomy category, the "Drupal" term remains alone.

I'm not saying you can't criticize it. I'm saying it's gotten to the point that you can only evaluate Drupal in terms of big general blanket concepts like "system" and "community", and there's zero agreement on what those things should be. So, it's hard.

From a both technical and project managerial point of view, though, I'd have to say that that's where Drupal and its people are having trouble lately, IMO.

For example: Nowadays, when it comes to PHP, I've chosen the strategy of developing my stuff on micro-frameworks like Silex, and only those times when a clear, evident, dead-obvious Drupal-based solution exists for a project, I'll go for Drupal.

And that is because even though Drupal has become a generalized Big System, it's still more often than not a death trap when chosen for non-evidently-Drupal-friendly projects, whereas with a framework like Symfony or Silex, you can actually safely choose it generically, trusting that you'll be able to use it for creating the building blocks of whatever kind of system you have to implement.

Therefore, Drupal is a one of a kind system that is trying hard to transition, from being an only-use-when-it-obviously-fits tool, to a proper general framework that actually, genuinely, provides what it claims to provide:

Use Drupal to build everything from personal blogs to enterprise applications. Thousands of add-on modules and designs let you build any site you can imagine.

Hopefully the transition will be greatly accelerated by the announced integration with decoupled standalone Symfony components.

Let me conclude with a little rant about things past, just cause, fuck it, I'm already typing: It seemed to me that the chance was there during the transition from 6 to 7 to split Drupal into a better modularized system that would be decoupled and delegate things to other PHP libraries. But I recall people with very loud and/or respected opinions getting together and agreeing that bloating the core was better. I witnessed real time IRC convos where some folks Whose Words Hold Weight In Drupal Land would spend insane amounts of energy trying to justify the age-old misguided idea that bloating a system instead of spending time improving its modularization was the way to go. You'd hear things like "dude, getting X on core will actually make maintaining it less of a pain/more agile, you dummy!", as if that was an acceptable reason. It was not. It was just a case of treating the symptom rather than the problem.

@omega8cc
Copy link

OK, but Unconed seems to use the "cult" or the "Scientology" thing/story not to offend anyone, and not even to describe anything (if you read this rant closely). Rather, he is making some heavy nudges, and he is constructive, just indirectly. Being constructive is not always about giving you a friendly hint, recipe or even step-by-step how-to. Sometimes being constructive requires giving just a nudge. And I like that. The personal context (while possible) doesn't really matter here. I find it rather encouraging that someone like Unconed shares his thoughts on Drupal. This is not a nice 'State of Drupal' keynote, but it offers some interesting perspective. Don't be confused by some intelectual shortcuts here. Just read this again and get a lesson, if you dare to find it, without going into deny or debate mode on the auto-pilot.

Oh, and Unconed is not the first to use the "cult" word in the Drupal context! Take a look: http://www.jroller.com/jakeochs/entry/it_s_a_cult_thing (just kidding!)

@chx
Copy link

chx commented May 30, 2013

omega8cc I tried and I couldn't find a lesson or advice in here I could agree with or could use. Perhaps a tl;dr version? A hint of what I missed? I went over this and wrote my blog post http://drupal4hu.com/node/367 countering pretty much every talking point I could find. What did I miss?

@omega8cc
Copy link

@chx I have read your post, and while it is accurate in pointing where Unconed's points taken literally don't match some facts as perceived from the Drupal community inside (like the Twig thing, which provoked this entire conversation on Twitter first), you seem to either skip or just auto-deny the "behind the facts accuracy" thoughts here.

Well, don't expect any tl;dr - it is fully possible that we are using completely different lenses, so we perceive different things. Yes, your post does 'counter pretty much every talking point' here, but the problem is that it counters the shortcuts and expression methods used here, and not the message given. Instead, you are inviting the author to join the community and help improve something he is clearly suggesting he believes can't be improved that way. Instead, he offers rough nudges, which is obviously easy to take personally, especially for someone like you or Dries, but I would expect that it would provoke a bit deeper conversation and not just talking about this message form and factual or judgement inaccuracies.

Also, when we are moving too fast into the debate mode (taking apart every sentence, like a lawyers), or even deny to at least consider what the hell this guy is trying to tell us, then we operate like a cult members, no? ;)

@chx
Copy link

chx commented May 30, 2013

As I said: I tried to find the message and couldn't. If there is one it's perhaps this "For Drupal's mission to succeed, it has to be abandoned in its current form entirely, and be reborn as a dozen different solutions to individual problems, each of which can stand alone. Structure, layout, templating, formatting, visualization, interaction, these are the tools of the publisher. Not database entities and router links." -- at the backend, that's what Drupal 8 is doing, it's becoming loosely coupled. I can't speak for the frontend. Once again: I have no clue what this post wants us to do. I would be glad to understand it because we have learned a lot from Steven and I for myself am still open to learning. Just not sure what there is to learn here.

@omega8cc
Copy link

OK, I think I could write a post to explain what I consider a message here. It may completely miss Steven's intention, of course. I don't pretend to be the person who reads anyone else thoughts, etc. It will be extremely subjective, and I will even mention Textpattern and WordPress (but nothing obvious to expect in this context), so maybe at least it will offer just yet another perspective.

@Quevin
Copy link

Quevin commented May 31, 2013

I think anyone would get tired of the same project after almost THIRTEEN years (https://drupal.org/user/10). That's beyond the seven-year-itch, and then some! Congratulations on a marriage that lasted so long! And you could compare any cause to Scientology: Burning Man, any other cult, political parties, etc. IMO.

I'm terribly fickle when it comes to the adoption of technology, services, or movements. Or religion(s), for that matter. I can't say I'll be with Drupal for half of Steven's dedicated time, and I haven't contributed a fraction of what he has. But instead of this less-than-tactful comparison to L-Ron's "Burning Man," my advice is to spit out the cool-aid and continue the journey. I'll keep drinking—for now. You do your thing, and keep doing it as well as you are. Tip of the hat to you, and enjoy the journey, Steven.

PS Steven, you wrote about this back in 2008 (http://acko.net/blog/on-not-doing-drupal-anymore). So why this again now?

@benmirkhah
Copy link

I sympathize with the author on many of his complaints but find me a CMS that's not bugged down with the same pain points, Plone with its 50+ MB installation profile? Typo3 with its arcane scripting language? Sharepoint? Joomla? WP? or some hudge-pudge custom code made with some flavor of the month language like Ruby? Everything in the world is relative and compared to the available options Drupal is solid despite its share of headaches and hurdles.

@ponchovire
Copy link

I enjoyed reading this gist-article-rant. I'm not offensed by the author words: I'm developing against Drupal since now almost 6 years and the word "against" has never meant so much. Even thought this verbal explosion can be harsh to those who love Drupal I keep in mind it describes the author's subjective opinion. Opinion which I share for the most part.

From my perspective 6 years later I started hanging into the community, it's always been hard to say anything that goes against the Drupal Way (TM) and I was sorry for them: critiscism is not always mean, it's a way to discuss and improve things. I have to admit that now its community indeed opened its mind and is now ready to accept the outside world and that's probably because most of its developers are now quite experienced even thought they'd prefer to model the world around Drupal than preparing Drupal for the outside world. Nevertheless in the end I think it's a bit late for the framework: after ~12 years Drupal broke pretty much every piece of its API every major release and I don't think I will trust it anymore. Drupal might be stable when running but I can't rely on an unstable API that needs me to port every single line of code I wrote every two years.

Drupal does a lot of things but I'm not really sure it does everything well, I hope it won't do my coffee tomorow because I still appreciate a good coffee after all.

@kvantomme
Copy link

So that is why you designed Druplicon as a blue alien!

No seriously, you've confused religiousness with one single example of religiousness gone wrong.

I agree that Drupal and Open Source communities have strong religious undertones, but any successful community will. The capacity for finding meaningfulness in connection is what makes us human. Without it there is no sport fan clubs, youth movements, activist groups, parties, music, enduring life-long love for family and friends... You would need to take away everything that makes life worth living.

Our capacity for religiousness is the precursor in human behavior that allows us to find meaning beyond the utilitarian in our relationships. It is, I believe, the most important precursor for the social behavior of humans, our ability to build communities.

I for one am happy to be a member of the "Drupal cult". Drupal and the relationships that I have built through it, have been a great contribution to my life, and I know that there are a lot of people out there that feel the same. But that doesn't mean that we are all in denial of it's shortcomings, or that we will abuse people that do not see the world the way we do.

Comparing Drupal with Scientology is flame bait.

PS:
The Drupal community will always remain grateful for your contributions to the project. We are not jealous, you can be a member of any number of other cults concurrently, we won't hold it against you. You are always welcome back! :)

Earlier this year I've been blogging about some of the research I've been doing into religiousness and community you can find it on my blog at:
http://kvantomme.be/what-can-leaders-learn-ant-queens-essay-about-inspiration-and-human-emergent-behavior

A really good book on the subject, is "The social conquest of Earth" by Edward O. Wilson, that I reviewed at:
http://kvantomme.be/social-conquest-earth-why-advanced-social-life-exists

@omega8cc
Copy link

omega8cc commented Jun 6, 2013

@kvantomme Except, Steven made it very clear: "That's not the comparison I'm trying to make." It is not about Drupal as Community being a cult :) It is about Drupal as Project and its gravitation mass and inertia at the same time, which allows it to operate often against the most obvious logic and common sense, just like it works inside a cult member mind. Anyway, I will try to explain this better in the upcoming rant.

@kvantomme
Copy link

@omega8cc I got hooked by the flame bait, missed that 1 qualifying sentence to weaken the comparison after building it...

But even if the comparison with Scientology is only drawn to say how we are in denial of Drupal's shortcomings I think that's not fair: I hear loads of people cursing about doing code driven development in Features, some of the best attended sessions are critical of the platform, MortenDK has been doing his love-hate theming thing for how many years now? And you see these issues being addressed by Drupal 8. When I tell people how cool it would be to have a "Drupal-fail camp", where we can share experiences when we did fail with Drupal, people get positively excited because we want to share the lessons we've learned also when it's not pretty...

Any group will protect itself, it is basic psychology that people love the things they are invested in. But that is not enough to explain how Drupal became as big as it is now, clearly we must be doing something right :)

@bwinett
Copy link

bwinett commented Jun 10, 2013

The part that hits home for me is the discussion about breaking backward compatibility. Migrating our sites from D6 to D8 is going to be painful, something neither I nor my business customers are going to enjoy. Makes for a strong argument to go with a company that hosts sites - and keeps them current - rather than self-hosting (and administering).

@ezeedub
Copy link

ezeedub commented Jun 11, 2013

It sure is entertaining to watch Drupalista 20-somethings become 30-somethings!

I look forward to Larry Garfield's next Drupalcon presentation titled: "Is Drupal a CMS or a moral philosophy?"

Preach it Brother Larry!

Seriously, didn't you answer your own question with the following?

"If you can convince people there is meaning somewhere, they will find it, no matter what. Stories of aliens in volcanos might seem ridiculous, but is it any more ridiculous than Moses parting the sea?"

Precisely. No it is not.

But clearly, "they should be designing iPhones" instead. :/

@theodorosploumis
Copy link

Everyone is looking for convincing excuses when leaving his love... :-)

@jaredly
Copy link

jaredly commented Jul 17, 2013

I think drupal's incredible, but there is the unavoidable issue of it being written in PHP ...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment