Door
Onbekende gebruiker
op 12-03-2021 22:16
gewijzigd op 12-03-2021 22:42
1.536 views
Onlangs kwam ik een project tegen getiteld PIB: PHP In Browser dat, zoals de naam al aangeeft ons in staat stelt om PHP code te draaien in de browser, zonder PHP op de server. Het vereist WebAssembly om de PHP engine in een moderne browser te laten draaien.
Naar ik aanneem is de onderliggende C-code van PHP gecompileerd naar wasm. (Andersom is overigens ook mogelijk, wasm code draaien vanuit PHP met Wasmer)
Hoewel ik dit soort out of the box denken kan waarderen, heb nog niet direct een idee wat het potentieel is. Vaak wil je PHP-code juist op de server houden zodat het op clients juist niet inzichtelijk is hoe iets precies gebeurt.
Geen idee. Mijn idee is dat het vooral in je bovenkamer duidelijk moet zijn of een script (what the f*ck its name may be) op de server of in de browser draait,
Daarbij komt dat we moeten beseffen dat wanneer een script in de browser draait we op een terrein komen van een wereld met allerlei verschillende browsers en apparaten waarop deze browsers draaien. Elke browser kent zijn eigen nukken en heeft weer te maken met het OS waarop het draait. Wil jij dat je code in zoveel mogelijk browsers werkt dan moet je vooral niet van de laatste snufjes gebruik willen maken en zorgen dat je code een soort van hufterproof is.
Het voordeel is natuurlijk dat "logica" die je aan de ene kant gebruikt (nodig hebt) ook meteen geschikt is voor "de andere kant" (Javascript op de server / PHP in de browsers), en slechts een enkele leercurve. En uiteraard is de performance van WebAsm "beter" dan script code die nog geïnterpreteerd (of JIT gecompileerd) moet worden.
Persoonlijk vindt ik server <-> client echter twee volledig verschillende werelden, en heb ik het nooit een "gemis" gevonden dat de functionaliteit van de een niet ook meteen "beschikbaar" was in de ander (de basisfuncties zijn dat sowieso al - alleen meestal een iets andere syntax, en alles wat je zelf maakt heeft meestal toch een specifiek doel = meestal alles wat je op de server doet wil je ook absoluut niet client-side doen).
Je ziet ook dat iets als Node.js in de basis wel Javascript is, maar qua "aanpak" toch een heel andere wereld (met alsnog een eigen leercurve).