いやなんというか、はっきり言って、関数型プログラミングに型クラスやら圏論が必要みたいな風潮ないかんと思うのですよ。その意味でHaskellが関数型プログラミング言語代表みたいに思われる風潮は有害だと思う。それに追従するようにScalazプッシュするのも同様に有害。
2014-04-16 17:35:41ちょっと過激(?)な意見を書きましたが、こと「関数型プログラミング」の普及という点においては、型クラスとか圏論とかどーでもよいので、本音でもあります。
2014-04-16 17:37:00念のため言っておくと、Scalazそのものが有害といっているわけではなく、Scalaで関数型プログラミングするためにはScalazが必要みたいいにプッシュするのが有害というのが私の意見です。
2014-04-16 17:40:25自分はこういう意見を折に触れて表明していますが、それは、関数型プログラミングを導入するためのハードルをいたずらにあげたくないからです。もちろん、それが必要であるなら仕方ないですが、(関数型プログラミングにとって)必須でないものをセットで持ち込んでハードルを挙げる必要はない。
2014-04-16 17:44:27@MtCedar その手法を然るべきところに採用すればいくらかの生産性の向上が見こめるから、ですかね。卑近な話では、技術者としての自分がより生きやすくするためでしょうか。
2014-04-16 19:25:52@kmizu なるほど、要は趣味の問題ということですか。私としては関数型のプログラムは理解し難いので、技術者としての自分の生きやすさを守るために、心置きなく関数型プログラミングの廃絶に勤しむと良いのですね。
2014-04-16 19:45:51@MtCedar そもそもLispと一口に言っても色々あり、たとえば、Emacs LispやCommon Lispはどちらかというと手続き型プログラミングを強くサポートしますし、Schemeや近年だとClojureはより強く関数型プログラミングをサポートすると言えるかと
2014-04-16 19:50:13@kmizu では、LISPから派生した概念ではなくて、関数型プログラミングの生産性の高さを特徴付けているものは、端的にいうと何でしょうか。
2014-04-16 19:51:04@kmizu それで、すいません。関数型プログラミングについては詳しくないので、具体的には、よくわかりません。多分、水島さんのほうが詳しいと思います。
2014-04-16 19:56:56@MtCedar うーん。関数型プログラミング(のスタイル)で書かれたプログラムは読みづらいというご主張なわけですから、すぎさんは関数型プログラミングについて理解しているという前提の主張だと思ったのですが違うのでしょうか?
2014-04-16 19:58:21@kmizu 例えば日本人は、英語が読めれば生産性が高くなるかもしれない、と知っていても、英語は苦手だし、全部日本語になってほしいと願っていると思いませんか?
2014-04-16 20:01:56@MtCedar 概念を理解していないなら読みづらい、というのは、あらゆる手法について当てはまるものですよね。構造化プログラミングでも関数による抽象であっても理解していなければ読みづらい。ということは、関数型プログラミングは手法として理解しづらいものだという主張で良いでしょうか。
2014-04-16 20:03:32@kmizu そこまで一般化するつもりはありません。子供の頃からBASICやニモニックを学んでいたせいか、いわゆる関数型的なアルゴリズムの記述が、とても直観的でない記述に見えてしまうのです。
2014-04-16 20:06:40@MtCedar なるほど。では、具体的なコード欠を持ち寄って議論してみませんか?自分としては、どのような部分が直観的でないのか興味があります。
2014-04-16 20:12:55@kmizu 例えば目立つところでは、リスパーはループを再帰呼び出しとして書くのが好きだと思いますが、私にはそれが直観的でないように思えます。実行されるときにループなら、ループとして書けばいいじゃん!って思います。
2014-04-16 20:17:15