嫌われプログラミングの代弁者

「何で頭ごなしに嫌う人間が居るのか」を色々考える

初歩的なLISP言語の大変さ 2

進歩

私が初めにたずさわったシステムの中で、飛び抜けて古かった商品のシステムは、

  • 全部磁気テープ(以下テープ)で行う
  • マスター(元帳)もテープ
  • 処理もテープ
  • 初めから順に書くだけ、読むだけ。一度書いたら二度と変更はしない。
  • テープを替える専門家が常駐していて、ワークのテープなどは、使い終わったら、別の用途で再度使い回す*1
  • 多分、マスターテープは毎日、別のボリューム(巻)になるはず。(テープは一度書いたら二度と変更はできない為)
  • プログラムの関数としての入力は処理日付程度、出力は復帰コード程度
  • テープは副作用として読み、処理をし、別のテープに副作用として書く
  • テープに書くデータ(以下レコード)はCSVの様なもの*2
  • テープは複数本読む事も可能で、レコードを何個か先読みも可能
  • 入出力テープの他にワークのテープを複数使い、ソート(並べ替え)も出来た*3

という事をしていました。

初歩的なLISP言語のリスト構造の代わりに、何行ものCSVの様なレコードを磁気テープに置くという点は同じでしたが、

やはり「副作用が無い」という縛りは度し難く、読み書き(副作用) を本質的な実行内容とする方向に行ったのは、初歩的なLISP時代と比べ正しく進歩だと思います。

 

結論

もう、テープのみを複数本使った処理を使う人もいないでしょうから、今後これでプログラミングが嫌いになる人は出ないでしょう。

 

*1:初期化(フォーマット)は可能。今使っているLTO9と同じ!

*2:ただし、CSVのカンマ文字すら勿体無く、桁数で「何文字目から何文字目までは何々項目」とかにしていた。していたが、やっている事は完全にCSVと同じ。CSVの方が区切り文字を使う分だけ富豪!

*3:ただしクイックソートではなかったと思われる。クイックソートという「進歩」も、ハードウェアの更新(HDD(DASD)の登場)に裏付けられた、正当な進歩であったという事だと思う。