Last week I sent an email around to our top Drupal developers, Tim Loudon, Mike Crittenden, our CTO Jonathon Whitener, Chris Jones, Jonas Flint to ask them why is D7 Really is Better then D6?
This is what the team came back with!
1) All the UX improvements for admin interface
2) Not needing Pressflow to do reverse proxy caching
3) Entity API (not core)
4) PDO Database abstraction layer
5) The admin section is usually a lot easier to use and prettier with the admin theme, the overlay, the dashboard, and the admin toolbar (all of that is new in D7)
6) In D6, you needed to use Pressflow (which is more or less a Drupal fork) to use reverse proxy caching like varnish (for performance). With D7, you can do it with plain old Drupal.
With the new Entity system, everything is fieldable.
7) You can add fields to users, comments, taxonomies, etc., so site building is really robust and consistent.
8) Database abstraction layer (aka DBTNG - "Database, The Next Generation") means that you can write database queries using PHP rather than raw SQL. A big win here is that it makes it easy (or easier at least) to support multiple databases with the same codebase.
9) Various modules that have been integrated into core such as CCK (content types), image cache = image styles etc
10) Built in content field system (within user and taxonomies)
11) Greater control of fields within the theming layer
12) Greater security controls
13) Here is a good 5 minute video on this: http://www.youtube.com/watch?v=zDMJS2ddThs
14) On the high performance front, D7 has support for MongoDB (w/ fields) and Redis (similar to memcache)
15) D7 has more responsive and HTML5 themes. D6 jQuery stops at 1.3.2, 1.5.2 in D7 and supports jQuery UI
16) The real win is that D6 is code from like 2007, whereas D7 is code from like 2010. AJAX, for example has horrible support in D5 and awkward support in D6, I think it's finally usable in D7. This is not just true of core but also contrib, the majority of maintainers are no longer making improvements to D6 modules. D6 is a dead end. To make things more concrete, I believe D6-core support is set to end in late 2013/early 2014 (IE, when D8 launches)
17) D7 may have some mis-steps, especially where things are totally new, but on the whole it is an improvement.
18) ROI on a D7 migration is only going to diminish. And waiting to upgrade to D8, means running stale code until mid-2014 when D8 is really stable and all the contrib modules people want but don't want to personally port are available. There will also be no D6->D8 migration support, most people will suggest D6->D7->D8.
19) Views and CCK were always "interesting" projects. The fact that they are/will be in core means that it puts the code in front of more people.
20) People have been having this same conversation for years. Change is a constant. It's rarely all good or all bad. We can't stand still.