Anecdotally、プログラマーは「Reduce」を嫌う
Anecdotally, Programmers Dislike "Reduce" (evanhahn.com)
要約
筆者の経験によると、多くのプログラマーはmapやfilterといった関数は好むものの、reduce関数に対しては読みにくい、馴染みがない、パフォーマンスが劣る、あるいはエレガントさに欠けるといった理由で否定的な意見を持つ傾向があるようです。この現象は筆者の観察に基づくもので、最近ではコードレビューの質低下により見かける機会が減った可能性も指摘しています。
全文翻訳
Anecdotally, programmers dislike "reduce"
In short: from my experience, people like map and filter, but not reduce.
I use functions like map and filter all the time. When I put that code up for review, my peers rarely complain. I get plenty of feedback about other decisions, but not about my use of map and filter.
I cannot say the same for reduce. Often, when I’ve submitted a patch with reduce inside, I get a comment like, “this part is hard to read.” And I see reduce way less than map, filter, some, and so on.
Anecdotally, I have come to believe that programmers don’t like reduce as much.
I don’t know why, but I have a few theories:
reduceis harder to read.reduceis less familiar.reducecan have worse performance compared to other options.reduceis less elegant in languages I use, like JavaScript, Python, and Swift. In my blissful stint as a Clojure developer, I did not get this feedback.- I’m wrong, and I’m seeing a trend that’s not real.
I usually just change reduce to something else and move on. Even though I prefer it, I don’t usually care much. But it’s a little social phenomenon I’ve observed, and I thought I’d document it.
I’ve also noticed this less recently, possibly because code review is less thorough nowadays.
Do you notice this? Do you like reduce? Please tell me.