I’ve started using Drupal on 2007. For about 9 years I visits drupal.org almost on daily basis, I released a module, I suggested some patches, participated to local events and so on. I’ve started working on Drupal with Drupal 5 and I ended on Drupal 7 with a long time on Drupal 6.
In the meantime, Acquia was created to support Drupal development and make some money from the project and for the project in a typical open source scheme, free software accompained to paid services.
This is my report based on those years.
On my journey to Drupal and beyond, I enjoyed the community but I’ve seen many issues in those years:
- Too much security flaws in core and contrib.
- Too much bugfix to fix these flaws: maintaining tens of website without Acquia automatic update services become a challenge (and it’s the reason you want to pay for it).
- Contrib modules are frequently poorly designed and maintained.
- Issues remains unfixed forever or are automatically closed without being actually fixed on both core and contrib.
- Any major version released can be totally different from the previous one, requiring extra efforts for nothing.
- Drupal inherit all the PHP problems and try to overcome them with internal functions replacing some of those from the language accompained with the good Drupal API documentation.
The result of these issues together is that you cannot use Drupal without a dedicated Drupal team to take care of fixing components. Even two people are not enough to develop and follow couples of Drupal websites, not to mention a lone developer.
I’ve talked with other developers that used Drupal and other applications to design and publish websites and their assumption is easy: if you have a small team, you cannot use Drupal. Not anymore. Maintainance would be overwhelming.
Following this fondness for big teams, the release of Drupal 8 confirmed how low is the power of the community become compared to core contributors and Acquia (where many of them now works). They deliberately moved this open source software from a multipurpose Content Management System usable from small and big firm to a software that has the Enterprise world in his mind and forget the others.
This was a shock for many small developers and enthusiasts.
I’ve read about Drupal enthusiasts that suffers the same uneasiness of mine after long-time Drupal and PHP development.
Here’s a list of theirs experiences along with the number of years they used this software:
- Bèr Kessel, After almost twelve years of Drupal, I am saying goodbye (12 years)
- Ben Osman aka smoothify, Goodbye Drupal, Hello Django! (7 years)
- Varun Arora, Why we stopped using Drupal for our platform (2 years)
- schuster, Goodbye Drupal, thanks for the … learning (12 years)
- Rob Tomlinson, Drupal version 8: loyalty or farewell? (7 years)
- black_hat_cowboy, Goodbye Drupal (10 years)
- Mercia McMahon, Abandoning Drupal 8
- Steven M Scotten, Drupal, maybe we should just be friends (10 years)
Some of them migrated to Django like me. During this journey I’ve discovered a wonderful language like Python and his tools and documentation. I’ve also discovered how deep you can customize the framework to do the job, concentrating on the important things.
You cannot tell the difference without using another framework like Django or WordPress, just to pick some very different beasts. You need to compare Drupal with others to try the difference.
Try and choose
While Drupal try to overcome PHP language, Django uses only a fraction of the power of Python and it’s not the best tool on the Earth for building website like I supposed Drupal was.
This means that I can move for example to Flask when I have to build small of focused web applications, or to Kivy when I have to make a desktop and mobile app using the same language, the same Python packages, building my own classes to share when needed.
This is actually a change of perspective, to choose a language before the framework to easily switch from one to another in case the project go wild.
Upgrading an existing application using a well designed framework is straightforward compared to the major versions migration on Drupal. During the last 7 years, Django preserved much of his structure making simple the maintainance and the upgrade of websites. Virtualenvs surely helps, but the whole design supports the developer in his duties. This is not an unique feature of Python and Django, but it’s what it lacks to PHP/Drupal.
Here’s and example of how a framework built in Python can scale and how to migrate between major versions of the language here, even a very big website can be feasible when the framework design works in your same team:
Another reason to think about leaving Drupal is his decreasing popularity. It seems naif but it’s a very important matter for open source software since a weak community leaves bugs unfixed and create less contrib modules.
Here’s the popularity in Google Trends of Drupal compared to Django between May 1st, 2007 and December 31st, 2017:
Golden age for Drupal was long time ago, at the time of Drupal 6 and early 7. Decline followed the effort to build Drupal 8 in 2012 and the outcome of this transition is better described by this graph:
Drupal was a credible WordPress competitor back on 2008 scoring a 1:3 ratio in Trends at the time of Drupal 5. On January 2018 with Drupal 8 as major version it’s passed to 1:10.
Drupal failed to become the alternative for WordPress and actually was surpassed by niche, low-level alternatives like Django. Because by now:
- Who wants to build website with a great backend still using PHP uses WordPress.
PHP as a declining language
If it’s not enough, here’s the TIOBE index for PHP language compared to Python from 2002 to 2018:
These are simple indexes, but you can find other evidences about the usage crisis of the couple Drupal/PHP. Take another index like PyPL, read some of the experiences listed above or read this good picture of Drupal development cycle. Find as many sources as you want, the conclusion is the same: Drupal is now a declining framework written in a declining language. Who still uses PHP go for the winner WordPress.
What is to be done?
If you read this, probably you’re asking yourself how to leave Drupal. Start to use another language and framework to suit your needs and then try the difference. If you still want to use Drupal, using another language and framework will surely help you to write better code.