コンピューター:師匠と弟子の会話:最近の開発


弟子:「またまたコンピューター関連のページ全般がちっとも更新されませんでしたね。」
師匠:「そうなのだ・・・。本業も結構忙しいし。」
弟子:「でも、その割にはカメラ関連のページは更新されているらしいじゃないですか?」
師匠:「ぎくっ・・・。まあ、カメラ関連のページが実は一番レスポンスがあるのだ。アクセスカウントとしてはコンピューター関連も多いのだが、皆さん、遠慮しているのか、あまりメールなどで感想や意見が無いのだ。」
弟子:「今回のお題はなんか漠然としていて良くわかりませんが・・・。」
師匠:「最近の開発の案件の傾向について話してみようかと思うのだ。最近本業では圧倒的にWEB関連のシステム開発が多いのだが、まあ、それはそれで良いと思うのだが、私が個人的に気に入らないのは、その開発の方法なのだ。」
弟子:「短納期という点ですか?」
師匠:「まあ、ネットビジネスはタイミングが命だから短納期は仕方が無い。しかし、海外製のミドルウエアのようなツールを適当に組み合わせて、はい、おしまい。という感じの開発が多い気がするのだ。」
弟子:「便利なツールを使って早く確実なものが出来れば、それで良いじゃないですか。」
師匠:「たしかに、使う側としては内部がどうであろうと、ちゃんと使えるものが出来れば良いのだが、開発する側は本当にそれだけで良いのかな。」
弟子:「どういうことですか?」
師匠:「日本は昔から基礎技術の開発がダメで、応用技術がメインなのだが、海外から出来合いのツールを持ってきてどうこう、というのはまさにそれだけなのだ。最近では大手のSE教育などでもJavaしかやらない、など、とにかくプログラミング自体がおろそかになっている気がする。それで本当に良いのだろうか。コンピューターの仕組みやOSの役割、そして自分の作るプログラムとOSとの連携をするためのシステムコール・API。プロセス・スレッドの仕組みなど、基本的なことが分かっていないで、組み合わせておしまい、ではますます日本の基礎技術がなくなっていってしまうと思うのだ。最近学校教育でもカリキュラムをやさしく変更したようだが、なぜレベルの低い方に合せていくのだろう。ついて来れないやつは何年でもやればいいのだ。レベルの高い人は自分で塾などで知識を広げないといけなくなり、お金の無い家庭では優秀な子供に育てることも出来なくなってしまうのだ。ただでさえ若者は夢や希望を無くし、今がよければ良いじゃないか、という気分で流されながら学生時代を送ってしまっている世の中だ。これまで日本の技術面などでのレベルを支えてきたのは企業の努力。企業での教育があったからだと思うのだ。それが、最近のWEBシステム開発のように、基本を飛ばして、組み合わせなどの応用だけしかやらなくなってしまっては、本当に基礎技術が全くなくなってしまうのだ。」
弟子:「だいぶ不満がたまっているようですね・・・。」
師匠:「何をやるにしても、基本がしっかりしていないと必ず行き詰まるのだ。プロセスやI/Oの概念も分からないで、ただツールを使いこなすだけの仕事・教育だけでは、ますますアメリカなど基礎技術からしっかり積み重ねるような国に負けてしまうのだ。さらに国自体のITへの方針・動きも期待できない状態で、韓国などにもすでに抜かれているかもしれない。日本の若者よりよっぽど勤勉らしいし。」
弟子:「どうすればいいのでしょう?」
師匠:「まず、まわりがそういう方向を向いているのだから、自分で努力するしかない。自分で多くの本を読んで、基礎からしっかり力をつける努力をすることだ。そして、企業、特に大企業に言いたいのだが、大企業こそが日本のこれまでの発展を作ってきたのだ。その大企業が目先の利益だけを考えて海外製のツールを組み合わせておしまい、では技術者が育たない。国もそうだ。公共事業などで、先端技術を使うと予算が取り易い、など、おかしな話なのだ。たしかに海外の先端のツール・環境を見ておくことは大事なのだが、ただそれを使えれば良いというので、アメリカなどの下請け的な仕事にしかならない。一部の大手では、DBや開発環境など自社で作っているところもあり、感心なのだが、それをもっと日本国内の技術者に広めないと意味が無いのだ。ただ単に自社のシステム以外を入れにくくするような、営業的な面のためだけに使っていたのではダメなのだ。自分の利益だけ考えていると、Motifのように、フリーにせずに、LINUXなどに乗らなかったためにすっかりUNIXでのGUI開発自体がなくなってしまうような技術になってしまうのだ。」
弟子:「学校など教育機関はどうですか?」
師匠:「大学の情報処理関連の学部の授業の全てを知っているわけではないので偉そうなことは言えないが、教育機関こそ基礎技術にじっくり取り組める場所だと思うのだ。入門的な授業などとっとと切り上げて、もっと深い技術を扱って欲しい。」
弟子:「師匠は自分で何かしているのですか?」
師匠:「私は昔からツールに頼るには嫌いなのだ。もちろん、だからといってOS無しで、とかそういうことではなく、たとえば、データベース、というのであっても、いきなり何でもオラクル、というのではなく、対象システムの規模などをしっかり考え、可能であれば自作すれば良いと思うのだ。オラクルは確かに私などが逆立ちしたって作れないような高速検索アルゴリズムなど、すばらしいデータベースだと思うが、結構重たいシステムでもあるのだ。100件〜1000件くらいしか登録しないようなデータベースであれば、何もオラクルを使わなくたって、自分でいくらでも作ればいいのだ。万が一のときにも自分で作っていればいくらでも対応が出来る。作るコストがかかるじゃないか、と考える人もいるが、何かをやるときに少しでも余裕があったら、汎用性を考えて作る癖をつけておけば、いつのまにか自分独自のツールがたまるものなのだ。私の場合、リレーショナルデータベース(もどき)や、WEBプロキシなど、いろいろなものを仕事・あるいは個人的な興味で作ったり実験したりしているから、応用の利く自前のツールが結構あるのだ。そういうものを作ったり実験したりした上で、市販されているツールなどを見れば、よりその利点・欠点も見えてくるし、なにより、納得してシステムが作れると思うのだ。」
弟子:「言語はJavaとかではダメですか?」
師匠:「まあ、何でも良いのだが、やはり一番OSやコンピューターと密接に直接的に使える言語としてはC言語だと思うのだ。C言語は下手に使うと危険な言語でもあるが、その分、勉強にもなるのだ。著書のC for UNIXでも、サーバ・クライアントモデルのサンプルなどをマルチプロセスで取り上げているが、そういう基本部分をしっかり押さえた技術者が増えないとこれからの日本のIT技術は本当に危ないと思うのだ。アメリカのマイクロソフトなどの戦略に載せられてあれこれ新しい技術を追いかけ、ただそれだけで終わってしまうようではまずいと思うのだ。もちろん、それらは便利で生産性も高く、ユーザにメリットも大きいから使うなとは言わない。使うとしても、きちんと基本から分かった上で使うようにしよう、と言いたいのだ。」
弟子:「また、ずいぶん反感を持たれそうな内容になってしまいましたね。」
師匠:「良いのだ。このコーナーは私が本当に思ったことをそのまま言うコーナーなのだ。別に誰に従えと言っている訳でもないし、ただ、そういうテーマを投げかけ、皆さんでいろいろ考えてみてくれればそれでいいと思っているのだ。」
弟子:「では、とりあえず、まとめとして、ただツールを組み合わせておしまい、ではなく、しっかり基本から分かった上で、ツールが本当に必要かどうかまで判断し、必要であれば、理解した上で使いなさい、と言うことですね。」
師匠:「そうだ。プロとしてシステム開発を引き受けたのであれば、どういう開発過程を通ろうが、きちんと自分で全体をとおして納得して、何かあってもしっかりユーザに説明できないようではダメなのだ。ツールの勉強も大事だが、それ以前にコンピューターの基本からしっかり分かっていて欲しいということだ。」


よろしければブログもご覧ください
ゴルフ練習場紹介サイト:ゴルフ練習場行脚録更新中!
ipv400020403 from 1998/3/4