Ur/Web is een nieuwe manier van programmeren/opmaken voor het web, als we MIT onderzoeker Adam Chlipala zijn presentatie moeten geloven in ieder geval. Ur/Web is gebaseerd op de bestaande Haskell en ML talen en is een verlengstuk van de taal Ur. Ur/Web heeft de potentie om webdevelopment zoals wij dat kennen, behoorlijk te stroomlijnen. Alle technieken die normaal worden gebruikt bij het bouwen van een website worden in één applicatie gestopt, die vervolgens alle benodigde XML, JavaScript, SQL en CSS compiled.
Het grootste verschil tussen Ur/Web en de huidige manier van webdevelopment, zit voornamelijk in de manier waarop het omgaat met beveiliging. Ook het beheren van alle verschillende componenten van een website, zou met Ur/Web veel soepeler en overzichtelijker worden.
Strong typing
Het belangrijkste principe van Ur/Web is het “strong typing“, wat eigenlijk betekend dat elke keer wanneer een stuk code (of functie) geschreven is, de auteur gelijk bepaald welke type data de functie/code zal accepteren als invoer maar ook wat voor type data de functie teruggeeft. Dit zorgt ervoor dat een developer kan bepalen, per pagina element, waarmee deze kan samenwerken en hoe deze samenwerking tot stand gaat komen.
Een goed voorbeeld is dat in de huidige programmeertalen het mogelijk is voor hackers om “foute” code te injecteren via bijvoorbeeld formulieren. Let op, dit kan natuurlijk enkel en alleen wanneer je als programmeur hier geen specifieke stappen tegen onderneemt. Het punt is dus dat je bij Ur/Web deze stappen niet hoeft te nemen, aangezien je bij Ur/Web middels Strong Typing ervoor kan zorgen dat twee componenten enkel en alleen met elkaar kunnen samenwerken. In de bibliotheek die meedraait aan de achterkant, is vooraf gedefinieerd wat welk data type allemaal kan doen en welke soorten data ze kunnen verwerken.
Beperkend of niet
Het puntje strong typing en de manier hoe Ur/Web omgaat met nieuw gecreëerde variabelen (en de beveiliging daarvan), zorgen ervoor dat Ur/Web de potentie heeft om de huidige manier van webdevelopment te veranderen dan wel te stroomlijnen. Echter, is de kans groot dat Ur/Web niet algemeen aanvaard zal worden aangezien het grote deel van de webdevelopers het combineren van verschillende technologieën niet als vervelend maar juist als positief ervaart. In dat opzicht kan de Ur/Web benadering als beperkend ervaren worden.
Hoe dit zich verder zal ontwikkelen durf ik niet te zeggen of te voorspellen. Wel zal ik dit goed in de gaten houden voor verdere ontwikkelingen en natuurlijk deel ik deze ontwikkelingen met jullie!