Beheer

PHP-upgrade: Veel redenen om het wèl doen
Goede migratietools helpen pijnpunten efficiënt weg te werken.
Goede migratietools helpen pijnpunten efficiënt weg te werken.
Veel webapplicaties maken nog gebruik van oudere versies van programmeertaal PHP. Hoewel de grote veranderingen in PHP voor de komst van versie 7.x zijn doorgevoerd, is een opwaardering toch zeer de moeite waard, vindt Tijs van der Storm, hoogleraar Software Engineering aan de Universiteit Groningen en hoofdonderzoeker bij CWI.
Bijna een kwart van alle websites die PHP-code bevatten, maakt gebruik van een PHP-versie die niet meer wordt ondersteund. Dat betekent dus dat organisaties geen tijd of geld kunnen of willen investeren in het opwaarderen van hun webapplicaties. Een reden dat die motivatie niet hoog is, kan liggen in het feit dat de nieuwe versies slechts incrementele verbeteringen bevatten. Drie vragen aan programmeertaalexpert Tijs van der Storm.
Is er een businesscase voor het steeds maar weer upgraden naar nieuwere PHP-versies?
"Er zijn meerdere redenen. In nieuwe versies worden bugs gefixt en bijvoorbeeld security vulnerabilities. Die kunnen in zichzelf grote gevolgen hebben. Op een gegeven moment wordt een oude versie uitgefaseerd [zoals maandag gebeurde met PHP 7.2, red]. Dan worden er geen bugfixes meer op uitgevoerd. Een andere reden is performanceverbeteringen. Tot slot kunnen nieuwe taalfeatures het leven van programmeurs makkelijker maken. Ik denk dat de opwaardering van PHP 7 naar 8 vooral om die laatste twee gaat: snellere executie, nieuwe convenience features zoals "syntactic sugar", shorthand notaties etc. Maar er zijn ook verbeterde foutmeldingen. In de overgang van PHP 7.x naar PHP 8.0 zitten wel wat backwards incompatible ("breaking") changes, maar die zijn vrij kleinschalig voor zover ik kan zien, en gelukkig goed gedocumenteerd."
Wat zijn de risico's om oudere versies van PHP te blijven gebruiken?
"Het risico is stagnatie: uiteindelijk gebrek aan support en bugfixes, en kwetsbaar blijven voor mogelijke security problemen. Dit geldt eigenlijk voor elke taal. Een case-in-point: Facebook heeft veel geld en moeite geïnvesteerd om de problemen omtrent snelheid en betrouwbaarheid van PHP aan te pakken; één resultaat hiervan is bijvoorbeeld Hack, een dialect van PHP. Maar goed, niet iedereen heeft de resources van een Facebook natuurlijk..."
Hoe kunnen organisaties verleid worden om ondersteunde versies te gebruiken?
"Leveranciers van programmeertalen zouden het makkelijker kunnen maken door tools aan te bieden om migratie-assessments te doen, of zelfs de migratie (deels) te automatiseren. Ik geloof dat de Python community zoiets gedaan heeft toen ze overgingen van 2.x naar 3. Dat was een grote stap. Googles Go heeft een migratietool die ontwikkelaars kan helpen als API's van standaardbibliotheken veranderen. Op z'n minst zou ik verwachten dat er een tool zou worden meegeleverd die potentiële knelpunten in een code-base kan aanwijzen. Aan de andere kant: leveranciers kunnen migratie makkelijker maken door voor alles backwards compatibility in het oog te houden. Met name Java en C# zijn daar goed in, maar het heeft beperkingen: je kunt feitelijk niks uit de taal of standard library weggooien. En als backward compatibility niet houdbaar is, een transparant proces van "deprecation": vroeg aankondigen dat iets gaat verdwijnen, opdat klanten zich stapsgewijs kunnen voorbereiden, en in de tussentijd de compiler warnings laten produceren."
is redacteur, coördinator printeditie en heeft als belangrijkste aandachtspunt Innovatie en Strategie, Artificial Intelligence, Datascience, Netwerken, Process Automation.
Telefoon: +31 (0)202467225 of +31(0)618868529
E-mail: t.doorenbosch@agconnect.nl