Drupal 8's fordele i forhold til Drupal 7

For Drupal blev 2015 et vendepunkt - året for Drupals skifte fra version 7 til 8. Det er stadig Drupal, men Drupal vil aldrig være helt det samme igen.

Drupals community har slagtet sine darlings

Nye hovedversioner af Drupal har altid været bygget på præmissen, at intet er helligt. Den nye version skal altid være den bedst mulige, uanset hvordan vi plejer at gøre. Det gælder i endnu højere grad for Drupal 8, end ved udviklingen af tidligere hovedversioner af Drupal.

For Drupals brugere og udviklere betyder det, at man skal lære en ny måde at gøre tingene på, og at specialudviklinger skal kodes forfra. Det giver også langt større risiko for fejl.

Fordelen er at man kan gøre tingene rigtigt, uden hensyn til hvad man plejer at gøre.

Get off the island

Drupal 8 er fundamentalt anderledes end alle tidligere versioner af Drupal. Drupal 8 bygger på et paradigmeskift, som i Drupals community udtrykkes som “get off the island”. Fra og med Drupal 8 har Drupal udviklerne vendt blikket mod verden udenfor Drupal og kritisk undersøgt, om nogle af elementerne i Drupal kunne løses bedre med udefrakommende elementer.

Derfor har man slagtet en væsentlig del af Drupals kerne og erstattet den med byggesten fra et system, der hedder Symfony. Vi taler ikke bare om at skifte tagbelægningen på huset; vi taler om at skifte hele husets fundament og de bærende vægge.

Symfony er ligesom Drupal et open source system, eller måske nærmere en open source platform. Noget af det, som Symfony er rigtig god til, er at håndtere, hvad der sker, når en bruger rammer vores website på en given adresse. Hvordan viser sitet så det rigtige indhold til brugeren? Eller - hvis brugeren ikke er en almindelig bruger, men måske et andet website - hvordan sender vores website så informationer videre til det andet site. Den opgave dirigerer Symfony faktisk bedre, end kernen i de gamle versioner af Drupal gjorde.

Et andet udefra kommende element i Drupal 8 er Twig, som er en måde at skrive templates til Drupal. Det er de skabeloner, som til sammen bygger en side op. Drupal deler enhver side op i elementer. Eksempelvis har toppen af siden sin egen skabelon, som man kan tilpasse ved at rette i den pågældende Twig skabelon.

Både Symfony og Twig repræsenterer fremskridt i Drupals indre struktur. De har en bedre, mere gennemtænkt struktur, end Drupal 7.

Mange forbedringer

Skiftet til Drupal 8 rummer andre små og store forbedringer, som hver for sig bidrager til at Drupal 8 er bedre end Drupal 7.

Eksempelvis bedre konfigurationsstyring. Med Drupal 8 er det nemmere, hurtigere og mere fejlfrit at rulle nye udviklinger i drift. Har du fx en Drupal installation med 50 sites, kan du uden videre på samtlige sites udrulle en ny side (fx “copyright”). Det var en beværlig opgave i Drupal 7.

Drupal 8 har også bedre caching. Det betyder, at du nemmere kan gøre et avanceret Drupal site hurtigere.

For beslutningstageren

Er du beslutningstager, og skal forholde dig til, om du skal opgradere fra Drupal 7 til Drupal 8, skal du gøre dig klart at der ikke er nogen lige vej mellem de to versioner. Har du et Drupal 7 site med en række specialudviklinger, skal de formentlig bygges helt eller delvist om. Skiftet fra Drupal 7 til Drupal 8 er langt dyrere, end skiftet fra Drupal 6 til 7 var.

For de fleste Drupal websites vil det være en fordel at opgradere, fordi ideen om at Drupal 8 skal slippe “the island”, altså at Drupal skal bygge oven på andre platforme, er kommet for at blive. Det er et sundt princip, som styrker Drupal på den lange bane.

Har du et mindre website med knap så omfattende funktionalitet, er det en god lejlighed til at overveje, om du er bedre tjent med et knap så avanceret system, fx Wordpress.

Bruger du et andet system og overvejer at skifte til Drupal, kan det være et godt tidspunkt at hoppe med på vognen. Vær klar over, at Drupal med version 8 har taget et skridt op ad trappen i retning af at blive et enterprise-system. Det har flere muligheder, men det er også blevet mere komplekst.

