I don't chain everything in JavaScript anymore

AllThingsSmitty 18 points 10 comments April 20, 2026
allthingssmitty.com · View on Hacker News

Discussion Highlights (7 comments)

prismatix

Not trying to sound snarky, but this is just part of transitioning from a junior/mid to a more senior developer: realizing that code readability matters more than terse-ness.

plumbees

I agree that debugging these pipelines are a nightmare sometimes. It's something that frustrates me sometimes because even though in OOP it won't be terse the action would be clearer. OOP can at times also introduce less cognitive load as well. I wonder if the issue is the mixing of paradigms. Although I don't think everything should follow purity boundaries: functional must always be functional and OOP languages should just be OOP but perhaps the mixture of doing functional programming in a OOP paradigm introduces unintended quirks that are cognitively taxing when bugs occur. (I've written 10 drafts and I'm not sure what I want to say so I'm going to just land it here and see what happens)

joshstrange

Agreed, while chaining can look very pretty, it's a pain to re-parse and a pain to modify. It's the same reason I don't like this style of function: .map(var => var.toUpperCase()) Sure, it's great today but but I want to debug it I need to add `{}` in and/or if I need to add a second operations I need to add the curly braces as well. That's I prefer explicit: .map((var) => { return var.toUpperCase(); }) Since it's much easier to drop in a debug line or similar without re-writing surrounding code. It also makes the git diff nicer in the future when you decided to do another operation within the `.map()` call. I've asked many people to re-write perfectly functioning code for this same reason. "Yes, I know you can do it all in 1 line but let's create variables for each step so the code is self-documenting".

mekoka

This is what tends to happen to code when your focus starts to shift away from how expediently you can write it and closer to how readable/maintainable it really is.

efilife

I read two paragraphs of this and was already sure this article is AI generated. Read more, and "This isn’t just about..." there we go

khelavastr

Name return variables bro. This is a solution that people fixed 25 years ago with detailedReturnObjectNames.

t0mpr1c3

The point of chaining is generally to avoid making intermediate objects.

Semantic search powered by Rivestack pgvector
5,126 stories · 48,318 chunks indexed