Hacker Timesnew | past | comments | ask | show | jobs | submitlogin

What do you mean things in node breaking? JS is extremely backwards compatible.

I think everything I wrote a decade ago in node still runs fine.



I've always had issues with newer versions of node not running projects written with older node without upgrading the project and hoping all dependencies can be updated.


Fortunately, a lot of the earlier struggles came down to binary libraries. At this point, a lot of externalized libraries are now using webassembly targets or built-ins. SQLite being one of the more popular exceptions.

For the most part, I haven't had too much trouble the past couple years taking an existing project and running on a newer runtime. I have seen a lot of incompatible library breaks trying to update dependencies though.


Many node packages will have incompatible api breaks across years of development. More so if your TS types have changed in incompatible ways and you're stuck re-jiggering your code. Can usually resolve in a few days. My advice is to, in general plan on one day a month to upgrade all dependencies to their latest version, which reduces the exposure a lot and makes it easier to deal with than years later. It's worse on front end projects that use node for build tooling.

Ironically, I think the worst libraries for breaking changes are actually the testing libraries themselves. Having to jump 2-3 major versions to update to latest is an exercise in extreme frustration.

I appreciate a lot of what Deno is doing in their direction, though I've felt a few breaking changes along the way there too.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: