Laravel high

タグ: Laravel3   Laravel4  

Laravelの一番の魅力は、サイト構築が楽しいことです。これは論理的な部分でないので説明しづらい魅力なのです。

Laravelで作成していると、サイト作成が楽しくなる瞬間が起きます。ジョギングやランが趣味の方が経験する「ランナーズ・ハイ」のようなものです。また、皆さんも人生で何もかも上手く行く一日を経験したことがあるでしょう。「波に乗っている」とか「フロー状態」とか表現できます。そんな感じが起きるのです。

この理論的でない感覚、「プログラミング・ハイ」がなぜ起きるかを、今回はこじつけてみたいと思います。

ちょうど良さ

パズルを解くならば、難しすぎるものは進まなくてイライラし、やがて諦めてしまいます。逆に簡単すぎれば、すぐに完成したり、飽きたりします。自分のスキルにあったパズルなら、悩んだり考えたりすることさえ楽しめます。

Laravelは読み書きしやすく、統一感のあるフレームワークです。機能は必要以上に多くありませんが、その代わり覚えることはやや少な目ですみます。つまり、ミドルクラスの機能を持つフレームワークの中では学習が少く済みます。

ビッグ・フレームワークは作りも良く、自由度も高いですが、学習すべき点が多すぎます。つまり、経験豊富であるか、極めて優れた理解力を持つ開発者であれば「ぴったり」なのでしょう。しかし、まだPHP開発の入り口にいる初心者や、フレームワークに慣れていないPHP使いには敷居が高すぎます。

Laravelが世界的に人気を得ているのは、多くのPHP開発者にとって「調度良い」程度の複雑さを持っているからでしょう。他のフレームワークはいささか高いレベルの開発者がターゲットになっており、そうした高いレベルの開発者にはビック・フレームワークが既に存在しているのです。

逆に、ライトウェイトのフレームワークが簡単かと言えば、そうでもありません。機能が少なすぎるためそれを補えるスキルと知識を持っていないと、自由に使用できないからです。

ちょっとだけ目新しい

無名関数を使用してルーティングを提供するなどは、Laravelが初めてではありません。ですが、無名関数もコントローラーも両方ルーティングの指定に使えますよというのが、ちょっとだけ目新しいのです。目新しいというのは、なにもLaravelが一番最初だと主張しているわけではありません。あまりメジャーな手法として広がっていないという程度の意味合いです。

Laravelは色々なフレームワークのアイデアを基にして作成されています。そのため、目新しいアイデアがアチラコチラに少しずつ入っています。余り多く入っていれば、経験者も勉強し直しとなりますが、それまでの経験を生かしつつ、新しいコンセプトを経験できます。初心者にとっては全て新しい学習経験となりますが、既に確立されているアイデアが大半のため、ネットで調べれば概念はつかめます。公式ドキュメントでも説明されていますしね。

ちょっとだけ、目新しい部分があるのも新鮮な刺激になってくれます。

スムーズさ

人間にはそれぞれ、得意なことがあります。Laravelにとって幸福だったのは、開発者のテイラーさんが、優れた技術者であるだけでなく、全体を統合させる能力に優れていたことでしょう。

Laravelとて完全に統合されているわけではありません。しかし、他のフレームワークに比べると一段上なのです。ただ、自然すぎてどこがどうと指摘できないのが残念なのです。

無理に一例を上げるのなら、多用するメソッド名は基本的な英単語が使用されています。英単語の中でも優しい単語が選ばれています。これはネイティブな英語使用者にとっては当然覚えやすく、また、ネイティブではない私達にも、聞き覚えのある単語が多いというのは、とてもありがたいことです。

こうした細かい調整が積み重なって、全体のなめらかな使用感を生んでいるのです。なんだか、保湿クリームの宣伝みたいで恐縮です。

もちろん、最初は多少理解できない部分があり、それでつっかえることもあるでしょう。しかし、こうした初学レベルはすぐに通り越し、開発のスムーズさを経験することになります。その時、開発することの楽しさ、嬉しさを感じることでしょう。大抵の開発者にとって、もう思い出になってしまっている感覚です。

PHPとの親和性

Laravelが良く外人から褒められるのは、PHPのコードにありがちな読みづらさを解決したことで、Laravel自体が新言語のように、思えるかららしいです。

ですが、こうした読みやすさを引き出すために、コーディング規則を押し付けるような力技ではなく、受けて流されると相手が自然と投げられるような合気道のような感覚です。PHPに何かをかぶせるのではなく、PHPが持っている方向性に上手く乗せているからでしょう。

感覚的なもので上手く説明できないのですが、力みがない感覚なのです。

最後に

もしあなたが、高い技術力を持ったPHP開発者であれば、Laravelは物足りないかも知れません。そしてLaravelを学んだ初心者は、やがてもっと高度なものを求めて、他のフレームワークに移行するかも知れません。

Laravelはハイスキルの技術者が忘れがちなことを教えてくれます。素晴らしく高度な技術は理解が難しく、誰でも利用できるわけでありません。チームとして自分一人ではできないことを行うには、理解しやすいレベルにまで知識を噛み砕かなくてはなりません。事実、多くのLaravelユーザーが依存性注入やIoCの概念、テストの重要性などをLaravelの使用経験を通じて理解しています。

また、Laravelの卒業生で、ほかのフレームワークや言語を使用するにしても、Laravelの開発で経験した「スムーズ」さは、後に設計のスキルとして活かすことができるでしょう。

私の感じた「調度良さ」をあなたは別のフレームワークで感じるかも知れません。Laravelは単に今より多くの人に、その感覚を味合わせているので世界で人気が沸騰しています。

さて、一ヶ月ほどLaravelを使っての開発から離れているのですが、そろそろ禁断症状が出てきたようです。やりかけのプロジェクトでも再開しますか。