Bun: Javascript en TypeScript runtime-omgeving

Elwin Hodžić
0

Bun is een nieuwe runtime-omgeving voor JavaScript en TypeScript. Deze runtime-omgeving probeert een waardige tegenstander voor Node.js en Deno te zijn.

Bun Runtime-omgeving voor JavaScript en TypeScript


Krijg gratis info over software, programmeren en meer, schrijf je in voor de nieuwsbrief

Ontvang elke week het laatste IT-nieuws, de handigste tips en speciale aanbiedingen.

Wat maakt de Bun runtimeomgeving voor Javascript en TypeScript nou uniek?

Bun streeft In tegenstelling tot Deno naar volledige compatibiliteit met Node.js. Veel Node.js-API’s worden door Bun geëmuleerd. Bovendien bevat het native ondersteuning voor npm-modules, de map node_modules en CommonJS- en ESM-indelingen. Ook kent Bun tal van moderne web-API’s uit de browser, waaronder Fetch, ReadableStream en WebSocket.

De compatibiliteit is echter in de praktijk vaak niet erg goed. Zo zijn sommige functies niet geïmplementeerd en ontbreken tal van API’s gvolledig. Het is een kwestie van geluk of een npm-module draait

Bun is net als Deno een op zichzelf staand binair pakket. Naast de runtime-omgeving bevat het ook andere tools die bundels maken, npm-modules beheren en TypeScript en JSX compileren. Toch ontbreken sommige tools voor dagelijks gebruik. Denk hierbij aan tools voor debuggen, het opmaken van code en statische code-analyse. In experimentele vorm is er tenminste één geïntegreerde testloper op basis van Jest beschikbaar. Wees hierbij wel voorzichtig met de ingebouwde functies. Desondanks dat Bun bundels maken, kan het de code nog niet verkleinen. Hiervoor heb je externe tools nodig.

De TypeScript-integratie valt ook tegen. In tegenstelling tot wat de website van Bun suggereert, is het zeker niet de officiële TypeScript-compiler. Bun verwijdert in plaats daarvan elke TypeScript-specifieke code zonder deze te inspecteren.

De geïmplementeerde UI-frameworks is vergelijkbaar hiermee. Hoewel Reacts JSX standaard wordt geïnterpreteerd, is dit niet van toepassing op andere speciale formaten zoals die van Vue of Svelte. Bovendien kan dit momenteel niet achteraf worden in gebouwd. Op het moment dat je Bun gebruikt, ben je wat betreft de gebruikersinterface gebonden aan React.

Bun is een prima runtime omgeving voor Javascript maar nog niet helemaal af

Hoewel Bun veel leuke ideeën heeft, is de inspanning om ze in het dagelijks gebruik in de praktijk te brengen erg hoog. Hierbij moet wel vermeld worden dat Bun nog een heel jong project is, dus Bun kan dit alles maar in beperkte mate worden aangerekend. Een meer evenwichtige communicatie zou echter wenselijk zijn: iedereen die beweert een “runtime-omgeving voor TypeScript” te hebben ontwikkeld, mag kritiek verwachten als de TypeScript-implementatie niet volledig af blijkt te zijn.

Ook moet er opgemerkt worden dat Bun niet bijzonder stabiel is. De HTTP-server heeft de neiging om te crashen, zelfs bij een gemiddeld driecijferig aantal gelijktijdig inkomende verbindingen. Door de korte opstarttijd is Bun in dergelijke gevallen in ieder geval snel weer gebruiksklaar.

Conclusie

Bun bevat een ingebouwde SQLite-database en biedt plaats aan .env-bestanden. Beide zijn echter nauwelijks geschikt als unique selling point in vergelijking met Node.js en Deno, vooral omdat Deno en Node.js ook evolueren. Een van Deno’s grootste ambities op dit moment is betere compatibiliteit met Node.js en npm. De tooling van Deno is volwassener dan die van Bun. Deno biedt ook echte native TypeScript-integratie. Last but not least spreken de distributie, ondersteuning en compatibiliteit in het voordeel van Node.js.

Dus als Deno het al erg moeilijk vindt om te concurreren met Node.js als de tophond onder JavaScript-runtime-omgevingen, is het nauwelijks te voorzien waar Bun zich permanent en aanzienlijk zal vestigen.

Lees meer over software in c't 05/2024

Meer over

Software

Deel dit artikel

Elwin Hodžić
Elwin Hodžić(Web)redacteur bij c't. Ondanks de studie geschiedenis, altijd al een passie gehad voor alles wat met IT te maken heeft. Sleutelt in zijn vrije tijd graag aan pc’s, van de hardware tot het uitpluizen van de BIOS-instellingen om een pc zo optimaal mogelijk te laten werken.

Lees ook

Dit kun je verwachten als je ChatGPT als hacking-tool wilt gebruiken

Kun je ChatGPT gebruiken als hacking-tool? We neigden naar de duistere kant en onderzochten of de assistentie van een AI van elke scriptkiddie een eli...

Raspberry Pi GPIO pinnen: een overzicht van de aansluitingen

Een kleine Raspberry Pi board is zo volgepakt met alle componenten dat er geen ruimte meer over was om de 40 GPIO pinnen van informatie te voorzien. O...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er