For indholdsredaktøren

Drupal 8 er en anelse mere brugervenligt på redaktørsiden end Drupal 7. Men ligesom med Drupal 7 rummer redaktørsiderne forholdsvist mange valgmuligheder, som kan være et problem for den almindelige bruger. Så også med Drupal 8 er det en fordel at tage aktivt stilling til, hvilke funktioner og valgmuligheder, som du ønsker, at den enkelte bruger skal kunne se.

Mange af redaktør-funktionerne i Drupal 8, fx topbaren, som kan foldes ud, og som er responsiv, kan du også gøre brug af i Drupal 7 via særlige moduler. Så du kan komme forholdsvist tæt på den samme redaktør-oplevelse med Drupal 7.

For backend udvikleren

Udvikler du moduler til Drupal, er der markant forskel mellem Drupal 7 og 8. Drupal 8 er stringent objektorienteret. Det er stadig programmeringssproget PHP, men er du vant til at kode Drupal 7, vil du nærmere opleve det som om, at du er skiftet til en helt anden måde at kode på, som svarer til objektorienterede sprog som fx Java.

I starten vil du være udsat for en stejl læringkurve. Og det er langt fra altid nemt at finde ud af, hvad der præcist foregår, når systemet ikke opfører sig som forventet.

Drupal 8 anvender i høj grad nedarvede objekter med beskyttede egenskaber og metoder. Det betyder, at du ikke længere har den samme frihed til “at gøre som du vil”. I stedet er du tvunget til at rette ind efter “the Drupal 8 way”.

I princippet er det godt og rigtigt. Det betyder, at du i langt højere grad kan genbruge kode og dermed skrive mere ren og slank kode. Alligevel sidder man som udvikler tit med en oplevelse af, at man er tvunget til at skulle håndtere “objekter fra helvede”, som er alt andet end selvforklarende.

På den lange bane er det godt, på den korte bane er Drupal blevet sværere at lære.

For themeren

Arbejder du med at implementere grafisk design i Drupal 8, vil du formentlig opleve, at Drupal er blevet mere rent. Det nye skabelon-sprog Twig er mere ubesværet end tidligere skabelonsprog i Drupal.

Helt ubesværet bliver det dog ikke. Du kommer hurtigt til at arbejde med avancerede “preprocess” funktioner, dvs. stumper af kode, som føder de rigtige informationer til dine Twig skabeloner. Og her er du - ligesom backend udvikleren - nødt til at kunne jonglere med svært komplekse objekter.

Drupal 8 vs. Wordpress

Drupal 8 giver gode nye muligheder på enterprise niveau. Du kan bedre arbejde med avanceret caching og dermed få avancerede websites til at blive hurtigere. Du kan også bedre udveksle data med andre websites og andre systemer.

Men har du bare brug for et lidt mere simpelt website, så er læringskurven meget stejlere end for eksempelvis med Wordpress.

Drupal 8 åbner derfor for at Wordpress og andre systemer kan æde en større del af markedet for mellemstørrelse websites. Det er relativt nemt at skrive et udvidelsesmodul til Wordpress. Det er ikke nemt at bygge sit første Drupal 8 modul. Så formentlig kommer Drupal 8 til at blive trængt af Wordpress de kommende år inden for mellemstore websites.

Og så er der Backdrop

Der er udviklet utallige gode moduler til Drupal 7. Og de kan ikke bare migreres til Drupal 8. De skal kodes forfra, især pga. skiftet til Symfony.

Samtidig har Drupal 8 haft et primært teknologisk fokus, og knap så meget et fokus på de mennesker, der bygger websites, og som ikke går op i teknikken.

Backdrop er en reaktion på denne udvikling. Det er en variant af Drupal 7, dog med en lidt mere enkel arkitetur. Backdrop er tænkt som et CMS, der skal leve videre og bygge videre på grundarkitekturen i Drupal 7, og altså uden at skifte kernen i Drupal ud med Symfony. Det betyder at Drupal 7 moduler meget nemt kan opgraderes til Backdrop.

Jeg har svært ved at se en reel fremtid for Backdrop, men det er muligt at en del af de mange Drupal 7 sites rundt omkring i verden vælger at skifte til Backdrop, frem for at tage skiftet til Drupal 8.