新・闘わないプログラマ No.79

手を抜く


私は面倒くさいことが嫌いで、何事にも「いかに手を抜くか」だけを考えて生きている不真面目な人間です。もちろんコンピュータ関係も例外ではなく、仕事にしたって、いかに楽をしようか、それだけを考えています。
仕事で、何かシステムを構築する場合なんかでも、私が設計すると、まず「いかにプログラムを作らないでシステムを構築できるか」なんてこと考えたりするんですね。プログラムを作れば、時間はかかるし、バグが発生するし、いいことなんて無いですからね。いや「プログラムを作れないから作らない」ってわけじゃなくて(ホントだってば)、「作れるけど作らずに済ます」ってのが重要なところだったりします。

いまちょっと仕事で絡んでいるシステム、もうすでに出来上がっているんですけど、仕様書を見たら凄いんですよね。このシステム、いろんなサブシステムからなっていますけど、それぞれみんなCとかC++とかでゴリゴリとプログラムを書いている。しかもそのサブシステム間を、お互いに独自プロトコルで勝手に通信をやっていて、全然収拾がつかなくなっているんですね。よくこんなんで動いているのか不思議なシステムです……開発にはさぞや苦労したことでしょう。
で、そのシステムに機能追加をしたい、というのと、処理能力を上げるためサーバーの台数を増やしたい、というわけなんですけど、あちこちのサブシステムが絡み合って、そう簡単にはいかない仕組みになっていて、担当者が困って私の方に振られて来たわけだったりするのです。
そもそも、処理能力を上げるためにコンピュータを増やしたい、というのにそれが簡単に出来ないような設計になっているんですよね。何せ、プログラムの中にサーバーの台数、というのを定数で持っていて、それを手直ししないといけないらしいんですね。しかも、その定数がCやC++のヘッダファイルの中に持っていて、そのヘッダファイルの定数を書き換えてコンパイルし直せば済む、というだけでは無く、ソースの中に、例えばサーバーの台数が3なら「3」という数字が直接書いてあったりするところもあるようで(←これは絶対にやってはならない、とどの教科書にも書いてあるやり方ですよね)。
いやまあ、設計やらプログラミングの段階で手を抜いたんでしょうけど、こういうのは手の抜き方が間違っている、としか思えないんですよね。
そんなところで手を抜いていながら、単なるファイル転送を行うためだけにプログラムを作ったりしているし、そんなのftpなりなんなり使えばいいのに、と思ってしまったりするわけです。
「このシステム、使用言語はC++にします」とか最初に決めちゃう人、よく目にするんですけど、そんなのなんで最初に決めちゃうことが出来るのか、私なんかは不思議でならないんです。で、それがもう設計方針の金科玉条になってしまって、なんでもかんでもC++を使う設計になってしまっているシステムをよく目にしました。適材適所で、既存のユーティリティを使ったほうが楽なやつ、シェルスクリプトやらPerlやらVisual Basicだって、使い方によっては楽になるだけどなあ、とか思っちゃうんですけど。
うちの職場なんか特にいるんですけど、Visual Basicを馬鹿にする人、結構多いです。要は使い方だと思うんですよね。WindowsでGUI部分を作るにはVisual Basicっていう選択は、かなりの場合、一番いいような気がするのです。私が最近よくやる設計で、Visual Basicで作ったGUIからC/C++で作ったDLLやらプロセスを起動させて、実際の処理はそっちでやらせる、というパターン。結構手抜きが出来てよかったりします。

話はがらっと変わりますけど、自分で使っているパソコン、WindowsとLinuxという感じで入れてあります、デスクトップもノートも。面倒なことの嫌いな手抜き人間としては、インターネットへのダイヤルアップ環境は、Windows(95 or NT)にしています。Linuxでも結構簡単に出来るらしいですけど、いちいち設定を調べて、というのが面倒だ、というのがあったりします。
Linuxはサーバー(ftp,SMB,AppleTalk)にしたり、大量のデータ処理をやったり、なんて用途で使っています。Linuxも以前はSlackwareにしていたのですけど、TurboLinuxで楽なインストールに毒されてしまって、最近はredhatになっちゃっています。まあ、redhatを使っているのは、企業ユースはやっぱりredhatなんだろうなあ、という気持ちもあって、どうせ使うのならredhatに慣れておきたい、というのもありました。しかし、手抜き人間としてはLinuxのインストールも簡単になったなあ、という印象を持ちました。Vineもいいらしいですね、こんど入れてみようとは思っています。
Debianは、1年くらい前に入れてみたことがあるのですが、インストール時にフロッピーが沢山要るのと、あとパッケージ管理を行う「あの」dselectの使い勝手が……で挫折してしました。最近はよくなっているようですね、もう一度挑戦してみたいところです、けど、入れるパソコンが無い。
まあ、いずれにしても、インストールやらシステム管理やらで、楽ができるところは楽が出来た方がいいわけで、この方面はこれからも期待しているところです。と、他力本願ばかりなのは本当はいけないのかも知れませんが……。

なんか、相変わらず支離滅裂な話になってしまったような気がしないでもありません。要するに「手抜き」コラムということで(^^;)
いや、でも最近なんかこのコラム、けっこう沢山の方に見ていただいているようで、あんまり手抜きばかりしていてもいかんなあ、などと思ったりもしているのですけど、こればっかりは、そういう人間が書いているということで……。

[前へ] [次へ]

[Home] [戻る]


mailto:lepton@amy.hi-ho.ne.jp