2008年1月21日月曜日

覚えるべきプログラム言語(超偏見)

プログラム言語と言えばCやVBが定番ですね。最近の流行りで言えばJavaやC#なんかも挙げられるでしょうか。
コンパイル型の言語はがっつりとアプリを構築したい時には便利ですが、細々としたものをささっと作るには向いていないかもです。パフォーマンスを要求されるようなアプリではこれらの言語、特にC/C++は圧倒的に有利ですが。
ここでは、むしろスクリプト言語にスポットライトを当ててみようかと思います。スクリプト言語で人気なのはRubyやJavascript、Actionscriptなんかも挙げられますね。
言語によって文法は多少異なりますが、こと、デスクトップ上で動作するウィジェットに限ればどれも構成は大差ありません。エンジンとなるプロセスがあり、そいつが呼び出すスクリプトを実装し、スキンなどを同梱してアーカイブする。これがほとんどのウィジェットに当てはまります。
ネットワークに接続するソケットプログラミングや、環境変数をしょっぴいてくる、画像を表示するといった作業はコアコンポーネントをインポートするだけで使えたり、あるいはスクリプト自身がその機能を有していたりします。1つウィジェットの作り方を覚えたら、そのテクニックが他のウィジェットにも使い回せることが多いです。
WindowsのウィジェットツールではJavascriptとActionscriptが主流な気がします。あとはオリジナルのスクリプトでしょうか。Rain1系やSamurize、Sysmetrix(だっけ?)なんかがそれぞれオリジナルのスクリプト体系を持っています。
システム情報の表示くらいならどれも似たような方法でスクリプトを書くので、どれか1個作ったら素材は使い回せることが多いですね。実際、私はRainmeterで作成したウィジェットの素材を使い回してSuperKarambaのウィジェットを作成しました。言語はRainオリジナルとKarambaオリジナルで全く違いますが、座標指定やテキスト表示の方法はコマンドが違う程度なのでちょっとした修正だけで済みます。ボタンをクリックしたら何かプログラムを実行する、そういった手のこんだウィジェットを作成するとなると使いまわしは難しいですが、スキンとそれの表示用スクリプトは使い回せることが多いですね。
特に、LinuxだとほとんどのウィジェットがPythonでスクリプトを書けるため、プログラムの実行部分を使い回せることが多いです。メールの受信とか、RSS受信とか。Linuxのデスクトップを賑やかにしたいなら断然オススメはPythonですね。Linux界隈では大ブームで、特にFedoraは多くのコマンドがPythonで実装されてます。
さらに、今後はAdobeのAIRとかM$のSilverlight(Linux向けにはSilvermoonとか言ってたっけ。逆だっけ?)を用いることで、WinとLinux両方で使えるパッケージも期待できます。
個人で楽しむ、ちょっとしたウィジェットなら簡単なコマンドで書けます。今後、覚えるならスクリプト言語がオススメ!?