What is an “enterprise software”? A software written for use by large companies. There are specifics that the large companies have that the smaller developers do not. These are bigger budgets, better developers, more dev hours per project. In the other words, the bigger enterprise can do what smaller can’t. You can build your software in such a way, that it only becomes usable if you are ready to have larger teams working on it with bigger budgets. Then, with server costs being not so much of a limiting factor for the larger companies, enterprise software can go for larger code base or allow less performance, if that allows to address some other enterprise needs - allow better team interoperability, use more of the existing enterprise-standard frameworks, or implement functionality that their enterprise clients want often. These changes may be redundant or useless for smaller businesses, or an overkill, creating conditions for the smaller businesses to not be able to develop for that platform efficiently.
So, is Drupal 8 an enterprise software? Why would one say it is in the first place? There was a change some time ago over Drupal’s policies, that re-prioritized the decision weight structure into a something like “meritocracy”. Who spends for money on Drupal development he has a better say in Drupal’s direction and future. Of course, larger companies like Aquia and FFW and Wunder Group end up having more say now, and the major core developers do end up in fact bing representatives of the companies who sponsor them to develop for Drupal.
So, “wolves”?! Not quite. Let’s face it - it’s not uncommon for CMS to be supported by organization. Wordpress and Magento, for example, are strongly backed by the enterprise standing behind them and making decisions. If fact, thais has been a tendency of a wider Open Source world - all major Linux distributions, for example, have the corporate to back them. Projects that don’t have corporate behind them, tend, to be less efficient and stagnate, lacking in decision making. So that argument of the corporate playing a bigger role in Drupal is not bad by itself.
What is really relevant here is whether Drupal 8 has been having developed in a way that would benefit the big players at the expense of the small players. And this is where it’s not all so black and white.
Drupal 8 is very usable for the smaller players. It retains all the flexibility and ease of use that Drupal 7 had, and it goes even further. So, as a smaller player myself, and a developer who works for some smaller players, I find Drupal 8 very usable and in some aspects, easier and more perfect than Drupal 7.
However, I also consider Drupal 8 an enterprise software. It is being developed by the enterprise, and has been having some decisions made that clearly benefit the enterprise players more than the smaller players. There are only a few of these things, but still I see them. One is the use of revisions. It has been initially implemented in Drupal 7, but it is in Drupal 8 that it has been widely extended. The idea is that when you start editing content, including blocks, in Drupal 8, it creates revisions of content for you, effectively saving multiple copies of data with every iteration. Unless you know that and prune you revisions, your database can become many times larger than it should be. Revisions hold little to no use for an average website, but they are in high demand for the corporate market, such as electronic publications, magazines and news agencies.
Another big indicator of the enterprise for me has been the shift to Symfony and the OOP. Now, this is where it is not black and white either, though. Many would object me, that Symfony is an industry standard, and it’s more of a shift to a modern PHP state than anything else. And that’s true. The procedural architecture of Drupal 7 was becoming more and more outdated, unable to use the newer PHP syntax, and becoming morally obsolete. Agreeing with this observation, and agreeing that the shift was necessary, I still think that it has also made Drupal 8 more of an enterprise software.
PHP has been developing from a scripting language into software though it’s long-lived PHP 5.x series, and that process sped up dramatically from PHP 5.3 and up. This is outside our discourse here, but to cut it short, there had risen some debate about the future of PHP in the light of its stagnation, and it responded by a series of very dramatic and amazing changes. It basically pulled itself up by the bootstraps and developed into a more efficient, secure, and modern language. It has brought in lots of the Objective Oriented Programming (OOP), which made it on par with many modern programming languages, and also made it much harder and “enterprise-y”. Those days when a guy with only little of programming education could code a site on a lap with PHP are mostly gone.
So, there have been many smaller players who suddenly had to learn. And there was enough time for that - about four years! Once could graduate over that time, not only learn PHP. So, I still seem to contradict myself, no? I give all those very valid reasons, and then I say I consider Drupal 8 enterprise? I simply want you to see that I am looking into things objectively. So why do I still say Drupal 8 is enterprise? Because the change has left quite many a smaller player overboard with this shift. You could say of course, they had 4 years, so who’s their doctor? But it’s never as simple as that. And Wordpress understood that when it refused to do that drastic jump itself.
The fact is this, bluntly. There have been many many developers and themers and kinds of ‘advanced users’, who went with Drupal early on, knew how to tweak a thing or two with their APIs, and built low-budget websites. It took them 4-5 years simply to learn how to print something in a theme or use a hook to add a class, nothing extraordinary. These are kinds of things that make Wordpress popular - you don’t need to be an Einstein to do that if you know how to, and people get these ‘tricks’ in their sleeves, and build inexpensive sites, and live from it. PHP, as it goes on, still supports all that procedural stuff, you you can ignore the OOP part, or reserve it for only some very esoteric parts, and go with the usual easy way in the APIs. This is what Wordpress does. But Drupal was pushed by the big players into a complete rewrite. Initially, it was declared that the old API would be preserved, but in reality, only a part was really preserved, and a part deprecated or changed. Suddenly, some smaller players found themselves overboard. That was definitely an enterprise mode, dictated by the larger players and better developers.
So, what is my summary on whether Drupal 8 is enterprise on not? I think that Drupal 8 is clearly an enterprise software, but that it has been tailored to be usable to the smaller players as well. As a smaller player, once you get to know Drupal 8 to a level where you can be productive, you will realize, that it is very very usable to you, and those things that are enterprise-y, are few and won’t really prevent you from doing your work.
Now, on the other hand, Drupal 8 is very open as for the enterprise software, and it is incredibly useful and has a very high quality of code and support.
Thus, consenting that Drupal has become more enterprise, and having some concerns, I still safely choose to use every day, not only for the larger clients, but also for the smaller clients as well. Being flexible and powerful, it still allows some very good development times for even the smaller projects. Tell me what you think in the comments below.
In the next article, I will write about the weight and performance of Drupal 8.