暇つぶし

皆さん元気にしていますか。健康ほど大事なものはありませんよ。


病気のほうは、まあぼちぼちです。復職の目処は立っていません。あと明日ベッドが新しくなります。やったー。

ところでインターネットには様々な文書があり、暇をつぶすにはちょうど良い。
具体的にはこのような大変面白い記事があって、まあそれを読んで何か書いてみようということなのです。

2015年現在、日本国内、あるいは少なくとも日本国内のSNS界隈には、ある一定数の人数が集う【自称】「関数型コミュニティ」なるものが存在しています。
【自称】「イスラム国」が、国際社会からは国家として認められていない物騒な存在であるのと同様に、国内SNSで今特に巷で騒がしい自称「関数型コミュニティ」の言説については。国際的なプログラミング界隈の言説とはまったく異なる特異な主張であることに十分に留意しておく必要があります。

qiita の件に関わった人間のうち、「関数型コミュニティ」に属していると主張する人間も、また彼らの誰かをそれに属していると主張する人間も、知る限りでは存在しなかった。個々人を知らない第三者が、まとめて「関数型コミュニティ」のような表現で関わった人間を括った、ということはあったかもしれない。
このようなレッテル貼りは典型的な詭弁であり問題である。それが ISIL のような問題のある集まりに属している、などというものならば、なおさらである。

自分たちの私見や独自見解、あるいは単なるより好みの「特異な主張」こそが正しく、その意向に沿わない見解、主張、意見を封じようと試みる行為が正当化されて当然という風潮が醸成されると、これはもう言語道断です。

qiita の件に関わった人間の多くは、私見や独自解釈の主張ではなく、岡部氏の記事に含まれていた誤りの指摘を行おうとしていた。間違った知識、知見が広まることを、各位が恐れたためである。結果として、住井先生がこのような記事を書くことになったのも、前述のようなことを未然に防ごうという目的あってのことと思われる。ちなみに住井先生は既に様々な文書をウェブで公開されており…まあ有体にいって泣ける。

そしてこれが今、日本国内の関数型プログラミングの言論界隈で起こっていることです。
【自称】関数型コミュニティの横暴な振る舞いによって、関数型プログラミングに取り組む数多くの識者、学習者、初心者は、恐れおののき、この辺のトピックについては腫れ物に触るように口を閉ざしてしまいました。

確かに初学者にとって、様々な関数型言語ないしプログラミングのコミュニティに対するイメージは、難しそう、モナド、なんかヤバイ、そういったアレがあるが、まあ昔からのことであるし、昔に比べればよい書籍も増えた。いい時代になったものですね…この記事はそもそも発売前に記述しているのだが間違いがあると困るのでいちおう断っておくと、岡部氏の書籍のことではない。
兎も角、「口を閉ざす」という観測しようもないことを、事実であるかのように主張するのは妥当とはいえない。何やらメールがあったということですが、それをもってサイレントマジョリティがどうみたいな話を始めるのも下らないので、割愛する。

ここで「一般的」な国際的な論調と異なる、日本国内の【自称】関数型コミュニティによる独特な特徴とは以下のようなものです。
1. オブジェクト指向に傾倒しており、関数型プログラミングオブジェクト指向を「マルチパラダイム」というように差異を曖昧にすることでパラダイムの違いを処理し、そもそものパラダイムの差異については認めようとしない。より好みを正当化するために根底の世界観の差異を曖昧にしようとする。
2. 関数型プログラミングの根幹である、宣言的プログラミングでなく、命令形プログラミングに何故か執着している。
3. 関数型プログラミングの根幹である、宣言的プログラミングと不可分である「遅延評価」でなく「先行評価」のほうを何故か好む。

前述したように「関数型コミュニティ」と呼ばれるようなコミュニティは存在しない。仮に qiita の件に関わった人間の大多数と置き換えても、上記のような事実はない。それを示すことは、関わった人間がそれぞれにそれぞれの考えを持っているため、非常に難しいが、まあ何を書いたところで岡部氏は読解力がないか、理解するつもりがないか、まあなんにせよ個人攻撃だ!といったレッテル貼りを行うと思うので、省かせていただく。ちなみに前述の岡部氏に対する主張は個人攻撃である。氏はその精神に何らかの問題を抱えており、病院で適切な診断と治療を受けるべきだというのが私の見解であり、これは今後も曲げることはない。


しばらく特に引用することもない文字列が並ぶので省略。

関数型言語は宣言型であり、宣言型ならば、当然遅延評価がデフォルトであるべきである(事実Haskellはそうなっている)という常識を信じることはいけないということなのでしょうか?

Haskell の開発者の一人である SPJ によれば "The next Haskell will be strict, but still pure." とのことです。本気半分ジョーク半分って感じだと思いますが。そも Haskell こそが関数型言語であるというような言説は、それこそ初学者に対し適切ではない…

デフォルトで遅延評価で、完全に宣言型のコードになるのは、それ相応の理由があってのことです。

これはそんなに自明でなくそこそこ難しいことだと認識しているのですが、是非説明していただきたいですね。

まず、マイクロソフトのサイトから見てみましょう。

権威主義的強弁!権威主義的強弁だ!!


飽きたので以上です。


上記の文書には特に価値がなく、暇つぶしであり、兎に角ボクは岡部氏に早く病院に行って欲しいと思っている。以上です。


ところで open recursion で検索するとボクが書いた記事がひっかかるのは、あってはならないことだと思うので、誰かなんか書いて下さい。