ほんとにここ数年で急激に人気がなくなってった気がする、と思ってたものがあって。
RoR なの。なんかほんと途端に聞かなくなった気がする、と「気がしていた」のだが、Google Trends でおよその傾向がわかるんだね、初めて使ってみたよ:
「Python で WEB」というのが昔からそれほど人気を博してこなかった話は、ワタシはそれとなくしたことがある。Flask・Django という、Python の中ではメジャーな WEB Framework も、御覧のとおりずっと負け続けであった。node.js 系がハヤリの今はそれらにだって勝ってないし。そしてどれだけ RoR が強かったのか、ということがわかるのだが、2020年の急激な落ち込みはこれはなんだ、と。ワタシがおぼろげに感じていたそれが、こうやってデータとして見れてしまうのな。
これで「なんとなく感じてた」のを比較的客観的と言えるデータで確証出来たということになるのだけれど、いや、「なんで?」てことよ。何か事件でもあったのか、というほど不自然な落ち方だよね。なんかあった? パンデミック? そういえば RoR だけじゃないね、落ちてるのは。落ち方が飛びぬけて激しいだけか。にしたってちょっと尋常じゃないこれは。
「Python が急激に人気が増えた」のはこれは人工知能分野でハネたからだが、別にそれがなくても十分に人気言語であった。だから、「Python 人気が原因で Ruby に翳りが」と思うならそれは全然違う:
「なんとなく感じてた」理由は、何かの調べもの時にみかける頻度が減ってる、ということとともに、youtube とかそういったところで「RoR is dead」みたいな見出しを良く見かけるようになってきてたから。けどねぇ、ところどころで「嫌われている」みたいなキーワードも見かける割には「どういうところが」に納得出来る主張が見つからんのよ。「代替品が強くなってきて、積極的に使う理由が減ってきた」ことには割と皆答えてるんだけどね。Perl と PHP が徹底的に嫌われるようになったのと同じ流れに置く人もいるみたい。でも、その人も「なぜ嫌われるようになったか」の理由部分ではワタシが納得することは書いてくれない。経験値が低い人なんだろう、どの「批判」も「いや、それ Python にも当てはまるから」ばっかりで、意味がわからない。
なんなんだろうねぇこれ。
ワタシには Ruby 経験は、2011年の約3週間の検証時間しかない。この3週間は、「まったく同じネットワークアプリケーション(JSON RPC)を python と ruby で作って比較する」という結構ちゃんとどっぷりやった。けどほんとにそれだけ。その期間に…、まぁこれまでずっとぼかしてきてて、今回もぼかすけれど「ruby が大嫌いになった」。理由は今回も言わない。言語そのものへの不満がなかったわけではないけれど、そんなことが吹き飛ぶほどにどうでもいい「言語とは一切無関係なこと」が理由なので。言えないよ。言わない。とにかくワタシは、本当は今でも Ruby は大嫌い。でも「良い言語かもしれない」ことは知ってるし、「言語そのものに対する世間一般の評価」はずっと気になってはいたのよね。
たぶんねぇ、5年くらい前は、そこまでネガティブな話はあまり聞く機会がなかったと思うよ。でも最近は結構よく見かける気がする。
2022-06-04追記:
こういう感情的なことを書いてしまった後は必ず少なからず後悔するのだよなぁ。だったら書かなきゃいいのに、と思わないこともないが、そういう性だ、諦めている。
Ruby が嫌いだだの、嫌われる何らかの理由があるダメな言語なのかもしれないだの、人気を失いつつあるだのが「たとえ事実だとしても」、に続く話はね、不可欠だったんだよ、でも書き忘れてしまっていた。
「現在実稼働している RoR が、さもいなくなったように錯覚しちゃダメよ」がそもそもの第一。ワタシの理解が正しいとするなら GitHub が RoR で書かれてる、ハズ。今はもう別のものに乗り換えてしまった、とかって話があるともないとも知らないけれど、少なくともこういう巨大なシステムが RoR で稼働している/していた、という事実だけは絶対に踏まえなきゃダメなのよ。たとえば「今から新たに学習しようとする言語」として選ぶ Ruby や RoR は、これは確かに「そういう意味だとオワコン」なのだろうけれど、それでも稼働中のシステムの多さから言って、RoR スキルを身に着けたエンジニアにはまだまだ需要があるだろうよ、てことね。
そして、なんであれ「GitHub はとても使いやすい」でしょ。ところがである。「Google + Python」という組み合わせが生み出した「ダメ UI の数々を見よ」てこと。Goole Code とかそういった、あの「かっちょわるくてダサくて使いにくい WEB アプリ」は、Google が Python で作ったフレームワークで作られたものたちであった。
そう。「作るために使った道具」と「作られたもの」は別物。PHP がどんなにダメ言語だろうと、エンドユーザの幸せに繋がっているなら、それは「単に開発者が苦労しただけ」の話。だったらそのエンジニアたちには最大級の賞賛を与えるべきだ。たとえば「WordPress で作られたブログの読者」にとっては PHP のダメさなんか無関係なのと同じこと。少なくとも RoR、PHP が世界に対して行った貢献は、「Python で作られた WEB フレームワーク」のそれとは比較にならないほど大きい。
みたいなことは、最初の段階で書かなきゃいけなかったなぁ、という反省でしたとさ。
「作るために使った道具」と「作られたもの」は別物、の例でそういえば思い出すのが「Bourne-Shell」ね。
bash の元になったシェルであり、なおかつ「Unix におけるほぼ最古のシェル」。そして bash が「Bourne Again!」という掛け声で始まったことでわかる通り、これは「使いやすさの上で大変優秀なシェル」であった。(現存するものだと本当に最古。)
現代的なシェルとは違って、bourne shell はログインシェルとして使うのには向かない。コマンドラインエディッティングがほとんどないので、たとえば tcsh などが流行りだしたらログインシェルとしては専ら tcsh が使われ、sh は「スクリプト言語」としてのみ使われた。bash が世界制覇する前の世界はそんな感じ。いずれにしても、「かくして、bourne shell ベースのシェルが世界になった」。
ところがである。この「Bourne-Shell」、別の意味でとても有名である。すぐに読めるものだと例えばこれかな:
ALGOL 好きだったのか、C が嫌いだったのかはわからんが、Stephen Bourne は「ALGOL のように記述出来るマクロ」を使って bourne shell を書いた。C なのに。そしてこれが「保守したくないプログラム」として有名になり、「やったらいかんこと」の代名詞のようになった。確か JARGON でもネタにされてたハズ。カーニハンだったかもこれについて言ってたような気がするし。
「終わりよければすべてよし」という言葉もあるでしょ。結局のところは「利用者の幸せにつながってればそれでいい」というところなんだよ。つまりは「Python を使うオレ、エラい」じゃなくてさ、何を使おうが、何で作ろうが、作ったものが「使えねー」ものなら、そりゃ「Ruby 使いのあのアホよりも」エラくなんかない。(特定の言語を攻撃するってのはそういうことである。)
2022-06-22追記:
perl の話はちょっとだけしときたい。
「化石」として忌避される COBOL、「お気楽ご気楽に見せかけた地獄」として嫌われる VBA、「高級言語でない」ことが理由で躊躇される C やアセンブラみたいな特殊な下位を除くと、まさしく perl と PHP が、現代においては「最も嫌われている(高級)言語の代表例」とみなされることが多い。
ただ、PHP と perl の嫌われ方って、かなり性質が違うと思う。PHP はね、ワタシの感覚としては、「愛のない言語」って感じよ。これが嫌われるに至った理由はワタシでもいくらでも思いつく。けど perl は「尖り過ぎていた」ことだけが嫌われるに至った理由だと思うよ、大事な欠けてるものは案外少ない。
今ワタシが何を言おうとしてるかというと。「PHP は明日なくなっても全く悲しくない」(ブログが wordpress なので困ることは困るが泣きはしない)が、「perl には最低でもあと30年は延命してもらわないと困る」てことなの。
おそらくワタシと同世代か上の世代(かそもそも Unix 文化に馴染んでいる人)にはわかってもらえると思うのだけれど、何かのタスクをシェルスクリプトでこなそうとする場合、依存するツールの使用頻度って、およそ次のような感じになるんだわ:
- grep
- sed と場合によっては cut
- awk
- perl
まず「システムに存在している可能性が高いもの」としての選択でのこれら、である。そして、結構な確率でまずは 2. までの grep, sed で済ませられて、3. 以降は「grep, sed だけで済まない場合」として使うことになるわけなんだけれど、awk でもかなりのことが出来るので perl にまで至らなくても用を足せることが多い、てこと。awk で辛いほどの複雑なものなら perl を使う。
そうなんだけれど、「システムに存在してる可能性が高いものとしての perl」に段々根拠が薄くなってきている、てことはわかるでしょ。最近はほんとにシステムの python への依存度が凄まじいことになってるし。でも「それでもワタシは perl」なのだ。
「perl はワタシも嫌いである」は真実。そして、ワタシ含め多くの人々にとっての「perl は嫌い」は、これは「それなりの規模の perl スクリプトのメンテナンスがイヤだ」という一点に集約できる。「人の書いたプログラムはワカラン」の代名詞が perl であるというほどに、「perl のフリーダム」は極端で、流行っていた頃にまさに美点とされていたことでもあったのだ、この「記述の自由さ」は。そしてワタシも含め多くの人にとって、「perl で記述するワンライナーは便利過ぎる」のである。そしてこの一点こそが「4. perl の代替としての 4′. python」とならない理由なのだ。
python でワンライナー、なんて、まさに反吐が出る。これは非常に不愉快な仕事である。そういうタスクは今でも perl でやりたい、ワタシは。そういう perl はワタシは今でも好きだ。
なんてこともね、言っといたほうがいいかなと思った。おそらくこれに共感する人は相当多いハズ。