Zojuist een vraag gekregen van een klant die wilde weten wat ik vond van TYPO3, een open source Content Management Systeem voor het web. Vanuit het perspectief van de klant kan ik me die vraag levendig voorstellen. De redenering ligt voor de hand: ik heb een nieuwe website nodig, ik wil zelf gemakkelijk de inhoud en de vormgeving kunnen aanpassen, ik ben vast niet de eerste met die vraag, dus kunnen we niet iets inzetten wat al eerder is gebouwd?
Er is een complete industrie ontwikkeld op deze behoefte. TYPO3 staat bekend als een gecompliceerd maar zeer compleet systeem, maar er zijn er (veel) meer. De bekendste drie zijn ongetwijfeld Drupal, Joomla en WordPress.
Toch adviseer ik meestal om er geen gebruik van te maken. De enkele uitzondering: als een klant echt helemaal niks bijzonders wil en simpelweg een kant-en-klaar systeem wil inzetten. Maar mijn ervaring is dat dit zelden of nooit het geval wil. Bedrijf A wil een systeempje om automatisch pdf’s te genereren. Zorginstelling B wil een interactieve kaart op zijn site met alle locaties van zijn aangesloten dochters, inclusief de faciliteiten die ze er bieden. Gemeente C wil nieuws op zijn site kunnen presenteren dat binnenloopt op basis van een RSS-feed, maar wil dat nieuws wel kunnen filteren.
Op het moment dat die vraag binnenkomt, weet je het eigenlijk al: het gaat bijna net zoveel tijd kosten om de benodigde hacks te plaatsen in WordPress of Drupal, dan het kost om een nieuw CMS van de grond af op te bouwen. En het grote voordeel van het laatste is dat je een volledig op maat gemaakte applicatie kunt aanbieden.
Dit alles neemt niet weg dat een beetje ervaren ontwikkelaar natuurlijk niet opnieuw het wiel gaat uitvinden. Als hij een bibliotheekje heeft ontwikkeld waarmee formulieren kunnen worden gevalideerd, zal hij dat elders proberen in te zetten; en een RSS-lezer ontwikkel je in de regel ook maar een keer.
De toekomst is volgens mij niet aan de Drupals van deze wereld, maar aan de systeembouwers. Deze developers gebruiken standaard-bibliotheken met componenten die ze als legoblokjes aan elkaar kunnen passen. Zoals je met lego in een sneltreinvaart een prachtig bouwwerk kunt optrekken, zo kun je bijvoorbeeld het Zend Framework gebruiken om in korte tijd een robuuste site, compleet op maat van de vraag van de klant, op te bouwen.