Visual Studio 2005 がステキすぎる。

2005年の製品を、何をいまさら、という感じなんだけど。
でも、ちょくちょく語りたくなるので語ります。

Visual Studio 2005を使ってから、確かにプログラミングが楽しくなったと実感できる。

その理由の90%は、オートコンプリート(自動補完)機能の、尋常でない賢さである。インテリ・センス!インテリ・センス!
今までのオートコンプリートが、ドットで発動するものだとしたら、2005のオートコンプリートは、「ドットでポン、コンマでポン、スペースでポン、右クリックでポン、閉じ大括弧でポン」くらいの勢いである。
<好きなオートコンプリート>
インスタンスを作成するとき、new の後スペースを押した瞬間、クラス名を補完できる。
・インデントを適当に作っておいて(コピペを多用すると頻繁にがたがたになってしまう)、一番外側の閉じ大括弧「}」を押すと、インデントが正しくなる。
・メソッドやフィールドの前で「///」を入力すると、コメントのハリボテが追加される。
・デザイナのイベント入力画面を使わずに、手入力でイベントハンドラを追加してみて欲しい。
 具体的には、
   this.button1.Click += ←ここらへんまで打つ。
 Tabを押せというので、押してみる。
   this.button1.Click +=new System.EventHandler(button1_Click); ←自動補完
 もう一度Tabを押せというので、押してみる。
   → button1_Clickメソッドのハリボテが追加される。
 SUGEEEEEE!!!
・継承クラスで、親のメソッドをオーバーライドしたい場合、overrideって入れるだけで候補が出てくるから、うろ覚えでも安心。

ほんまによぅできる子やー。

ステキな理由の6%は、C#である。
でも考えてみたらどこが良いのか、うまく説明できない。
値型が使えたり、列挙型が使えたり、ジェネリックが使えたり、デリゲートとかいう関数ポインタのオブジェクト指向型が使えたり、それを応用(悪用?)してJavaScriptばりに無名関数を使いまくれたり、属性が使えたり、いまだにCOMやAPIが使えたり。
そんな節操のないC#がすき。
列挙型がもう少し機能強化して欲しい気もする。
#仕事では使いたくないけどね〜。自分で楽しむ分にはいいけど。
#感覚の合わない人が作ったC#をメンテしてくれと言われたら、ぶん投げるかもしれない。

ステキな理由の3%は、.NET Frameworkである。
正直、それほどステキじゃない。
簡単なものなら、とても簡単に作れる。
しかし、ちょっと凝ったものを作ろうと思ったら、結構使えない。機能が足りない。
結局APIを調べて過去の資産で解決したりすると、やがてDLLHELLに至ったりして…。

フレームワークLinuxに移植するMonoというプロジェクトがあるけども、Windows.Formsの移植は無理なんじゃないかな、と思う。
WindowsとMSさんは過去の資産を利用できるからいいようなもので。
結局主たる土俵は、テキストメインのバッチ処理や、Web系で、
主たるライバルはJavaなんだろうね、結局。

ステキな理由の1%は、タダで手に入れたから。(以下略
#正規ライセンスですよ?