«前の日記(2005年06月06日) 最新 次の日記(2005年06月08日)» 編集

Matzにっき


2005年06月07日 [長年日記]

_ [OSS] 国内初のオープンソースCRMとFAQ管理システム,ネットワーク応用通信研究所が無償公開

おおっ、プレスが出ている。先日、取材されたって言ってたのはこれか。

ま、そんな感じです。

これを作っている人は純粋に業務としてオープンソースソフトウェアを開発しているので、 オープンソースとしては新しい形に開発スタイルと言えないことは無いだろう。 ま、最初の一歩としては上出来では(自画自賛)。

まだ成長途上だけど、これが広く使われるようなツールになるといいなあ。

_ [Ruby] ブロックターミネータ

Rubyがブロックの終端に採用している「end」はRubyのコードを特徴づけている。 「end」の羅列があるおかげで、ひとめてRubyのプログラムだとわかる。

  • ブロック終端を明示するおかげで「ブロックをとる式」を書くことができる。 これはブロックが文にしかなりえないPythonよりも優れた点である。
  • もちろん同様のことは「{ ... }」を使って実現できるわけだが、 「case ... when ...」や「begin ... rescue ...」のような ブロックの途中に節があるタイプの文構造が醜くなりがち。

しかし、endには視覚的にインパクトがありすぎるという欠点がないわけでもない。 すぐ慣れるけど。

で、ちょいと例としてQuのような「;;」を「end」の代わりにする 文法を許してみた。ソースの書き換えは6行。これで

class Foo < Bar
  def foo(x)
    p x
  ;;
;;

のようなソースが書けるようになる。うーん、Rubyに見えないな。

この機能は予告なく無くなる可能性があるので、本気では使わないこと*1

*1  しまった、April Foolにこの機能を取り込めば良かったな


«前の日記(2005年06月06日) 最新 次の日記(2005年06月08日)» 編集