(1) The default administrative theme is greatly improved.
In earlier versions of Drupal, the default administrative theme was a bit homely and hard for new, non-technical users to navigate. There were a series of contributed modules for Drupal 6 you could install to improve the situation, but it was an extra step you had to take, and additional moving parts you have to deal with when updating. Drupal now has a slick and user friendly administrative theme as part of core. The administrative interface now includes Ajax goodness, an overall admin toolbar, shortcuts and generally increased loading times.
(2) Improved support for WYSWYG’s.
In Drupal 6 you could enable WYSWYG functionality by installing external modules, but they never seemed to work quite right. Drupal 7 makes the integration of WYSWYG editors more seamless. The end result is that they work better.
(3) Drupal 7 loads faster.
A long time complaint about Drupal is that it makes a lot of database calls, causing high server load that lead to speed issues when serving un-cached pages. Drupal 6 was a big improvement, but Drupal 7 features significantly less SQL queries causing sites to load faster.
(4) CCK is now part of core Drupal.
When working with Drupal 6, installing the Content Construction Kit (CCK) module was pretty much a requirement. CCK has been moved into core and rebranded as the Field API. Moving CCK into core gives developers the power to add fields to not only content types, but also to People, Taxonomy, etc.
(5) The image/file upload feature that is included in the Field API is invaluable.
Uploading files along with content in Drupal 6 was always a bit of a clunky process. Getting it to function the way you wanted was always a battle. In Drupal 7 what you can do right out of the box is much improved:
- The Field API allows you to specify which file types you want to allow (JPG, GIF, PDF, DOC, etc.). It also lets you set upload limits and maximum dimensions when uploading images.
- Files are now uploaded via an AJAX interface. After the file is uploaded it is immediately displayed in the form, where the user sees the file name and can delete the file right there. Further, as the file is uploaded the user sees a loading image so they can be confident that the file is getting loaded.
(6) There is more flexibility in what kind of content can be a custom content type.
In Drupal 6, content types were really designed to be text fields, with the Body field required for all custom content types you created. In Drupal 7, this requirement has been removed. This makes it less clunky to create non-text based custom content types for assets such as PDFs or images.
(7) Working with jQuery plugins is much easier in Drupal 7.
(8) Drupal 7 uses PHP Data Objects (PDOs), which allows for developers to more easily write portable code.
By making this switch, Drupal 7 is no longer dependent on any specific type of database. The result is greater flexibility.
(9) There are a lot more hooks, which allow for more customizations on a deeper level.
Hooks are what allow for the modules you write for Drupal to connect to Drupal core. In Drupal 7, there are a lot more hooks and they have separated hooks that were used for multiple tasks into smaller pieces. This makes Drupal 7 truly modular, and gives developers the ability to create deeper customizations.
(10) Drupal 7 is much easier to update.
Keeping Drupal 6 current was a hassle, as to update a module you had to download it, unpack it, upload it again and then run the update. Drupal 7 features an Update manager that tells you when a module is out of date and allows you to update it right from the web interface. Much, much easier, and more like the experience in WordPress.
(11) Blocks are much easier to configure.
In Drupal 6, to create a block you have to first create a block on the page you want it to appear, and then go to the slow-loading block overview page to set where on the page you want it to appear. In Drupal 7 this is all done in one step. While it sounds trivial, this can save a lot of time on more complicated sites.