A Brief Overview of the Future of Drupal: Short Term and Long Term

04.28.2006

Last summer, nearly every client that I talked with who wanted a CMS would ask for Mambo. This was in spite of Drupal's obvious superiority in terms of code, flexibility, and power.

I was forced to conclude that Drupal's biggest weakness was the first impression it was making. I spent about 2 minutes looking at drupal.org, and Mambo's homepage, and the cause of Drupal's weak first impression was dead obvious:

Generally, "Power in Simplicity" makes a better first impression than "Community plumbing".

Hardly an Earth shattering observation. You could ask a 5 year old which slogan is better, but they'll probably be laughing too hard at the implications of "community plumbing" to answer the question with words.

Today, I can't remember the last time anyone mentioned Mambo to me. So, 9 months after I wrote that article, I am going to go out on a limb and say it: Drupal, as a platform and community, won. We've left the competition in the dust. (and funnily enough, those who make up the competition seem blissfully unaware of the fact).

We won in spite of the fact that we still advertise the idea of plumbing together as a community; its clear the drupal community is not plumbing anymore; we're kicking serious ass. The number of users, and nodes at drupal.org as DOUBLED since I wrote that article. In one year, it was estimated (somewhere, Zack Rosen mentioned this) that the overall economy of drupal increased by 10 fold. And don't even get me started about what the forms API, CCK, Views, Relationships, CiviCRM, OG, blah blah blah ... let's talk about something else:

The Imminent Release of Drupal 4.7.0 is only the Beginning

So, where is drupal going to be in another 9 months? We probably won't have made it to the cover of Time magazine... yet... However, based on my conversations with Adrian (for all practical purposes the inventor of PHP-template and Forms API), here are just a few things that the future of drupal holds:

The Drupal of the Near Future

1. AJAX Form Creator -- Give this app a spin. Someone is going to build this for drupal (yes you, aspiring summer of coders, this trophy can be yours). Hopefully it will be in a usable beta by the end of the summer. This one of the reasons for the forms API --- it makes it possibile to build gizmos like this. That's why painful updates are necessary for Drupal. Other CMS's would not have been able to stomach updates like 4.6 to 4.7. This a key thing that sets drupal apart from other CMSs -- we aren't afraid of pain, we're afraid of obsolete code.

Folks, thanks to the Forms API, the future versions of Drupal will make sure that you never have to code a form array again. Sorry, masochists.

2. Simplification of Form Functions -- On the coding level, forms will be a synch to render. Say I want to have an inline login form in some random spot on a page. I will have to do some serious programming to get it there. In order to carry over all of the forms validation, fields, actions, etc, I must use a scary byzantine block of code: "print_r(form('user/login', 'inline'));"

3. Death to function theme_foo -- In the drupal module's of the future, every theme function will be replaced by hook_foo.tpl.php files. This means that there will not be a single themed output of a module that can't be directly styled, and edited via HTML and CSS. I hope to work with Adrian on this very soon. Say good by to drupal core styles. And yes, this means death for misc/drupal.css! But more importantly...4. A Real Theme Editor ...because of the reworking of theme functions from the .module files and into tpl.php files, we'll be able to build a theme editor that is unlike anything the internet has ever seen. No joke.5. Modularization of Themes/single themes obsolete -- Thanks to the forms API, we can store multiple styles for themeable functions. Take blocks for instance: the drupal of the future will let you select a different tpl.php file and style for each of your blocks. Now think about this folks: consider the fact that I could convert these sets of lists into drupal blocks over a long weekend. Yes, switching tpl.php files is very cool.

6. New Menu API -- Has anyone else been having trouble getting the menu system to do what you want it to do? I have news for you: you are not alone. Actually, truth be told, the menu system doesn't make a whole lot of sense -- in the same way as the forms API used to not make any sense. Expect a menu_api by 4.8, or 4.9 latest (fyi, some of us might start working on the beginnings of 5.0 very soon).

