Where do I even begin?
First of all, I must preface that the Drupal Community is without a doubt one of the best open source communities. (meaning: most open, most likely to share code, experience and best practices, most innovative, most forward-thinking, least likely to "chase the bunny", most likely to be the bunny, and most likely to create tons of venture-backed companies in the next few years)
I mean, the people involved are just amazing. The two DrupalCons I've attended were just amazing, and our local Florida DrupalCamp and Florida Drupal user groups are a big part of why I have not jumped ship to Python, Ruby, or other even other PHP-based platforms, and why I have no plans to any time soon.
We had a demo of the penumbrant Drupal 7 at our recent monthly Drupal user group. I am convinced it is THE CMS with more power under the hood (built-in, for free) than anything else... ever. The whole Job Queue API by itself is a reason to build web apps on top of this, and stop thinking of Drupal as a CMS - if you've got tons of processing that needs to happen, such as processing thousands of RSS feeds, or creating something very processing-intensive like Feedburner or Flickr, you will need to use multiple servers - a simple Cron job isn't enough any more.
Then there is the database layer - not that it was the worst before, but there were certain kinds of configurations which used to require hacking core. Now, because of some pretty OOP (yes, Drupal has objects now!), you can override the database layer, and it uses PDO.
One huge change is the addition of a Fields API (AKA adding CCK to core, but it's more than that). This means that instead of storing simple rows in a database, Drupal 7 exposes data storage to developers and end-users. At the most basic level, fields are used to store the title and body of nodes, categories/tags, images, dates, links, numbers or references to internal objects like nodes and users. This allows you to add extra fields to comments, user accounts and taxonomy terms as well.
Next, we'd have to talk about user interface and workflow improvements. The entire administrative interface now has a default skin - and there is now a compact administrative toolbar at the top of each page, plus a customizable bookmarks area and a configurable dashboard (unlike Wordpress, where you get to read Matt's blog). The interface is a great sensible default, which is a bit of a departure from where Drupal has been in the last few years.
You'll actually notice that there will now be a choice when you install Drupal - to use a "Basic" install, or strip everything down to the bare metal. In fact, you don't even have to turn on node module any more - really. This is part of some hard work by folks who would like to use Drupal's core as a PHP framework for building entirely custom apps (instead of smelly Zend Framework or the other unmentioned PHP tools that exist). If you look around for #smallcore, you'll see what I mean.
There is so much more to say... In fact, this presentation by Steve Karsch says more. If you're a big podcast listener, I'd highly recommend listening to Lullabot's Drupal Voices. I'll leave you with this, Drupal Planet and Google to find more.
Commenting on this Blog post is closed.