@Hugo Dank je wel voor je uitgebreide onderbouwing. Punt voor punt:
1 spaghetticode
De onderliggende code in Drupal is complex door de hooks. De kracht hiervan is dat Drupal intern geweldig goed kan communiceren. De performance penalty die daarmee gepaard gaat is tijdens ontwikkeling een factor maar Drupal kent zeer goede caching- en optimalisatietechnieken om dit in een productieomgeving teniet te doen. Lees
https://www.packtpub.com/drupal-6-performance-tips-to-maximize-and-optimize-your-framework/book. Laag hangend fruit is de installatie van de view_content-cache module.
2 database layer
Drupal's database layer is voor Drupal 7 volledig geabstraheerd. Ervaar het verschil in de eerste Beta.
3 coding practices
Als themer had ik vooral moeite met print statements in phptemplate. Ik miste Smarty. Phptemplate voelde meer als php dan als template language. Nu ik eraan gewend ben zie ik dit meer als voordeel dan als nadeel. Ik ben lui en leer liever eenmalig een universele taal als php dan voor ieder cms een nieuwe template taal te leren.
Ik vind niet dat de code in core slordig is. In contrib is dit ook in drupal 6 soms nog wel het geval, afhankelijk van de schrijver van de module en los van de hooks. Maar de sterke beweging in de richting van api's, de verbeteringen in het schrijven van simpletests, de nieuwe testbot en het fantastische api.drupal.org hebben bijgedragen tot enorme verbeteringen in de code. Waar het aan schort zijn best practices en standaardisatie voor ui-code. Maar in 2009 is een ux-team opgericht dat zich erop richt dit in Drupal 7 te verbeteren.
4 webserver
Drupal 6 draait bijvoorbeeld net zo makkelijk op nginx als op apache, beperkingen in de mogelijkheden van nginx daargelaten.
5 aantal functieaanroepen
Functieaanroepen blijven een aandachtspunt. Niet het aantal calls maar hoe economisch ze zijn is daarbij van belang. Een interessante discussie hierover staat op
http://fourkitchens.com/blog/2010/02/03/making-drupal-pressflow-more-mundane en dan met name de commentaren van Larry Garfield en Matt Butcher.
6 security advisories
Je bent niet de eerste die de secunia advisories verkeerd interpreteert. Een groter aantal security advisories betekent alleen maar dat het Drupal security team in een steeds wijdere cirkel beweegt bij de speurtocht naar bugs. Zodra bugs worden gevonden en opgelost wordt dit zo breed mogelijk gecommuniceerd. Beluister de podcast op
http://www.lullabot.com/podcasts/drupal-voices-122-greg-knaddison-on-drupal-security.
Wat het rapport rond BlindElephant benadrukt is dat veel Drupal-sitebeheerders hun systeem niet goed updaten. Dat vind ik een stukje eigen verantwoordelijkheid maar het is wel zo dat het updaten van Drupal 6 (core) best een gedoe is. Niet iedereen beschikt over aegir of drush of weet hoe hij/zij makkelijk een gedeelde codebase toepast. Een van de belangrijkste ux-verbeteringen in Drupal 7 is de mogelijkheid om updates via de webinterface uit te voeren. Dat zal het percentage sites met achterstallig onderhoud aanzienlijk naar beneden brengen.
Willem