Drupal is een open source content management systeem, een tool waarmee je een website kan bouwen. Tools als Drupal zijn voortdurend in ontwikkeling, en er bestaan dan ook verschillende versies van. Bij de installatie moet je een versie kiezen, in het geval van Drupal gaat het om versie 7 of 8. Over Drupal 8 bestaat zeven jaar na het begin van de ontwikkeling en twee jaar na de vrijgave nog steeds een controverse: Drupal 8 gebruiken of nog wachten? Wat is er aan de hand?

– Weinig tijd? Scan de titels, en lees enkel de paragrafen die je aandacht trekken.
– Het hele artikel lees je op 4'00".

Drupal 7 of Drupal 8?

Of Drupal 6?

Ja, versie 6 kan ook nog. Maar het is vrij duidelijk dat dat geen goed idee is voor een nieuwe website. Sinds 24-02-2016 wordt versie 6 niet meer actief onderhouden.

Dan maar de nieuwste, niet?

Drupal 7 startte op 05-01-2011, en wordt nog steeds onderhouden; Drupal 8 startte op 07-10-2015. Voor elke versie wordt ooit de ontwikkeling gestopt. Dat betekent niet dat een site op een oudere versie niet meer zal werken, wel dat je hem niet meer kan verbeteren, of je moet als specialist zelf aan de kern gaan sleutelen. Dus als ik een site bouw met de nieuwste versie, kan die langer mee? Ja, maar er zijn nog andere argumenten voor een keuze, bijvoorbeeld de beschikbaarheid van modules.

Wat zegt Drupal zelf?

Over Drupal 8, waarvan voortdurend nieuwe builds verschijnen: "The latest minor release includes new features and backwards-compatible API improvements, and is ready for new development and production sites".

Over Drupal 7, met laatste release 7.56 van 21-06-2017: "If you need stability and features from the widest variety of contributed modules and themes, this is the version for you".

Mijn ervaring

Als je ervan uitgaat dat ook hier enig positivisme de negatieve punten verdoezelt (zoals meestal het geval is) zou je de informatie kunnen interpreteren als volgt: Drupal 8 is niet stabiel, en er zijn minder modules en thema's beschikbaar. Da's misschien niet eerlijk, maar het klopt wel.

Ik heb de beide gebruikt. Eerst Drupal 8, om "mee te zijn", maar daarbij bleek al gauw dat heel wat interessante functionaliteit inderdaad nog in ontwikkeling was, in modules in "dev"- of "beta"-versies (soms interessant voor techneuten, maar zeker niet voor "het grote publiek" zijnde websitebouwers die niet programmeren). Je moet al veel verstand hebben van de verschillen tussen versies 7 en 8, en "mee zijn" met diverse aspecten van softwaretechnologie (bv. objectoriëntatie in al zijn facetten), om versie 8 te appreciëren.

Voor een volgende website heb ik de versie 7 gebruikt, wat mijn idee over het spanningsveld tussen beide bevestigd heeft. De kern van versie 8 bevat meer functionaliteit dan die van versie 7, waar je meer modules moet toevoegen voor extra functionaliteit (bv. voor de editor en voor de overzichten), maar dat kost uiteindelijk niet zoveel moeite. Anderzijds vind je in versie 7 voor elke denkbare functionaliteit wel één of meer modules die hun waarde en betrouwbaarheid voldoende bewezen hebben, wat van versie 8 nog steeds niet kan gezegd worden. En ook: Drupal 8 neemt vijf maal meer opslagruimte in dan Drupal 7.

Guus, wat is er aan de hand?

De keuze tussen versie 7 of 8 is misschien geen "hot" item, maar toch eentje dat regelmatig nieuwe berichten genereert.

En recent bericht is "It's OK to build new sites on Drupal 7" op myDropWizard.com, een organisatie die nota bene leeft van Drupal, maar niettemin regelmatig kritische noten plaatst. myDropWizard zegt onomwonden: "Drupal 8 is nog niet klaar voor iedereen, en dat zal nog een tijdje duren."; 2 jaar na de lancering moet dat pijn doen.

