32nd Diary

トップ | 最新 | 過去の日記 | もっと過去の日記

2004年
8月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
めーるあどれす
ruby -rbase64 -e'puts Base64.decode64 %q(dGFrYW5vMzJAZ21haWwuY29t)'



2004-08-08 (Sunday) [長年日記]

[Ruby] Lightweight Language Weekend 2004

どうでもいいですが,略してLLWというと某先輩のサイト*1が思い出されます.

そんなわけで,この週末はLight-weight Languageのお祭りでした.わたしも応援を兼ね,Slashdotにタレコミました.→301 Moved Permanently

タレコミ文が秘かに「Ruby, Perl, PHP, Pythonなどに代表される,軽量プログラミング言語」とRubyを先頭にもってきているあたりに野心を感じませんか?感じませんか.そうですか...orz

*1 某先輩: 就職内定おめでとうございます.

[Java] Groovy!!

個人的に今回一番気になったネタがこれ.

以前見かけたときは,XDocletなどと一緒に見ていたので,てっきりコード生成のツールだと思っていたが,どうやらJavaのLL*1だそうで.しかもスゴイ.

角谷さんのスライドを見る限り,動的&静的な型付け,Javaのevalなどなど.こりゃ,やばい.

実績のある言語,JavaのLLですよ.ということになれば業務でも使いやすいのではないですかね.

まぁ,素のJavaはイテレータを見ても未成熟だし,yield*2のようなこともできないし,他の言語もそこそこ使う人から見れば不快な点がいっぱいなんだけどなー.んでもJavaばっかりやって「Javaサイキョー」って人が多くない?(とか言う)

その点,Groovyは"bringing the power of Python and Ruby inside the Java platform. "(本家より抜粋)と言っているだけあってスゴイ.ブロッククロージャ,eachによるアクセスなどなどいいとこ取りですよ.

Javaだけしか使っていない人が新しい概念を取得するのにもオススメかもしれない.

*1 JavaのLL: 同種のものにPnutsというものもあるみたいですが,Groovyのほうが完成度が高そうです.

*2 yield: Thread.yieldではありませんよ.念のため.

[Hack] Squeak!!

「君ならどう書く」で優勝した言語はどうやらSqueakだったようですよ!!

実際に自分が使ったことのある(しかもマイナーな)言語が活躍してくれるとなんだか気分がいいですねぇ.

ちなみにSqueakとはSmalltalkの実装のひとつですね.使ってるとソースコードの海を常に泳いでいるような感じで気分がよくなります.(ぶ

参考までに,もうひとつのSmalltalkの(比較的)メジャーな実装としてはVisualWorksというものがあります.

最近はSqueakの方が圧倒的に活動が活発ですけどねー.

[Ruby][Hack] その場でどう書く,YAML

各所で話題になっていますが,カレンダー + 予定表のようなものがお題となったみたいですね.

私も触発され,tDiaryのrepeatプラグイン*1を書いてみようと思いました.

で,実は今日,モデルの部分は作成しました.詳しい様子は明日以降にでも書きますね.

閑話休題.「その場でどう書く」のほうは後日,リファクタリング前とリファクタリング後のソースが公開されるかもしれないようなので楽しみです.

Rubyの「YAMLを使ってデータを保存した」というのを見て,「YAMLって何?時間ないんだし,Marshalしてしまえばいいのに.」とか思ったんですが,YAMLってテキストベースのMarshalとしても使えるんですね.

テキストベースなのでパフォーマンスに劣るかもしれませんが,少人数でしか使わないプログラムなどではガンガン使えるものですねぇ.勉強になった.

*1 repeatプラグイン: 繰り返しの予定を書くプラグイン(になる予定)."3sat SoftwareDesign発売日(第三土曜)"のような記述で予定を記述できるというもの.ちなみに元ネタはHyper Nikki Systemのrepeat

本日のツッコミ(全2件) [ツッコミを入れる]
ハゲ (2004-08-10 (Tuesday) 15:48)

やろうとおもえば、、、<br>new Each(list).do( new Block() { void perform( Object each ) {<br> // ...<br>} } );<br>とか<br>hage(Block block) {<br> new Yield(block).do( new Object[]{new Integer(3), new Integer(4)} ); <br> // (あー、なんでintがオブジェクトじゃねーんだ!)<br>}<br>// あー汚ね。だめだこりゃ。Squeakサイキョー

takano32 (2004-08-11 (Wednesday) 00:51)

いつもお世話になっております.ハゲ様.<br>↑を実際にやってみたところ,可読性に難ありです!(わら<br>それに比べるとGroovyはかなりよさげです!!<br>http://groovy.codehaus.org/Quick+Start<br>詳しくはeachとjoinの項目をご覧ください.

本日のPingbacks(全0件)