Stack - avindra/snake GitHub Wiki

The new JavaScript stack

2020 is an exciting time for JavaScript, as it has been since about 2015 or so.

This project features (as build tools):

  • esbuild (CPU native program serving as the bundler)
  • Deno (source code is tested with built-in deno test)
    • Now uses SWC which has comparable agility to esbuild
    • Has an in-built Bundler that might replace esbuild

Node.js is still around for experimental and unfinished ML code using TensorFlow.

Using Deno is a convenience by which I can run unit tests with a simple command. The alternative may have been installing additional build dependencies for code transformation. Such hassles are easily avoided by using Deno's native test runner. Using Deno additionally has two consequences:

  • Serves as a gradual way to adopt Deno more wholly (story around TensorFlow support unclear at this time)
  • Code will become more portable (and thus more sound) if it needs to run on both platforms

:warning: Esbuild is indeed very fast; however be cautious about support your users may need if you adopt anything from this. For example, IE11 will not work: the code emitted by vanilla esbuild contains arrow functions, which is fine for most modern web browsers, but will break in IE11 and other older browsers.

TLDR; JavaScript is now significantly easier with an even faster development environment. New projects can probably get away with only using Deno, if they are sufficiently simple (can be implemented purely in JavaScript).

Partly as a consequence of maintaining this reference implementation, there is a new javascript development repo for openSUSE Linux. It has all the required software such as deno and esbuild.

:dolphin: So long, thanks for all the :fish:, Babel

:bowing_man: thank you for serving the web for many years, especially Babel. The Legendary Babel/Webpack stack still has one significant place in my coding life

Pictured below: two people at a JavaScript conference (Henry Zhu and Tobias Koppers, the most significant maintainers of babel and webpack).

@sokra and @hzoo