Pages

2011/12/06

プログラマ辞めます

このエントリーをはてなブックマークに追加

絶賛就労活動中だった俺です。

今朝、朝イチ*1に面接を受けたら即決で採用が決定しました。此の会社を受けるまでは紆余曲折があったが、就職浪人の侭越年するよりはマシかと思いエントリしたのだ。受ければ十中八九は受かるだろうと自信はあったが、余り条件が良くないのでスルーして、他の会社にエントリしたが結果は芳しくなく、そうこうしているうちに条件の良い募集先がなくなり、やむなくエントリしたらあえなく合格したという次第だ。

今日は面接と簡単な就労条件について話があった。明日は健康診断を受けて、4日間の研修期間に入る予定だ。

さて、そういう経緯でサラリーマンとして13年間、起業して11年間の計24年間の生業だったプログラマを辞めることになった。

振り返ってみると、N88 Disk Basic、68K系CPUのアセンブラ、Z80系のアセンブラ、i8086系のアセンブラ、F-Basic、C/C++、Visual Basic、Java、C#の各言語を使って組込系から始まり、プラント監視システム、生産管理システム、計測システム、C/SタイプのDB処理システム等を構築してきた。

アセンブラを弄っていた頃は予算の都合で開発環境をレンタルすることが出来ずにハンドアセンブルでプログラムを書いてROMに書いてデバッグ、バグがあったら再びハンドアセンブルでパッチを当ててROMに書いてデバッグ、という非生産的な仕事をしたこともあった。納期が近付くと徹夜は当たり前。会社のソフト開発部隊の半数は午前様が当たり前の風潮があった。こんな環境だったから精神論を振りかざしたデスマーチがまかり通っていたのだろう。

組込系の仕事が減ってからは、C/C++やVisual Basicを使って各種監視、管理、計測システム向けのデスクトップアプリの開発がメインになった。TCP/IPのSocketを使って監視、計測用端末と通信をして結果をDBシステムに記録するというパターンが多かった。DBはMicrosoft Aceessから始まり、データ量が増えてからはOracleを使ったシステムへリプレースしたりした。Microsoft Accessを24時間稼働させるとメモリリークが発生し、OS*2がフリーズしてしまうトラブルに見舞われたものだ。このときにOSがフリーズする原因はMicrosoft Accessだと上へ訴えたが上が認めずに、徹夜してメモリ消費量を計測しグラフ化して漸く納得させたのが一番の思い出だ。

プログラミング言語で一番衝撃を受けたのはC言語だった。俺が初めて使った構造化プログラミング言語であり、簡素な記述方法、必要悪だったgoto分がない、ローカル変数とグローバル変数という2通りの変数が使える。担当者がいなくなったN88 Disk Basicのメンテナンスでgoto分の多用、モジュール間での変数のMergeと、スパゲッティプログラムの典型的なソースを眺めて溜息を吐くことが多々あっただけに、構造化プログラミング言語には本当に感動した。社内の標準開発言語をCに統一しようと画策した程だ。尤も画策したものの周囲の反発に遭い頓挫したのも良い思い出だ。因みに反対の理由は、ポインタの概念をマスターするのが厄介、グラフィック操作が容易ではない*3というものだった。だからといってN88 Basic(MS-DOS)オンリーはないだろうと俺は俺で反発したが、多勢に無勢で却下されたのだ。

C言語にどっぷりと漬ること数年、Microsoft C/C++ Version 7.0がリリースされたので早速C++のスタータガイドを読んで、今度はオブジェクト指向言語の素晴らしさに目覚め、新規開発プロジェクトでいきなりC++で開発に取りかかったものだ。当時は標準開発言語が決まっておらず、担当者の判断に委ねられていたという自由な風潮に感謝したものだ。処理とデータを1つの塊(オブジェクト)として扱えるというの言語仕様には本当に感動した。クラスの継承や多態性とか、まあ! とても素敵! と一人で深夜に喜びに震えていた俺を思い出した。

其れから時代はMS-DOSからWindowsへと流れ、業界のデファクトスタンダードだった9801シリーズの影は薄くなり、何を考えたかMicrosoftがVisual Basicという珍妙な開発言語をリリースした。俺はBasicと名前がついている時点で忌避し、Version 6.0がリリースされるまでは一切弄ることはなかった。

