パスワードを忘れた? アカウント作成
9008030 story
プログラミング

/.Jに聞け:「関数型言語ブーム」はいつ来た? 81

ストーリー by hylom
10年前に授業で習ったときにはこんなブームになるとは思わなかった 部門より
あるAnonymous Coward 曰く、

BlogやTwitterなどを見ていると、最近ではHaskellやScala、Ocamlといった関数型言語が流行っており、またPythonやRubyなどのように関数型言語の要素を導入する言語も増えている。

これらの動きを見るに、関数型プログラミング言語がブームになっているように思うが、その流行はいつからで、どのようなことをきっかけにしているのだろうか?

ちなみに、「プログラミング言語の人気度数」を調査公開しているTIOBE Programming Community Indexによると、関数型プログラミング言語の代表とも言えるLispの「人気度」は定期的に上下している模様

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • おしゃれの流行 (スコア:5, おもしろおかしい)

    by Anonymous Coward on 2013年05月28日 8時04分 (#2389139)

    > 関数型プログラミング言語の代表とも言えるLispの「人気度」は定期的に上下している模様。
    それは、かっこつけたがりな連中の増減を示しているだけだろ。

  • by deleted user (13014) on 2013年05月28日 12時10分 (#2389347)

    オブジェクト指向では、最高のコードは書けないと達観してしまったプログラマが増えたがゆえに、Haskell の新しいアプローチに関心が集まったのではなかろうか。(ここでの「最高のコード」の定義は、短いコードで、目的の処理が書けて、人間にも読みやすく、初学者にも理解しやすく、コンピューターにも高速に処理しやすい経済的ベストバランス)

    副作用はあってはならず、変数の再定義は禁止。縛りが厳しいスタイルですが、モナドという仕組みで、例外機構や状態の保持のようなものもスッキリ書ける、らしいと。(個人的に、最近知ったばかりで、詳しくはよく知らない)なるほど、もしかしたら、これがプログラミングの未来、すごいパラダイムシフトがあるのではなかろうかという期待をしてしまうのです。

  • by Anonymous Coward on 2013年05月28日 8時51分 (#2389164)

    前回流行ったと言われているのは、80年代後半から90年代前半だけど、
    あれ並列計算機が出てきて「関数型で書けば、そのまま並列実行可能じゃね?」って話。
    並列計算機っていうバズワードがHPCに変わったころに、「難しくてやっぱ実用的じゃなかったね」と廃れた。

    MapReduceでビッグデータでクラウドで、またぞろ関数型が流行りだしたけど、
    そろそろ「難しくてやっぱ実用的じゃなかったね」と廃れそう。

    でもまあ、昔から活用している人は活用しているし、今もそれで実益を出している人もいるよ。
    それでいいじゃん。一部の人に使える言語のままで。

  • by miyuri (33181) on 2013年05月28日 8時31分 (#2389152) 日記

    関数型プログラミング言語の代表とも言えるLisp

    自制すれば関数型として書けるけど、宗教的な争いが起こりそうだなー、と。

    • Re:関数型? (スコア:3, 興味深い)

      by Anonymous Coward on 2013年05月28日 8時43分 (#2389159)

      >自制すれば関数型として書けるけど、宗教的な争いが起こりそうだなー、と。
      僕もそう思います、CommonLispなんかだとオブジェクト指向コード含めなんでもできる驚異な言語って感じします。
      というか既存のLisp系言語で純粋に関数型プログラミングできるのってものすごく少ないです。
      ClojureとかQiとかLisp言語族のごく一部でしかないです。

      というかCommonLispやSchemeで純粋関数コードってよっぽどの賢者か勇者じゃないと誘惑が一杯じゃないの?
      という感じ。(clojureだってjavaオブジェクトでホイホイぱーな感じだし)

      pureな関数型言語ってHaskellとかMLの一部だけな気がする。

      ちなみにトピックに沿った話題としてはGoogleのMap Reduce論文から派生して人気がでたんじゃないかとは思います、各種言語への取り込みもMapとReduce系が主題になった話題が多いし。

      親コメント
    • by Anonymous Coward

      古い Lisp 系言語やそこに各種パラダイムを全部入れた Common Lisp を Haskell OCaml のような静的型付けの関数型言語やそこに OO 入れた Scala を一緒くたにするのは、 C++ も Java も Ruby もまとめて手続き型で C に代表させるくらいには乱暴な話ですね。

  • http://d.hatena.ne.jp/satosystems/20121228/1356655565 [hatena.ne.jp]
    こちらの記事の Scheme48 の事前最適化で結果が出てしまっているというところに、
    関数型の利点があるのかなぁなんて思いました。
    問題によってはこんなことまで出来ちゃうのは副作用がないからってことなんですかね。
    勉強します…。

  • オブジェクト指向がすでに関数型だと思ってたよ。

    --
    the.ACount
  • 今でしょ! (T/O) (スコア:0, オフトピック)

    by Anonymous Coward on 2013年05月28日 8時16分 (#2389142)

    今でしょ!

    #って言ってみたかっただけ。

  • by Anonymous Coward on 2013年05月28日 9時21分 (#2389187)

    C++の変態的テンプレートが流行した00年代前半あたりじゃないですかね。
    当時はWeb2.0とか何とかめまぐるしかった印象ですので一概にこれとも言えない気はしますが。

typodupeerror

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

読み込み中...