昔の信じられないほど小さいコンピュータで在庫管理システムを作った話
読者の皆様、初めまして。
団塊の世代のちょっと下で、いまだに現役のエンジニアしてます黒山羊と申します。
パソコン黎明期の話は、結構見かけますがそれより10年前はどんな風だったかという話はあまり見かけません。多分もう現役の人はほとんどいなくなっちゃたんでしょう。
今から40年以上前の経験談も面白いかと思い綴ってみたくなりました。もちろんまだ現役ですので最近の話題もでてきます。
40年前の話と今の話を比べてみてください。あんまり変わって無いかもしれないですね。
それではお付き合い宜しくお願いします。
これは1973年の話です。当時筆者は、大学4年生で来年から就職する会社でアルバイトをしていました。今でいうとインターンですね。
必修科目の卒業論文以外の単位は3年までに全て取得していたので、サラリーマンのようにほぼ毎日出社していました。
女性社員の方は、中途採用の正社員だと思ったらしく(8月から出社したのと30歳くらいに見えたそうです)毎日お茶を出してくれました。インターンのくせに図々しくてごめんなさい。
ここでの仕事は、某照明器具の販売店の在庫管理システムを作成する事でした。
1000種類程度の商品の在庫状況を把握するのがシステムの目的です。
さすがに記憶が曖昧ですが、商品の登録・変更・削除、商品の入庫(仕入)数、出庫(販売)数の入力と商品の在庫一覧表出力が主たる機能でした。
プロジェクトは9月から12月までの4ヶ月間で業務分析から要件定義、システム設計、実装、客先納品、客先稼働支援を筆者1人で実行するというものです。
もちろんアドバイザーとして先輩が1人付いてはいますが、客先に行く事も無く手は全く出しません。小さい仕事は基本的に1人でやるという1人プロジェクトが結構多かったですね。
仕事の内容はさほど難しく無いのですが、実装ターゲットのコンピュータが今考えるとちょっと信じられないぐらい脆弱なものでした。当たり前ですが当時はそう思っていませんでした。
全体は一体型で、大きなタイプライターにコンピュータが内蔵されているものでした。ちょっと前に有ったオフコンの走りでしょうね。
ただし主記憶装置が電子回路では無く、不揮発性メモリー(今で言うフロッピーディスクのようなもの)でした。しかも容量が数Kワード(昔はワードマシンが多かった)しか有りませんでした。
これでプログラム、データの全てを保持する必要が有ります。外部記憶媒体はプログラムロード用の装置しか付いて無かったと思います。
この当時は、主記憶装置はコアメモリーの物が多かったと思います。主記憶装置がフロッピーディスクタイプのコンピュータを使用した経験は後にも先にもこれだけです。
プログラミング言語はアセンブラでした。
当時、FORTRAN、COBOL、ALGOL等コンパイラーは有りましたが、こんな小さなコンピュータで動くCOBOLは無かったと思います。
事務処理なのでFORTRANは向いていないので、アセンブラだったのでしょう。
これだけの処理を詰め込むには無理が有ったのかも知れませんが、実際にプログラムを組んでいくと場所が足り無くなってしまいました。
このコンピュータのアーキテクチャでは、使用するニーモニックの組み合わせでニーモニック間に空き領域が出来ます。
その空き領域の先頭にJUMPして少しコードを書いて次の空き領域にJUMPするという事を繰り返して(PATCHですかね)ほとんど全ての領域を埋め尽くしてプログラムを収めました。
後で誰も直せないし(もっともアセンブラで書いたプログラムは他人は直せないですけど)、拡張性0ですよね。保守性を考えたら0点のシステムでした。
このころは保守性は考えなかったですね。何年か経ってシステム更新という時には、コンピュータごと入れ替えるのが当たり前でしたので。コンピュータを取り替えるとアセンブラは全く異なりますので、全部組み直しです。
在庫一覧表を出力する為には、商品コードでのSORT処理が必要になりますが、SYSTEM CALLのようなものが有って、それを使用しました。
当時、SORTは自前で書く必要が有るコンピュータが多いのですが、これを書いていたらプログラムを収め切れませんでした。
メモリーがフロッピーディスクなので1000件の並べ替えには一時間以上かかりました。
今ではデータの永続化には、何らかのファイルシステムやデータベースを使用するのが当たり前ですが、このアーキテクチャでは、永続化媒体に直接読み書きしているので、最初からメモリーが全て永続化されています。従ってファイルシステムの概念が有りません。最近のIN MEMORY DATABASEと全く逆の考え方なのが面白いですね。
今思えば漫画みたいなシステムですが、お客様はこれでやっと在庫の把握ができるとたいそう喜んでいました。
当時は自前のコンピュータを持つお客様は少なかったので、誰も変だとは思わなかったのでしょうね。