2006年9月12日火曜日

Windows Vistaはすごい

上記リンクの記事を読んでみて、Windows VistaってXPと比べて確実に進化してる~というのを感じました。スタンバイからの復帰が2秒というのは驚き。期待のMeiryoフォントはあまり文字を並べたときのバランスがよくないような気もしますが、MSゴシックよりは綺麗。

Windows Meeting Spaceって、NetMeetingの改良版かな? 動作が綺麗になっているといいんだけど。
ファイルも共有できるようだから、pair programmingなんてのも簡単になりそう。

ファイルのヴァージョン管理もなされる模様。ファイルを上書きしても、以前の状態が復元できるという機能。まぁ、使用頻度は低いのだけれど、これがあるのとないのでは、作業するときの安心感が違います。

公式ページを覗いてみたら、USBメモリとかを増設メモリとして使えるんだって。今、フラッシュメモリは1GB、1万以下くらいの相場だから、これはありがたい話。フラッシュメモリは、HDDと比較すると、ヘッドを動かすシークタイムが無い上、データが連続に並んでいなくても読み込み速度は一定(だと思うのだけれど)だから、スワップ領域(Windowsでは仮想メモリ)へのデータ退避が相当高速になる。これはすごいことで、だって、メモリ容量ぎりぎりでアプリケーション開くと、動作が途端に重くなるとか、経験したことあるよね? そういうのが、USBメモリを指すだけで回避できるようになるの。

すごいよ、Vista。(まぁ、それぞれの機能のできが良くなくてこける危険性はあるけど)。Web2.0といって、Webアプリケーション(Googleなど) V.S. デスクトップアプリケーション(MS)の構図を主張している人がいっぱいいるけど、ちっぽけなものです。やっぱりOS作れるところが俄然強い。

OSを作るというのはすごい仕事なのです。MacがIntel Core Duoを搭載したとかで喜んでいるのなんて、小さい小さい。一般の人がやれWindowsだ、これMacだとか評価するときって、十中八九見た目の話なの。Macの方が見た目がいい、Windowsはダサい、みたいな。それはそうなんだけど(笑)、OSとしてどっちができがいいかというと、どう考えてもWindowsに軍配があがる。画像描画の速さとか、安定性とかね(昔のWindowsはひどかったけど)。AppleのSteve JobsはMac用の魅力的なアプリケーションは紹介するけど、それってOSの機能じゃないの。iLifeとかiPodとか。

ここから先はOSを作るようなプログラマについての話。ちょっと難しめかも。

今週の週刊ダイヤモンドは、職業別給料比較でした。その中に、「プログラマは単純作業だから、30代までにシステムエンジニアに転機を計らないと先がない」みたいなことが書いてありました。僕はこれに断然反対。Webアプリケーション開発ならいざしらず、OSのように土台に近いシステムを作るとか、innovationになるようなソフトウェアを書くのって、単純作業なんかじゃないんだよ。ハードウェアの知識はいるし、OSの仕組みも知らないで、効率のよいプログラムなんて書けっこない。コーディングの上でオブジェクト指向(デザインパターンとか)やプログラミングスタイル、XP(eXtreme Programming)なんて宗教論争が盛んな方法論もあるけど、それらは所詮方法論。画家でいうなら、絵の具の使い方のようなもの。

本当のプログラマーっていうのは芸術家です。使ってみて初めて便利さがわかるようなプログラムを作る仕事。きっとこの記事を書いた人は、コンピュータにもうわかりきった仕事を反復してやらせるためのプログラムを書く仕事がプログラマーだ、という認識なんだろうな。 しかも去年もまったく同じ記述を見ました(涙)。週刊ダイヤモンドは記事の使い回しが多いようです。言われた通りの絵とか文章しかかかない芸術家なんて、付加価値を生むものは作れないでしょ。それだけのこと。

まぁ、世の中一般のプログラマの仕事というのはそういう単純なもの、ということを言っているだけなのかもしれない。確かに、技術的にみたら、Joelさんも話題にしていたけれど、コンパイラを作れるプログラマが世の中にどれだけいるかというと、僕は、東大でも、情報科学科のコースで学んだ人以外には思い浮かばないです。本1冊程度の知識でできることだけれど、わりと皆やろうとしない。コンパイラってC++とかJavaのとか、難しいものを想像するかもしれないけれど、要するに人間の入力を受け取って、プログラムにしたりデータにしたり、コンピュータがわかる形に変換するだけのもの。

コンパイラが自分で作れるようになると、楽しいですよ~。GoogleのWeb Toolkitなんてのもその例。SQLのように、データベースを操作する言語なんてのも自分で作れます。 standardがあるときに、そういう新しい言語を作るなんてことはしなくてもいいのですが、目的にあったものがないときに、新しいものを生み出す力があると、随分可能性が広がります。僕が自分で開発しているデータベースシステムだって新しい言語が必要だし、rubyなんてプログラミング言語も、プログラムを簡単に書きたいっていうニーズから生まれたもの。で、そう思った人にコンパイラを書く力があったという、その組み合わせが重要。


ここから先はデータベース屋さんとしてフラッシュメモリなどについて思うことなので、興味ない人は飛ばして。

