Drupal - hvorfor al den snak om Drupal?

Content management systemet Drupal har vind i sejlene. Men hvad er det, som er godt ved Drupal i forhold til andre systemer, hvad er det mindre godt til, og hvordan ser fremtiden ud for Drupal?

Drupal er open source

Drupal er gratis og kan frit hentes ned fra nettet.

Det kan du også med mange proprietære produkter. Eksempelvis tilbyder Microsoft produktet Sharepoint i en gratis udgave. Men du skal da senere betale, hvis du vil have produktet i en udgave med flere funktioner. Sådan er det ikke med Drupal. Der har du adgang til det hele, uden at du skal til lommerne. Og du kan kigge ned i koden. Som slutbruger er det lige meget, men som webprogrammør er det en fordel at kunne se præcis, hvordan systemet er bygget op.

Du kan også frit hente mange moduler til Drupal - dem er der ca. 10.000 af. Man kan sammenligne dem med Lego-klodser, som kan få dit website til at gøre mange forskellige ting. Eksempelvis hvis du vil have en webbutik på dit eget site.

Alle kan skrive et modul til Drupal, og derfor er der både gode og dårlige moduler. Nogle moduler er uundværlige. Andre moduler kan være en genvej til at løse et problem, fordi man kan tage udgangspunkt i dem og forbedre dem - i stedet for at starte fra bunden. Endelig er der en masse moduler, som man slet ikke skal røre ved, fordi de ikke er tilstrækkeligt gennemarbejdede.

Drupal har en åben og fleksibel struktur

Teknisk set har Drupal et fortrin ved at være fleksibelt opbygget. Med meget få liniers kode kan man ændre i, hvordan selv meget centrale dele af systemet opfører sig.

Lad os tage et eksempel. Du ønsker at give dine brugere valget mellem at oprette sig med en simpel eller avanceret brugerprofil. Den første kan være på en enkelt side, mens den sidste betyder, at de skal gennem flere sider, hvor de afgiver forskellige oplysninger. I mange systemer vil det være kompliceret at kode, fordi brugerregistreringen er låst til en bestemt formular. Med Drupal har du let adgang til at ændre i formularen og tilføje din egen logik. Og derfor kan du nøjes med få liniers kode, hvor det i andre systemer ville blive en meget omfattende opgave.

Det gælder ikke kun formularer. Det meste af kernen i Drupal er moduler. Eksempelvis styres alt omkring brugere af et bruger-modul. Så når du udbygger Drupal med dine egne moduler, sker det på præcis samme måde, som Drupal selv er bygget op.

Drupal bygger på traditionel open source teknologi

Drupal er skrevet i programmeringssproget PHP, og kører normalt med en MySQL database. PHP er det mest anvendte open source programmeringssprog i verden; MySQL er den mest anvendte open source database. Det er med andre ord et par gamle kendinge.

Fordele ved PHP og MySQL:

  • meget stor udbredelse
  • veludbygget funktionalitet.

Ulemper:

  • der findes mere raffinerede måder at gøre tingene på,
  • til websites med meget stor trafik eller med meget store datamængder kan det være en udfordring at opnå tilstrækkelig hastighed med PHP/MySQL.

Drupal er svært at programmere

Mange webprogrammører har fået sved på panden, da de skulle lære Drupal. Det går nemt at komme igang med at installere Drupal; det går også nemt at lave enkle justeringer af design. Men når man skal i gang med at kode kompleks funktionalitet, bliver det udfordrende. Drupal har et raffineret, men ikke altid overskueligt system for hvordan man udbygger med nye moduler. De fleste kommer til at angribe opgaven lidt forkert første gang, og begår forskellige fejl som fx at hacke Drupal kernen (hvilket er en rigtig dårlig idé).

Drupal 7 var et stort skridt fremad for brugervenligheden

I starten af 2011 blev Drupal 7 lanceret. Der er sket meget siden Drupal udkom i version 6 i 2008. Først og fremmest er der en hel masse små og store ting i Drupals brugerflade, som er blevet mere enkle og smidige at bruge. Og det er ikke uden grund - arbejdet med Drupal 7 har især fokuseret på at skabe en bedre brugeroplevelse. Der er stadig masser af muligheder for forbedringer på den front, men Drupal er godt med.

Integration med andre systemer kræver specialistkompetencer

