2 ポイント 投稿者 GN⁺ 2023-08-26 | 1件のコメント | WhatsAppで共有
  • 著者は、ソフトウェアエンジニアとして10年間使ってきた関数型プログラミング言語 Haskell から離れていく道のりを共有する。
  • 著者は、コードを記号的かつ代数的に理解できる Haskell の能力と、堅牢な型システムに惹かれた。
  • Haskell の型システムは、過度に制約的でも騒がしくもない厳密な型チェックを可能にし、コードの作成と保守を容易にする。
  • 著者は、型を使って不変条件を表現できる Haskell の能力を高く評価しており、これによってコンパイラがロジックを二重に確認し、コードの安全性と正確性が向上する。
  • こうした利点にもかかわらず、著者は、スタイル上の新奇性への欲求、不格好なツール、そして継続的な変化という3つの主な理由から Haskell を離れた。
  • スタイル上の新奇性とは、Haskell コミュニティが新しい抽象化を実験する傾向を指し、これは革新的である一方でコードの保守を難しくすることがある。
  • 著者は Haskell のツールを「悪くない」と評価したが、Rust の cargo ほど使いやすく安定したツールはないと述べた。
  • Haskell の継続的な変化、特に定期的に行われる後方互換性のない修正は、言語利用の摩擦を増大させた。
  • Haskell から離れた後も、著者は依然としてその強み、すなわちコードを代数的にリファクタリングする能力、型システム、そして宣言的なライブラリエコシステムを認めている。
  • 著者は、Haskell を使うべきかどうかは個人の目標次第だと結論づけ、より良いプログラマーになるために Haskell を学ぶことは勧める一方、彼が説明した課題のため主要言語として使うことには注意を促している.

1件のコメント

 
GN⁺ 2023-08-26
Hacker Newsのコメント
  • Haskellコミュニティは、学習を強く重視し、好奇心と知識共有の文化を育むことで知られている。
  • しかしこのコミュニティは、アイデアを試したあとに捨てることが苦手なことが多く、そのためプロダクションのHaskellコードベースが雑然としがちである。
  • Haskellのツール群は批判されているが、たいていのプログラミング言語はもっと劣ったツールしか持っていないと主張する人もいる。
  • Haskellのツール群にはHoogleという独特の機能があり、その有用性の高さから非常に評価されている。
  • Haskellと、その唯一の合理的な公開実装であるGHCの発展は、絶え間ない変化と一貫性のなさのために批判されている。
  • GHCと標準ライブラリbaseの特定バージョンが結び付いていることは、新しいGHCバージョンがリリースされるたびに依存関係の変更を強いられる問題だと認識されている。
  • 著者がHaskellへの関心を失ったのは、スタイル上の新奇性、扱いづらいツール群、そして絶え間ない変化という3つの主な要因によるものだ。
  • Haskellのドキュメントとツール群は扱いにくく、コミュニティがCabalからStackへ、そして再びCabalへと移ってきたことは、改善の兆しと見なされている。
  • 他のプログラミング言語は関数型プログラミングの要素を取り入れており、それが一部の開発者にとってより魅力的になっている。
  • コードを書くのがより簡単だという理由で、HaskellからF#へ移った開発者もいる。
  • Haskellは学ぶのが難しいと見なされており、そのライブラリはしばしば古かったり中途半端だったりする。
  • Haskellの性能は批判されており、遅延評価がメモリ問題や低速な性能を招く。
  • Haskell開発者にとっては、言語の特殊性ゆえに仕事の見通しが限られていると考えられている。
  • Haskellでのデバッグは、言語の複雑さのために難しいと説明されている。
  • ScalaはHaskellの良い代替と見なされており、両者の長所を兼ね備えている。
  • 日常的なソフトウェアエンジニアリング業務において、高度な言語機能が本当に必要なのか疑問視する声もある。
  • Haskellが研究や学術的探究に重点を置いていることは、実用的なプログラミングの必要性と衝突する可能性があると考えられている。
  • 投稿では、Haskellにおいて実験的機能と安定機能を分離する方法が必要だと提案している。
  • 著者は、Haskellで新しい高度な型機能を使うよう圧力を感じているわけではなく、複雑な型をどの程度使うべきかについて直感を育てることを勧めている。