記事

Webのフレームワークの価値ってなんだろなって改めて思う。

この記事ね。ちょいと炎上してるけど、言ってることはわかるんですね。

今すぐ辞めて欲しい、「Ruby on Rails勉強してます」「CakePHP勉強してます」

タイトルが誤解を生んだので妙な方向になってるようですが、要するにRailsやCakeを使うための学習コストを払おうとして悶々としてるくらいなら、普通のHTMLやSQLを使ってPHPなどを書けるようになってから、フレームワーク勉強したほうがいいんじゃね?ということだと思います。

ノーフレームワークのPHPって、ある意味、学びの材料としての粒度として最適なのかなって最近思ったりしています。

例えば個人的にフレームワークで過剰かもなって思うものに「オートリンク作成」「オートフォーム作成」の2つの機能があります。

オートフォーム作成は、それこそSmartyの頃からありますけど使ったことがなくて、何故にHTML生成を特殊な関数に置き換える必要があるのだろうか?と思ってました。例えば、コーダーが書いてくれたHTMLをわざわざ、フォーム作成コマンドに置き換えることに価値があるのか?!

もしくは、こういった特殊なメソッドは、少しHTMLがわかりにくくなるトレードオフに対し、何か生産性に返ってくるのだろうか、と考えることがあります。一番最悪なのは、自由度が下がり、やりたいことができなくなるというケースで、それを回避するのに、本当は、目の前に答えが見えている、ただのHTMLを書きたいだけなのに、いろんな技を使って時間をかけてしまうということに本末転倒感を感じるのは、割とよくあることです。

一般的にフレームワークというコードを通すからには、何もないPHPコードに比べて実行速度は確実に遅くなります。キャッシュを挟んでいるのは、その処理コストをどうにか誤魔化すからということがよくあります。そのために今どきのフレームワークは高度なキャッシュ管理機能になっていくわけですが、それらのコストを支払う正当な理由があるからこそ、フレームワークは支持されているのだと思います。

その理由は、
1.セキュリティ・ホールの作りこみをフレームワーク側で抑止したい(SQLインジェクション、その他)
2.ViewのコードをできるだけピュアなHTMLに近い状態にしておきたい。
3.プラグインで、他人が作った高度な機能を簡単に使えるようになる。

などがあげられると思います。特に実装が面倒くさいものがプラグインで提供されていると、本当にありがたく実装させてもらっています。

ただ、効率的なプロダクト管理ができることや、素敵なプラグインで楽ができるという可能性の面と、技術を学ぶことや良いサービスを作ることは、必ずしも一致しない話でありまして、特にプロトタイプに近い状態のサービスが、必ずしもrailsやcakeである必要はないのかもしれません。

意外と世の中、実情を聞いてみると、フレームワークを使わずピュアなPHPで作られたサービスが世間をあっと言わせているケースがありまして、「信用できるプログラマーが書く場合、ピュアなPHPが一番良い」というのもまた真なり、ということなのだと思います。

と書くと、そんなのアセンブラやC言語でも同じじゃないかと思われるかもしれませんが、フレームワークを使わないという選択が、そこまでの話ではないと思ってるし、Webプログラマーとして知っておいて欲しいミニマムな部分を学ぶ方法が、フレームワークを使わないことで得られるのであれば、本来は、一度、そこで勉強するのが一番ベターなハズです。

それが冒頭の記事は賛成だと思った理由です。ただフレームワークが持つ高機能な部分を否定するのはいささか難しかったと思います。そこは、まぁフレームワークを学んで活用している人が得られる特権ということで良いのではないでしょうか?!

で、こういう話を書くと、はてブのコメントが炎上してネガティブな反応が面倒くさいのですが、フレームワーク使うの当たり前じゃん、という観念から一回解き放たれてみると、フレームワークを使って良いことはあるけど、使わないことでのデメリットもそんなに多くない、というのがどうもあるように思えて仕方ありません。

アップルのWebフレームワークで、WebObjectsってのがあるんですが、XCodeのような開発手法でWebを開発できるという素晴らしいフレームワークと開発ツールのセットでした。しかし、ピュアなHTMLからいじりたい人には、どうにも使いづらい。開発ツールが今のXCodeぐらい完成されていればよかったのかな。ただし、スマホアプリみたいなプログラミングになるので、Webプログラミングしてる感はなさそう。またColdFusionっていう今Adobeが権利を保有してるXML記述のフレームワーク言語がありまして、昔のCookpadさんがそれを使っていたのですが、これもある意味高度すぎたように思えます。その後、CoodpadさんがRailsに乗り換えてから、人材採用においても輝かしい成功を収めたのは御存知の通り。

フレームワークが高度になっていくと、どこかで「行き過ぎる」部分が出てくることがあるようです。そのたびに新しい技術にスピーディに適当した、軽量シンプルなフレームワークが出てきて時代が循環していくのだと思いますが、そういう変遷の中でも、少し危うく、比較的プリミティブで、一番、ベースになるものがピュアなPHPぐらいなのかなぁなんてイメージしています。

もちろん就職する先が特定のフレームワークに依存してしまっている場合は、その知識があることが望ましいという話になりますし、MVCフレームワークを全く知らない=今どきのWeb技術に無頓着だ、と判断されてしまうこともあるので、ノーフレームワークで貫くのがベストだとは言いません。その辺はトレンドと連動した話なんだろうなと思います。

逆に人材募集をする側にとっても、現状フレームワークなんていらないと思ってるのに、募集ウケの問題でフレームワークを使わなくちゃとか、PHPで作られてるサービスをRubyに切り替えなきゃいかんのかと思ったりもするという本末転倒なことを思うケースもあったりして、それはプログラマーのキャリアパスの一助になるためなの?そもそも、そういう人が欲しかったんだっけ?!と悶々とすることもあり、世の中、難しいよなぁとは思ったりもするわけです。

結論としては、そういうことを考えながらも軽量フレームワークを探そうかなと思ってるわけです。M+V+Cが緩やかに存在していて、ちょっとしたヘルパーメソッドがあればそれで十分で、オートリンクとかオートフォーム生成に依存しない感じで、HTMLを組み込むのが簡単な今どきのPHPで問題なく動くフレームワークを探しています。

トピックス

ランキング

  1. 1

    立民議員の疑惑に触れぬマスコミ

    木走正水(きばしりまさみず)

  2. 2

    旅行キャンセルのはずが高額請求

    水島宏明

  3. 3

    小室圭さん留学で秋篠宮家に溝か

    SmartFLASH

  4. 4

    日本を叩くドイツメディアの無知

    MAG2 NEWS

  5. 5

    かぼちゃの馬車が額面上は高い訳

    MONEY VOICE

  6. 6

    不出馬なら議員辞職 玉城氏覚悟

    田中龍作

  7. 7

    報ステ降板の小川アナ もう限界

    文春オンライン

  8. 8

    国民負担で超インフレ起きぬ日本

    広瀬隆雄

  9. 9

    自民議員が石破氏に改憲巡り反論

    赤池 まさあき

  10. 10

    カレー革命 小麦粉抜きが主流に

    PRESIDENT Online

ランキング一覧

ログイン

ログインするアカウントをお選びください。
以下のいずれかのアカウントでBLOGOSにログインすることができます。

コメントを書き込むには FacebookID、TwitterID のいずれかで認証を行う必要があります。

※livedoorIDでログインした場合、ご利用できるのはフォロー機能、マイページ機能、支持するボタンのみとなります。