ESM motivatie

Tibo De Peuter 2025-02-23 18:14:39 +01:00
parent e9f89f1933
commit 6ff63973b9

@ -2,13 +2,21 @@
### Programmeertaal
Dit project wordt geschreven in TypeScript (TS). De klant vroeg een project in JavaScript (JS) of TS. Er werden de volgende overwegingen gemaakt:
**TS in plaats van JS?**
- :white_check_mark: Statische typering laat ons toe om typegerelateerde fouten at compile time op te vangen ("type safety").
Dit project wordt geschreven in TypeScript (TS). De klant vroeg een project in JavaScript (JS) of TS. Er werden de volgende overwegingen gemaakt:
- :white_check_mark: Statische typering laat toe om typegerelateerde fouten *at compile time* op te vangen ("type safety").
- :white_check_mark: (Meer) ondersteunende tooling zorgt voor een fijnere developer-ervaring.
- :white_check_mark: Door een future-proof programmeertaal te kiezen is ons project klaar voor de toekomst.
- :white_check_mark: Door een future-proof programmeertaal te kiezen is het project klaar voor de toekomst.
- :negative_squared_cross_mark: Het team heeft een kleine leercurve te gaan.
Uiteindelijk wogen de voordelen zwaarder door dan de nadelen, en werd er voor TS gekozen.
Uiteindelijk wogen de voordelen zwaarder door dan de nadelen en werd er voor TS gekozen.
**ECMAScript Modules (ESM) in plaats van CommonJS (CJS)**
Dit project maakt gebruik van ESCMAScript Modules (ESM). Er wordt geen gebruik gemaakt van CommonJS (CJS) omdat:
- ESM wordt als (meer) future-proof gezien dan CJS. Zo kan dit project langer ontwikkeld worden zonder ernstig *refactoring*.
- ESM is deel van de ECMAScript specificatie, waardoor er tijdens de ontwikkeling teruggevallen kan worden op bestaande specificaties als dat nodig is.