WebIQ Nieuws

WebIQ Hack!

WebIQ Hack!

Geen zorgen! Niets aan de hand! Je website en webshop zijn veilig! Ongeveer een maand geleden heeft Facebook Hack aangekondigd. Hack is een door Facebook ontwikkelde programmeertaal en wordt gezien als een stap in de verdere evolutie van PHP. Hack is bedoeld om problemen op te lossen waar Facebook tegenaan is gelopen tijdens het ontwikkelen van hun platform. En met de publieke release van Facebook Hack kunnen we bij WebIQ profiteren van deze ontwikkelingen.

Waarom Facebook Hack?

Hack is door Facebook ontwikkeld om een aantal problemen op te lossen waar hedendaagse PHP programmeurs tegenaan lopen. Voordat kan worden uitgelegd waarom Facebook Hack heeft ontwikkeld moeten we eerst een kleine uitleg geven over PHP.

Wat is PHP?

PHP is een dynamische programmeertaal die door veel bedrijven, waaronder WebIQ, gebruikt wordt om websites en webshops te ontwikkelen. Dynamisch wil zeggen dat een variabele van elk type kan zijn. Zo kan de variabele een geheel getal (integer), kommagetal (float) of reeks letters en cijfers (string) zijn.

Verder is PHP object georiënteerd, waardoor code wordt opgedeeld in classes met methods. Dit is gegroepeerde code die hergebruikt kan worden door dezelfde functie aan te roepen met verschillende parameters. Een functie kan overal voor worden gebruikt, zoals de inhoud van een artikel ophalen of totaalprijs van een bestelling te berekenen.

Omdat de invoer dynamisch is, is de uitvoer dat ook. Hierdoor kan het gebeuren dat een functie een onverwachte uitkomst teruggeeft en code die afhankelijk is van deze uitkomst niet goed werkt of onverwacht gedrag vertoond. Dit resulteert voor de gebruiker in wat we bugs noemen.

Het probleem

Het probleem dat Facebook heeft met PHP komt voort uit het dynamische element van PHP. Omdat een functie een onverwachte uitkomst kan geven, heeft dat negatieve gevolgen voor alle daarvan afhankelijke code. Door van te voren vast te stellen van welk type de uitvoer van een functie moet zijn, kan op voorhand worden voorkomen dat een functie onverwacht gedrag vertoond. Hiermee kan je al in een vroeg stadium bugs afvangen. Facebook wil met Hack het dynamische van PHP behouden, maar wel strikter zijn in de controle ervan.

HHVM

Om Hack uit te voeren is, net zoals voor PHP, een platform nodig. Hiervoor heeft Facebook HHVM (HipHop Virtual Machine) ontwikkeld. Vergeleken met het reguliere PHP platform is HHVM vele malen sneller. Dit komt omdat HHVM een JIT-compiler (Just-In-Time) gebruikt. Een JIT-compiler zet de programma code om naar machinecode (de bekende ééntjes en nulletjes) op het moment dat deze wordt uitgevoerd. Naar mate code vaker wordt uitgevoerd ontstaat er snelheidswinst omdat de machinecode wordt bewaard in de vorm van een cache. Hierdoor hoeft de code niet meer worden omgezet en kan de machinecode gelijk worden uitgevoerd. Bij PHP wordt de code altijd omgezet en worden de resultaten niet bewaard, waardoor eenzelfde stuk code altijd opnieuw moet worden omgezet, ook als dat niet zou hoeven.

Dankzij het gebruik van HHVM en Hack is Facebook, een platform waar miljarden mensen gebruik van maken, negen maal sneller geworden. Andere test resultaten laten een verbetering in snelheid zien tot wel twintig keer vergeleken met een traditioneel PHP platform. Naast Hack kan HHVM ook reguliere PHP code uitvoeren met de JIT-compiler.

Hack en HHVM bij WebIQ

De ontwikkelingen rondom Hack en HHVM vinden we bij WebIQ erg cool. We gaan altijd graag met onze tijd mee, dit merk je aan de voorkant met ons gebruik van responsive design en HTML5. Hack en HHVM zijn ontwikkelingen waarmee we deze lijn doorzetten aan de achterkant. Wij hebben dan ook besloten om te gaan experimenteren met Hack en HHVM. In de komende maanden moet duidelijk worden hoe we dit voor WebIQ op een goede manier kunnen inzetten.

Samenwerking met Exonet

Omdat Hack en HHVM een ander platform zijn dan wat wij op dit moment gebruiken, hebben we contact gezocht met onze partner Exonet. Met Exonet hebben we besproken wat onze doelstellingen zijn. Hier werd enthousiast op gereageerd en direct werd door Exonet een server met HHVM voor ons ingericht, die wij mogen gebruiken voor onze ontwikkeling.

Wat betekent dit alles voor jou?

Op de korte termijn helaas nog even niets. Op dit moment is WebIQ bezig om het volledige scala producten te testen op het HHVM platform. Tot nu toe verlopen deze ontwikkelingen goed, voor HHVM hoeft geen PHP code om geschreven te worden. Helaas is het nog te vroeg om iets te zeggen over de snelheidswinst die we hiermee kunnen behalen. In de toekomst kunnen we de ontwikkeling verder uitbreiden met toepassen van Hack, hiervoor moet de PHP code wel worden herschreven.

Op de lange termijn betekent het dat we jouw website of webshop misschien wel migreren naar het nieuwe HHVM platform, waarmee we je bezoekers met nog lagere laadtijden pagina’s kunnen serveren. Door Hack toe te passen kunnen we het aantal bugs in ons systeem nog verder reduceren. Al met al een spannende en vooral nuttige ontwikkeling dus! We zijn heel benieuwd waar Facebook de komende maanden nog mee komt op ’t gebied van Hack en HHVM, want ook daar staan de mogelijkheden pas in de kinderschoenen.