2008年5月アーカイブ
IronPythonの勉強ついでに、.NET Frameworkを勉強するためにひさしぶりにC#を使ってみたのですが、VisualC#のIntelliSense(入力支援機能)にカルチャーショックを受けましたw
私が以前C#を使ったときは、テキストエディタ(C#未対応)+コマンドラインコンパイラを使っていたので、入力支援なんて受けられませんでしたが、今回使ってみたVisualC#2008のIntelliSenseはVisualC++とは比較にならないほどの使いやすさでした。
これは単にC#とC++の文法上の差というよりも、全てがグローバルな名前空間に置かれているWin32APIと、名前空間を細かく分けている.NET Frameworkの違いが大きいと思います。
.NET Frameworkのクラスライブラリは、初めて見たときはやりすぎじゃないかと思ったほど細かく、そして何重にも入れ子にして名前空間を区切ってありますが(クラスが1つあるだけの名前空間なんてのがある)、これがIntelliSenseとの相性抜群です。1つの名前空間には少数の識別子しかないので、頭の1~3文字を入力すれば目的の候補を選ぶことができます。System.Windows.Forms.Buttonなどという長い名前でも、実際にタイプするのはsys.wi.f.buだけで済みます。(もちろん名前空間なのでusing System.Windows.FormsしておけばButtonだけでもいい)
今まで、入力支援無しでC#を使ったときの印象で、わざわざ選択する価値は無いなんて結論付けていてすみませんでした。これは素晴らしいものです。言語仕様、ライブラリ、エディタと三すくみでよく練られた開発環境だと思います。
後は.NETアプリケーションの起動の遅ささえなんとかなれば、今日からでもC#メインに移行してもいいんですけどね。ネイティブコードを吐いてくれるC#コンパイラとかあったら最高です。(将来的な脱IA32のためにMSからの提供は無いかな?)
IronPythonはVisualStudioのフォームデザイナを使って、Windowsフォームアプリケーションも作れるので、試しに電卓を作ってみました。
フォームデザイナでコントロールのプロパティを編集すると、ちゃんとPythonのソースコードが変化します。ちょっと感動。
実は私は.NET Frameworkを使うのはこれが初めてですが、かなり使いやすい印象を受けました。Pythonの文法も簡単だし、フォームデザイナも使いやすいし、この組み合わせは最強のRADツールになるかもしれません。
今回作ってみた電卓アプリケーションをせっかくなので置いておきます。
ソースコードと実行ファイル入りです。IronPythonはexeを出力するので、実行の際にはIronPythonのインストールは必要ないようです。(.NET Framework 2.0は必要)
PythonをMicrosoftが.NET Framework用に実装したのが、IronPythonです。
IronPythonはオリジナルのPythonと高い互換性を保ちつつ、.NET Frameworkのクラスライブラリも使えてしまう、とんでもない物です。C#やVB.NETとの相互連携も容易で、お互いにオブジェクトのやり取りができるみたいです。
さて、ここまでなら私も( ´_ゝ`)フーンという感じですが(C#とか使ってないし)、さすがMicrosoft、凄い物を用意しています。
それがIronPython Studioです。
名前から想像できる通り、これはIronPython用のIDE環境です。単独で動くものと、VisualStudio2008に統合可能なものの2種類あります。
元はVisualStudio SDK(VSを拡張するためのSDK)に入っているIronPython Integrationサンプルで、それが単独のプロジェクトとして独立したのが、IronPython Studioみたいです。
しかし、現在公開されているIronPython Studio 1.0ではインストールしてもWPF Applicationしか選択できなかったり(その他のテンプレートはエラーが出ている模様)、そのWPF Applicationもインストールしただけではビルドすらできなかったりと、まだまだ使い物にならない状態です。
現状ではVisualStudio SDKに含まれるサンプルの方がちゃんと動きます。ただし、こちらはソースコードでの提供となるので、自分でビルドしないと使えませんし、VS2008か2005のStandard Edition以上が必要となります。
実際にVisualStudio 2008上でPythonプロジェクトを作成して簡単なスクリプトを書いてみました。(私が初めて書いたPythonスクリプト)
コードが色分け表示されたり、IntelliSenseで入力支援が受けられるのはもちろんのこと、デバッガまでちゃんと対応しているのが驚きです。
ちょっとしたスクリプトの編集にVSを持ち出すのは大袈裟な感じですが、大規模なスクリプトの開発には強力な武器になりそうです。
現在Microsoftが開発中のSilverlight(Flashモドキ)でもIronPythonが使えるみたいなので、このギャグみたいなプログラミング言語が、近い将来にメジャーな言語になっているかもしれませんね。
ちなみにIronRubyも開発されているので、Ruby大好きっ子の人も安心してください :-)
数日前からPythonの勉強を始めました。
Ruby等、他にも選択肢がある中でPythonを選んだ理由は……boostライブラリにPython関係のライブラリがあるので(それが何のためのライブラリなのかは知りませんが)、なんとなくC++との連携が便利そうだったから。
Pythonの言語仕様に一通り目を通してみた感想は、文法がシンプルで分かりやすく、変数どころか構造体すら宣言無しで使えて扱いやすそうな感じです。C++が扱える人ならば、3日もあれば文法は理解できるでしょう。
個人的に感動したのが、他の言語では簡単な操作のわりに面倒な2つの変数の値の入れ替え(swap)が、Pythonでは
x, y = y, x
と一行で書けてしまいます。
これは右辺で(y, x)のタプル(無名の構造体に相当する)が一時オブジェクトとして作成され、左辺ではシーケンスのアンパックという操作でタプルが分解されて個別の変数に代入しています。
CGI用のライブラリも標準で用意されているので、しばらくはPerlで書かれているCGIの移植でもしてみようと思います。
5.0、6.0、2003とProfessional Editionを使ってきたのですが、2008ではStandard Editionでも十分な機能があるので、今回はStandardにしました。(参考リンク1、参考リンク2)
Professional Editionで出来てStandard Editionで出来ないことをまとめると
1.Officeアプリケーション開発
2.モバイルデバイスサポート
3.単体テスト
4.SQLデバッグ
5.リモードデバッグ
こんなところです。1~3はVC++では制限のある機能なので、VC++がメインの私には恩恵も少なそうです。(そもそもOfficeアプリケーションやモバイル開発に興味がありませんが)
上記参考リンク2で「ガイド付き最適化のプロファイル」にチェックが入っていませんが、ビルドメニューから呼び出せないだけで、プロジェクトのプロパティからは設定可能なので、多少面倒ですが利用は可能です。
IronPythonもStandard Editionで使えることを確認しました。
さて、このアップグレード版ですが、実はアップグレード元の対象として無償提供されているExpress Editionが明記されています。(ソース)
VisualStudioを初めて購入する場合でも、合法的に安いアップグレード版が購入できます。
ちなみに、買ったばかりのまっさらなPCにアップグレード版をインストールしても、アップグレード元のメディアやプロダクトキー等は一切要求されませんでした。今後、再インストールするときも楽で助かりますが、これでいいんだろうかw
昔好きだったInterstate'76というゲームをWindowsXP上で動かすことに成功したので動画を撮ってみました。
この動画をアップしたのは去年の12月なんですけどね。インストーラでも作ってクリスマスプレゼントかお年玉として公開しようと思ったのですが、こんなゲームをいまだに持っている人いなそうなので中止しましたw
このゲームをXP上で動かす方法ですが、
- なんとかして日本語版をインストールする(Pentium3以降ではCPUが速過ぎるために0除算エラーが発生して普通にはインストールできません)
- レジストリをいじって英語版のフリをする
- Gold Edition(英語版)のパッチを当てる
- 音声のプロパティあたりでサウンドのアクセラレータをOFFにする
という手順が必要です。
日本語版をインストールしてサウンドのアクセラレータをOFFにするだけでも一応動くのですが、車が何かにぶつかった瞬間に落ちてしまいます。これはフォースフィードバックが影響しているらしく、英語版の新しいバージョンでは設定ファイルの編集でフォースフィードバックを無効にすれば解決するそうですが、日本語版にはいくら探してもそんな設定がありませんでした。
Gold Editionのパッチを当てると音声が英語になってしまうので、この動画の撮影時には音声ファイルを日本語版のものに置き換えて「ほぼ日本語版」にしてあります。
先日、新しいPCを購入したついでに、今まで気になっていた電源周りを整理しようと思い、エレコムの「コードすっきりタップ」と「ACアダプタすっきりタップ」を購入しました。
コードすっきりタップは、接続したコードが一方向にまとまり配線がスッキリします。ただし、見ての通りこのタップにACアダプタを接続すると他の接続口が塞がってしまいます。そこでACアダプタすっきりタップも同時に購入し、ACアダプタはこちらに接続しています。
詳しくは、エレコムのプレスリリースでもどうぞ。実際に電源コードやACアダプタを接続した写真もあります。
私は電源コードを延長する必要はなかったので、コードすっきりタップは0.3mのものを、ACアダプタすっきりタップは雷ガード付きの1mのものを購入しました。(何故か雷ガード無しタイプは2m~しか無かったので)
実際に使ってみた感じでは、期待していたコードすっきりタップよりも、おまけで買ったACアダプタすっきりタップの方が良い感じでした。

