Google が Native Client を発表した。
まだテスト段階だが、これが正式リリースされると少し怖い。
ActiveXのように史上最悪の技術となる恐れもあるが、Javaもいらなくなるし、ほとんど全てのネイティブアプリケーションの機能をブラウザで実行可能となることも怖さがある。
WebとNativeの結合である。
JavaScriptはライトにできるし、サーバ側だけを重くする必要もなくなる。
GoodOSのようにOS=ブラウザという考えもできる。
それで、無性にC言語をやりたくなったので、無理やりshutterをバージョンアップした。
従来のWindow shutter機能に加えて、新機能として、ウィンドウを非表示にしたときに全てのサウンドをミュートするSounds shutter機能(除くVista)と、シャットダウンタイマー(あらかじめ設定した時間を経過すると自動的にシャットダウンする)を手軽にできるようにしたSystem shutter機能を搭載した。
まもなくVectorからダウンロードできます。
ちょっと自信作なので、ぜひ使ってやってください。

で、Sounds shutter機能がなぜ Vista に対応していないかというと、 Vista の Saund 関連が大幅に変更されてしまって、従来のやり方では全てのミュートをすることができないのです。
Microsoft が発表して、 Apple が先取りした Core Audio API という COM 技術を使ったりするのですが、Free の Borland C++ 5.5 では、 COM を取り扱えないようで、、、色々挑戦してみたのですが、今のところ駄目でした。

ということで、 Vector さんでダウンロードできる shutter は WIndows XP ではフル機能が使えますが、 Vista では Sounds shutter は使えないことになりました。
それで、仕方なく、不本意で、とても悔しいのですが、 Visual C++ 2008 でも shutter を作りました。
Visual C++ ならば、当然 COM が使えるからです。
これで、 Windows 2000 でも、 XP でも、 Vista でも Window shutter 、 Sounds shutter 、 System shutter の三拍子そろった shutter ができたわけですが、 Vector さんでは公開しません。
というのも、Borland 版とコードはほとんど同じですが、 Visual Studioで作ったアプリケーションはオーバーヘッドがでかいため、極端に性能が悪いのです。

プログラム言語の比較 実測処理時間 総合処理時間
Java 250ms 10000ms
C言語(Borland C++) 141ms 2000ms
Visual Basic for Applications 5046ms 23000ms
Visual Basic 6 250ms 10000ms
Visual Basic .net 480ms 35000ms

上記表は、 shutter ではない色々な コードでの耐久テストの結果です。(Athron1.6GHz、Windows2000での計測値)
.net アプリの群を抜く遅さがわかるかと思います。通常の C が 2 秒でできる演算が 35 秒もかかるのです。
Javaや以前のVB6でも 10 秒でできる演算をその3.5倍の時間がかかるのです。
結果としてはVBAよりも随分遅い結果となります。
本当にめちゃめちゃ性能が悪いのです。
いずれにしても Visual Studio は Vista と同じくらい残念な存在です。あの抜群のユーザインターフェイスで開発するのは気持ちよいのですが、やはりプログラマのための言語群といっていいかもしれません。できあがったソフトウェアを利用するユーザのための言語群ではないのです。できあがったソフトウェアの品質を考えると、正直なところ使えない感じがします。
おまけに、 Visual Studio 2008だけかもしれませんが、通常に組むと正常動作しないため、通常ではない手法を組み入れて(ウィンドウを閉じるのに、XPの時はPostQuitMessageを出して普通に閉じるのですが、Vistaの時はPostQuitMessageを出すと正常動作しないなど)無理やり動作させております。
ということで、一応こちらのサイトで配布はしますが、 Visual C++ 2008 & Windows Vista という強烈な構成での動作となりますので、全く持って動作保障もサポートもいたしませんので、自己責任でご利用ください。
それでも、私がテストした限りでは、とりあえず正常動作しております。
Vista にも Sound shutter 対応版 shutter のダウンロード

Borland C++ 版は Vector からダウンロードできます。

Native Client は GCC を使うので、検査のためのロスがあっても Visual C++よりは相当高速なアプリケーションができそうです。本来ネイティブで高速なアプリケーションを作るはずの Visual Studio がNative Client の Web アプリより遅くなってしまったら、本末転倒です。

Microsoft よ、立ち上がれ!

 

ここでの文章、画像、検証結果などは全てDreamHopeに著作権があります。リンクに関してはTopLink、DeepLinkともに構いませんが、全部・一部の「学術論文等許諾の不必要な引用」以外の引用に関しては禁止します。

Copyright (C) 2009 DreamHope All Rights Reserved .  Access: