The JavaScript Midlife Crisis

(maroun-baydoun.com)

17 points | by maroun-baydoun 2 hours ago

4 comments

  • Klonoar 2 hours ago
    > Rewrite a bundler in Rust and you haven't only made it faster. You've also shrunk the pool of JavaScript developers who can maintain it. The new tool still looks like a duck and quacks like a duck, but it's a different beast altogether. Its internals retreat behind a black box that fewer people hold the keys to. The source may still be open, but the door to contributions is closing.

    Alternatively, there's a pool of JS developers who shouldn't be maintaining critical infrastructure to begin with.

    It's not a black box, those codebases are usually open and the only thing holding you or anyone back is learning anything outside of a small pond of JavaScript.

    Write non-browser-things in fast languages. It is not a complicated concept - even less so in an era where stuff is getting written for you.

    • devilsdata 1 hour ago
      Absolutely agree. If a JS developer doesn't know Rust, Go, Zig, or something, then they probably aren't going to do a good job at maintaining critical infrastructure, even if it were written in JS.

      Why are people writing "critical" infrastructure in JS anyway, it is the wrong tool for the job.

      • jmull 5 minutes ago
        Why are people writing critical infrastructure in [any language]?

        In reality, the tools this article is referring to were written in javascript because they could be and it was the best tool for the job (according to the people who matter: the people who did the work).

        If someone wants to rewrite them for speed and/or to chase the next shiny language, that's fine with me, but let's not kid ourselves that there was something wrong with using javascript in the first place.

        Using the right abstractions (including the right number of abstractions) and the right data structures and algorithms is always going to trump the constants language choice can optimize.

  • nzoschke 1 hour ago
    > Rust, Go and Zig are taking over increasingly large parts of the JavaScript toolchain...

    Large parts of the JavaScript application space too.

    Language consistency, ergonomics, standard library and performance matters, and JS has major warts here. I bet when these languages are 30+ years old like JS is, the software landscape isn't dominated nearly as much by JS.

    These days I intentionally start all projects with as little JS as possible, opting for Go and HTMX instead. Removing the layers of JS inconsistency and build tools makes my and my agents lives better.

    More thoughts on my JS-less stack here: https://housecat.com/blog/the-hugs-stack-hypermedia-unix-go-...

  • hackersnooze1 1 hour ago
    tldr: interpreted languages are still slower than compiled languages, surprising no one
  • sublinear 1 hour ago
    > Rust, Go and Zig are taking over increasingly large parts of the JavaScript toolchain...

    Found it.