フラッシュメモリがもっと大容量化すると、データベースでいうclustered indexが重要でなくなってくる。メモリに比べると速度が劣ることは変わらないから、ページ単位の読み書きという概念までは無くならないのだろうけれど。 でも、この変化は重要。 PostgreSQLみたいに、ヒープにデータを追記していって、データをディスク上でソートしてないようなへぼな構造でも(vacuumしないと性能がでないやつ)、性能には関係ないってことだから。 ディスク上(ここでいうのは、フラッシュメモリ上)でデータが分散して配置されていようと、連続して配置されていようと読み出し速度が変わらないということは、追記型のデータベースの利用価値も高まります。すごい。HDDに縛られていたデータベース界からのパラダイムシフトが間近。

4 件のコメント:

匿名 さんのコメント...

たしかに。
実際Windowsはかなり良く出来てると思います。
あれほど初心者でも使えるOSはないと思いますし。
ただ、一部の玄人っぽい人にはいじれるところが少なくて寂しいのかもしれませんが。

プログラマとかSEとかはちょっと分類があいまいで、最近はアーキテクトとかいうのもでてきたりとかで、よくわからないですね(^^;
ただ日本でプログラマというと、コーダー(コードを書くだけの人)のイメージが強いようなきはします。
けど実際アプリケーション関連のプログラマはこれから苦しいだろうなぁという感じはします。

Taro L. Saito (leo) さんのコメント...

> はらじゅんさん

僕のイメージするプログラマって、時代の変化に合わせて、技術を先取りしたり、自分で作ったりできる人なのですが、そうすると、英語力は必須だし、会社に頼らず自分で新しいことを習得する能力のある人という分類になるので、給料が低いなんて考えられなかったのですが、わりと一つ覚えた言語(VBとか)だけで安穏としている人が多いのかなと思いました。

GUIとかWebアプリ開発用のAPIの使い方とかは、それなりに経験は必要なんだけど、そういう経験だけだったら、アウトソーシングに押されるのも無理はないですよね。

どういう企業がそういった本物のプログラマ(ハッカーという方が正確かな)を抱えてるのかなぁ。

匿名 さんのコメント...

うーん、Win VistaのRCの記事を見て、なかなかいい感じに仕上がってるなーとは思ったけど、Mac OS Xと比べて特に優れているとも思わなかったんです。

http://homepage.mac.com/daytripper_2ch/log/honyaku/1073284076.html
の868番あたりの翻訳記事を見ていると、新しい技術に早く取り組もうとしているのはむしろアップルなんだろうな、と仕事でWin/Mac両方使ってる私は思います。

iPodを買って「マックも」という人たちは見た目なんでしょうが、私の周りの技術者でUNIX使いの人たちがマックに注目するのは、あくまでマックが技術的に挑戦的なOSだからのようですよ。

話変わって、プログラマというのは芸術家肌ではありますがどちらかというと「職人」という言葉がしっくりくるかな、と思います。でもIT業界では、まず言われた通りに組むだけのプログラマから初めて、自分で構造を意識してプログラムできるようになるとSEという名前になって、いずれマネージャという構造ができ上がってるんですね。もちろん言われた通りに組むだけの人にプログラムデザインなんて出来ないので、僕らが「プログラム」と読んでいる創造的作業を実際にやっているのは、所謂「プログラマ」ではなくて、ランク的にはSEクラスだったりするんですね。

それに日本の社会の「年下の人間が年上の人間に指図するのはいけない」という風潮も絡み合って、「設計は年長、プログラム作業は年少」になってしまっている。ここでいうプログラムは本当に「作業」であって、僕らが想像する創造的活動とはまったく異なってる。逆に言えば、上から見て「プログラマ」という肩書きはそういう人たちを指す言葉なんですね。
僕らの言う「プログラマ」の肩書きは大抵は「SE」だったり「プロジェクトマネージャ」だったりするんです。

週刊ダイヤモンドのような経営者向け雑誌というのはそういう構造を全く意識しないで書かれているので、的が外れていて当然です。

しかしそういう言葉が世の中に広まって、結果として僕らの言うところのプログラマの地位が下がってしまっていることについては、憤りを感じますけどね。

Taro L. Saito (leo) さんのコメント...

> t_yanoさん

はじめまして。かな?
MacOSが悪いと言っているわけではないんですけど、UNIX系のOSのように、新しい機構を取り入れやすいものって、痛みが伴いますよね。組み込むときにトラブルがあったり、他のアプリとの互換性が問題になったり。僕自身新しいものが好きなので、挑戦的なものは嫌いではないのですが、やっぱり使い始めの先陣を切ると苦労はします。

MSは、Windowsに限らず、技術を枯らしてくれるんですよ。Vistaの新機能だって、もっと早くにあって欲しい機能なので、出てきたときにはもう古いのは確か。でも、バグを極力減らして安定して使えるようにしてくれるのが魅力でしょうか

プログラマは「職人」。その言葉もいいですね。IT業界って、そういう仕組みなんですね。 僕の感覚からだと、IT系は年下の方が常に秀でている気がするので、その年功序列のシステムが働いてしまうと、魅力的なプログラムを作る機会ってどんどん失われていくような印象をうけます。

License

Creative Commons LicenseLeo's Chronicle by Taro L. Saito is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 2.1 Japan License.