HN 日本語サマリー

← 一覧へ戻る
プログラミング

Anecdotally, programmers dislike "reduce"

Anecdotally, programmers dislike "reduce" (evanhahn.com)

150 pointsby vinhnx225 コメント

要約

プログラマーの間では、mapやfilterといった関数は広く受け入れられている一方で、reduce関数は好まれない傾向にあるという筆者の経験談です。コードレビューでreduceの使用が指摘されることが多く、JavaScript、Python、Swiftといった言語では、reduceが読みにくく、エレガントさに欠けると感じられるようです。筆者はこの現象を社会的な現象として記録していますが、その理由についてはいくつかの仮説を立てています。

全文翻訳

経験則上、プログラマーは「reduce」を好まない

要するに:私の経験では、人々は map と filter を好みますが、reduce は好みません。

私は map や filter のような関数を常に使用しています。これらのコードをレビューに出しても、同僚が文句を言うことはめったにありません。他の決定については多くのフィードバックを得ますが、map や filter の使用については何もありません。

しかし、reduce についてはそうとは言えません。しばしば、reduce を含むパッチを提出すると、「この部分は読みにくい」といったコメントを受け取ります。そして、map、filter、some などと比較して、reduce を見かけることははるかに少ないです。

経験則上、私はプログラマーが reduce をそれほど好まないという信念を持つようになりました。

その理由は分かりませんが、いくつかの仮説があります:

  • reduce は読みにくい。
  • reduce は馴染みがない。
  • reduce は他の選択肢と比較してパフォーマンスが悪くなる 可能性がある。
  • reduce は、私が使用する JavaScript、Python、Swift のような言語では、エレガントさに欠ける 傾向がある。私が Clojure 開発者だった頃は、このようなフィードバックは ありませんでした。
  • 私が間違っていて、実際には存在しないトレンドを見ている。

私は通常、reduce を別のものに変更して先に進みます。たとえそれが好みであっても、それほど気にはしません。しかし、これは私が観察したちょっとした社会的現象であり、記録しておこうと思いました。

最近では、コードレビューがそれほど徹底されなくなったためか、この現象はあまり見られなくなりました。

あなたはこのことに気づいていますか? reduce は好きですか? 私に教えてください。