Scribble at 2022-12-02 16:51:16 Last modified: 2022-12-02 23:13:44

In contrast, Forth is literally a grassroots language; it has made its way in the world strictly on its own merits, lacking endorsements from the learned professors or distinguished looking textbooks from Addison-Wesley or Springer-Verlag. Forth was invented by Charles Moore, a freelance programmer who had worked on control and data acquisition applications in environments ranging from a carpet factory to the Stanford Linear Accelerator Center. Moore was familiar with many programming languages, including assembly, Fortran, COBOL, PL/1, and APL, but felt that none of them met his needs well. He experimented extensively with interpreters in the early 1960s, eventually hitting on the idea of using a stack to pass parameters and results between the interpreted commands.

A Forth Apologia

うーん。分からなくもないんだけど、僕に言わせれば C も Forth も popularity に大きな違いはあっても似たようなところがあると思うんだよね。つまり、C は「コミュニティ」呼べるようなものが存在しないのに広く普及している不思議な言語であり、Forth は強固なコミュニティがあるのに殆ど普及していない不思議な言語である。そして、どちらも初心者にとってはハードルが高いせいで、C については夥しい数のクズみたいな入門書が日本でもアメリカでも毎年のように出版されるし、幾つかの雑誌記事で初心者向けの連載記事が延々と書かれ続けている。かたや Forth は2000年代以降に日本では本が全く出版されていないし、英語ですら事実上の公式ドキュメントみたいなものが1冊か2冊ほど改訂されているだけである。つまり、情報の多い少ないという違いはあっても、これらはどちらもコミュニティについての異常(発散か収斂)を意味しているわけだ。したがって、どちらであろうと僕は技能や知識の社会的なプラットフォームとしてまともじゃないと思う。確かに C で実装された膨大な実績には強い説得力があるけれど、社会科学的なアプローチで C 言語についての知識や技能の共有とか継承という点を評価するなら、簡単に言えば C 言語を運用する人材という車輪を延々と再教育し続けているようなものだと思える。よく「車輪の再発明」というフレーズで、同じ機能を果たすプログラムを一から開発しなおす非効率さを揶揄するわけだが、僕が見る限りでは C の運用者にも同じことが言える。そのときそのとき有能な人材が新しいことをやるのはいいが、それが殆ど技能や知識として継承されないし、恐らく本質的なところでは共有もされない。開発ベンダーの中では色々とドキュメントや研修を続けているのだろうとは思うけれど、50年前から C を書いている技術者に指導されて、後から入社してきた技術者が数十年に渡って C のプログラミングなりソフトウェア・エンジニアリングを学んだり習得しているなんて事例は、どれほどあろうか(逆にそういう事例に限って Forth と同じく北斗神拳みたいな門外不出の話なのであろう。実際、そういう知識や技巧を述べた、公に出版された本なんて洋書ですら見たことがない)。

このような話は、C についても Forth についても別々の落書きで議論したことがあるけれど、どちらも結局は人の知恵や技巧に関する社会科学的なアプローチで批評すれば、同じである。

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

冒頭に戻る


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

Twitter Facebook