Ønsker du at bruge Drupal til et website, hvor du skal integrere med andre systemer, som bygger på Microsoft .net? Eller ønsker du at udveksle data med SOAP webservices? Så får du formentlig brug for specialister til at hjælpe dig.

Ja, der findes Drupal-moduler, som kan klare integration med SOAP webservices og Sharepoint. Men formentlig kan de ikke helt de ting, som du har brug for. Og dermed er du tvunget til at købe konsulenttimer for at få modulerne til at matche dine behov.

Microsoft sponserer Drupal

Microsoft, som ellers arbejder med en helt anden forretningsmodel end Drupal, har meldt sig som sponsor for Drupal. Microsoft har et strategisk mål om at være markedsledende på cloud computing, herunder også hosting af Drupal websites. Microsoft ønsker derfor at få Drupal til at køre gnidningsfrit på Microsoft Azure, der er en platform for cloud computing.

I skrivende stund er Drupal og Azure ikke helt integreret. De fleste installationer af Drupal ligger på en Apache webserver, og Drupal og de fleste Drupal-moduler er optimeret til at køre oven på Apache. Azure har nogle lidt andre spilleregler, fx for hvordan vedhæftede filer lagres. De ting er ikke helt på plads endnu, men formentlig lykkes det Microsoft at få Drupal udbygget, så det virker sammen med Azure.

Bedre skalerbarhed forude

Med Drupal 7 blev det nemmere at skalere Drupal, så det kan køre hurtigere, selv om dit website har rigtig mange besøgende eller skal jonglere med meget store mængder data. Men der sker stadig ting på den front.

Ved lanceringen af www.examiner.com, som var et tidligt storskala Drupal 7 site, valgte man en hybrid databasestrategi. De fleste data ligger i en SQL database, men med nogle data var det ikke muligt at få det til at køre hurtigt nok, og derfor valgte man at kombinere med en MongoDB NoSQL database. Det er teknisk set en meget anderledes vej at gå. NoSQL databaser anvendes af fx Google og Facebook, men indtil videre kun sjældent til mindre websites.

Hvad der helt præcist kommer til at ske på den front, er det nok for tidligt at sige. Mit bedste bud er at Drupal også i fremtiden fortrinsvist vil bygge på SQL databaser, men at det bliver nemmere at anvende en hybrid strategi, hvor et Drupal website både anvender SQL og NoSQL databaser, hvis du har brug for det til at skalere dit site op.

Drupals community har det godt

Medio 2012 er der masser af momentum i Drupals community. Så i skrivende stund ser fremtiden lys ud for Drupal. Hvornår tiderne vender, og andre systemer viser sig at kunne løfte opgaven bedre end Drupal - det ved vi ikke.

Kommentarer

christian@infinito.dk

Kommentar: 

Hej,

Synes det er en fin tekst men

"Alle kan skrive et modul til Drupal, og derfor er der både gode og dårlige moduler. Nogle moduler er uundværlige. Andre moduler kan være en genvej til at løse et problem, fordi man kan tage udgangspunkt i dem og forbedre dem - i stedet for at starte fra bunden. Endelig er der en masse moduler, som man slet ikke skal røre ved, fordi de ikke er tilstrækkeligt gennemarbejdede."

og

"Drupal er svært at programmere

Mange webprogrammører har fået sved på panden, da de skulle lære Drupal. Det går nemt at komme igang med at installere Drupal; det går også nemt at lave enkle justeringer af design. Men når man skal i gang med at kode kompleks funktionalitet, bliver det udfordrende. Drupal har et raffineret, men ikke altid overskueligt system for hvordan man udbygger med nye moduler. De fleste kommer til at angribe opgaven lidt forkert første gang, og begår forskellige fejl som fx at hacke Drupal kernen (hvilket er en rigtig dårlig idé)."

står lidt i kontrast til hinanden.

Hej Christian

Kommentar: 

Hej Christian

Hænger det ikke meget godt sammen?

At på den ene side kan alle og enhver lave et Drupal modul, men at det er meget krævende at lave et godt Drupal modul?

Uddyb gerne, hvad du mener.

Venlig hilsen
Bjørn Axelsen

Tilføj kommentar

Filtered HTML

  • Web- og e-mail-adresser omdannes automatisk til links.
  • Tilladte HTML-tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd> <h2> <h3><img>
  • Linjer og afsnit ombrydes automatisk.