Forgot your password?
typodupeerror
Open Source Software The Internet News IT

Drupal's Creator Aims For World Domination 192

Posted by timothy
from the drupally-drupally-drupally-onward dept.
angry tapir writes "Open-source content management system Drupal has come a long way since it was initially released in 2001. Drupal now runs 2% of the world's websites — but Drupal's creator Dries Buytaert thinks that this could easily grow to 10%. I caught up with Dries to talk about Drupal's evolution from a pure CMS to a Web platform, cracking the enterprise market, and the upcoming release of Drupal 8, which features significant architectural changes — incorporating elements of the Symfony2 Web framework to replace Drupal's aging architecture."
This discussion has been archived. No new comments can be posted.

Drupal's Creator Aims For World Domination

Comments Filter:
  • WordPress (Score:5, Informative)

    by gaspyy (514539) on Monday March 11, 2013 @03:48AM (#43135875)

    For better or worse, WordPress has more marketshare than all other CMS-es combined.
    See http://w3techs.com/technologies/details/cm-wordpress/all/all [w3techs.com] for an up-to-date look.

    Many people still think of WordPress as a blogging platform, but it's really so much more nowadays. Security is not worse than with other solutions, it's just that (like with Windows), popularity attracts attention (and attacks), and usually poorly-made plugins are the problem (the timthumb vulnerability was the most notorious one).

    I worked with many CMS solutions over the years - Allaire Spectra (anyone remember it?), DotNet Nuke, Typo3, CMS Made Simple, Joomla, Drupal, even hosted solutions like Squarespace and a bunch of others I can't even remember, but WordPress was the only one I could really develop for (functionality, themes, etc.)

  • by Serious Callers Only (1022605) on Monday March 11, 2013 @04:02AM (#43135909)

    I've worked with Drupal for cms websites and seen it used on other customer sites. You should never use it, seriously. It's remarkably similar to early php in being a fractal of bad design. [veekun.com] They are slowly trying to improve it, but their attempts at improvements are woeful. Some problems (which they've attempted to address, but many of which still plague users):

    Hundreds of tables with the most Byzantine schema you can imagine, even for incredibly simple needs
    Attempts to allow customers to define the db schema by adding fields etc
    Code in the db - that anyone ever thought this is a good idea is a huge red flag
    Upgrades are often incompatible
    A horribly broken plugin system and ecosystem, resulting in sites which load hundreds of plugins to support simple tasks, and therefore have a huge attack surface and a huge amount of unmaintained, scarily bad code. I've seen sites with hundreds of these modules loaded.the learning curve is huge and the code extremely fragile due to the above decisions
    Content is all stored in 'nodes' which are infinitely flexible, and therefore infinitely opaque and difficult to work with
    There are no pros or professionals working with Drupal - anyone who was a pro would have run a mile a long time ago, so don't listen when someone says 'oh well you just don't know drupal well enough'

    I dread to think what would happen if security professionals looked carefully at many drupal sites due to the above, particularly the modules situation. The closer you look at the code, the worse it gets

    If you're thinking of using it for a php cms, think again, look at Wordpress for example - the code is relatively clean (though it is still php of course), the plugins are better maintained and fewer are required, upgrades for security are no hassle, and they didn't come up with crazy ideas like code in the db in the first place. I'd personally choose other options/platforms, but at least with Wordpress the environment is pretty sane for a small time cms, easy to adapt and friendly for an end user.

  • Re:PHP (Score:5, Informative)

    by Xest (935314) on Monday March 11, 2013 @04:46AM (#43136013)

    To be fair, as PHP CMS' go, Drupal is one of the better ones.

    Things like Joomla really are bloated in that they basically dictate how your site must be, and sure you can change that but you have to jump through so many hoops you're probably better off just starting from scratch unless you want anything other than their boiler plate.

    Drupal at least was much more modular and generic and so made it easy to pick and choose what you do and don't use, and to decide how you wanted to do things so you could do more, and do them your way. As such I'd say it isn't bloated because you can strip it down to a fairly bare bones setup and it is fairly quick and easy to do, and fairly bare bones to start with even.

    But at the end of the day it's still a PHP CMS and when you have Python now (a dynamic language that has at least some solid CS understanding behind it) then there's little point using any of the PHP CMS'. I've always been a best tool for the job type of person, but as time has gone by I've found that the jobs where PHP is the best tool have rapidly begun to dwindle towards extinction, simply put, there always just seems to be a better option now.

    Personally though the more large projects I've done with dynamic interpreted languages the more I prefer to stick to compiled. They're great for getting something up and running quickly but when your code base reaches any reasonable size then it's far more useful to have the compiler catching things before execution that can only turn up as uncommon and hard to reproduce bugs with a dynamic language and as your project grows, the more the scope for that increases. This means that for larger projects, compiled languages actually often make development quicker because less time is wasted debugging. Beyond small projects interpreted languages quickly start lose their benefits, though this is in part also because compiled languages like Java, C#, or even C++ seem to have better, more mature toolsets built for them.

    But regardless, whether you sit on the interpreted or compiled side of the fence there's little place for PHP now given that it doesn't even have for example, any proper threading support, the sort of thing which is becoming more and more important, and is outright essential to some applications.

  • by Serious Callers Only (1022605) on Monday March 11, 2013 @05:24AM (#43136123)

    Have you ever used anything else? If so what? Nothing else I've used is so badly organised and so badly put together (Play, Rails, Sinatra, Flask, hell even Wordpress), save perhaps TYPO3, that was pretty bad (shudder). I wouldn't often be so negative about a web framework, and the devs are obviously keen and trying to improve, but the hubris involved in talking of world domination when your product is just awful in so many ways is quite incredible.

    If you haven't tried other frameworks in a while, I do think you should try some other frameworks and languages, and then come back to Drupal with an understanding of how things can be better, then perhaps set about improving it. Frankly part of the problem with Drupal is the many people who have invested so much time learning all the unnecessary APIs and working around its idiosyncratic code and db schemas, or fixing upgrades that leave modules behind that they can no longer find it in themselves to suggest the radical improvements required. Drupal is broken, in so many ways, you should at least acknowledge that there are issues if you want to be taken seriously.

    That to me is a big part of the problem with the Drupal ecosystem - unwillingness to listen (even in small part) to quite justified criticism and an insistence that anyone criticising is somehow to blame for the problems they have encountered. If you want Drupal to thrive, try actually listening to criticisms and acting on them - it has an awful software architecture for a start, to say that it has a good one is laughable, I mean they only just started try to clean up the mess with fields, and to do that they've introduced CCK! Have you looked at the drupal core or do you mainly set up and tweak sites?

    Ultimately, the main problem I have with it is a philosophical one though, which has driven a lot of the bad decisions on design: the designers seem to think that end users can effectively specify a complex system involving a db and code, which they only partially understand, through the browser and by choosing modules written by other people. That's what has led to massively complex 'general purpose' code to deal with all the possible permutations, to code in the db, CCK and many other problems in Drupal, and it's not going away as they don't seem to have learned the lesson from previous debacles. The result is a complex tangle of poorly understood code which interacts in unpredictable ways and tries to be everything to everyone and ends up satisfying nobody's needs very well without lots of extra work. In other frameworks all that extra work is just not required, the framework helps, not hinders. Here's a report from someone in the trenches who has realised this:

    http://benbuckman.net/drupal-excessive-complexity [benbuckman.net]

    Usable code isn’t a luxury, it’s critical to attracting and keeping developers in the project. I saw a presentation recently on Rapid Prototyping and it reminded me how far Drupal has come from being able to do anything like that. (I don’t mean the rapid prototype I did of a job listing site - I mean application development, building something new.) The demo included a massive data migration accomplished with 4 lines of javascript in the MongoDB terminal; by comparison, I recently tried to change a dropdown field to a text field (both identical strings in the database) and Drupal told me it couldn’t do that because “the field already had data.”

    All that said, I'm not saying this because I have some axe to grind about Drupal (though it has wasted a few months of my life debugging client issues), but because beginner Drupal developers deserve to know that there are much better options out there. Drupal does not rock, in any way.

  • Re:Drupal rocks! (Score:1, Informative)

    by Anonymous Coward on Monday March 11, 2013 @05:43AM (#43136193)

    Oh look, Dries Buytaert has an account on Slashdot!

  • Re:Navigation (Score:5, Informative)

    by ios and web coder (2552484) on Monday March 11, 2013 @06:40AM (#43136361) Journal

    Drupal is the best of the "big 3" CMSes. Hands down.

    However, it has a Matterhorn learning curve, and I choose not to use it in most of my work; opting for WordPress.

    The thing about Drupal is that it has an extremely solid extension mechanism. Lots of good hooks, and thoughtful design.

    I write plugins for all 3 CMSes. I am extremely familiar with what it takes to extend each. Drupal and WP can be extended with a single file that allows me to provide a powerful administrative interface, content filter and module system.

    Joomla, on the other hand, requires -I am not exaggerating- ten times as much work as either Drupal or WP, and, subsequently, ten times as many "problem nodes," for juicy, fat bugs.

    For example, if I want to handle AJAX responses, Drupal and WP each offer a simple hook to intercept program execution at a point between CMS setup (authentication, module initialization, etc.) and HTTP output (I need to output prior to any headers being sent out). Since I can use the same module file, I can preserve object context. Also, they each have a very simple CSV options/preferences system that abstracts the database behind a basic functional interface.

    In Joomla, I am forced to write an entire system plugin, and use a pretty hairy database "semaphore" system to communicate context. I also need to write a content plugin in order to allow a shortcode ability. In both Drupal and WP, the content filter is simply another functional interface in the same context.

    However, for the kind of extensibility that Joomla offers, only Drupal can match it, and Drupal has that learning curve, so it tends to be popular amongst folks that want a heavily-customized site, with less knowledge, than Joomla.

  • Re:Navigation (Score:4, Informative)

    by ios and web coder (2552484) on Monday March 11, 2013 @06:44AM (#43136369) Journal

    However, for the kind of extensibility that Joomla offers, only Drupal can match it, and Drupal has that learning curve, so it tends to be popular amongst folks that want a heavily-customized site, with less knowledge, than Joomla.

    Whoops. Posting before coffee.

    Switch "Joomla" and "Drupal."

    As noted, there is no such thing as a "perfect" CMS. Much as I may grouse, Joomla is extremely popular, and I need to support it. For many folks, Joomla is the "perfect" CMS.

  • Re:WordPress (Score:4, Informative)

    by ios and web coder (2552484) on Monday March 11, 2013 @07:55AM (#43136623) Journal

    I posted up there, somewhere about this.

    I tend to use WP for my own sites. It is not as extensible as Drupal, but I can get a really well-crafted site up and going within a day. I would not recommend WP as an engine for, say, the White House. They made a good call with Drupal there. I believe that they actually added security code to Drupal, and returned it to the repository.

    Joomla is clearly an engine written by recent grad JAVA lovers that hate PHP. Drupal was clearly written by folks very familiar with PHP, and a great deal of coding experience in the real world.

    PHP? <shrug />. I use it, because it is important that folks actually be able to USE what I write. I'm not even slightly interested in pushing a coding philosophy. I need as many folks as possible to be able to install and run my code. I won't get that in any dynamic, database-driven server language other than PHP.

    PHP is a suckass OO language. I tend to use OO as a Model layer or as a namespace. A lot of the rest tends to be procedural. I sometimes ROTFLMAO, when I see some of the conversations around the Joomla camp. It's like architects boasting about using mud daub to build a skyscraper.

  • by phyrz (669413) on Monday March 11, 2013 @07:59AM (#43136653)

    Check out the lastest 8.x version by going to http://simplytest.me/project/drupal [simplytest.me] and choosing 8.x. The site will install 8.x-dev for you and you can play with it.

    Some things to look at:

    - In place editing
    - CKeditor in core
    - Responsive out of the box (check the new admin menu)
    - Views in core

    There's a heap of scary awesome changes going on in the backend though

    - replacing lots of sub systems with Symfony components
    - RESTFUL services by checking a checkbox.
    - TWIG as a templating engine
    - Configuration management initiative
    - HTML5 and mobile
    - Far better multilingual support than previous versions.

    check out http://groups.drupal.org/drupal-initiatives [drupal.org] for more info.

  • Re:Navigation (Score:4, Informative)

    by ios and web coder (2552484) on Monday March 11, 2013 @08:29AM (#43136843) Journal

    And it used an MVC object structure that looked like the software architect had no idea of the goal of an mvc structure, but had read in a blog that mvc is good.

    I'm pretty sure that it was designed by fairly young JAVA folks. The patterns are extremely similar to many academic exercises in JAVA.

    Young folk are willing to work very hard, and hit the Kool-Aid like there's no tomorrow. It can be quite amusing to read some of the Joomla discussion forums.

    Also, I think that they switch architects fairly frequently, so they tend to rewrite the whole damn system on a regular basis. Keeping a plugin compatible between all the various Joomla versions is a nightmare. The fact that I have to provide four different modules to do what one single file can do in other CMSes means that my installer is a real Rube Goldberg machine.

  • Re:Navigation (Score:5, Informative)

    by alreaud (2529304) <alreaud@happycattech.com> on Monday March 11, 2013 @10:37AM (#43138209)
    Drupal being "best" is in the eyes of the beholder. If you already are familiar with CMS and mySQL, then Drupal is the best. But if you have very little experience, Wordpress is by far the easiest. For my own sites, I use Drupal, but for client sites, I use Wordpress because it's easier for non-technicals to operate. That being said, Drupal has an upgrading catch. I'm running 6.28, I think, and find it impossible to port over to version 7 without manually porting over the database table by table. There should be a way to port content tables to new versions without a lot of pain and suffering...
  • Re:Navigation (Score:5, Informative)

    by jayteedee (211241) on Monday March 11, 2013 @11:55AM (#43139101)

    I think, and find it impossible to port over to version 7 without manually porting over the database table by table. There should be a way to port content tables to new versions without a lot of pain and suffering...

    Take a look at:
    http://fuerstnet.de/en/drupal-upgrade-easier [fuerstnet.de]
    if you are comfortable with the command line. I've done several 6 to 7 transitions (patch the 6 up to the latest before the 7 jump). SIGNIFICANTLY less pain than any other way I've found. It basically uses the Linux patch/diff mechanism. Make sure the 7 has the modules you need from 6 before the jump (some were never ported and have to be replaced in 7).

Memory fault -- brain fried

Working...