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’);
}
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"
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.
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.
Here’s what actually is new: https://2ality.com/2025/06/ecmascript-2025.html