What defines Drupal ?
Of course, Drupal has historically been about the community more than the software, but this is not the point. The question here is: what defines the Drupal experience technically, be it for developers, themers, or content authors.
Why ?
The goal here is to think what Drupyx should (or not) be. Similar previous attempts were designed differently:
Drupy 1 was designed as a line-per-line
PHP-to-Python port of the under-development Drupal 7
Drupy 2 was designed as a rebuild of Drupal 7 main features on top of Django
The goal for Drupyx, besides improving the overall Python-fu at OSInet, is to provide a Drupal-like developer experience (DX), themer experience (TX), and admin experience (AX) on top of Python, without an additional framework layer
Drupy 1 shows how low-level porting has been a trap, and actively discourages from pursuing in the same vein without higher-level thoughts.
Discussion transferred to http://groups.drupal.org/node/108604
Developers
The hook mechanism. Refined from its inception to the generalizing categories of accumulators (hooks invokable via module_invoke_all) and alterators (hook_*_alter) while early/historical pseudo-hooks (hook_insert/update/delete…)
The theme() mechanism, with its overlaid overrides, theme functions and templates
Render arrays, with their properties (#) and elements (no #)
Complete renouncement of basic PHP practice expected (forms, superglobals, sessions…)
Refusal to give in to the MVC for the benefit of practitioners with more academic training than experience
Storage
No mandatory content relationships
Content (until D6)
Everything rich is either a node, comment, or user account (until D6)
Every piece of rich content has a unique owner
Fieldable nodes (CCK) and accounts (Profile)
Terms and vocabularies are plain text
Content (D7 and later)
Everything is a fieldable entity
Yes, even fields, although it may not be implemented yet
Including user accounts
“Simpletest”
IRC #drupal, #drupal-dev: possibly the single most important developer feature
http://api.drupal.org: an always-up-to-date public
API reference for anyone to use without having to set it up on their server
Themers
Something will have to give, here: Python seems to be unusable as a PHP-like templating language, thanks to its reliance on indentation.
Admins
Online configuration, without a separate CLI installer/manager (à la Django or Rails)
Themable extensible query/report builder (Views)
IRC #drupal-support: possibly the single most important developer feature