高卒プログラマーでも30年現場で戦えます。(2)C言語
高卒で、アセンブラによる組込制御のソフト開発からプログラマーデビューをした後、転職して今度はPC-9800シリーズ上でのパソコンソフト開発の仕事に就きます。
アセンブラ言語での仕事は、ソフトとハードが一体になった製品開発ですが、今回は社内プログラマーと言われる社内で使用するソフト開発でした。
時代は、DOSからWindows3.1に変わろうとしていた時でした。
とは言え、Windows3.1はDOSの上で起動するシェルみたいなもので、Windows95が登場するまで、まだまだコマンド入力が必要なOSでした。
そして、C言語での仕事はDOS上で動作するソフト開発です。
グラフィック性能も640×400しか表示できませんが、当時はそれで十分な性能でした。
社内ソフトは、商品の在庫などを管理するソフトで、当初はスタンドアローンでの動作を目指していましたが、ネットワーク化されクライアントサーバシステムになります。
このネットワーク化により、DBとネットワークサーバの技術を身につける事になりました。
在庫管理ソフトは、2人でのチーム開発となり、表示部と処理部を分担、私は表示部の開発担当になりました。
C言語での開発で、現在のような多様なライブラリもなく、グラフィック性能は640×400、しかもPC-9800シリーズは機種性能に差があり8色16色または256色と、表現可能な色数に違いがあるなど、まあまあ厄介なシロモノです。
今ならOSや、ライブラリ側でハードの違いをほぼ補正してくれるのですが、当時は機種の選定も必要でした。
選定の結果、16色を基本とする開発になりました。
アセンブラ言語と比べてかなり高級なC言語ですが、PC-9800シリーズでグラフィック描画となると泥くさい作業となり、高級言語の意味がない開発ばかりでした。
そして、C言語でつまずく人が多い要因の「ポインター」ですが、アセンブラ言語の経験者からすると便利な仕組みであり、簡単に理解できました。
とは言え、バクの多くはメモリー管理が原因で、ポインター操作ミスかヒープ領域不足です。
Windows3.1時代でも、現在のような大容量メモリーではなく、乏しいメモリー資源をやりくりしての開発でした。
それでもC言語での経験が、これから先のプログラミングでは重要なことばかりでした。
変数・配列
今では当たり前の言葉ですが、アセンブラ言語ではレジスターとメモリをプログラマーが意識して使用しないとダメでした。
構造体
最近は耳にしない言葉ですが、ここからclassが生まれたのでしょうね。(多分)
PHPだと連想配列とか?
データ型
多くの言語で、数値型とか文字型とか言われるデータ型は、アセンブラ言語にはないですね。
今では当たり前の知識を学ぶことができたのが、C言語です。
そしてこの後、ネットワークとデータベースを一気に学ぶことになりました。
次回は、今は亡き(?)ノベル社のネットウェア(NetWare)によるネットワーク(クライアントサーバ)の仕事を書きたいと思います。