All the Hubbub About Drupal 7

Drupal 7. Is it ready?

That seems to be the general question in the air over the past few weeks discussed by many in the community. There's a problem with this question, though... I think many people look at their particular use cases, determine Drupal 7 to not (yet) be a good fit, then declare all things Drupal 7 to be lacking.

Really, though, are things so bad? I've seen hundreds of sites on Drupal Gardens that are beautiful and functional. I've upgraded two of my simpler Drupal 6 sites to Drupal 7. I've built a total of fifteen Drupal 7 sites—some serving more than 10,000 visitors a day, others serving a hundred or two (and almost all on shared hosting!)—and am working on three others. So, for me, the question 'Is Drupal 7 ready for prime-time?' doesn't make sense. It's already there (I haven't started a new project on Drupal 6 for six months now).

Sure, there are a few rough edges in Drupal 7, and some of the APIs can be confusing and/or complex, mostly because of incomplete or missing documentation... but those things are easy to fix, and require more developers to start using the APIs and fleshing out the APIs.

Drupal Contrib

Contributed modules are one of Drupal's greatest strengths, and yes, there are many areas where improvement is needed—but is this any different than Drupal 6? I remember many Drupal modules for D6 that didn't have stable releases until one or two years after D6's launch. They were still perfectly usable except for one or two minor problems, but that's the nature of software—there are always bugs and missing features, and that's not going to change.

In Drupal 7, there are a lot of modules stuck in beta-land, and a few major modules that simple don't have a D7 release, but have many active contributors posting D7-upgrade patches to issue queues. We need to get more module maintainers to commit these patches so people have an upgrade path—bugs and all—from D6 to D7. It's amazing how much more quickly things get stable once there's a 7.x-dev release... and then once that -dev release spawns an alpha or beta.

Take a look at a few of the patches I've tested and/or created as a result of one recent project:

None of the issues for which I require a patch are actually major bugs—usually just missing empty() checks, or a little bug with the way certain values are set or checked. And this is how it is with almost every D7 project I've tried. There are one or two tiny bugs that just require someone spending 5-10 minutes to resolve them. The problem seems to me to be missing module maintainers—most of these patches affect 1-5 lines of code, and should be committed immediately. But they sit in the queues without being touched.

BUT, this doesn't mean you should abandon D7. On the contrary: Drupal 7 is the most advanced, helpful, and awesome Drupal release in history. Some of the new core features—fields, Queue API, more advanced Cron hooks, form #states, etc.—are utterly awesome, and have saved this developer hours of frustration.

Complexity Breeds Contempt

I've seen arguments that Drupal core is becoming too complex, or too vast for individual developers (or smaller shops) to grok. However, I believe that (a) this is only partially true, and (b) this is necessary. First, it's only partially true because I consider myself at least vaguely familiar with most parts of the API, after working on one large site with D7. There is plenty of documentation about most things (enough to get you started, at least), and for the rest, a solid hour of Googling will get you the rest of the way.

I also believe that the complexity and size of the codebase is necessary for Drupal, because Drupal is not Wordpress. Drupal is not set up to be utterly simple and focused on one or two use-cases, and good only for the '80%'. Drupal is able to be good for the 95%, and solves complex issues with panache.

If you're setting up a website with three main pages and a blog, use Wordpress. It's that simple. If you want to build a really simple and fast web app that does one thing well, there are other frameworks well-suited to that task. If you want to build a complex website that ties into five different APIs, sends out thousands of emails a day, has a built-in store of some sort, pulls in content from around the web, lets you visulize your content in many different ways, integrates with mobile apps and platforms, lets you migrate all your live data into the new site and also has a blog... Drupal may just be for you! (Case in point: flockNote, which is 100% Drupal 7-powered).

The Drop is Always Moving

There are a lot of things happening in the Drupal universe. The new gates being used to determine what gets into Drupal 8 core are a very good idea, and will hopefully help reduce the amount of time-consuming tasks Drupal core developers need to focus on. The new initiatives are helping certain portions of the community come together and focus on resolving a few complex problems more systematically than happened in Drupal 7's cycle. Acquia and other larger Drupal companies are beginning to pick up more enterprise-class site projects, and Drupal's exposure to the mainstream web is hitting stride.

What does this mean? The Drop is Always Moving. There are always a bunch of #drupalwtf's getting in the way, but Drupal will continue to grow and morph into a new beast. You need to keep moving with the Drop. From Drupal release to Drupal release, you will hit a lot of obstacles. But working through those obstacles and continuing your march forward will help thousands of developers who will follow in your footsteps. So, onward we go!

Comments

I think the "Drupal is not ready yet" often comes from people who don't have the contribution spirit and the open source workflow. If something is not ready yet, help make it ready. Yes one cannot help in 10 modules + core, unless you're a LOT of people, but could still help with a few issues, and then write a small doc page.

I haven't even started any project in Drupal 7 (hopefully coming soon) but already helped in several issues in different modules. Open source spirit ! Really it's not hard, and if most of us do it, it will pay for everybody.

This look like we are not talking about the same 'Drupal 7'.

I see now, there're 2 groups of people within our community:

