2018年06月11日に初出の投稿

Last modified: 2018-06-11

Why Crystal Is My Next Language

こういう記事を読むたびに感じるのは、プログラミング言語というものについて原理的な「進化」なり「向上」なり「発展」を語りうる根拠というものは何なのかが、いまだにクリアに議論されていないように思えるという疑念だ。言語のさまざまな特性、例えばプログラミングのパラダイムとして OOP を許容する方が「正しい」とか「進化している」と言い得る根拠は何か。そして関数型のパラダイムを許容することにも同じ根拠で「正しい」とか「進化している」という評価が可能なのか。更には、そもそもプログラミングのパラダイムとしてそれらの様々な手法を許容すること自体が優劣を論じるべき指標になっていると言えるのかどうか。

正直なところ、現状でこうした末端のプログラマが適当にお喋りしているだけの些末な指標だけでは、何を書いていようと、遅かれ早かれオートメーションのトレンドが押し流してしまう可能性がある。たとえば、言語 A は言語 B よりも「生産性が高い」などと言ったところで、そのうち登場するであろう、RAD ツールのようなオモチャはもちろん、IDE すら必要なくなるであろう自動化プログラミングによって、ホモ・サピエンスの基準でコードを何行で済ませられるなどと言ったところで無意味になる。なぜなら、自動化プログラミングの本質は「プログラマによるコーディングや設計」を不要として、仕様・要件の側からの入力に対して最適化された最速の実行コードという出力を返すことに尽きるからだ。そのようなステージにおいては、Python の方が「書きやすい」とか、Perl が「手に馴染む」などという、たかだか10本の指と一個の頭でプログラミングするしか能がないサルが持っている基準などクソでしかなくなる。そして更に、サルの中でもマシな個体が「たくさん目玉さえあれば」などと法則を語ったところで、サルの目玉が1億個あっても勝てないアルゴリズムが登場する時代もやってこよう。

そういうものが実用化されて、「われわれとセキュリティサービス」とか「われわれと検索サービス」のように、利用者や発注者に対して「サービス」と呼ばれるハードとソフトと UI の組み合わせとがダイレクトにフィードバックして仕組みを向上させられるようになれば、これはこれで一つの人類の成果であろう。ベンダーだの IT ゼネコンだのコーダだのプログラマだのが介在することに、未来永劫も合理性や正当性があるという説得力のある根拠はないのだ。

よって、計算論あるいは情報理論として何か動作原理が破綻していると証明されたわけでもなく、大多数の稼動プラットフォームにおいて著しいパフォーマンスのデメリットを抱えているわけでもないなら、Perl だろうと Gauche だろうと Ada だろうと必要に応じて使えばいいし、使い続ければよい。そして、大多数の事例においては、それゆえに多くの開発者が C なり Java を選んできたという実績があるのだろう。僕らも色々なベンダーさんと電通案件や博報堂案件で付き合いもあるが、「Ruby で書いてないの? ヒャッハー! ダセー」などと5年前に言っていた小僧のベンダーが、この5年後まで事業を継続できていた試しなど、殆どないのである。つまり、こういう(Ruby だろうと Go だろうと、たいていはクズみたいな)プログラムをナウい言語で殴り書きするように組み上げては、事業継続性のかけらもなく「書き逃げ」してゆく卑怯者たちを、僕らはプロの開発者とは呼ばないのである。プロの開発とは、事業継続性を維持するプロの経営によって支えられるべきものであり、そういう下支えがないなら、株式会社を名乗っていようとフリーランサーと同じである。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook