Drupal's Creator Aims For World Domination
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."
Does it have a sane menu system yet?
I just spend an awful lot of time learning Drupal 7.
It's really one hell of a huge bloated POS while magnificent at the same time.
Drupal 8 seems even bigger like it has gone full retard, is it safe to assume it will be even more bloated?
What's so good about Drupal 8 or are the core devs just deluded?
The world needs less bloated PHP content "management" systems.
I, for one, do not welcome our new Drupal overlords. I will choose death before being forced to slave away in their underground PHP datacaves.
seems like every version of drupal features significant architectural changes
but seems you have to have the framework already installed on the server. i love Drupal and Ubercart but was looking for non PHP alternatives.
by TheSpoom (715771) Uncaring Linux user here. I have nothing to add to this but please continue. *munches popcorn*
Based on the content in the surrounding comments, it's safe to assume the devs are just deluded.
For better or worse, WordPress has more marketshare than all other CMS-es combined.
See http://w3techs.com/technologies/details/cm-wordpress/all/all 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.)
Keeping track of that many webservers have to be very time consuming tasks.
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. 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.
It's probably a rather safe assumption that most of the Drupal implementations that give it a bad name were done by developers who "also use Drupal", and were rushed out the door due to limited budget.
This is not a problem inherent in Drupal, necessarily, but rather these types of projects will tend to gravitate towards Drupal (and the sales departments that whore out their developers).
I have no doubt that if you took a team of experienced Drupal developers, gave them a proper budget and appropriate schedule, they could produce a decent piece of work. Good luck finding someone willing fork out money for that.
I have a former employer that had no qualms about selling Drupal sites to clients, even though none of the devs were really familiar with it as a platform.
Someone flopped a steamer in the gene pool.
I've used both WordPress and Drupal for a good number of years. I hate PHP and Drupal is definitely not as much fun to work with as say Meteor.com with CoffeeScript. But there are still quite a few sites I would build in Drupal any day. And well, I'm okay with people tearing down Drupal, but I chuckled when reading "I dread to think what would happen if security professionals looked carefully" and then "look at Wordpress for example".
WordPress probably has the worst track record out there in terms of the number of hacked websites. The number of noobs using WP probably has something to do with it. But when comparing the two ecosystems it seems that the Drupal community is also way nicer and more aware of licensing issues (GPL is actually enforced), people actually care about their code working properly and safely. WordPress plugins often seem merely to be written for a quick buck (even with obfuscated code at times).
As a web developer with ~10 years professional experience, the last of 5 of which have been with Drupal, I say Drupal rocks.
Drupal is a great fit for many web development projects. It's 100% GPL open-source software with a thriving development community.
It has a solid a reliable core architecture extensible via a modular plugin system.
Although there's a learning curve, it's worth it.
Like every release, Drupal 8 is making taking steps to improve on the previous, for D8 these include.
1. Integration with the Symfony PHP framework.
This lowers the barrier to entry to Drupal by allowing developers familiar with the Symfony framework to easy transition to building Drupal websites, leveraging the power of both.
2. Enforcing MVC architecture
Drupal 8 includes a new, non-php, default templating engine called "Twig" ( http://twig.sensiolabs.org/ ). No more PHP code in templates.
3. Pure core Drupal 8 includes more in core to achieve the functional requirements, without the need for additional plugins. For example, Panels style layout builders and the Views style report query builder as well as the ctools framework are now in core, along with the usual frameworks such as the Entity and Field API.
I've used Drupal with a wide variety of government and corporate IT projects.
Common server architecture includes, Linux, Nginx, Postgres/MySQL, PHP5, APC, Memcache and Varnish.
If you're looking for a solution for your next web development project that's easy to set up, and supports and extensible and scalable architecture, checkout Drupal, it rocks!
Drupal definitely has a "cleaner" code base and better software architecture than Wordpress and a better security track record to support that. Wordpress may currently win on usability, pervasive in the "blogosphere" and provides an ease of cobbling together a site.
However, I think, If you take the time to learn the Drupal API, you will find it preferable, particularly as a developer.
Over the last ~10 years, I've used a range of similar open-source CMS products, from Typo3, Plone, Xoops, Joomla, Wordpress and Drupal and out of all of them, I prefer Drupal. I think in particular, I like the flexibility and extensibility of the Drupal codebase, as well as the Drupal development community.
What Dries say in this article:
"The "sweet spot" for Drupal is larger sites rather than smaller ones. "I think when people think big websites, they usually think Drupal, and when they think small blogs or limited small websites in complexity then they think WordPress," Buytaert said.
"At Acquia we never compete with WordPress. We don't see them ever. I'm sure the smaller Drupal shops run into them, but in the enterprise we never run into WordPress."
"I think with small sites I'm not willing to give up on them but I think we just need to say we're more about big sites and less about small sites, but then the small sites are still very useful to get people into the community," Buytaert said."
I would have liked to know that before... I moved from Slashcode to Drupal years ago on the advice of a few. While I can appreciate how Drupal is flexible and powerful, now I understand that what I really needed, as a non-expert and for my small website, was just WordPress. But too late, won't do another painful migration anytime soon...
What annoys me most with Drupal: no straightforward way to update major versions (e.g. from 6.x to 7.x), especially since a lot of user-contributed modules doesn't exist in the new version or require a lot of work to do so. The admin interface is pretty bad. The user community is much much smaller than WordPress (thinking of mature/maintained user-contributed modules here). Etc.
Animoog.org
The most depressing thing about Drupal is that http://lambda-the-ultimate.org/ , a website devoted to discussing the latest in programming languages research, is a drupal site. How on earth can a site that decries the unsoundess of C code, and can discuss the relationships of monads to any of three different effects calculi use PHP to run their site? Mind boggling.
Stop intellectual property from infringing on me
I choose Byzantine schema over everything stored in two tables any day of the week. I pick allowing the customer to add fields via actual database tables rather than stuffing them into a "meta" table in a serialized form. If by code in the DB you mean having a rules/actions engine that is defined with data from the DBI pick that over hand coding anyday. Upgrades incompatible? I pick testing your upgrade rather than blindly upgrading a production site.
n/t
Check out the lastest 8.x version by going to http://simplytest.me/project/drupal 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 for more info.
Don't point that gun at him, he's an unpaid intern!
Probably every big piece of s...oftware is the same. Messy, overengineered, slow, uncomprehensible... Such is Liferay and such is Drupal, only Drupal is also written in the PH "fractal of bad design" P.
There is no reason to use PHP unless you want to use Drupal, which is much bettern than the open source CMS in other platform/languages (DotNetNuke, Java CMS based on portlet API)
And Drupal has very good separation between data, business logic and presentation, this is one of its strong points, using the theme system you can completely replace the presentation of a module without touching the module's insides; using hooks you can tweak the business logic to your liking while reusing everything else.
I'm more of a web designer than developer, but from every experience I've had in designing (and developing) in Drupal, I have to say that no other system in the world even comes close to being as well engineered as Drupal. Hands down. I do believe this is where all websites are going anymore...
Drupal is fun and it's easy to get up and running with minor amounts of time. Upgrades are cake, the community it comes from is one of the best in the world and history of IT, the modules you can use with it provide amazing capabilities that would normally take months / years to make by yourself from the ground up (generally speaking), and it's relatively simple to configure once you've done it once or twice (or not at all). The API is even easy to work with once you understand the fundamentals of things like preprocessing, the theme layer, template.php, the API manual / website, etc.
Sorry, but Drupal rocks.
...that none of you have a clue about what you are talking about because of the "armchair expert" mentality. It is clear from your posts that many did not even try the most recent stable edition of Drupal, or the upcoming D8.
Also, many above complain about PHP as if it's some kind of a menace, while forgetting that most of the Web runs it (whether you like it or not) because it works and it works really well. Not to mention you have no real evidence PHP is "that" bad aside from regurgitating opinions you read elsewhere.
It's a typical closed minded and boxed slashdot mentality (ie. "But does it run Debian?") which does not really help anyone reading your comments.
10% = World Domination?
Drupal is more of a platform that facebook, just sayin'
Don't point that gun at him, he's an unpaid intern!
Plain and simple, CMS's ( of any language ) are for the laymen/DIY types. If you can write software, there is no reason to use a CMS. The only reason Drupal has been given the name "Developers" CMS is because it takes so much more effort to use... but at the end of the day you are a Droopal user, not a software developer. Clicking ain't coding.
Pickle, "I will RULE the WORLD."
Sponge Bob, "Yea, like good luck with that."
If you were to start a new project without any knowledge about WordPress, Joomla & Drupal (the Big 3 as referred here), most likely you would do a decent job with Joomla. Why?
1. Intuitive & easy to learn.
2. Plenty of free and commercial (fairly cheap) extensions to choose from.
3. It works like a charm even if you aren't smart enough.
The reason PHP is popular is because it is easy and it does the job it is designed for. The same goes for Joomla. I see way too many posts comaring Drupal with Joomla & WP. The guys doing WP or Joomla aren't much concerned about these comparisons. Because they know what they need and they are pretty satisfied with it.
I have been using Drupal to do site development for 5 years now. I have developed small and medium sized sites for everyone from restaurants to professional membership organizations. I use it for sites of all sizes because eventually someone asks for a feature that isn't available or is painful to implement in WP. I have written custom modules and complex themes in relatively short timeframes because of the flexibility of the platform.
You don't like Drupal - that's great, don't use it. I am not a big RoR fan. I tried it out for a new project at work and it just didn't "feel" right. I was able to get the Symfony2 framework up and running pretty quickly and we are developing a multi tiered app in house with it. I don't hate RoR and I don't need to bash it. Plenty of intelligent developers who know more than me are using it and developing kick-ass software. It just didn't fit for me.
Nah - we can't have that kind of adult response. Quit liking what I don't like!
Drupal has made huge inroads in running US government websites in the last few years. The White House, Departments of Commerce and Energy, and a bulk of the House of Representatives (most on one install, I believe) are all running Drupal, to name a few. As a former government contractor, we ended up selecting Drupal to run one of our sites for a couple of reasons.
First, Drupal can run using SQL Server on the back end. I know that sounds horrible, but for us, spinning up MySQL/Postgres was not really an option, and the .Net management systems were either too expensive or a joke in terms of features. So we got the community of Drupal on the hardware we already ran.
Second, its taxonomy features are really unparalleled, at least from what I have seen. Coupled with Views, you can create a page out of just about any combination of vocabularies. We used it to show a category of content, and then let users filter based on keywords. Think categories and tags from WordPress, but on steroids.
Now, all that being said, I hated developing in Drupal. I was able to achieve the goals for the site, including letting non-developers handle content updates with minimal support. But getting there was the most excruciating three months of my career. People aren't kidding when they say the learning curve is enormous.
Overall, I am happy to see Drupal making progress, and think it is fantastic in handling certain types of websites. But at the end of the day, I hope I never have to build another Drupal website again.
The world moves for love. It kneels before it in awe.
Your post reads like a mixture of trolling and ignorance. Maybe it's deliberate, or maybe it's a genuine lack of understanding. Let's deal with it point by point...
You should never use it, seriously.
Some users: The White House, The US Dept of Energy, NASA, Stanford Law School, the Grammies, as well as hundred's of thousands of less high-profile sites. Or we could believe you.
It's remarkably similar to early php in being a fractal of bad design.
At the heart of Drupal is a callback system, with registration by naming. This allows code written by different people to interact. Need to do something that nobody has done before? You hook into the data processing by writing a function with the right name, and return the result of your processing. That's with respect to stuff done in code, but you can a huge amount of what you'd like to do using click and point...
One core idea in Drupal is as much as possible to move the ability to do useful design work into the province of administrators. So if you need to record a new piece of info, you click and point, to add a new field to your existing database. Everything is taken care of, and it's immediately useful for storing and displaying data.
I guess you could call this a fractal of bad design if you believed that putting power into the hands of users was irrelevant.
They are slowly trying to improve it, but their attempts at improvements are woeful.
The development cycle runs at around 2 to 3 years for major releases, but that excludes modules, which are the packaged units of add-on functionality that extend Drupal. The last major version was 7 (and Drupal is 10 or 11 years old). The list of things that were added or changed are extensive. In fact this is one of the problems with Drupal - the rate of change can be too great.
Hundreds of tables with the most Byzantine schema you can imagine, even for incredibly simple needs
Yes, Drupal is a general purpose CMS. If you want a single table solution for a particular issue, you are free to write it, using one of the demo modules as a base. It's easy, and this is typically how Drupal in version 4 and 5 was extended, but if you take advantage of the click and point interface you end up with many more tables. You also have content versioning, the ability to have a multilingual site, the chance to add or remove fields from content by pointing and clicking, the chance to represent the content in different ways for different audiences. And more. I wouldn't say the scheme was Byzantine though, it's well documented in numerous places. All it takes is the willingness to read a bit.
Attempts to allow customers to define the db schema by adding fields etc
I guess you believe that customers should not have the ability to control the data they own. Nuff said.
Code in the db - that anyone ever thought this is a good idea is a huge red flag
I'm not sure what you are referring to. Maybe template caching? Maybe callback hook caching? Probably you mean the power user ability to turn on a PHP filter, which will allow PHP code as part of content. This by the way is turned off by default, and when it is turned on is subject to the Drupal permissions system which has fine-grained control over who can do what. Power users sometimes need powerful tools.
Upgrades are often incompatible
If you mean module updates, very infrequently in my experience. If the site you are working on is complex, maybe you need to run a development version too, or upgrade using an automated upgrade system. If you mean major version upgrades then, the promise is that Drupal may break your code, but will never break your data. That is, an upgrade from Drupal 6 to Drupal 7 may require you to rebuild a custom component because of API changes, but will never destroy your data. A major version up
Our org created a wish-list of CMS features. It currently has about 50 items, and these items are often different than what other orgs seem to want. The total "known" potential features seems to hover around 100, if not more.
And orgs want CMS's to be able to be a kind of application development platform to create lower-end CRUD systems, or at least half content management and half CRUD.
It's all a tall order to get so many potential features to work together. Plug-ins are one approach: only plug in what you need, but that also creates versioning headaches because plugins you rely on may not be updated or ready for the next version. (Long-time FireFox users should know about this problem.)
I doubt any one system will make everybody happy; it's a matter of picking the best fit, and sticking with it, gaining experience over time to handle all the tweaks and fiddling that will be necessary to get it almost right.
Drupal seems to be one of the more flexible CMS out there, but has a big learning curve. They all have their quirks and tradeoffs and will probably make you cuss along the way.
Table-ized A.I.
My personal prejudice is that CMS's are a throwback to when HTML sites were serving 'documents' (and stitched together fragments thereof). But nowadays I use HTML more like a UI specification language, which is populated and driven by an AJAX backend. In other words, it's a client-server application with a free-form UI. If I need to use templates, I use jquery templates, SSI's, or a combination of both.
Managing templates in a database as always struck my as cumbersome, with a lot of bookkeeping work (read: configuration). I see nothing wrong with a hierarchical structure for maintaining html and resources, such as a file system provides.
If you post it, they will read.
Drupal is proof that you don't even have to have a basic understanding of computer science to create a popular web framework.
nt
Mod parent up, please!
However, it is fact-driven and reasonable. I know that SlashDot is starting to model its comment behaviour after CNN, so maybe it will actually be modded troll.
10% = World Domination?
Yeah... 'cos if they had 100% of the market, then they'd have no one else to dominate over! :D
So you mean that security in WP can't be improved because they're top dog? Just like Windows? Look, son, we were told that shit for years. There's nothing MS can do to help Windows. Then Vista and up did just that. Their market share didn't change a fucking bit but they got a fuck load more secure.
Market share is not an excuse. If Windows can get better despite marketshare so can WP. Stop with the fanboy excuses. You want to blame shitty 3rd party coders? Fine. You want to blame bad design? Fine. But don't blame marketshare. It does not stand by itself and there's lots of empirical evidence to say so.
It's a fucking cop-out for arrogant fans, lazy developers, and business corner cutting.
I have nothing against WP. I just hate the stupidity in echo chamber responses that have little barring on reality.
I worked a bit with Drupal and found it horrible. Now using SPIP with satisfaction.
Drupal is not yet enterprise ready. Its performance degrades by adding modules and data (file_exists, database model, string wrappers ...) and caching is a mess. As far as community and modules there are many and very few that count. Architecture is a mess (inheritance, vertical extendibility, separation of code and templates, interfaces, database model with countless joins ..) and lack at least a bit of design patterns. This make it very poor platform in terms of performance and scalability and unfortunately you can't solve this issues with caching (memcache, varnish ...) as most of the community might think.
I have had to "take over" various projects built on drupal and i have to say, if you want to put all your eggs so to speak, into one basket it works for most peoples needs. But if you want to do any serious integration then avoid... like the plague... we used to end up calling them poopal projects.
I work on Drupal for a living.
Right now, I am upgrading a 4.7 site to 7.x, with 5.x and 6.x intermediates.
I will write an article on this soon, but basically, you set 4 directories, one per version.
Then you point the web server to the version that you are working on via a symlink.
You then run update.php for 5.x, then 6.x, then 7.x
Your content is preserved.
Porting modules and themes does require some work, unless someone has ported said modules/themes for you, or you chose a new theme.
But your data should be preserved fully.
2bits.com, Inc: Drupal, WordPress, and LAMP performance tuning.
Please mod-up such well-articulated commentary on the Slashdots. Wow.
You can't be ahead of the curve, if you're stuck in a loop.
"When your only tool is a hammer, every problem looks like a nail".
Of course you find Drupal fantastic after years of xp! Your expertise in Drupal is a drawback to give any comparison. Now if your expertise was about the same with Drupal than WP, TYPO3, Joomlah and ez-Publish, THAT would give you the means to compare.
in sandbox-
Fatal error: __clone method called on non-object in /home/sc841ed9f0201911/www/core/modules/user/user.module on line 722