Rubyは他の言語に比べると書き方が多く、色々なものを省略して書くことができる(括弧など)。そのため、人によって書き方が色々と存在するのが難点だ。その人のスタイルに合わせることができると言えば魅力的ではあるが、Javaのようにエンタープライズ向けに適用するのは難しいかも知れない。

ピクチャ 8.png

変換前のコード

 

そこで解決策を考えだした人がいる。画一的、エンタープライズ向けの言語(プログラミングではなく)と言えばXML、そのXMLとRubyを相互変換する試みがenterpriseだ。

今回紹介するオープンソース・ソフトウェアはenterprise、RubyとXMLの相互変換を行うライブラリだ。

なぜXMLとRubyなのか…それは問わない方が良いだろう。ちなみに現時点ではコンパイル時にエラーが出てしまうようだ(筆者環境に問題があるのかも知れない)。変換前のRubyコードに比べるととても冗長的で、定義がしっかりとなされているのが特徴的だ。

ピクチャ 9.png

XML変換したコード

 

だがここまで書ければ確かにRubyのコードを生成することもできそうな気がする(書いた方が速いとは決して口にしてはいけない!)。動的生成ができれば、プログラミングを作るプログラミング(皆の夢だ!)ができることだって考えられそうだ。

さらにXMLで定義を厳密にチェックすれば、余計なバグを含む可能性も少なくなる。そして動的に生成するならば、書き方が統一されたものになるので多人数によるエンタープライズ開発にも適用できる可能性がある。

enterpriseはenterprise_rubyコマンドによってXMLファイルをRubyコードに変換し、そのまま実行するようだ。enterpriseは既存のRubyコードをXMLに変換する。サンプルコードでは行数にすると10倍くらいに膨れ上がるが、細かいことは気にしなくて良い。なぜなら専用ツールの開発と、10倍人を投入すれば解決するからだ!

 

tenderlove’s enterprise at master - GitHub

 http://github.com/tenderlove/enterprise/tree/master