プログラマyasuhoの隠れ家

某ソフトウェア企業に勤務するおじさんプログラマyasuhoです

これからの技術者に必要なこと


コンピュータのハードとソフトはお互いもっともっと変わっていくべきではないでしょうか。それにはソフトウェア技術者がアプリの実行環境だけでなく、ハードやOSといった、より深い部分への理解を深めていくことが必要ではないかと思います。それを理解することが出来れば、どこを改善するべきかも見えてくるはずです。

ascii新創刊


ITmediaより:


ITmedia News:「現場と経営者のITギャップを埋める」――新装月刊アスキー編集長に聞く


以前はコンピュータホビー誌といった感じでしたが、リニューアル後のasciiは、若い頃にASCIIを購読していたビジネスマン向けの雑誌を目指すようですね。ちょっと見てみたのですが、技術解説のような記事はなく、PCからの脱却を試みているように思えます。右開きになったこともビジネス誌としての効果を狙ったものでしょう。


ASCIIが誕生してから新創刊まで、コンピュータを取り巻く環境はどのように変わってきたでしょうか。

進歩しても進化していない!?


ASCIIやマイコンが生まれて30年あまりになります。その間コンピュータ、特にハードウェアは飛躍的に進歩しました。計算機の処理能力は大幅に高まり、メモリ・HDDなどの記憶容量も増大。ネットワークの転送量も大量のデータが送れるようになった。これにより多くのことが可能になったことは、みなさんよくご存じの通り。


でも、ぼくはコンピュータは進歩こそすれ、あまり進化していないように思います。扱えるデータ量は増えたけど、コンピュータや周辺装置の原理は基本的に変わっていないし、パソコンはキーボードとマウスでアプリケーションを操作している。それは先人の知恵が優秀だったということかもしれないけど、半世紀程度しかたっていないコンピュータはまだまだ完成されてないはず。


そうなった原因の一つはソフトウェアにあるんじゃないでしょうか。

ソフトから見えないハード


いうまでもなくコンピュータはハードとソフトが一体になって動くものです。どちらか一方がよくなるだけでも全体の使い勝手はよくなりますが、双方が協力する形での性能向上は何倍もの効果を産むことが多いようです。古くはメモリの保護と効率的な利用を助けるMMU、ソフトウェアのI/Oを助けるメモリマップドI/O。最近ではスレッドの効率的に実行するハイパースレッディングなど、ハードとソフトが一体となって大きな効果を得る例は多くあります。


現在のソフトウェア開発は便利なフレームワーク統合開発環境のおかげでだいぶ楽になりました。しかし、逆にハードウェアやOSに近い部分は見えにくくなっています。開発効率は上がりましたが、プログラムがOSやハードの機能を使いきることは難しくなっています。アプリがどの程度システムに負担をかけているかすら分かりません。


ハードウェアやコンセプトは優れているのに、ソフトウェアの使い勝手が悪いために(またはその逆もしかり)消えていったデバイスは数多くあります。すべてがそうではないでしょうが、ソフト側がハードとOSを効果的に使えていなかったことも原因の一つと考えられます。

もっと深いところを知ろう


WindowsやPCの普及により、パソコンの世界はある程度完成したかのように見えます。でも、それは本当に完成系なのでしょうか。マイコンが生まれて30年。Windowsも普及し始めたのは10年ぐらい前からです。完成したというには短すぎますね。


ハードとソフトはお互いもっともっと変わっていくべきではないでしょうか。それにはソフトウェア技術者がアプリの実行環境だけでなく、ハードやOSといった、より深い部分への理解を深めていくことが必要ではないかと思います。OSの仕様・ハードの制限、で片づけるのではなく、そうなっている理由は何かを理解することが出来れば、どこを改善するべきかも見えてくるはず。


さらに30年後、コンピュータがどうなっているか見ることは私には出来ないかもしれません。しかし、その時代の人に「あなたたちは何をやってきたの?」なんていわれることのないように努力していきたいですね。