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

I work largely in the JS ecosystem so for me it would be Express. Everyone says the Express project is dead because they hardly ever update it but IMHO the real reason they never update it is it's been practically perfected.

Express has so many different uses and I've used it on very large scale backend projects for Fortune 500's, shoved it inside lambda functions, and used it to host email templates and build dev tooling with it to overcome shitty API's at work that always go down.

In all those times I don't think I've ever run into an issue that wasn't already solved



I remember the main reason people start moving away from Express was because the way routing worked in Express it kinda created a performance problem that severely handicapped the throughput of services. I don't know if it ever got addressed (I think it required breaking changes). But it was this article from 2014 that triggered the move away from express:

https://netflixtechblog.com/node-js-in-flames-ddd073803aa4

But the alternatives like Restify and Fastify are very similar to Express in developer experience, so it was not a huge deal to move away from it. One could think that these new frameworks are just a new major version of Express that had a lot of breaking changes.


The blog post you've linked doesn't justify what you've said about it at all.

In the netflix blog post they're complaining about increasing latency over time because they have a function that *reloads all express routes in-memory* that didn't properly remove all the previous routes, so the routes array got bigger and bigger. That's not a fundamental problem with express[1], that's an obscure (ab)use case implemented wrong. Hardly a damning indictment of express.

> This turned out be caused by a periodic (10/hour) function in our code. The main purpose of this was to refresh our route handlers from an external source. This was implemented by deleting old handlers and adding new ones to the array. Unfortunately, it was also inadvertently adding a static route handler with the same path each time it ran.

[1]: Admittedly an array is not the "best" data structure for routing, but that absolutely wasn't the performance issue they were having. Below a couple thousand routes it barely matters.


I haven't been tracking. Is Express 5 GA yet? Any project that stalls out like Express seemed to makes me think it's dead.

Any NodeJS web projects I run are on Express 4 and _still_ use express-async-router, helmet, and a hodgepodge of other add-ons to make it passable.

It is highly productive and useful, but I would never serve to the internet with NodeJS, much less with Express 4. Only internal apps. Scary NPM ecosystem of abandonware and resume fodder, it's not okay!




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

Search: