見出し画像

私のデジタル遍歴1 ~パーソナルコンピュータ~

デジタルに早熟だった私のデジタル遍歴。
 
プログラミングに興味を持つのは早かった割には今、会社で「DX」とか言われても興味なく、「知らんわ、便利なツールが登場したらその時に利用したらいいよ。」と思っています。
 
パーソナルコンピューター
 
何と魅惑的な言葉でしょうか。今や職場で「パソコン」なんて言葉を使うと若者に旧人類認定されそうです。
 
中学生位からプログラミングには興味津々でした。
当時、最新のスタンダードとされたのはNECの「PC-9801」シリーズ。「16ビットパソコン」で、今に至るインテルの標準のベースになる「8086系」のCPUを搭載しています。中でも「VM21以降」というのが互換性の高いデファクトスタンダードのように扱われていました。

憧れましたが、私には手の届かない高級品でした。私は当時既にガラクタであった中古品を二束三文で買ってきてプログラミングに取り組みました。「PC-8801」。ザイログ社の「Z80」という8ビットCPUを積んでいます。

Z80は汎用性の高い優秀なCPUと言われていて、今でも家電品の制御に組み込まれているらしいです。初代ファミコンに使われていたCPUです。
 
当時の「パソコン」は、「これを使って何が出来るんだろう?」という夢のワクワクおもちゃでした。本体はドカベンの弁当箱かというほどに四角くて、大きい。起動すると「ウィーン」とか言って赤や緑のLEDが点灯したりする。もう最高です。
 
プログラミングは「Microsoft BASIC」で行います。ビル・ゲイツが唯一開発した物と言われています。
 
当時「マイコンBASICマガジン」というのがありまして。
日本各地のパソコン・プログラミングファンがBASICで作ったゲームプログラムを毎号掲載していました。
友達からその雑誌を借りては夢中で打ち込みます。

本の頁を見ながら打ち込むので一文字違うだけでも動かなかったり。O(オー)と0(ゼロ)を間違えていたりとか。
 
”run (リターン)” と押して期待通りのプログラムが動き出すときのワクワク感。
 
やがて本に載っているプログラムを動かすだけでは飽き足らなくなった私は、自分でも色々開発することにしました。
 
家にファミコンが無く、友達の家では必ず後ろでゲームを見ていた私は、「テトリス」を自分のPCでやってみたい、と思いました。
 
開発開始です。ですがそこは8ビットパソコン+BASICなので、スムーズなグラフィック処理などできようはずがありません。私はカタカナの「ロ」をブロックに見立て、テキストベースのテトリスを開発しました。1週間ほどで満足いく動きのものが出来ました。
 
大変満足してプレイしました。ところが、です。本来のテトリスは「じゃまブロック」が落ちて来たり、段々スピードが早まっていずれゲームオーバーになります。その機能がついていないので、永遠に続けられるのです。3時間ほどポカーンと口を開けてプレイした挙句、「もうええわ!」となってしまいました。
 
それを起点に、色々作りました。今でもCDに使われている「PCM録音」の原理を勉強し、大好きなビートルズの曲をフロッピーディスクに録音し、その波形をモニターに表示したりしました。
 
ランダム関数でコード進行を与えては適当に音を割り振って無限に音楽を作曲演奏していくソフトとか。今考えるとコンセプトだけで言えば相当時代を先取りしていたと思います。
 
段々8ビットパソコンの処理スピードに不満を感じるようになりました。かといって最新のパソコンが買えない私は「機械語」を学ぶことにしました。そもそも「機械語」って何てネーミングかっていう。
「ワレワレ ハ アナタ ノ トモダチ ダ」みたいな。
 
ようはCPUに与える元の命令を直接入力するということなのですが。当時のBASICは「BASICインタプリタ」と言われて、コードをコンパイルすらせずに命令語をひとつひとつ読みに行くので、処理に大変時間が掛かるのです。
 
CPUに直接与える命令を16進数で入力していきます。これがまた安物のハリウッド映画に出て来る「ハッカーのコンピュータ画面」みたいで興奮します。

私たちの身近なコンピュータの殆どに採用されている、メモリに順番に並べられた命令をCPUが読みに行って、演算をし、その結果をレジスタやメモリに格納する、という動作方式を「ノイマン型コンピュータ」と言いますが、まさにそれを直接操作する行為です。私が意図したプログラムをコンピュータがクロック周波数のスピード通りに実行してくれる。
 
芸は身を助くです。高校生でブラスバンドにのめり込んでいた私は楽譜倉庫の棚を整理するために勝手にデータベースソフトを作って、タイトルのアルファベット順にリストをソートして整頓したりしました。エクセルがまだ無い時代だったのです。
 
大学では卒論研究の時、C言語で動く有限要素法シミュレーションのソフトを作り、物性の解析に使いました。
中学の時に「アナタ ハ トモダチ」の機械語を学んだ私にとっては造作も無く、有限要素法原理解説の学術書と当時主流だったC言語のリファレンスマニュアルを参照しながらサクサク作っていきます。
 
そんな感じですが、今となっては「会社員といえど、コードくらい書けるようになってDXに貢献しなさい」とか会社に言われても全く興味が湧かず、「いやーあ、そういうのは苦手で・・・」とか上司に言ってははぐらかしています。
 
私が現在プログラミングに興味が無い理由を吐露します。上司にもそんなこと説明しないですが。説明しても1mmも理解されない自信があるので。
 
主流プログラミング言語と関連する汎用ルーチンのライブラリというのは日進月歩で変化します。5年も経ったらその前に習ったものなんか骨董品で通用しません。そうすると、本業でプログラミングをする人は、リアルタイムで変化していくシステムを自分の中にアップデートしていかなければならない。これは、大変なエネルギーがいることで、これでメシを食っていく、という覚悟があるからこそ出来ることです。
 
重要なことは骨董品のプログラミング言語でも何でもいい。一度プログラミングを手で覚えることで「システム思考」を身に着けること。つまり、新しいツールが登場したとき、ソフトウェア、ハードウェア、それこそ最近話題のChatGPTのような外部サービスでも何でもいい。「それぞれを組み合わせてどんなインターフェースでつないだ時にこんなことが出来ちゃうな」という発想を持てるようにしておくこと。「実際につなぐこと」は作業なので、その時のプロにお願いすればいい。実務エリアで働く一人一人のビジネスパーソンがその時のプログラミング環境を覚える必要は無い。というのが私の考えです。
 
でも、そんなことを上司に言っても「ん?何を言っているのか分からないな?パイソンとか入力できるようにしないとって言われているよ?ラズベリーパイとか操作している人たちもいるよ?」とか言われるので
「いやー、そう言うのは苦手なんですよー ハハハ。」と言って長靴を履いて工場の生産現場へと立ち去って行きます。
 

この記事が気に入ったらサポートをしてみませんか?