MASATOの開発日記


前の開発日記 次の開発日記 一覧

2004/03/21

最近なんとなくやる気が落ちてきて、コードを書く量が減ってきています。 コードを書きたい!という要求が起きるような外部からの刺激もありません。 でもボーっとしていても技量はあがりません。そういうときは、自分で何らかの刺激を自分に与え、やる気を掘り起こしています。
ではどうやって刺激を与えるか?それは安直ですが読書です。専門書を読みます。上手くいけばやる気が出てばりばりコードを書けるようになります。 そんなわけで買ったまま積み上げておいた本でも読むことにします。

Heimdallrの今後のブレイクスルー?

今、HeimdallrというRSS Readerを開発して公開しているのですが、ダウンロード数が一週間に100件くらいです。 窓の杜に紹介された週は一週間で1000件近くに達したことを考えると、有名なサイトによる宣伝の効果は大きいなぁと改めて実感します。

もう一度ブレイクスルーを起こすにはどうすれば良いかと考えてみると、たぶん答えは一つしかありません。それはGUIの見た目の改善です。 今のHeimdallrのGUIは、実用一点張りのデザインと言えば聞こえは良いですが、簡素過ぎて見た目のインパクトはまったくありません。

デスクトップに常駐するソフトは、「あれ以外の何か with "任意"」などの過去の例を見ても分かるとおり、見た目が良くないと広まりません。 もちろん見た目を気にしない人は居ます。しかし、見た目を気にする人は気にしない人よりもずっと多いようです。

しかし私には綺麗な絵やかわいい絵を描くスキルはまったくありません。自分にできなければ他の人に助けて貰うべきです。 しかしHeimdallr用に絵を描いて下さいと言ってもたぶん誰も描いてくれないでしょう。 WinAmpあたりのスキンが利用できるようになれば、良質のスキンが大量に手に入ることになるので 見た目の問題は一気に解決できるのですが、WinAmpのスキンの仕様を見ると、WinAmp専用で応用するのは難しそうです。 ゲーム用フリー素材などを探して地道にスキンを作っていくしかないかもしれませんね。

こう色々考えると、様々なアプリケーションで利用できる汎用スキンフォーマットが欲しいなぁと思います。 誰か考えて普及させて貰えないものですかねー。協力しますよー。

Visual C++.NET 2005の新機能

MicroSoftのサイトにVisual C++.NET 2005の新機能についての記事があります。読んで見てちょっと感動したので、概要の紹介と感想を書いて見ます。

一つ目の新機能は、Optimization with Link-Time Code Generationで、これはリンク時にコード全体を見渡して最適化を行う機能です。 従来のコンパイル単位はソースファイル1つであり、最適化もソースファイル1つだけを見て行われていたのですが、 リンク時に全てのコードを見渡して行うことにより、さらなる最適化が望めそうです。例えば、

int Func(int a, int b)
{
  // aとbを使って色々計算
  return 結果;
}

というコードがあった場合、従来はこの関数の中だけで最適化するしかありませんでしたが、 リンク時には、例えばこの関数を呼んでいる場所の90%はFunc(1,5);と引数を設定して呼んでいる、ということが分かってしまったりするわけです。 これをヒントにすれば更なる最適化ができそうですね。

二つ目の新機能は、Profile Guided Optimizationで、これはアプリケーションを実際に動作させ、どの関数がどのくらい呼ばれているか、といったプロファイルを取り、 それをヒントにして最適化を行う機能です。

例えば、上記Func関数の場合、プロファイルを取ってみたところ、 実際にはコード中にただ一箇所しかないFunc(2,3);という呼び出しが呼び出しの90%を占めていることが分かってしまったりするわけです。 これをヒントに最適化すれば、さらなる最適化ができそうですね。

最近のMicroSoftの主力言語はC#に移っていて、VisualStudioもC#に関する機能にはどんどん拡張がほどこされて行き、 C++に関する機能に対する拡張はあまり目立ちません。
Visual C++ 6.0とVisual C++.NET 2003を比較してみますと、C++に関しては、編集環境はほとんど変化がありません。 IntelliSenseも機能しないことが多いですし、リファクタリングやコーディング規約などのサポートもありません。 ドキュメントコメントもC#だけでC++には対応していません。日本語ヘルプも充実してなく、がんばって英語を読まなければなりません。
これだけを見ると、MicroSoftはC++を見捨てるのかと感じます。 しかし、コンパイラだけはC++標準へより準拠するようになり、C++標準への準拠度は世の中のC++コンパイラ中トップクラスになりました。 これは全然派手な機能ではないですが、とてもポイントが高いです。

そしてVisual C++.NET 2005に施された拡張が上記の通りです。 この拡張は、実行速度最速のコードが欲しいからC++を使っている人にはとても望ましい拡張です。
Visual C#.NET 2005に施された拡張をMicroSoftのサイトで見てみると、 これはいかにもコードを書くのが楽になるなぁ、という感じがします。
なんというか、

というMicroSoftの意図を感じます。ホントにマニアの心だけをピンポイントで直撃してきますね。 MicroSoftがC++を見捨てる意図を感じたら私はC#に移ろうと考えているのですが、 これがあるからC++を見捨てられない。残念なのか嬉しいのか微妙なところですね。

前の開発日記 次の開発日記 一覧