« つぶつぶキウイポッキー | Main | 池袋ジュンク堂は、ステキだった »

Javaの掟 Rubyの掟

池袋ジュンク堂のトークセッション「Javaの掟 Rubyの掟」を聞いてきました。

内容はたぶんそのうちニコニコ動画にでも上がるんじゃないかと思いますので、感想メインで書き連ねます。

まず、「コーディングの掟」の話。やっぱり盛り上がったのはバージョン管理の話。artonさんが「意外と使ってないところあるんだよ。(プロジェクトの)人数が多ければ多いほど使ってない場合が多い」という話をしてました。私もそれは実感があります。それは、要するに人数が多いほど単一の文化を浸透させるのが難しいってことに他なりません。

「書いたらコミットしてくださいよー」ぐらいまでは何とかなっても、ブランチとかリリースとかの文化は厳密にはプロジェクト依存になるのでなかなか・・・。台帳管理なんてのも結構あるよとartonさんが言って、周囲がびっくりなんて感じでしたが、私にとっては普通です(笑)。リリース管理台帳のExcelからcvs rtagを打つRubyスクリプトとか書いてますし。るいもさんがどういうことから台帳管理になるかという話で「リリースをミスってお客様に謝るときの"歯止め"として言い易い」というのは納得です。ついつい、ミスの防止策を「手順書作る」っていうのと「台帳管理する」ってのにしちゃうんですよね・・・

次に、「Ruby(1) はじめてのプログラミング」の話。この本はそもそも、「コンピュータって何?」っていう人がRubyを最初の言語としてプログラミングを学ぶというコンセプトの本。同時に「PHP版」と「Javascript版」もあるらしいです。「C版」も出るという噂が・・・。というわけで、artonさんとるいもさんがこれまでの初心者本の不満点を解消し、「このぐらいは常識としてしっとけー」と思いの丈をぶつけた本。なので、タイトルに「Ruby」とデカデカ出ているのに80頁目ぐらいからやっとRubyのインストール(笑)。そういう意味で型破りですが、artonさんは「これをやるためには、これを説明しとかなきゃいけない。でも何もかもいきなり説明してもわからない・・・」というのをパズルのように組み上げているわけで、たぶんそれはなかなか楽しいことだと思いますけど、まあ、大変ですよね。

思えば自分はそういう地味な話は何で覚えたかというと、私、大学の時になんとなくで情報処理2種試験を受けてるんですよね。その時の参考書を最初から最後までざっと読んで、それだけです。後は、当時「ざべ」とか「Cマガジン」を読んでいてちょいちょい拾ってるぐらい。ちゃんとした教育は受けてません。でも、逆にそれぐらいで十分だったような気もするんですよね。

最後に、高井さんがJRuby部分を補完したという「JavaプログラマのためのRuby入門」について。私は母国語がRubyでJavaは文法ぐらいは頭に入ってるけど日常会話にも事欠くというレベルで「RubyからJavaへ」が欲しいんですが、この本は実は、「Rubyではこう書く。Javaで同じことを書くとこうだ」という順番で書いてあるので、Rubyistの私が読んでもすごく勉強になります。

私は最近はRubyしか書かないので、空気を吸うようにイテレータを使いますが

def block_arg(x, &proc)
  proc.call(x)
end

block_arg('hello') do |x|
  puts x + ' world!'
end

をJavaで書くと、

interface Block {
    void call(String x);
}
static void block_arg(String x, Block b) {
    b.call(x);
}
public static void main(String[] args) {
    block_arg("hello", new Block() {
            public void call(String x) {
                System.out.println(x + " world");
            }
        });
}

だという部分とか、ものすごーく勉強になりました。でも書ける自信がないっす(笑)。というか、後者を書いてまでブロックを渡したいと思うかってことですよねえ・・・

ダックタイピングやmix-inの説明のところで

この例から、Rubyのプログラミング言語としてのパワーに比べて、Javaで同様のプログラムを開発するには設計力が要求されることが理解出来ると思います。逆に、ここで示したようなRubyの実装からJavaプログラムの設計へ落とし込みができれば、プロトタイピング言語としてRubyを利用し、プロダクト言語としてJavaを利用することも可能となります。

と書いてあります。

ホワィの(感動的)Rubyガイドで、「これはもうプログラミング言語じゃなくて、プログラマ言語だ」というくだりがありますが、RubyのRunableな仕様記述言語の可能性というか、Ruby脳だから有り得る理想的な設計とか、そういうものまで感じます。Lisp遣いの皆様には単に「視野を広くできただけじゃん?すべてLispにあるよ」ということになるのかもしれませんが(笑)

私は先日書いたみたいに、Cを勉強してC++がなんのこっちゃわけがわからずに、Delphiでやっとオブジェクト指向(で作られたクラスライブラリってどんなのか)を理解したんですが、Rubyをやって初めてオブジェクト指向のありがたみが本当の意味でわかりました。でも、単にRubyが協力にオブジェクト指向を体現する言語でRubyだけで考えていればオブジェクト指向が単純に見えるからわかったような気がしていて、Javaのような言語でオブジェクト指向で設計するというレベルは全然わかってなかったんだなあと思ってしまいました。

高井さんが、Javaの人がRubyのプロジェクトをやっても「わりとイケる」という話をしてましたが、そりゃそうでしょう。Rubyなんかより、よっぽどJavaの方が難しいってことですよね。

というわけで、思いの外(と言ったら失礼ですが)、この日紹介された本の中では「JavaプログラマのためのRuby入門」が面白かったです。

トークセッション全体も和気藹々で楽しかったです。また、機会があったら参加してみたいですね

|
|

« つぶつぶキウイポッキー | Main | 池袋ジュンク堂は、ステキだった »

パソコン・インターネット」カテゴリの記事

Comments

Post a comment



(Not displayed with comment.)


Comments are moderated, and will not appear on this weblog until the author has approved them.



TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/47905/43973313

Listed below are links to weblogs that reference Javaの掟 Rubyの掟 :

« つぶつぶキウイポッキー | Main | 池袋ジュンク堂は、ステキだった »