【レポート】
フレームワーク対決は、Perl、Ruby、GaucheからそれぞれSledge、Ruby on Rails、Kahuaというウェブフレームワークを発表するというセッションだ。まずセッションに先立ち、ウェブフレームワークとはどういったものか、それがもたらすものは何かといった説明があった。
ウェブフレームワークといえばJavaのStrutsが有名だ。現在では次期ウェブフレームワークとしてJSF、Struts 2、Hibernate、Spring、Seasar2なども開発にしのぎを削っている。最近ではP言語(PHP、Python、Perlなど)と呼ばれることが増えているが、P言語はウェブフレームワークが弱いと言われることが多い。しかし1999年にはPHPでフレームワークが使われているなど、LLにおけるフレームワーク採用の歴史は意外と長いのだ。
ライブドアの池邉智洋氏からPerlのウェブフレームワークSledgeの発表があった。
Sledge(Simple/Smart Library for Edge)は、Strutsに影響を受けて開発されたPerl用のウェブフレームワークだ。2001年に開発されたウェブフレームワークで、すでに5年の動作実績がある。
Sledgeはもともとオンザエッジ(現在のライブドア)における商用サイト開発のために開発されたものだ。もともとは商用サイトで採用しているコードがどれもよく似ていることから、共通点を抜き出して整理したものなのだという。Perlと同じArtistic LicenseかまたはGPLのもとに公開されている。
SledgeはCPANモジュールをベースに構成されたウェブフレームワームで、フックによる機能拡張や、適切に日本語文字コードをハンドリングする処理などを行えるといった特徴がある。CPANモジュールをベースにしているのは、個別に実装するよりもCPANモジュールを採用することでCPANモジュールの改良を積極的に採用しようということだという。Apacheとmod_perlで動作するが、Apacheとは別にセッション管理も行うことができる。
MVCモデルをベースにしたウェブフレームワークだが、実際のところビジネスロジックはケースバイケースで明確に分離することは困難とし、それほど明確に分離させてはいないという特徴もある。
Sledgeの問題点はパッケージ管理システムがない環境ではインストールが難しい点にあるという。最近再び脚光を浴び始めているため、Validationの対応や導入の容易化などを今後の作業として考えているということだ。
日本Rubyの会の高橋征義氏からはRubyのウェブフレームワークRuby on Railsの発表があった。
LLで現在もっとも注目されているウェブフレームワークのひとつがRuby on Railsだ。Ruby on RailsはRubyのウェブフレームワークで現在大変注目されている。Ruby on Railsの特徴はいくつもあるが、必要になるファイルが自動生成されるという点が興味深いところだ。railsコマンドを実行すると必要になるファイルが自動的に生成される。標準的な利用であれば、設定ファイルを書くだけでウェブアプリケーションとして動作させることも可能だ。
Ruby on RailsにはDRY(Don't Repeat Yourself)というポリシーがあり、できるだけ同じことはしないようになっている。DRYを実現する方法として、規約重視、言語重視という方針がとられているという。
規約重視というのは、実装で手を尽くすのではなく、あらかじめ実装の規約を定めその規約に従ったプログラミングを行おうというものだ。最近のウェブフレームワークでの主な手法の一つだ。Javaの世界では次期EJB 3でも中心的な課題になっている。言語重視というのはここではドメイン特化言語の発想に近い。
興味深い話として、JavaのウェブフレームワークとRuby on Railsを比較して、言語としてのバランスがあるのではないかという話があった。現在Javaでは、DIのように疎結合ということがひとつのキーワードとして扱われている。これに対し、Ruby on Railsは密結合のウェブフレームワークだという。DAOやDTOはモデルと一体化しているし、モデルのスーパークラスはすべて同じクラスだ。コントローラにも直接SQLを書き込むことができる。これはJavaで採用されている流れと逆行しているといえる。
密結合は柔軟性に欠ける。この点、Javaのアプローチは適切で、Ruby on Railsのアプローチは誤っているように見える。しかし、これは言語の硬軟という視点を加える必要があるという。Javaは言語としては硬く、Rubyは軟かいという。つまり、Ruby on Railsは密結合だが、Ruby自身が軟かいため、これでバランスが取れているという。Javaは言語が硬いため、フレームワークは疎結合ということだ。
疎結合なフレームワークは記述が間接的で理解しにくく、コーディングが面白くないものになりがちだ。Ruby on Railsはその点直感的で扱いやすい。つまり、言語にはその言語の特性に合わせたバランスがあるため、むげに他の言語のウェブフレームワークを真似すればよいというものではないという。LLにはLLの特性があるため、その特性に合わせたフレームワークが必要というわけだ。
Ruby on Railsは今後は国際化を進めるなどの作業が行われるということだ。
タイムインターメディアの柴田知久氏からはGaucheのウェブフレームワークKahuaの発表があった。
GaucheはSchemeのひとつだ。これらはLispによく似た言語で、プログラミング言語としては関数型言語に分類されることが多い。関数型言語は手続き型言語に較べるとプログラミングにパズル的要素が多くなってしまうことから広く普及してはいない。しかし、関数型言語は、関数型プログラミングの発想になれてしまえばきわめて開発効率の高い言語だと言われている。
KahuaはGaucheで作成されたウェブフレームワームだ。継続ベースのウェブフレームワークで、Gaucheを使ってウェブアプリケーションを開発するためのフレームワークということができる。継続は、これから行われるであろう計算をパッケージ化したもので、Kahuaでは継続がベースとなる。Kahuaはウェブフレームワークとしてはきわめてユニークな部類にはいる。現在ではテンプレートなどへの対応がないことから、今後はそうした機能を実装していくということだ。
| トマトを食べれば痩せられる!? -京大ら、新発見の成分で肥満改善効果を実証 [21:00 2/10] |
| JAXA、液体シリコン中に残存する共有結合を観察 -大口径ウェハの実現に期待 [20:11 2/10] |
| NEDOなど、熱膨張が小さな樹脂複合材料ペレットの量産化に成功 [19:22 2/10] |
| 理研、一般顕微鏡を蛍光顕微鏡に強化できるアダプタを試作して性能を実証 [19:15 2/10] |
| 天の川のブラックホールが小惑星を飲み込んでいる - NASAが発表 [18:08 2/10] |
|
【レポート】「appliko」がオススメAndroidアプリを紹介!! - 1月31日~2月8日のAndroidアプリランキング [01:30 2/11] 携帯 |
|
【レポート】人気の無料/有料アプリを毎週紹介 - 1月31日~2月8日のAndroidアプリランキング [01:00 2/11] 携帯 |
|
渡部篤郎主演でドラマ化!地元新聞社が伝え続けた東日本大震災の物語 [00:08 2/11] キャリア |
|
沖縄発ヒーロー革命!「琉神マブヤー」が海を越えハワイを目指す! [00:08 2/11] キャリア |
|
中国四川省、パンダの保護と生態研究の最新情報とは? [00:08 2/11] キャリア |