Drupal 8 is beschikbaar sinds 07-10-2015, na 5 jaar van ontwikkeling, wat op zich al veel was, en het is maar beperkt bruikbaar. Bovendien vind je wel meerdere sites die de nadelen van Drupal 8 t.o.v. 7 bespreken, zoals deze (08-2014) en deze (03-2016); zoek even op "drupal 8 critique", en je heb keuze genoeg. (Tussen haakjes, kijk op dergelijke pagina's zeker na van wanneer ze dateren, en lees ook zeker de commentaren, vermits die meestal nog duidelijker de problematiek schetsen dan het originele artikel).

Het lijkt erop dat websitebouwers afhaken omwille van de toegenomen complexiteit. Er zijn technische keuzen gemaakt rond headless installatie, OOP, Symfony, JavaScript, API's e.d., die techneuten zouden kunnen aantrekken, maar tegelijk Drupal 8 zodanig veel complexer maken dat aanpassingen van de standaard functionaliteit veel moeilijker geworden zijn.

Een groep van Drupal ontwikkelaars die niet akkoord waren met de ontwikkelingen, heeft zich al afgesplitst van de "Drupal community", en is zijn eigen weg opgegaan met BackDrop, uitgebracht 01-2015, dat o.m. een eenvoudiger migratie van Drupal 7 biedt…

Twee jaar na het schrijven van dit artikel is de toestand niet verbeterd; zie een blog post van Jeff Geerling.

De clou van de zaak?

Enerzijds zie ik dat Drupal 8 nog niet klaar is voor het grote publiek (veel modules zijn nog niet beschikbaar, of niet betrouwbaar genoeg), en ik lees over de grote technische veranderingen, waar ik weinig of niets van begrijp. Anderzijds gaat veel aandacht naar de groei van de "Drupal community". Drupal is immers open source software, wat betekent dat de ontwikkeling voor het grootste deel gebeurt door vrijwilligers in de community. Als ik de berichten van Drupal en andere bronnen lees, concludeer ik dat men de community aantrekkelijker wil maken door meer moderne softwaretechnieken toe te passen in Drupal, wat vervolgens meer gevorderde ontwikkelaars zou moeten aantrekken.

En de gevolgen…

De nieuwe technologie maakt programmeren in Drupal (veel) complexer. Drupal 8 dreigt niet-techneuten uit te sluiten door toename van complexiteit. Met de tijd kunnen enkel nog gevorderde programmeurs met Drupal 8 werken. Maar dat zijn evengoed maar mensen, die evengoed als alle anderen last hebben van te veel complexiteit. Ofwel heeft dat zijn invloed op de kwaliteit (daar lijkt het nu op), ofwel gaan er programmeurs uitvallen of er gewoon de brui aan geven, waardoor er minder overblijven, die elk dus nog meer werk krijgen, en dus duurder worden (en sommigen gaan daardoor hun eigen bedrijf opzetten en duur betaalde manager worden, zodat er nog minder programmeurs overblijven…).

Met andere woorden, de eindklanten, die websites nodig hebben, gaan nog meer geld betalen voor iets wat ze nog minder gaan krijgen. Het is een zwart gat. Het is niet voor niets dat Drupal mikt op de grote bedrijven, die nog geld over hebben voor dure systemen.

Het probleem

Basale fouten?

Dit artikel is niet geschreven met één of meer basale fouten in het achterhoofd, hoewel er wel enkele te identificeren zijn; bv. het gebruik van de term "community" creëert een vlag-en-ladingprobleem. Verder zijn er parallelle paden te over, als gevolg van concurrentie. Veel interessanter hier is de toename van complexiteit in de softwareontwikkeling. Zoek op internet naar "software complexity" en je vindt hopen informatie.

Systeemgedrag

De evolutie van een tool als Drupal is een goed voorbeeld van systeemgedrag; we zien hier vooral in de versie 7 vs. 8 polemiek een versterkende lus die gedreven wordt door een enge vooruitgangsvisie, gebaseerd op softwaretechnologie, en die de complexiteit verder verhoogt. Tools worden o.m. ontwikkeld om te kunnen omgaan met complexiteit, maar verhogen die zelf, en maken dan weer nieuwe tools noodzakelijk.

Vooruitgang

We jagen nog steeds de horizon achterna. Als er iets nieuws ontstaat moeten we dat hebben. Als we een nieuwe technologie niet gebruiken zijn we niet meer mee. En allemaal tegen elkaar op, om ter snelst. "De technologische ontwikkelingen gaan steeds sneller" wordt dan gezegd. Ja, maar waarheen?

Dat die "technologische" evolutie ook nog eens gesteund wordt door de overheid is stof tot nadenken. De overheid houdt krampachtig vast aan de groei van de economie, ziet dat de IT-sector nog groeit, en steunt bijgevolg die sector in de hoop van de groei te profiteren. Maar de sector zelf is de enige die profiteert. Zolang de boel niet vastloopt in complexiteit…

Effectiviteit

Niemand vraagt zich nog af of die nieuwe technologie iets biedt dat de maatschappij vooruithelpt. De jacht leidt ons helemaal af van waar het in feite om gaat: van echte problemen van klanten oplossen (hebzucht uitgezonderd) tot meer algemeen de wereld verbeteren.

Complexiteit

We zijn veel te tolerant voor overbodige complexiteit. Toenemende complexiteit zou ons niet moeten afschrikken, zolang ze nuttig blijft; overbodige complexiteit is zonder meer te mijden. Als complexiteit wordt toegevoegd om programmeurs te plezieren zijn we voor de zoveelste keer bezig de IT-industrie te spijzigen, in plaats van de maatschappij te verbeteren.