もじょもじょ

会社で、CakePHPというWebアプリケーションフレームワークを触るようになりました。

私は、この手の、ええと、なんだ、フレームワーク? については、「便利なんだろうけど面倒臭そう」という印象を持っていて、あまり積極的に触れてみようとは思っていなかったのですが、とあるきっかけで試してみたら、面倒臭いは面倒臭いけれど、それでも後々スッゲェ便利になりそうな感じがして、「おお、面白い」とあっさり転向してしまいました。

で、会社では主にPHPを使っていますが、自宅の趣味の世界ではPerlが好きなので、Perlでも似たようなのが無いかなと探していたら、Mojolicious::Liteというのを知ったのです。Mojoliciousってなんて読むのだろうと疑問に思ってしまいましたが、Deliciousがデリシャスなんだから、Mojolisiousはモジョリシャスで良いのだと思います。「違ってるよ、それ」的な事がありましたら、是非お知らせください。

※以下の記事は、Mojolicious Ver. 0.999929時点のものです。

さて、このMojolicius::Liteの事を調べていると、幾つかのキーワードが浮かび上がってきました。そのキーワードとは、以下のものです。

  • Mojo
  • Mojolisious
  • Mojolisious::Lite

私はモノゴトの経緯をキチンと知らないと不安で不安で仕方が無くなってしまうという、もう聞いただけで面倒臭そうな性格を地で行く人間なので、これらの関係が解らないと安心して勉強ができなかったのですよ。いやほんと、面倒臭いですね、私。

で、この辺の記事とかこの辺の記事とかを読んで、自分なりに大雑把な筋道を立ててみると、以下のようになりました。

  1. Mojoというミドルウェアが作られた。
  2. そのMojoを利用したMojoliciousというフレームワークが作られた。
  3. 紆余曲折あって、MojoliciousをシンプルにしたMojolicious::Liteが作られた。

もしかしたら、てんで見当違いの理解なのかもしれませんが、とりあえずこのように理解しました。実際の所、Mojolicious::Lite一式ファイル構成を見てみると、MojoliciousもMojoも含まれているようで、同梱のREADMEを見てみると、以下の記述がありました。

.---------------------------------------------------------------.
|                             Fun!                              |
'---------------------------------------------------------------'
.---------------------------------------------------------------.
|                                                               |
|                .----------------------------------------------'
|                | .--------------------------------------------.
|   Application  | |              Mojolicious::Lite             |
|                | '--------------------------------------------'
|                | .--------------------------------------------.
|                | |                 Mojolicious                |
'----------------' '--------------------------------------------'
.---------------------------------------------------------------.
|                             Mojo                              |
'---------------------------------------------------------------'
.-------. .-----------. .--------. .------------. .-------------.
|  CGI  | |  FastCGI  | |  PSGI  | |  HTTP 1.1  | |  WebSocket  |
'-------' '-----------' '--------' '------------' '-------------'

ええとつまり何だ、MojoをベースにMojoliciousが構築され、Mojoliciousを利用してMojolicious::Liteが構築されている、という事でしょうか。

ですから、Mojolicious::Liteの事を調べる途中にMojoliciousやMojoの事が出てきても、これは大体同じものの話なんだな、変な所に行き着いてしまった訳ではないんだな、と思えるようになりました。ああ、これで安心してMojolicious::Liteを学習できます。

こんな事で時間を浪費してしまうのは、如何なものかと自分でも思いますが、まぁ、私事の趣味の世界ですから、大目に見てください。