• mesa@piefed.social
    link
    fedilink
    English
    arrow-up
    1
    ·
    16 days ago

    Very true.

    Python feels like that sometimes too. Except much more standard library which is much better than node modules.

    • fmstrat@lemmy.nowsci.com
      link
      fedilink
      English
      arrow-up
      1
      ·
      15 days ago

      The problem is “I need function, library with 1000 functions has function, include.” Library’s 823rd function turns out to have a vulnerability.

    • I Cast Fist@programming.dev
      link
      fedilink
      arrow-up
      1
      ·
      15 days ago

      “Yes, I’d like a wheel. I don’t want to invent it. Why, of course, give me the full package of wheel, axis, rotor, engine, fuel tank, windshield, mirrors, tire, front panel, brakes. This wheel will be great for me manually spinning cotton!”

  • dejected_warp_core@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    15 days ago

    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.