仕事もひと段落

アニメ犬夜叉、面白いですね。やっぱり原作全部買おうかな。
そうそう、20世紀少年を16巻(今出てるだけ)全部、遂にオンラインで大人買いしてしまいました。今、その到着待ち。そういえばそろそろお盆ですが、明日当たりは届いてくんないと帰省できないな。
ということで、もう8月もお盆前。仕事を家にまで持ち込んでせっせとコーディングしてたわけですが、まぁ何とか終わりそうな。今年は休みもフツウにもらえたし。何だかんだいって今の仕事は新しい技術を使っての開発なので、去年までのそれより全然良いわ。ここにも何度か書いてますが、.NETというやつを使っているんですよね。
去年までは VC++6.0 という、もう発売もされなくなった環境で開発していたわけですが、それを時代に合わせて.NETでいきたいなーと常々思ってたわけで。いえ、ホントはDelphiが一番慣れ親しんでいて個人的には楽なんですが。まあ、今後に向けて新技術を使っていくというのも大事だと思うわけですよ。MS様も推奨しているということで、お上も納得しやすかったというのもありますかね。
今回、画面周りが超ハデなシステムなんだけど、画面メインのアプリ開発は今までのVCは確実に向きません。MFCのダイアログエディアである程度デザインもできるけど、ちょっと気の利いた画面をつくろうとすると、DC(デバイスコンテキスト)に直接BitBltとかでゴリゴリ描いていくしかない。そうなると、とても短期では仕上がらない。
というわけで、.NETの登場。.NET 対応の Visual Studio なら、画面はフォームデザインってやつで簡単にできる。ここらは VB みたいなもんですね。で、言語は C#。文法や仕組みは Java に近い。とりあえず画面周りは VB ライクに簡単にデザインできる。
ただ、その下で動作する通信周りは従来のシステムとの疎通になるので、今まで使ってた部品を使いたい。その部品が VC++6.0 で作られたLIB形式。まあ私が作ったものなんですがね。こいつを C# から使おうとすると、.NET Framework で使える形に直してやる必要があるわけです。
旧環境のコードを.NETで使うやり方はいろいろあるみたいですが、今回は、.NETのクラスライブラリ化する、という方法を選択。今まで作ったクラスは、.NET 的な言い回しをすると「アンマネージド」なコードということになる。マネージド(managed)、アンマネージド(unmanaged)というのは、端的にいうと、メモリ管理を環境に任るか、自分でやるか。具体的には、マネージドなコードでは、new で作ったオブジェクトを delete する必要がない。勝手に .NET Framework が解放してくれると。今までの C++ に慣れてると new しっぱなしってのが何だか気持ち悪いんですけどね。
そういうことで、今までのアンマネージドな C++ のコードをマネージドな C++ コードで書き直す、というのが今の私の主な作業。
これが思った以上に大変で。
実は、今までのコードをそのままアンマネージドのまま使う方法はあったんですよね。これはDRや打ち合わせではあえて話題にしませんでしたが。例えば、COM+ にしてOSに登録してしまえば、これを参照設定して .NET からも利用できる。
でも、ここはあえてしなかった!
つまらないもん。せっかく .NET 使うんだから、その新しいアーキティクチャ使いたいじゃない。ここは作る人の作りたい欲求というか。ある種、私の趣味。わざわざ茨の道にすることはないんだけど、.NET の考え方はオブジェクト指向そのまんまなので、そのまま Java とかにとっつくときも絶対役に立つわけです。いろんな思いがあって、.NET クラスライブラリ化という仕事をしております。
大変なんですが、結構楽しんでる。おかげで、FFやったりWebつくったりDTMしたりといった時間がないわけですが、仕事で面白いことやれてりゃそれに越したことはない。私は、この会社にいる限りはプログラマで生きていくことにしているので、ひたすら技術を追求していきたいと。上司も会社も、もう私はSEでなくプログラマとして扱ってるし。
まあでも、技術者と呼ぶにはまだまだだな。低層なアセンブラくらい書けて、上のJavaとかもバリバリ書けたらフリーでもやっていけるんだろうか。

タイトルとURLをコピーしました