jubileum

PHP ble som det ble fordi brukerne ikke ville lære seg C

Nå er språket 25 år.

PHP er enkelt å komme i gang med, men ble noe helt annet enn det skaperen hadde tenkt seg.
PHP er enkelt å komme i gang med, men ble noe helt annet enn det skaperen hadde tenkt seg.

PHP er programmeringsspråket som «skikkelige» utviklere helst ikke vil røre, og i alle fall ikke snakke høyt om at de bruker – eller (Gud forby) liker. Kanskje av frykt for å bli latterliggjort.

Mye av kritikken mot PHP er fortjent. Språket oppleves av mange som rotete, uforutsigbart og dårlig designet. En gjennomgang av mange av svakhetene og manglene finnes på denne siden.

Samtidig er mye av kritikken rettet mot eldre utgaver av PHP. Det var først i 2014 at det kom en formell spesifikasjon for språket. Med PHP 7 som kom i 2015, skal mye ha blitt bedre, i alle fall i den nye funksjonaliteten. Men evig eies kun et dårlig rykte.

Stor utbredelse

Likevel er PHP ekstremt mye brukt innen det domenet det er skapt for, nemlig dynamiske websider. Ifølge W3Techs brukes PHP av 79,1 prosent av alle nettsteder hvor språket på serversiden er kjent. Så kan en selvfølgelig diskutere om PHP-utviklere er mindre flinke til å holde dette hemmelig, siden slik informasjon kan gjøre jobben enklere for hackere.

Noe av årsaken til at PHP er så mye brukt, er at det er enkelt å komme i gang med. Det kan gjøre at utviklere med lang programmeringsutdannelse ser på det som et språk for nybegynnere og derfor ikke vil forbindes med det.

For nybegynnere?

Men også Python regnes som et nybegynnervennlig språk, samtidig som at det ligger på eller nær toppen i alle nyere kåringer av de mest populære eller elskede språkene. Så dette er i alle fall ikke den eneste faktoren som spiller inn.

Every time someone says "PHP sucks" an elephpant laughs and keeps counting their money earned from getting things done

Maskoten til PHP er en blå elefant som kalles for «elePHPant».

Det er langt fra bare hjemmesnekrede nettsteder som bruker PHP. Wordpress er trolig verdens mest brukte publiseringsplattform og brukes av nettsteder i de fleste størrelser. Men også giganter som Facebook og Wikipedia bruker mye PHP, eller i alle fall en variant av dette.

25 år i år

PHP ble lansert og utgitt som åpen kildekode i 1995 av dansk-canadiske Rasmus Lerdorf, under navnet Personal Home Page Tools (PHP Tools). Språket fylte 25 år i begynnelsen av juni.

Da det kom var weben fortsatt blodfersk, og det var skrikende behov for teknologier som kunne gjøre det enklere å utnytte de nye mulighetene.

I et foredrag som Lerdorf holdt under WeAreDevelopers World Congress i Wien i 2017, fortalte han hvordan det hele startet, i 1993. Hele foredraget er tilgjengelig her.

Digi.no møtte PHP-skaperen, Rasmus Lerdorf, i 2013. Foto: Harald Brombach
Digi.no møtte PHP-skaperen, Rasmus Lerdorf, i 2013.

– Dessverre, i 1993 så sugde webprogrammering, sa Lerdorf.

Han fortalte at enten så måtte man skrive CGI-moduler (Common Gateway Interface) i C, og kompilere dem på nytt for hver eneste endring, eller så måtte man bruke en veldig treg Perl-basert CGI-modul.

I begge løsningene måtte alle deler av HTML-koden programmeres, i stedet for å skrives i en malfil.

– Med PHP ønsket jeg et enkelt språk for å skrive maler, bygget inn i webserveren, slik at jeg ikke måtte skille ut og kjøre en annen prosess, slik at webserveren selv kunne gjøre intelligent innsetting og sette inn din egen kode. Jeg så på PHP som et veldig «tynt» malsystem på toppen av forretningslogikk skrevet i C, fortalte Lerdorf.

Det var bare «front-end»-delen PHP skulle ta seg av, altså visningslogikken i malene.

Nektet å bruke C

– Verden var ikke enige med meg. Ingen ønsket å skrive C. Weben vokste så raskt at folk fullstendig ignorerte hele C-laget i denne arkitekturen. De ville gjøre alt i det teite, lille malspråket som jeg hadde skrevet. De ville skrive all forretningslogikken sin i malspråket, fortalte Lerdorf.

Selv mente han at selve forretningslogikken burde være laget på en helt annen måte.

Hva er det dere gjør? Det er ikke et strengt typet, kompilert språk! Dere er gale!

Rasmus Lerdorfs tanker da han så hvordan folk brukte PHP i starten.

– Men PHP vokste og antallet som brukte malsystemet var helt vilt. Dette skyldtes delvis at weben vokste så raskt at det ikke var nok utviklere til å tilfredsstille denne umettelige sulten etter denne eksploderende weben. Alle disse pseudo-utviklerne som fikk i oppgave å utvikle weben, de ønsket ikke å lære seg C. Det tar lang tid, det er komplisert og du må finne ut av pekere og kompliserte ting som det, sa Lerdorf i foredraget.

Forsøkte å holde igjen

– Men det lille malspråket jeg hadde skrevet, det kunne folk forstå. De kunne legge til én ting til websiden, laste den inn på nytt i nettleseren og så virket det. Du behøvde ikke å kompilere noe, det var bare enkelt. Og så begynte de å be om mer og mer funksjonalitet og ting som malspråket kunne gjøre. Jeg forsøkte å holde igjen – nei, dette hører hjemme i laget for forretningslogikk og bør gjøres i C. Men brukerne sa de trengte det i malspråket, fortsatte han.

– Det var slik vi fikk PHP, et malspråk med forretningslogikkfunksjonalitet stappet opp i det. For det var det folk ville ha. Jeg kunne ikke gjøre det alene, så folk ble med i prosjektet for å fremme den funksjonaliteten de ønsket, fortalte Lerdolf.

Derfor forklarer hvorfor PHP ble som det ble, med den manglende forutsigbarheten og inkonsistensen i språket.

Selv mener Lerdorf at språket, med versjon 7, endelig fungerer.

Mange bruker utdatert versjon

Et problem er at svært mange nettsteder fortsatt benytter PHP 5.x. Ifølge de nevnte tallene fra W3Techs leder PHP 7.x med ganske knapp margin over PHP 5.x. Det er selvfølgelig ikke et problem så lenge ting fungerer, men The PHP Group, som gir ut PHP-plattformen, har ikke støttet PHP 5.x siden 1. januar 2019.

Eventuelle sårbarheter som oppdages i PHP 5.x blir derfor ikke fjernet. Dette avhenger dog av hvordan man har skaffet seg PHP. I Linux-distribusjoner som PHP 5.x følger med og som fortsatt støttes – for eksempel Red Hat Enterprise Linux 7.x – kan PHP 5.x fortsatt trygt brukes.

Men med de ytelsesfordelene som har kommet siden PHP 7.0 ble lansert, kan det nok være en god idé å oppgradere ganske snart uansett, selv om det kanskje vil kreve noe omskrivning av kode.

Powered by Labrador CMS