you are viewing a single comment's thread
view the rest of the comments
[–] 14 points 1 year ago* (last edited 1 year ago) (2 children)

I used to struggle with this, until I realized what's really going on. To do conventional web development, you have to download a zillion node modules so you can:

  • Build one or more "transpilers" (e.g. Typescript, Sass support, JSX)
  • Build linters and other SAST/DAST tooling
  • Build packaging tools, to bundle, tree-shake, and minify your code
  • Use shims/glue to hold all that together
  • Use libraries that support the end product (e.g. React)
  • Furnish multiple versions of dependencies in order for each tool to have its own (stable) graph

All this dwarfs any code you're going to write by multiple orders of magnitude. I once had a node_modules tree that clocked in at over 1.5GB of sourcecode. What I was writing would have fit on a floppy-disk.

That said, it's kind of insane. The problem is that there's no binary releases, nor fully-vendored/bundled packages. The entire toolchain source, except nodejs and npm, is downloaded in its entirety, on every such project you run.

In contrast, if you made C++ or Rust developers rebuild their entire toolchain from source on every project, they'd riot. Or, they would re-invent binary releases that weekend.

  • source
  • hideshow 4 child comments