Live data from Hacker News

Node.js 20 is now available

nodejs.org

81–90 of 101 posts

Re: Node.js 20 is now available

#81
post #58
post #38

Earlier quoted context omitted.

Same. Every time I dive into a repo using Jest it infuriates me. So slow. The built in test runner is great.

Funny, I have the same reaction for Mocha and always wish it was Jest instead. I love that jest includes all the batteries to get stuff done.

Swapping between vitest and jest, vitest is much faster. Haven't used Mocha for a few years now.

Re: Node.js 20 is now available

#82
post #55

Earlier quoted context omitted.

A shame it's not using `expect` syntax, which recently was also adopted by bun.

expect(me).to.barf.when(i.see(shit.like(this)));

As someone who once made things like that, and is now an adult:

I was doing this to show people I could do it. I wasn't thinking of the people using my software but rather myself.

Re: Node.js 20 is now available

#83
post #68

They are so rushed with the numbering, I wonder when they will change to that relative to the year. After all, in a few years there will be a Node 50

It's semver. New major even number means a stable release with significant breaking changes.

Re: Node.js 20 is now available

#84
post #53

Earlier quoted context omitted.

Who cares how old something is, if it works well, why not use it? You can easily avoid callback-hell by making the callback you pass in to expressjs async and use await inside of it, without much drawbacks. Just because the first closure into express is a callback doesn't mean you need to use callbacks everywhere, just use await/generators/whatever you want in your application code. expressjs at this point is battle-…

> It's very mature and does what it does well. Is it? It performs slower than e.g. Fastify. Don't see how that's doing well. > Who cares how old something is, if it works well, why not use it? It doesn't. That's the whole point. Software is always evolving and I doubt it's even close to complete. There hasn't been meaningful updates to Express in a long time. Why do people use it and/or promote it as a standard?

> There hasn't been meaningful updates to Express in a long time.

Because for the most part - it doesn't need them.

Can you build a better express? Maybe. Lots of folks are trying that still, and you're welcome to use the tooling they put out.

Is express dead? Hell no.

Express is well documented, well supported, getting security patches, and comes up entirely clean for a new install (including most of the optional packages you might add).

Express has some sharp edges (it's been mentioned plenty above, but mainly because the framework predates the wide adoption of native promises in the JS space), but again, they're well known and relatively straight forward to work around.

---

Long story short, this:

> It doesn't. That's the whole point. Software is always evolving and I doubt it's even close to complete. There hasn't been meaningful updates to Express in a long time. Why do people use it and/or promote it as a standard?

Is an ignorant take. People promote it because it's a good tool.

Next you'll be telling me that I shouldn't use Bash because Bash 5.0 came out in 2018 and only got two minor point releases over the next 5 years. But that sounds dumb, huh?

Re: Node.js 20 is now available

#85
post #82
post #55

Earlier quoted context omitted.

expect(me).to.barf.when(i.see(shit.like(this)));

As someone who once made things like that, and is now an adult: I was doing this to show people I could do it. I wasn't thinking of the people using my software but rather myself.

It's what I call a stupid language trick. Don't get me wrong, they can be fun, and I don't hold things like this against you. But when people want me to write production code like that I want to clock somebody with my keyboard. TDD and BDD types get hot and bothered for this sort of thing since it makes the code look like Gherkin or whatever contrived specification language they favor this month.

Re: Node.js 20 is now available

#86
post #85
post #82

Earlier quoted context omitted.

As someone who once made things like that, and is now an adult: I was doing this to show people I could do it. I wasn't thinking of the people using my software but rather myself.

It's what I call a stupid language trick. Don't get me wrong, they can be fun, and I don't hold things like this against you. But when people want me to write production code like that I want to clock somebody with my keyboard. TDD and BDD types get hot and bothered for this sort of thing since it makes the code look like Gherkin or whatever contrived specification language they favor this month.

I dislike them because it falls into an uncanny valley that messes with my mind.

It's close enough to English that my brain tries to context switch from coding to writing English, but it's not close enough for that to actually work. It feels like I end up fighting my own mind.

I'm glad somebody has tried it so we know what it looks like, but personally I prefer the more "traditional" syntax.

Re: Node.js 20 is now available

#87
post #38

Earlier quoted context omitted.

Same. Every time I dive into a repo using Jest it infuriates me. So slow. The built in test runner is great.

Take a look at vitest.dev, it's pretty fast and great (especially for typescript)

To be honest the built-in test runner does everything I want.

Re: Node.js 20 is now available

#88
post #53

Earlier quoted context omitted.

> It's very mature and does what it does well. Is it? It performs slower than e.g. Fastify. Don't see how that's doing well. > Who cares how old something is, if it works well, why not use it? It doesn't. That's the whole point. Software is always evolving and I doubt it's even close to complete. There hasn't been meaningful updates to Express in a long time. Why do people use it and/or promote it as a standard?

> There hasn't been meaningful updates to Express in a long time. Because for the most part - it doesn't need them. Can you build a better express? Maybe. Lots of folks are trying that still, and you're welcome to use the tooling they put out. Is express dead? Hell no. Express is well documented, well supported, getting security patches, and comes up entirely clean for a new install (including most of the optional pa…

> Next you'll be telling me that I shouldn't use Bash because Bash 5.0 came out in 2018 and only got two minor point releases over the next 5 years. But that sounds dumb, huh?

What's dumb is not being able to tell the difference. It's not about the numbers.

https://git.savannah.gnu.org/cgit/bash.git/ shows there are constant updates. Things are being worked on. Your example proves my whole point. There are updates every year for many years.

Express? Not so. There are many gaps in its history. And for a tool like Express that has way more surface area it is in need of a lot more testing and updating e.g. if NodeJs changes something it breaks.

Does Bash need to make sure it works with HTTP3, Brotli or many other things that came out? No.

> Because for the most part - it doesn't need them.

Right, let's go back to the Stone Age. You don't need clothes either - just a leaf. You're just so dismissive on innovation then why bother? You don't even need NodeJs. Back to assembly and punch cards...

> Is an ignorant take.

Yes, yours. As shown above by your example.

> People promote it because it's a good tool.

And how do you know that? Where are the stats? Or people just google for NodeJs server, see the top response being Express and just do that. The cycle then repeats. Have people promoting it actually benchmarked, compared and investigated all the tools before making this informed decision? I'm sure you've heard from each and everyone 1 of them to know the answer eh.

Re: Node.js 20 is now available

#89
post #6

What is the standard web application backend framework for Node.js these days, is it Koa? As I understand it express is quite dated because of the callback structure. I have been confused recently with the moving best practices. What is the server architecture Next.js is most often plugged into?

Express + typescript. Simple. Powerful. Battle-tested.

I personally hate the TS bindings. That's one of the reasons that drove me to create Phero: https://phero.dev
Post reply on HN