7. Drupal Version 5.0 -- This where things get psychedlic. The output of drupal in 5.0 will be abstracted to the point that drupal could easily power an entirely flash-based site using drupal. Drupal sites are also going to begin talking to each other (once you give a user at both site's the right permissions.) So, say you want to publish a node on your blog, at groups.drupal.org, and the drupal.org forms. The future drupal will allow you to do that: one node, one submit, but published at as many sites as you have access to. Edits of these nodes will also map over. (with the right permissions.)It gets better. 8. Drupal and the Command Pattern Design Pattern -- This may all sound like an acid dream, but it can actually be accomplished using the Command pattern. This design pattern is used all over the place. Typically its used for recording macros, Wizards, rollbacks and versioning, and other situations in a number of complex actions need to happen. So, in future installations of drupal, you can record a certain configuration, and then share it with other drupal sites. There will probably be a configuration library at drupal.org, where users contribute various configurations suited for different needs -- a preconfigured rock band's site, a preconfigured blog, a preconfigured ad-based publication, etc... Excited yet?Every day a new brillaint mind is entering the community, and the only thing that is certain is that its a great time to be involved in drupal. And we ain't seen nothing yet.

Looking ahead to the Drupal of 2016

Wrapping this bit up, I wondered what is the pattern to all of these advances that are planned for 5.0? I had a feeling that I was looking at something very familiar. And indeed, I think I now see it.

However, this needs to be kept in perspective.10 years ago, it was 1996. The bubble was expanding out of control; it was the era of pets.com. Most of america used AOL!! Ask yourself: how much has changed in 10 years?

Could you imagine the internet of 2006? An internet where every 15 year old has a myspace blog. An internet where strange forms of collective intelligence emerge... just look at del.icio.us. Could you imagine del.icio.us in 1996?

Wikis, blogs, tags, RSS -- the way these technologies are beginning to converge is some WEIRD stuff. This strange web of information -- just for one moment, I want you to revel at how ridiculous, strange, trippy, and out of this world it is. (dude.. seriously...)

I only mention this because I don't consider this prediction outlandish; I insist its very possible. Moreover, I happen to believe we "invent" the future with predictions in technology(and especially the internet).

So when it comes to technology, remember: every prediction is also an invention.

Drupal 2016: The world's Most Powerful Website Operating System

In 2016, drupal will no longer be classified as a CMS. I think its closest relative will be the traditional desktop operating system. For practical purposes, we'll just call it a "website operating system" similar to osX, or Windows. I'm using the word "website", but the I as you will see, the website of 2016 is a much different beast.

Here's the basic relationships:

Drupal OS | Windows XP

module = application

core include = system folder

nodes = generic documents

menus = abstractions of applications and directories (start menus in Windows, dashboards in Mac OS)

logs = n/a -- the desktop operating system isn't social.t

hemes = themesconfigurations = configurations

Drupal is evolving to the internet like a biological creature, and our current enviroment is rewarding applications that move us closer in the Website OS direction. In fact let me go out on a limb: the Web 0S is what all of this web 2.0 hype has been about.

What People Will Be Using Drupal for in 2016

1. Managing and Composing Email

2. storing, sharing, and organizing camera phone photos

3. Integration of mobile devices, the web, and their computers.

4. managing their virtual identity (a good virtual identity will quickly become a pre-requisite for success)

5. Composing, storing, editing, and sharing "documents"... I think, however, that microsoft word documents, and PDF's and dead. Who needs a mywriting.doc file when they can just publish it, or publish it for a few people, or put it away until its ready? Really, there is no need for any text.doc in 2016. Its just a middleman between writing content, and someone reading it.

6. Coordinating their social life -- with the integration of mobile devices, and the already emerging crazy mobile businesses like Dodge Ball, it seems that we can't even imagine the role mobile is soon going to play in our lives. I hope drupal takes the carrot that is tangling in front of it, and begins the process of becoming the most popular mobile-to-web content management tool.

6. Remember how I mentioned that drupal sites will all talk to each other in 5.0? This has huge implications on the Web OS. Say publication a has 20 writers, and 3 editors. which is easier: asking them all to come to one site, where they compose documents, and editors read them, or linking the Web OS's of all of them together via the website's 2016 version of the publication.module. Each user has their own workspace, and ownership of drafts. When they are ready to submit, they do so with one button from their web OS.

7. Who knows -- maybe games.... who knows though

8. who really knows -- I think I just touched up on the obvious ones though. A key problem for trying to predict this stuff is that several key concepts and technologies that will affect the path of Drupal have not been invented yet.

After Thoughts

Predictions are -- to put it mildly -- usually wrong. I feel however, these predictions are ,at least, a bit more solid than the future that was predicted in the 60's: the one where we had jetpacks, flying cars, and were living in space needles. The real future was Microwave ovens, plastics, computers, and the internet. At the very least, I think this proposition is practical, and serves needs that are only beginning to be filled. Also don't forget: in technology, predictions are often inventions.

Comments

Good summary of what is coming up!

I got to be honest. I believe that Drupal rocks and it has lots of potential. I am also a huge fan, user and supporter of other Open Source projects. I appreciate the good summary of what is coming ahead and I can see the writer's enthusiasm. Having said that, asserting that Drupal will be the web OS of the future, sounds like the kind of marketing hype that we used to hear in the late 1990s. Remeber how we were told that some new VC funded startup's technology is going to change the world and leave the incumbents in the dust. No-one has yet to undermine the dominance of Microsoft, IBM and Oracle. The fragmented *NIX market in the face of rising Linux has transformed the business of some companies such as SUN which, by the way, continues to exist. But, some of the most wrongly admired businesses of the pre dot.com crash have gone bust. Regards, Massoud

nice review

I like it, especially the psychedelic bits. But, putting my dark side mantle, drupal is in danger of getting too big, too bloated, too soon. Even now it is, I suppose. It is essential that a lot of things are abstracted or simplified. If not, it will collapse under load, or turn into the webapp equivalent of Debian. It can be the reliable shire horse of a framework. Great development, great community, rare releases.

I liked your ideas,

I liked your ideas, especially the idea of the Web OS. Very nice. Regards, introfini

Dupal depends on PHP

I would certainly be very happy if Drupal was still alive, growing, and being actively developed in 2016. But I do have my doubts. Drupal is written in PHP, and let's be honest: if PHP dies, then it's very likely that Drupal will die with it (along with WordPress, and phpBB, and perhaps even MediaWiki). And I am much less confident about PHP lasting the test of time, than I am about Drupal doing so. PHP is perfectly suited for the web of today. It's easy to code in, it runs on all the common web servers and OSes, and it's very good for performance. But the language has many ugly and hackish elements to it, and it doesn't have strong enough or clean enough foundations. PHP5 improves much of the ugliness, and PHP6 will supposedly improve it even more - but this is just putting bandages on a wound that can't really be healed. I love PHP, but I'm worried that its days are numbered. The web will be a very different place in 10 years - will PHP be able to adapt? I predict that other, cleaner languages will take the place of PHP in the future: Ruby and Python are the obvious candidates right now, but that may change. And if that happens, what are the chances that anyone will bother to rewrite Drupal in another language? Is it even possible, for all practical purposes, to 'rewrite' Drupal - or would the result of such a rewrite be a completely different product? Then again, I may be wrong (I hope I am wrong!). Perl is basically dead (no new popular apps being written in it), and Movable Type is still one of the top blogging apps on the web. Perhaps it will be the same with the popular PHP apps, when PHP itself goes into decline.

Aren't you assuming that PHP

Aren't you assuming that PHP will not evolve? Compare PHP3 in 1999 to PHP5. -K

Of course

Of course PHP will evolve. But its legacy (i.e. how people remember it and think of it) will always be what it was like when it was at its peak. IMO, PHP has been at its peak for about the past 3 or 4 years - that is, in the time of PHP4 and PHP5. And both these versions (PHP4 in particular, and PHP5 to some extent) are well known for having (among other problems) inconsistent naming conventions, hard-to-predict type conversion handling, and very feeble OO support. All popular platforms continue to evolve, even after they've lost their dominance. Hell, look at COBOL: it hasn't been at its peak for over 30 years, and as recently as 2002, a new version was released! I'm sure that PHP will also be maintained 20+ years from now, even if it's not at its peak anymore.

Holy jumpin' jesus that's a

Holy jumpin' jesus that's a good point. I think PHP will survive the test of time. Its popularity shows no signs of slowing. And I think it has a sturdy base of developers who have a big stake in making sure it doesn't go the route of perl and java. Moreover, I think even PHP 4 has more than enough horse power to manage many of the advances I discussed. 

But, on a related note, my windows machine is still starting MSDOS before it starts Windows. Its 2006, yet my laptop stilll relies on a piece of software from what -- 1982?

Whose to say that the PHP base in drupal won't eventually become it's MSDOS?  Assuming PHP doesn't meet the demands of the future.

DOS?

WinMe should've been the last windows system that actually booted into DOS before Windows. XP incorporated the 2K nee NT bootloader and should be native. I suppose I could be wrong but I don't believe so.

Well, you might be right --

Well, you might be right -- I just remember when my windowsXP install crashed 2 years ago, I had to relearn MSDOS to recover important files. Regardless, I guess my point is that PHP is adaquate for just about everything besides hardcore graphics applications, complex modeling, etc. And if it is possible by version 5.0 to run a flash site through drupal, I see no reason why a PHP core couldn't later be extended by other more powerful languages when need be. Still, I think everything i've described is possible with a PHP core, and is probably a lot closer than 10 years off down the road. Plus, it doesn't hurt to occassionally think about how we can take drupal to the next level and expand its reach.

Good write up

But there's no need for the print_r around the form() call.

Oh, I'd assumed that if I

Oh, I'd assumed that if I were to plop it in a tpl.php file, I'd need to print it. And that the function itself did not actually print any output.

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Lines and paragraphs break automatically.
  • Web page addresses and e-mail addresses turn into links automatically.

More information about formatting options