It seem like one who have solid understanding about Drupal find it is easy to learn Drupal 7, but things are reversed for one who never need to comprehensively understand Drupal prior Drupal 7.

What I'm thinking about is one who have some computer science background have no trouble about it. And one who have trouble may be people who don't have computer science or other comprehensive programming background except some PHP, Drupal and a few tools needed to get web development done using CMS.

I'm not blaming one who don't have intensive CS or programming background, because that's actually what Drupal community built upon. Instead, Drupal can't treat this as a small problem because these people are most Drupal audiences. Drupal already give promised is already bread and butter for many of them. It sad if someone life ruin because they can't have Drupal job anymore, that direction is what we should stay away because it can happened to anyone oneday.

To better the situation of this problem:
1.) Drupal need better Documentation. Drupal can have a few full-time tech editor and there would be no reason why someone can't learn Drupal, if they do try. And the consequence would be it will raise the bar for those commercial tutorial quality because Drupal knowledges are leverage.
2.) Drupal need better Documentation. Drupal can have a few full-time programmer to relieve work for those core developers, and let those core developer do more documetation and tell some of their insight stories. And the consequence would be it will raise the bar for those commercial tutorial quality because Drupal knowledges are leverage.

The goal of Drupal still should be like what Dries have envisioned:
http://buytaert.net/drupal-and-eliminating-middlemen

" Let's keep that in mind while working on Drupal. There are a lot of unexplored possibilities here, and it would be great to see us untap some of that potential.

Of course, the funny part is that by doing so, eventually, we'll eliminate ourselves ... But that's a good thing, as it would free up a ton of spare time. ;-) "

It's the recipe of technology success, Dries know that. That's why he always said about SaaS and he really take action on the same philosophy.

We need as much as possible Drupal developer to really become real success, and that's why Drupal should lower the bar of entry. Nothing in nature is as powerful as replication, and we need a lot more core and mid- developer replication for Drupal for world domination. Think, what if community can have 10,000 knowledgeable Drupal developers instead of 1,000 knowledgeable Drupal developers.

That's change the whole game and open up real Drupal possibilities.

I see what you're saying, but to be clear, I have absolutely zero CS background (I have an undergraduate degree in philosophy, and an incomplete master's in theology), and have never formally studied one bit of programming, PHP, etc. Instead, I've read books on HTML, CSS, PHP, JS, C, C++, Objective-C, Java, Python, etc. for the past 10 years, and experimented, standing on the shoulders of giants.

Half the code I write is based on work I've seen previously ('Everything is a Remix'), and the same goes with design. I try to document everything I do, and that often helps people who come after me. I'm just suggesting everyone do the same :-)

Well, to eliminate the middle man, you need more abstraction, so more complexity. As you said this complexity needs to be documented, and Drupal lacks Documentation. Hopefully the new D8 gates initiative will enforce documentation writing. In the meantime, it's up to those who can read code to write better developer and end-user docs, so core devs can focus on making Drupal better.

complexity is subjective. It good not to have, but it is necessity for Drupal.

Usability can be achived with complexity. And usabilty is necessity to get adopted by mass. No matter how complex things get, it still be able to comprehend if there're enough documents, tutorials, courses, etc.

For example, Javascript is such a beast to master if there're no good documentations, books, tutorials for all level around the market. And if it was that way, Javascript may be dead already.

But it isn't, why there're so much Javascript master, even it is so complex, this day? Because there're so many good tutorials around, both free and commercial. How many people can do good Javascript coding by reading just some incompleted doumentations, I think not much.

Let see this Harvard's CS50.tv , I think any one who never have programming background can learn the subject teached a lot by just these courses (Even it's not as good as those Carnegie Mellon or MIT open courseware, it is enough to turn normal guys to be somewhat programmer)

And those khanacademy.org, I'm sure people can somewhat understand Algebra if they're willing to learn. Algebra is so WTF for people who are not science oriented, but it is not that hard if they can have these comprehensive tutorials.

You see what I means, if Drupal can have this good documentations...
(Without feasibility study, My idea is it could be immediate started if D.O. acquired buildamodule.com and keep produce more tutorials, those lullabot trainings, a list of commercial books. As the basic standard tutorial for Drupal.org. This would raise the bar and kick started training market.)

Richard

I agree with you, if Drupal could acquire the quality tutorials from Lullabot for instance, and even integrate all their blog posts containing valuable information about core or modules. At the same time, Drupal lacks documentation because those who have a good understanding of Drupal write blog posts instead of doc pages... So the only place to find proper doc is Google (not the best solution).

This is somewhat true, but I also find it difficult to browse through, edit, and create the non-API Drupal docs. There really needs to be a full-time docs maintainer who works on rearchitecting non-API documentation, organizing docs sprints, etc. Volunteers just don't cut it right now.

I think both sides of this debate are reading too much into each other's arguments. Of the articles that I have read, both sides are both saying the same thing--it depends on your situation. Yes, the critics on both sides will give a definitive yes or no, but at the end of the day, it's the same concept--it depends on your situation. I think these articles need to stop and more focus on what can make drupal better.