PHPカンファレンス2008レポート(後編)
PHPユーザーは本当にほかの言語を知らないのか?
岡田大助
@IT編集部
2008/7/31
2008年7月21日、日本PHPユーザ会主催のイベント「PHPカンファレンス2008」が東京・大田区産業プラザ(PiO)で開催された。今回はカンファレンスのメインイベントともいうべきパネルディスカッション「激論! PHPの次に学ぶ言語はこれだ」の様子をお届けする。
パネリストには、Perl、Ruby、Python、Java、JavaScriptといったプログラミング言語を代表して、竹迫 良範氏(サイボウズ・ラボ)、高橋 征義氏(ツインスパーク/日本Rubyの会)、柴田 淳氏(日本Pythonユーザ会)、ひがやすを氏(Seasarプロジェクト)、id:amachang氏が参加。モデレータを日本PHPユーザ会の個々一番氏が務めた。
事の起こりは「Attacking PHP」
PHPのユーザー会のイベントにおいて「PHPの次に学ぶ言語は何か」を真剣に議論することになった発端に、まつもとゆきひろ氏のブログ「Matzにっき」の2008年1月26日付けのエントリーが挙げられる。ここで、「Attacking PHP」という海外のブログ記事が紹介され、PHP肯定派とPHP否定派の間で大きな論争が始まった。
個々一番氏はこの議論の経緯を、「PHPがいかにダメな言語かという記事から始まった議論の中で、PHPユーザーはほかの言語について知っているの、という問いかけが行われた」と説明する。このパネルディスカッションは、「全部ではないけど、PHPしか知らないプログラマは多いかもしれない。じゃあ、みんなで勉強したらいいんじゃないの」という思いから企画されたのだ。
ディスカッションの冒頭、高橋氏が会場に向かって「PHPしか知らない方いますか」と挙手を求め始める。日本PHPユーザ会主催のイベントに来場するほど積極的なユーザー層ということもあり、挙手するものは少なかった。
続けてひが氏が「ほかにどんな言語を使っているのか」を言語別に聞こうと提案する。すると、PerlやRubyは8〜9割、PythonやJavaも5割程度、JavaScriptはほぼ全員が挙手する結果となった。
パネリスト。左から個々一番氏、竹迫 良範氏、高橋 征義氏、柴田 淳氏、ひがやすを氏、id:amachang氏 (写真提供:月宮 紀柳氏) |
パネリストから見たPHPのイメージを聞く
会場中が爆笑に包まれたパネリストの自己紹介を経て、ディスカッションの最初の質問である「パネリストから見たPHP」が投げかけられた。
竹迫氏はPHPを「レンタルサーバでどこでも動く言語。これは一番のメリットだと思います」と評価。Perlも同様にどこのレンタルサーバでも利用可能になっている言語だが、「例えば、PHPは最初からApacheのモジュールとして組み込まれていますが、Perlはmod_perlというモジュールを自分でインストールしないと使えないことが多い」とコメントする。
また、「PHPにはXoopsやOpenPNEのようなキラーアプリが多い。何かを作りたいと思ったときにすぐに作ることができるし、カスタマイズしたいという思いからPHPを勉強する人が多いのではないでしょうか」と分析する。
しかし、このような状況がデメリットをもたらしているとも語る。「どこでも動くというメリットが故に、PHP4のような古いバージョンでも動くようなコーディングが行われたり、手軽にできるが故に次のステップ、例えばPHP5のオブジェクト指向やクロージャをバリバリ使ったプログラミングに移行するモチベーションが沸きにくかったりということも考えられます」というのだ。
次にマイクを持ったのは高橋氏。「言語設計の立場から見るとPHPの言語仕様は端的にいってひどいかなと思います。命名規則が一定してないし、言語に新しい要素を入れるときに深く考えることなく、ほかの言語を真似したのではないかと思えることがあります」と手厳しい。
しかし、自己紹介の席上でRubyとプリントされたTシャツを突然脱ぎ捨て、PHPのロゴがプリントされたタンクトップ姿となるパフォーマンスを行った同氏は、仕事ではPHPの開発を手掛けることが多いという。
「PHPプログラマは気が付かないかもしれませんが、実装や使われ方という視点から見るとほかの言語がマネをしようとがんばっているところがあります。RubyもRailsでPHPのようにさくさく動くようになりたいとがんばっていますが、追いつかないのです」とPHPの良いところを改めて支持する高橋氏であった。
日本Pythonユーザ会を代表して登場した柴田氏は、「PHPは大衆向けの言語だなと思っています。良い意味と悪い意味があります」と静かに語り出した。
悪い点とは、非プログラマであるデザイナなどが開発に関わることでコードの品質が下がりがちになってしまう点だ。一方、良い点として「『WordPressのコードがひどいよね』という意見への反応が面白かった」と話す。
ここでいう「ひどい」というのは、WordPressが何でも関数で解決させることを指しているという。「でも、これはわざと狙ってやっています。例えば、オブジェクト指向を導入してしまうと、非プログラマや一般ユーザー、モチベーションはあるんだけど技術がないという人を、開発のコミュニティに取り込めないことを懸念しているからだと聞きます」。
一方で、PythonはPHPとは違ってストイックな言語だという。「Webのフロントエンドで使われるPHPには、危険なコードを組み込むことが容易です。しかし、Pythonのテンプレートエンジンはそのようなものを排除する方向にあります」と述べ、仕組み的に危険なことができないようになっているのが特徴だとまとめた。
JavaのためのDIとAOPをサポートした軽量コンテナである「Seaser」を開発しているひが氏は、自身のFlash歴から話し始めた。なお、同氏は自己紹介において「ブログを書くのが仕事」と語り、会場から大きな肯定を得ていた。
「昔からFlashが好きで、FlashとJavaをつなげることに興味を持っていました。Flashとサーバサイドをつなげる実装を、当時のマクロメディア純正のもの以外で初めて行ったのは『AMFPHP』だったと思います」と振り返る同氏は、その後、AMFPHPを参考にしてJavaの実装を作りSeaser 0に搭載したという。それ故、PHPという言語のイメージはFlashと親和性の高い言語というものだそうだ。
最後に登場したid:amachang氏は、軽妙なトークで会場をたびたび沸かせていく。「PHPのプログラマはやさぐれている人が少なくて、格好いいなと思います。モテ言語って感じですね」。
そんなid:amachang氏がPHPではなくJavaScriptを選んだのは、PHPに2点ほど嫌いなところがあったからだという。1つは、ラムダがないこと。クロージャやレキシカルスコープを保存できない点だ。もう1つはアロー演算子が式と結びついていなくて、変数と結び付けなければならないこと。式と変数を分けて考えなければいけないところが書きにくいという。
ここで個々一番氏が、PHP5.3からクロージャが採用されそうだという補足情報を入れつつ、ディスカッションはいよいよ本命の「PHPの次に学ぶ言語」へと移る。
1/2 |
Coding Edgeフォーラム トップページ |
PHP関連記事 |
例外処理の実装を把握する PHP5で広がる! 開発環境(1) PHP4のサポートが終了し、いよいよPHP5への移行を視野に入れる時期が来た。PHP5の機能を生かした開発のポイントを紹介 |
|
クライアントPCに言語環境を入れる理由 Mac OS X+PHPでオールインワン環境(準備編) Webアプリ開発者に人気のMac OS X。効率的な開発のために複数バージョンのPHPを実行する環境を構築してみよう |
|
PHPに押し寄せるリスクと国際化の波 PHPカンファレンス2008レポート(前編) PHP4のサポートが完全に終了する。多くの新機能が投入されるPHP5.3へ移行か、国際化対応で開発が遅れるPHP6を待つか |
|
PHPによる大規模商用サービスの裏側 PHPカンファレンス2008レポート(中編) 企業のWebアプリケーション開発現場で利用されるPHP。開発現場の裏側にはさまざまなドラマが隠されている |
|
PHPユーザーは本当にほかの言語を知らないのか? PHPカンファレンス2008レポート(後編) PHPは本当にダメな言語なのだろうか。Perl、Ruby、Python、Java、JavaScriptの使い手が白熱した議論を行った |
|
- プログラムの実行はどのようにして行われるのか、Linuxカーネルのコードから探る (2017/7/20)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。最終回は、Linuxカーネルの中では、プログラムの起動時にはどのような処理が行われているのかを探る - エンジニアならC言語プログラムの終わりに呼び出されるexit()の中身分かってますよね? (2017/7/13)
C言語の「Hello World!」プログラムで使われる、「printf()」「main()」関数の中身を、デバッガによる解析と逆アセンブル、ソースコード読解などのさまざまな側面から探る連載。今回は、プログラムの終わりに呼び出されるexit()の中身を探る - VBAにおけるFileDialog操作の基本&ドライブの空き容量、ファイルのサイズやタイムスタンプの取得方法 (2017/7/10)
指定したドライブの空き容量、ファイルのタイムスタンプや属性を取得する方法、FileDialog/エクスプローラー操作の基本を紹介します - さらば残業! 面倒くさいエクセル業務を楽にする「Excel VBA」とは (2017/7/6)
日頃発生する“面倒くさい業務”。簡単なプログラミングで効率化できる可能性がある。本稿では、業務で使うことが多い「Microsoft Excel」で使えるVBAを紹介する。※ショートカットキー、アクセスキーの解説あり
|
|