パスワードを忘れた? アカウント作成
14954948 journal
日記

dotkuwaの日記: 関数型プログラミングの「余罪」 6

日記 by dotkuwa

関数型プログラミングは、
・一般人がどうとでも取れ、別の科学を知っている人に
 致命的な誤解をさせる名前をつけ、
・最もプリミティブな場合(静的と動的を近似的に同一視出来る
 場合)にのみ可能な良さを、そうで無いもっと実用的な場合にも、
 適用可能だと思わせる、独特の説明の仕方をし、
・こんな素晴らしいやり方があるのだから、今のやり方は
 パスし、来るべきやり方に備えようと一般人に思わせる、
ムーブを行い、
しかし、
・その様な良さは20年経っても、30年経っても一切訪れず、
その結果、
プログラミング的「引きこもり」を不当ににも、
多数、作り出しました。これは誰はばかり無く申しますが、
思想的な侵略です。
 
そしてさらに思いついたのですが、
関数型プログラミングには「余罪」があります。
その推進者たちは、
・変数を宣言するのはモダンでは無い
と主張しました。
しかし現在、「宣言型」(こちらは一歩引いた名前で、
実用的な場合の事例を必ず記載し、バラ色を見せる説明も
しないので、「技術的」だと思います。)という分野が
有り、
そちらでは、
・変化するものは宣言すべき
としています。それによりテストを極限出来るのでしょう。
 
もし、関数型に心酔し、来るべきやり方に備えようと
している人間なら、
・変化するものは宣言すべきで無い
・関数により隠蔽すべき
とする方を「モダン」だと思い込んでいる可能性が
あります。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • COBOLを放逐できない原因もこれかも知れません。
     
    COBOLは千バイトもメモリ(仮想)を使うと怒られる環境での
    言語で、隠蔽などまったく出来ず、結果として宣言型寄りなのです。
    (もちろんCOBOLの悪いところは沢山有ります。でも大抵は
     メモリが使えない(使えない場面に最大限に特化している)事に
     起因します。)
     
    せっかく宣言型寄りなのに、変に関数型信奉者(時代的に
    言って、今はそういう人が指導的立場にいる事が多い。)
    にいじられ、改悪され過ぎて使えなくされてしまうので、
    放逐できないのでは無いでしょうか?

  • by Anonymous Coward on 2020年10月11日 13時06分 (#3904641)

    手続き型、静的型付け、動的型付け、オブジェクト指向、関数型。
    方法はいろいろあるが最初に触れた、ないし最初にいいなと思ったものに慣れるもの。
    そしてそういう物を好むようになるもの。

  • by Anonymous Coward on 2020年10月12日 11時46分 (#3904981)

    愚痴を述べる暇があるなら、自分で完璧な設計思想の言語を作れよ。
    コンパイラなんて簡単に作れるのだから、まず一歩を踏み出せ。

    #完璧なものを求めて永遠に完成しないものより、不完全でも動くものの方が無限倍えらい

    • by dotkuwa (9387) on 2020年10月14日 18時57分 (#3906561) 日記

      関数型は宣言型から一番遠い(Wikipediaが言っている事とは違うが)と主張しているだけで、別に言語は今ので十分だと思います。

      >総称としての宣言型プログラミングは関数型プログラミング、論理プログラミング、制約プログラミングを含む。
      >宣言型プログラミング Wikipedia日本語版
      と有りますが、後2つはともかくとして、関数型が宣言型なんてあり得ないと思う、と主張しているだけです。

      言語は、今あるもので十分満足しています。
      ただ、有りもしない物(関数型プログラミング)のせいで、自分の評価が下げられる(有りもしない素晴らしいものより劣っているとされるため)のが承服できないだけです。

      親コメント
      • by dotkuwa (9387) on 2020年10月16日 20時30分 (#3908025) 日記

        ウィキペディア 日本語版の
        ・宣言型プログラミング

        ・命令型プログラミング
        ですが、
        ・(たとえば)前者であるscala言語と後者wwであるjava言語で、
         パラダイムがleapする程の差異はどこから出ているのか
         皆目、皆目、見当がつかない。
        ・そもそも、後者の言語からも現実的な宣言的解法が、実際に
         作り出されている(オブジェクト志向とか)のでは、
         無いか?
        とか疑問はいくつも浮かびますが、自分はとにかく、
        ・関数型プログラミングは、最も宣言型の光から遠く、その
         恩寵を受けない。
        言語であると主張したいです。
         
        さて、
        関数には、陽関数と陰関数が有り、後者の方が記述の能力が
        上です。これは学術的事実です。
        そして、
        ・宣言的というのが、陰関数を基礎としているのではないか?
        という仮説を立てます。
        さらに、
        ・関数型プログラミングは、陰関数を極端に嫌い、陽関数と
         そのチェインを称賛する。
        ・状態を嫌い、それの宣言を嫌う。
        ・それゆえ、関数型プログラミングは、宣言型プログラミングの
         太宗である「宣言部分と状態を分離」する事が原理的に出来ない。
        のを事実とします。(自分はそう信じています。)
         
        関数型プログラミングでは、状態はとにかく(陽)関数に隠蔽する
        だけです。まぁこれを止めたら手続き型言語となんら変わりなくな
        ってキャラが立たなくなってしまうので、
        仕方のない事なのかも知れません。(どうかとは思います。)
         
        前に、通勤途中の満員電車で、変な女性が無理やり自分の立っている
        足場を払い、自分の足場にしてしまった事が有りました。
        自分は一腕一足のひいひい様になり、皆が降りる駅まで大変でした。
        でも腕で支えていたので、助かりました。
        関数型プログラミングはどうでしょう? なぜ別に支える何かも
        ないのに、陰関数を無闇に嫌い、陽関数だけで「分かりやすさ」を
        なんの根拠もなくわめくだけです。
         
        この光なき獣は、とても宣言型プログラミングでは無いと
        強く思います。

        親コメント
typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...