アカウント名:
パスワード:
大学で、関数型言語の研究をしている方と話す機会があったとき、「関数型言語が優れていることは分かった。が、関数型言語みたいな厄介な言語を、君らみたいなコンピュータサイエンスをがっつり学んだ人でなく、そこらへんの人に使うことなんてできるのか」といったようなことを聞いてみたのですが。
そしたら「今の関数型言語が素人に向いていないのは、関数型言語そのものの本質的な欠点じゃなく、アカデミックに近い人向けの使い勝手の悪い言語しか作られていないからだ。Rubyのような、使い勝手重視の関数型言語が必要」らしいです。
おそらく、重要なのは「言語仕様の使いやすさ」ではなく、「言語の使いやすさ」でしょう。Haskell が威力を発揮するのは、おそらくメタプログラミングとかでしょうが、そんなのを必要とする場面というのは、めったにない。なので、blockやProcやlambdaやmethod を使い分けないといけなくて困ることなんて、ほとんどない。
普通のことが普通に(見慣れた構文で)書けて、それでいてちょっときれいに書ける気がして、その一方でダーティな書き方も許してもらえる。その辺のころあいをうまくとるのが、designer と言っているゆえん。
一般に原理主義に走ると、だいたい使いにくくなる。例えば pure LISP とか。
自分はTDDは好きでは無いのですが(正しさについていいとこ取りをしているだけにしか見えない)、テストしやすい様にアプリケーションプログラムを作るのは良いと思います。
そうすると、・変数はパブリックの方がテストしやすい。・無名関数なんてもってのほか・至る所にデバック用のログ出力を置きたいので、イテレータなんか嫌・RDBは組み込みで接続できた方が、不具合箇所が減る・制御を軸としないで、HTMLストリームを軸として見た方がテストが楽・抽象化もテストの天敵となります。
あっ。よく見るとPHPではないか!
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私は悩みをリストアップし始めたが、そのあまりの長さにいやけがさし、何も考えないことにした。-- Robert C. Pike
関数型言語の時代はくるのか (スコア:4, 興味深い)
大学で、関数型言語の研究をしている方と話す機会があったとき、
「関数型言語が優れていることは分かった。が、関数型言語みたいな厄介な言語を、君らみたいなコンピュータサイエンスをがっつり学んだ人でなく、そこらへんの人に使うことなんてできるのか」といったようなことを聞いてみたのですが。
そしたら「今の関数型言語が素人に向いていないのは、関数型言語そのものの本質的な欠点じゃなく、アカデミックに近い人向けの使い勝手の悪い言語しか作られていないからだ。Rubyのような、使い勝手重視の関数型言語が必要」らしいです。
1を聞いて0を知れ!
Re: (スコア:2)
言語仕様の使いやすさでいえば、すでに Haskell は既存の言語をはるかに上回ると自分は考えています。 たとえば Ruby が使いやすいという人は、イテレータ(笑)があるからとか、すべてが
Re: (スコア:1)
おそらく、重要なのは「言語仕様の使いやすさ」ではなく、「言語の使いやすさ」でしょう。
Haskell が威力を発揮するのは、おそらくメタプログラミングとかでしょうが、そんなのを必要とする場面というのは、めったにない。
なので、blockやProcやlambdaやmethod を使い分けないといけなくて困ることなんて、ほとんどない。
普通のことが普通に(見慣れた構文で)書けて、それでいてちょっときれいに書ける気がして、その一方でダーティな書き方も許してもらえる。
その辺のころあいをうまくとるのが、designer と言っているゆえん。
一般に原理主義に走ると、だいたい使いにくくなる。
例えば pure LISP とか。
Re:関数型言語の時代はくるのか (スコア:1)
自分はTDDは好きでは無いのですが(正しさについていいとこ取りを
しているだけにしか見えない)、テストしやすい様にアプリケーション
プログラムを作るのは良いと思います。
そうすると、
・変数はパブリックの方がテストしやすい。
・無名関数なんてもってのほか
・至る所にデバック用のログ出力を置きたいので、イテレータなんか嫌
・RDBは組み込みで接続できた方が、不具合箇所が減る
・制御を軸としないで、HTMLストリームを軸として見た方がテストが楽
・抽象化もテストの天敵
となります。
あっ。よく見るとPHPではないか!