Weekly Nerd 1

Stop Using JS for That

Door: Kilian Valkhof op

Developer Kilian Valkhof bouwt al bijna 20 jaar websites. Hij heeft onder andere gewerkt aan Electron, een tool om desktop apps te bouwen met code van het web, maar maakt momenteel de Polypane browser, een browser speciaal voor web developers. In deze eerste weekly nerd vertelde hij over hoe er steeds meer kan met HTML en CSS zonder gebruik te maken van JavaScript.

The Rule of Least Power

Kilian begon met 'the Rule of Least Power', ofwel: kies de programmeertaal die net genoeg kan voor wat je wilt. Kan het niet met HTML, voeg dan CSS toe. Kan dat ook niet, gebruik dan pas JavaScript. JavaScript is het breekbaarst, kost veel tijd en maakt grote bestanden. Bovendien moet het web bruikbaar zijn met alleen HTML.

Alles wat je nu met JavaScript bouwt en nu werkt, blijft altijd werken (backwards compatibility). Zo werkt ook de eerste website nog op een moderne browser. Maar er komen wel betere manieren om hetzelfde te doen. Iets wat nu kan met JavaScript, kan in de toekomst misschien wel met CSS. Blijf dus altijd leren en kijk of er ondertussen een betere manier is, concludeert Kilian.

Die volgorde van HTML, naar CSS, naar JavaScript spreekt voor mij voor zich. Zo wordt een website ook progressive enhanced. Maar naar mijn idee vergeet Kilian een belangrijk punt. Al die moderne functionaliteiten worden niet ondersteund door oudere browserversies. Zoiets als forwards compatibility bestaat gewoon niet. Als je naar browser versie gebruik tabel van caniuse kijkt valt op dat niet iedereen de nieuwste versie gebruikt. Ik wil dus toevoegen dat je ook eerst goed moet kijken of de nieuwe functionaliteit ook goed wordt ondersteund door verschillende browsers.

Voorbeelden van hoe het beter kan

Kilian heeft een aantal voorbeelden van betere manieren laten zien. Van de voorbeelden die ik interessant vind, heb ik een lijstje gemaakt:

Kilian sloot af met een aantal functionaliteiten die in de nabije toekomst naar browsers komen. Kijk dus vooral wanneer deze beschikbaar zijn.