Version 6.0がリリースされた頃と前後して、社内での立場をプログラマからSEに代えろと上から迫られ、必死に抵抗しながらも、仕方なくSE的な仕事も始めた。そして、外注にデスクストップアプリ開発を依頼するときには開発言語はVisual Basicを使うようにと言われ、結果、外注が納品したプログラムの検収作業で否応なしにVisual Basicを使う羽目になったのだ。

確かにVisual Basicを使えば手軽にアプリを開発することが出来る。開発できるがソースを眺めたらN88 Basicの延長に過ぎないソースばかりで失望したものだ。Visual Basicはお手軽開発言語ではあるが、Version 6.0からはなんちゃってだけどオブジェクト指向言語なのに其れを理解していないプログラマが多かった。結果的には、グローバルモジュールにグローバル変数を莫迦みたいに宣言して、他のモジュールで弄くり回すという暴挙に出る。其れでも何とかなったのはIDE(統合開発環境)が進化しデバッガが使いやすくなったからだ。こうやって思い返すとVisual Basicが普及したのはIDEの使い勝手の良さもあったのだろう。

手軽にアプリが開発できるという功をVisual Basicは提供してくれたが、凝った処理をしようとすると役に立たないという罪もばら撒いてくれた。其の凝った処理をサードパーティ製のOCX等で実装できれば良いが、そうでないとなると外注はお手上げ状態で、結果的に尻ぬぐいに回る羽目に。という悪循環でVisual Basicの良い面は認めるが好きになれなかった。

Visual Basicを弄りながら大騒動したY2K対応が恙無く終わり新世紀を迎えた。そして、社内でのSE兼プログラマという中途半端な立場に嫌気がさし会社を辞めて起業した。

起業してからは、発注元の指定でVBを使ったシステムの開発がメインになったのは、VB嫌いの俺にとっては何とも皮肉な話だ。でも人にプログラムを作らせて失望するのでは無く、自分で実装するので精神的には楽であった。VBだってOOP何だから、とオリジナルのクラスを数多実装し実装作業の短縮を図ったりした頃のことを今でも偶に思い出すことがある。

VB+Oracleの組み合わせで業務用アプリを開発するスタイルが長年続いていた頃、Visual Studio.NETがリリースされた。.NET Frameworkがプラットフォームにと、久々にVisual Studioが大きく変わった。併し発注側は相変わらずVisual Basic 6.0での開発を求めており、新しいVSを横目にVisual Basic 6.0を使う日々が続いた。

併しWindows Vistaがリリースされ、流石にVisual Studio 6.0での開発は駄目だと判断し、以降は発注元に此方から提案しC#をメインの開発言語にすることにした。10年近くに渡るVisual Basicの呪縛から漸く解放されたのだ。

其れからC#をメインに、偶に他人の応援でJava Script/Servlet/JSPを弄ったりしながら今日まできた。平均睡眠時間が3時間前後の日々が続くデスマーチや、カットオーバー前後の徹夜作業を何度こなしてきたことだろう。そういう過酷な仕事も今日で終わり。明日、健康診断を受けて、前科(笑)がないとう誓約書にサインをしたら、晴れてプログラマという御仕事を辞めることになります。

蛇足ながら新しく勤める会社の人事担当者から電話があり賞罰について改めて訊かれた。履歴書には賞罰はないが本当か? という問い合わせだった。ないと答えたら、警察に問い合わせる*4が異存はないかと聞かれた。別に疚しいことはないのでどうぞと答えておいた。あれから5時間経ったが何も連絡がないので俺が前科者(笑)では無いことは証明されたのだろう。

11年間、自宅兼事務所で通勤時間ゼロの快適な環境にどっぷりと漬っていたが、明日からは通勤時間40分弱の正しいサラリーマンの姿に戻ります。寒い朝の早起きは辛いよ...。

*1:8時~

*2:当時はWindows NT 4.0

*3:NECのPC-9801シリーズがデファクトスタンダードだった頃の御話です

*4:従業員を雇ったら公安に届ける必要がある業種の為

2 件のコメント:

  1. 兄ヤーン( ´∀`)
    ぼちぼち、無理しないでゆるりとガンバレー( ´∀`)。

    返信削除
  2. 当分は研修やからなー。
    慣れるまではマイペースでやる(^ω^ ≡ ^ω^)おっおっおっ

    返信削除