ミ○クボーイ「Fortran」
思いついたので書きました
A「最近は世の中に色んな計算言語があるよな?」
B「せやな。まぁ、用途や機能性とかで言語もかなり多様化してきとるなぁ」
A「それでな、俺のおかんも最近プログラミングをバリバリやっとんねん」
B「え、お前のおかんが!?」
A「そうなんや」
B「え、え、ちょっと待って! お前のおかんの職業は何やの!?」
A「主婦や」
B「昨今の一般家庭の主婦はプログラミングなんかしないって! なんでお前のおかんはプログラミングに手を出したの!?」
A「そりゃもう趣味やろ」
B「普通の主婦は趣味でもプログラミングはしないやろ! 主婦がしとる趣味って、奇抜なとこを突いてもせいぜいボルダリングがええとこやって!」
A「まぁ、その辺の事情は置いておくとしてな」
B「置いとくんかい、めっちゃ気になるわ……」
A「いやな、俺のおかんがめっちゃ好きな言語があるらしいねんけど、その名前がどうしても思い出せんのやと」
B「好きなのに思い出せんってどうなっとんの!? ヤバイでそれ!」
A「それでな色々聞いてんねんけど、よう分からんのや」
B「分からへんのか。ほな、俺がな、お前のおかんの好きなプログラミング言語を一緒に考えてあげるから、なんか特徴言うてたか教えてみてよ」
A「なんかな、その言語は、めちゃめちゃ高速で作動して、科学技術用の数値計算にはうってつけらしいねん」
B「そりゃもうFortranで決まりやないか。めっちゃ動作が早いという点では、FortranかC言語かでかなり迷うけど、より数値計算に向いておるんはFortranや。こんなんプログラミングをやってたら誰でも分かるやん」
A「でも、分からへんのや」
B「何で分からへんの!?」
A「いや、俺もなFortranやと思ったんやけど、おかんが言うにはな、その言語はインタプリタ言語らしいねん」
B「あー、そりゃFortranとちゃうなぁ! Fortranはコンパイルが必要不可欠なんやから! Fortranならターミナルの窓を2つ出して、片方の窓でviを使ってソースコード編集して、一旦保存した上でもう片方の窓でコンパイルして実行してバグチェックするやんか! それでFortran使っているやつは、みんなとりあえずa.outを生成して『Hello world』をwriteかprint文で表示するのが登竜門になっておるんや! ていうかインタプリタ言語でめっちゃ高速ってすごいな!? え、ほなら何の言語やろ? お前のおかん、他にも特徴を言ってなかった? もうちょっと教えてや」
A「えーとな、その言語は、ライブラリがめっちゃ充実しておって、有志が作ったfunctionやsubroutineがネットにゴロゴロ落ちていて、includeとcall文を使って簡単に取り入れられるんや」
B「そんなんFortranやないか。ライブラリが充実している言語はpythonとかRとかめっちゃあるけど、その中でもfunctionやsubroutineをincludeとcall文を使って呼び出すんはFortranそのものやんけ。こりゃもうFortranで間違いないやん!」
A「でも、分からへんねんって」
B「ここまでFortanの構文を使ってて何で分からへんの!?」
A「いや、俺もなFortranやと思ったんやけど、おかんが言うにはな、どうもその言語は歴史がむっちゃ浅いらしいねん」
B「あれ、それはFortranと違うなぁ! Fortranの歴史はめっちゃ長いんやから! 情報関係の研究している俺の親父はFortranのことを化石とか言ってたぞ! Fortranは1954年生まれで、そんじょそこらの人間よりよっぽど年寄りなんやからな! FORTRAN77とかいう40年以上前の形式とか未だに現役やぞ! Fortran90を使っているやつがFORTRAN77を古臭いとかたまに馬鹿にしとるけど、Fortran90ももうすぐ生誕30年や! その長い歴史に支えられてFortranのライブラリは充実しとんねん! ていうかなんでその言語は歴史が浅いのにその辺が充実しとるの!? それもう近年めっちゃ大流行している言語ってことやんか! え、なんやのその言語!? もうちょっとなんか情報ないんか!?」
A「えーとな、その言語は、デフォルトが1始まりの配列構造をしておってな、blasやlapackと合わせることで、配列演算や行列計算も楽々できるらしいんや」
B「そりゃもう完全にFortranやないか。配列をblasやlapackで高速演算に使えるんはC言語でもできるけど、あっちは配列がゼロ始まりが基本やからな。こりゃもうFortran以外ありえへんって」
A「分からへんねんな」
B「絶対にFortranやって! 何で分からへんの!?」
A「いや、俺もなそれを聞いてFortranやと思ったんやけど、おかんが言うにはな、その言語は変数や配列を宣言なしで自由に使えて、ユーザーの思い通りの挙動をするらしいや」
B「ほなFortranとちゃうやないか! Fortranは宣言しないと変数も配列もなんもかんも使えないんや! implicitで多少は宣言の省略はできるけど、基本的に使うもんは全部ずらずら宣言文で示さなアカンのや! モジュールと宣言文がソースコードの上の方でめっちゃ長く必要やから、ソースコードを見ててもメインのプログラム部分に中々たどり着けないのがFortranの醍醐味やないか! しかも、ユーザーの思い通りの挙動をするって、何やその夢のような言語!? 大抵の言語はユーザーの思い通りの挙動を一切しないのがお決まりやないか! Fortranはまずバグでそもそもコンパイルに成功しない上に、コンパイルできて走らせてもいつの間にかSegmentation Faultで止まるっていうことを誰しもが経験するんやから!」
A「だから俺も分からんくて困っとるんや」
B「なんでここまでFortranと特徴が一致してるのに要所要所がFortranと全然違うの!? それにしても、高速で動いてインタプリタ言語で最近大流行してそうでユーザーの望む挙動をする言語ってありえへんくらい凄いやないか!? その言語に俺も乗り換えたいわ! え、ちなみにお前は何の言語か心当たりは本当にないのか?」
A「俺も本当に何の言語か分からへんから、俺のおとんに何の言語かの予想を聞いてみたんや」
B「ほう、それで?」
A「おとんは首を少し傾げながら『エスペラント語やないか?』って」
B「親父、ここまでの議論を何も理解しとらんやんけ!! もうええわ!
どうもありがとうございました」