英語圏ではかなり前からErlang/OTPを開発し続けることのリスクについて語られていたが,具体的な弊害が出て来たので,単なるメモ.日本では起こり得ない未来だと思う.
COBOLのように需要が逼迫しているのに人材の供給が増えず需給ミスマッチが起っているわけでは無く,需要も供給も増えないという状況下でわずかながら需要が上回っている質の悪い状況がErlang/OTPに起きている.特に深刻なのは高価な若手エンジニアの採用が絶望的に難しいという現実だ.Haskellが台頭して数年経ちScalaがメインストリームの先頭を突っ走る2013年において全く別の関数型言語もどきを勉強しようとする若者はよほどの物好きしかいない.20~30歳のErlang/OTPエンジニアを雇うのはそれほど難しい上にコストがかかる.優秀な30代前半の若手エンジニアを雇いたいという企業の思いとは裏腹にErlang/OTP新たに学ぶ若者は絶滅寸前だ.
とても優秀な若手を雇用できるチャンスが巡って来た.採用担当者はこう尋ねる.「Erlang/OTPは習得していますか?」「もちろんRuby/Scalaはお手の物です.Haskellもある程度可能です」「もう一度伺いますがErlang/OTPまたはCは習得していますか?」「申し訳ございません 未習得です」
愚問だ.
もう何年もErlang/OTP界隈で新しいモノが生まれたと言う話しか聞かない.こんな事を言えばErlang/OTPハッカーは激怒するかもしれないが,しかし現実にGHCやPyPyやJVMに比べればこの10年の間にErlang/OTPから生まれたものは錚々たるものだが無名だ.何かしらの最適化にしても型システムにしても,ハッカーが新しいモノを試す土俵にはいつもGHCやPyPyやJVMが選ばれて来た(そして苦労する).
最高の理由ではないだろうか.
10年前にErlang/OTPを開発していた人たちはわりといた.実際にシステムがデプロイされてから苦労しないために、Erlang/OTPは最適だった.そして今はどうだろう.自分たちが夜中にアラートで起こされることがないという理由「のみ」でErlang/OTPで開発し続けている.他に理由など無い.Erlang/OTPで開発する理由は自分たちの過去の不安定なシステムを維持しなくてもいいという理由のみだ.
控えめに言っても,そういう言語は楽でいいと思う.LLやJavaとは決別し,真夜中の自分たちにとって最適な選択をする.今すぐにだ.広まりすぎた言語のように手遅れになる前に.
Remember scientific computation are mostly based on FORTRAN libraries.