Most active commenters
  • javatuts(3)
  • EdwardDiego(3)

12 points javatuts | 22 comments | | HN request time: 1.279s | source | bottom
1. EdwardDiego ◴[] No.45844268[source]
> You’ll Fall in Love With

I'm going to press Circle to Doubt.

Oh look, every section header starts with an emoji. Gee, wonder who wrote this.

That said, it is nice that they finally borrowed the pipe-forward operator from the ML languages. Record and tuple syntax is gross though.

2. ahofmann ◴[] No.45844272[source]
From the article:

  As front-end developers, staying ahead of JavaScript’s evolution isn’t optional — it’s survival.

  When the ES2025 proposals dropped, many developers (myself included) were shocked.
Isn't this hyperbole par excellence? There are some new language features, that is all. The whole article looks like written by this LLM prompt: "write about the new features of es2025 and hype it up as much as possible"
replies(3): >>45844288 #>>45844295 #>>45844496 #
3. M4v3R ◴[] No.45844273[source]

  when ({ status: s if s >= 500 }) -> throw new Error(’Server Error’)
Is it only me or this doesn’t look like JavaScript anymore?
replies(1): >>45844456 #
4. alabhyajindal ◴[] No.45844283[source]
This is written by an LLM. Can we have less of these on HN?
5. M4v3R ◴[] No.45844288[source]
To be honest this whole article feels like it was AI generated. And em-dashes being used everywhere doesn’t help to shake off this feeling.
replies(1): >>45844300 #
6. EdwardDiego ◴[] No.45844295[source]
<arrow in target emoji> You nailed it!

People have got to start prompting their LLMs to stop with the goddamn emoji.

replies(1): >>45844594 #
7. mg ◴[] No.45844298[source]
Hmm... one moment. The first example function they provide:

    function handleResponse(response) {
        return match (response) {
        when ({ status: 200, data }) -> data
        when ({ status: 401 }) -> throw new Error(’Unauthorized’)
        when ({ status: 404 }) -> throw new Error(’Not Found’)
        when ({ status: s if s >= 500 }) -> throw new Error(’Server Error’)
        default -> throw new Error(’Unknown Error’)
      };
    }
Is less readable to me than the way I would write it without the match/when construct:

    function handleResponse(response) {
        status = response.status;
        data   = response.data;
        if (status === 200 && data) return data;
        if (status === 401) throw new Error(’Unauthorized’);
        if (status === 404) throw new Error(’Not Found’);
        if (status  >= 500) throw new Error(’Server Error’);
        throw new Error(’Unknown Error’);
    }
replies(1): >>45844344 #
8. EdwardDiego ◴[] No.45844300{3}[source]
It's every section header starting with an emoji that's blatant LLM slop indicator. I'd love to know why LLMs love emojis so much.
9. andrewl-hn ◴[] No.45844301[source]
The article lists all flashy JavaScript proposals, and none of them are part of the language.

Here’s what actually is new: https://2ality.com/2025/06/ecmascript-2025.html

10. fud101 ◴[] No.45844312[source]
how long til it's in the browser for these?
replies(2): >>45845426 #>>45845617 #
11. npodbielski ◴[] No.45844315[source]

   const result = data
     |> Object.entries(%)
     |> (%.filter(([k, v]) => v != null))
     |> Object.fromEntries(%)
     |> Object.values(%)
     |> JSON.stringify(%)
     |> encodeURIComponent(%);
Looks kinda awful to me. Am I strange that I prefer the 'spaghetti' version?
replies(1): >>45844324 #
12. mattvr ◴[] No.45844323[source]
I believe this article is largely wrong and misleading.

Pattern matching is still Stage 1, meaning it’s not a standard: https://github.com/tc39/proposal-pattern-matching

Pipeline operator is Stage 2 and won’t use the “|>” syntax: https://github.com/tc39/proposal-pipeline-operator

13. samhh ◴[] No.45844324[source]
I’ll die on the hill that the tacit pipe operator would have been the right choice. IIRC the main objections came from engine implementors.
14. mg ◴[] No.45844344[source]
The match/when approach also needs more code. 393 instead of 360 chars.
15. javatuts ◴[] No.45844456[source]
JavaScript is moving toward functional programming languages — I don’t see what’s wrong with that.
16. javatuts ◴[] No.45844496[source]
I get what you mean, but the point of the article was to show how JavaScript is evolving to feel more like a functional language — not like Java or C#. That shift is actually what makes it cleaner and more expressive, not robotic.
17. DemocracyFTW2 ◴[] No.45844594{3}[source]
<thumbs-up emoji> You nailed it!
18. satisfice ◴[] No.45845196[source]
Why do people breezily say that a new and unfamiliar thing is more readable? What’s more readable is almost always the thing you are used to seeing.
19. xigoi ◴[] No.45845426[source]
Never, because the LLM made most of it up.
20. petercooper ◴[] No.45845617[source]
Potentially never. Despite what the article says, pattern matching is not in ES2025 and is still at stage 1 of TC39 so it could be a couple years to never. The pipe operator is at stage 2 and not in the ES2025 spec.

That said, with transpilation/Babel/etc. you could in theory be using some of these features right now (e.g. `@babel/plugin-proposal-pipeline-operator`).

The original article here is terrible, clearly not written by anyone with a clue and potentially even by an LLM.

21. episteme ◴[] No.45846119[source]
Open article.

"X isn't Y — it's Z"

Close article.

> As front-end developers, staying ahead of JavaScript’s evolution isn’t optional — it’s survival.