Scribble at 2022-07-17 12:44:30 Last modified: 2022-07-17 12:46:37

添付画像

Interface 2020年5月号高性能・安全・高効率なプログラミングの世界 C/C++後継モダン言語の研究[事典付き]

机の整頓と掃除をしていたら、『Interface』が出てきた。たまに面白そうな特集があると買っているのだけれど、それほど熱心に目を通してはいないため、改めて開いてみると思うことが幾つかある。

本号は「モダン言語」を特集していて、「モダン言語」とはすなわち「C 以降のプログラミング言語」のことである。よって、C++ も入るわけである。まず、この視点の置き方に唖然とさせられる。2020年の雑誌で C 以外のプログラミング言語を知らない人を対象に書いているからだ。そして「C 以外を知らない」という条件は「C 以降」にすら限定されておらず、付録記事(冊子としての付録ではない)の「プログラミング言語事典」(「辞典」と書くべきではないか)には、Rust や Go だけではなく ALGOL や FORTRAN も掲載されている。かといって、C 言語だけを学んだ新入社員向けの記事という体裁でもないのだから、要するに『Interface』の一般的な読者を対象にしているとしか思えない。

これは、或る意味では面白いことだ。僕らは気軽に「ロック・イン」と言いつつビジネス上の是非とは関係のない特定技術や特定ベンダーとの関わりを表す言葉として、ほぼ「癒着」とか「馴れ合い」と同義語であるかのように毛嫌いするわけだが、こうしてあからさまに C という一つのプログラミング言語にロック・インされてしまっているような集団が日本にいると想像でき、そして彼らの事実上の〈会報雑誌〉まで公に出版され続けているのだから、これは一概に「ガラパゴス文化」と嘲笑するべきことだとも限らない。

なぜなら、ガラパゴスの収益構造が維持されているゾンビ企業どうしの関係であれ、或る与件にもとづくシステムの設計というフェイズと、そこから生み出される情報システムという実装なり成果物とを結びつける「プログラミング」(ここでは仕様の策定からコーディングやテストまでを含む)において、C という特定の言語を使い続けていても大きな問題がないという事実を示しているように思うからだ。もちろん、僕はこうしてタイプしながら引きつった苦笑いを浮かべたり『Interface』の記事に嘲笑の眼差しを向けているわけではない。皮肉や当てつけを書いているわけではないのだ(確かに、それがいったい学問としての情報科学に何の貢献をしたのかとか、国際的なスケールで言ってビジネスとしての資産価値にどれだけの貢献をしたのかという皮肉を書くことはいくらでもできるわけだが)。

繰り返すと、与件を何らかの成果物として〈かたちにする〉技巧としてのシステム開発にあっては、いま現在でも C は有効である。ということは、逆に言うとプログラミング言語として大きな制約や欠陥を抱えていない限り、他の言語でも同様に有効であるということにもなろう。したがって、一定の用途に応じて新しいプログラミング言語が登場し、現在では本号でも特集されている Rust や Go のような特徴をもつ処理系が色々と今後も出てくると思う。だからといって、そうしたトレンドの推移は、本質的に Rust や Go で実装できることを C や FORTRAN では実装できないということを意味するわけではない。

過去によく使われた(そして今でも使われている)言語だけに習熟しているような「化石」と呼ばれる人々であっても、現在の新しい言語を使っている環境においても一定の貢献ができる。それはつまり、C 言語を知ってる人が Rust を習熟しやすいという意味だけではなく、[与件] -> 設計・実装 -> [成果物] というフローにおいて、設計や実装のフェイズで行うべきことがなんであるかを、特定の言語に依存しない考え方(これが本来の「プログラマ」の技能である)で解決できるということだ。

もちろん、そういう意味でのプログラマとして有能なら、だがね。他の言語、あるいは年齢やキャリアの年数にかかわりなく、しょせん大多数の凡庸な人々は、どういう言語で何年働いていようと、作業員のままだ。

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

冒頭に戻る


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

Twitter Facebook