日曜日, 1月 29, 2006

Ruby, Python, Groovy, Rhino

今年は春からIT系の大学の週末コースに行くことにした。この大学のオンライン教材は昔私がプーの頃、独学でいろいろ勉強する時にかなりお世話になった(今は学生でないと利用できなくなってしまったが、当時は誰でも閲覧できた)。カリキュラムは Java, XML, UML, Linux など、現在の仕事にかかわりの深いものばかりだ。

現在の仕事ではJavaは非常に重要なのだが、私は仕事ではJavaのコードを1行も書いたことがない。私よりももっと優秀な方に外注をお願いできているので、必然性はないのだが、サイト上でのサービスを色々考えるにあたり、技術を理解しているのといないのとでは、思いつく事柄の幅とクオリティに雲泥の差がある、と私は思う。

なので、Javaには何度もチャレンジはしているのだが、大抵の場合

  1. 最新のJDKをダウンロードしてくる
  2. 最新のTOMCATをダウンロードしてくる
  3. 環境変数を設定
  4. Hello、Worldとか簡単なコードを書いてみる
  5. もうちょっと凝ったものを作ろうと思うと、スペルミスでコンパイルエラーが続出したりして、なかなかうまく動かない
  6. Eclipseのような、開発環境をダウンロードしてくる
  7. 使い方が全然分からなくてはまる

というあたりで1日が終わり、結局そのままになってしまう。プログラミングを学ぶ場合、本を読むだけでは全然ダメで、分かったつもりでも実際にコードを書く段階になって「はて?どうやるんだっけ」ということがよくある。

簡素なプログラムをザクザク書いては動かし、修正し、ということを繰り返すのがAPIを覚える一番の早道なのだが、Javaの場合はクラスの使い方を覚えるために「ちょっと動かしてみる」というのが結構面倒くさい。今年、Javaを学習するにあたり、このへんが何とかならないかと思っていたのだが、Web上でたまたま「Javaライブラリをインクルードできるスクリプトが増えており、自作クラスのテストに便利!」という記述を見てスクリプト言語に興味を持ち、タイトルの言語についていろいろみてみた。

調べていくうち、これらはJavaを学ぶ上でだけでなく、普段の作業でも使えそうだと思った。私自身仕事で大量のテキスト処理をするときにBashスクリプトをよく使う。しかし、細かいことをしようとすると、コードが記号だらけになってしまって読みにくい(私はPerlはこの理由で学ぶ気すら起きなかった)し、長い処理を書く気にはならない。

  • Ruby 
    オブジェクト指向のスクリプト言語ということだけしか知らなかったのだが、Ruby on Rail という言葉を最近聞いたこともあり、なんか最近人気が出てきているらしい。構文は非常に分かりやすいし、Cygwinにも入っている。日本人が開発しているので、文字コードのところで変にはまったりということもなさそう。なんかよさげ。
  • Phython
    Googleが使っているということと、Javaライブラリを使う仕組みが最初から実装されていること、そしてGUIのライブラリがあることが強みか。でも、日本ではあまり盛り上がっているという印象がない。本やドキュメントが英語しかないと学習効率が落ちそう。
  • Groovy
    構文がまんまJava+ちょっとの簡素化ということなので、新たに言語を覚えなくてよいというのが魅力かも。しかし、Rubyの方がずっとユーザーが多いっぽい。
  • Rhino
    JavaScriptの文法というところが魅力。AJAXの普及もあり、JavaScriptとDHMLはどのみち勉強しなおさなければと思っているだけに、一石二鳥か。しかし、Amazonに関連する本が一冊もなかった。

結局、Rubyがよさげに思えたので、Amazonで本を一冊注文してみた。まずは、CSVファイルを読み込んでバリバリ置換するような用途と、XMLファイルやHTMLファイルをパースするくらいを目指してみよう。