パスワードを忘れた? アカウント作成
4218 story

Yahoo!がPHPに移行中 71

ストーリー by Oliver
最大の事例 部門より

本家より。Yahoo!がC/C++で書かれた独自使用のページテンプレートシステムからPHPにバックエンドのスクリプトエンジンを変更するみたいだ。YahooのエンジニアがPHP Con 2002で行ったプレゼンの資料がYahooの過去のシステム構成やなぜ、PerlやASP、JSP、XSLT等ではなくPHPになったのか詳しい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by ftsh (7723) on 2002年10月30日 17時30分 (#192274) 日記
    選定理由としては、なんとなく普通なんですね。
    でも、PHPがいろんな側面で優れているという証拠なのか。
    "普通のやつらの上を行け"をいまさら読んで、『Lispかよ…』と驚いていたところだったのに…。

    PHPは、
    1.生産性がよい。
    2web用に作られてる。
    2.FreeBSD上でのサポートがある。
    3.そこそこパフォーマンスがイイ。

    ・JSP->FreeBSD上のサポートがない(または移行に時間がかかる?)
    ・CFML->コードが醜い。M$プラットフォーム向け。
    ・ASP->M$でしか動かないジャン。
    ・Perl->早いけど、ストレスかけすぎる。
    ・XSLT->うちのエンジニアにさせる仕事じゃないような。
    --
    ++ ftsh ++
    • by akiu (7087) on 2002年10月30日 17時54分 (#192288) 日記
      >・ASP->M$でしか動かないジャン。

      一応こういうのがあるやね。
      http://developer.chilisoft.com/software/

      使ったことないのでアレだけど。
      親コメント
      • by trpmif (7854) on 2002年10月31日 13時14分 (#192718)
        90%互換、といった感じでしょうか。>chilisoft
        chilisoft独自拡張なんてのもありますが。

        ASP が Apache を組み合わせて 100% 互換(且つネイティブ)に動けば、けっこう広まると思うんだけどなぁ。。。

        #そう言っておいて実は Perl 使いなのでハンドル
        親コメント
    • by KENN (3839) on 2002年10月30日 19時19分 (#192329) 日記

      JSPの項は、FreeBSD上でのサポートがないというよりは、

      • FreeBSDのスレッド周りはイマイチ
      • スレッド無いのにJavaなんて使う気起きねーよ
      てゆーところではないかと。

      親コメント
      • by keisuken (2614) on 2002年10月30日 22時07分 (#192424) ホームページ 日記

        微妙に違うような...。

        確かに Thread 周りはあまり考慮されていないようなところもあるけどむしろ、FreeBSD 上の Java が Green Thread しか対応していないというのが本当のところかと(ただ SMP を使いたいという要望でなければさほど問題にならないと思う)。

        それよりもむしろ標準の JIT や HotSpot がないということの方が大きいと思うなぁ(HotSpot についてはそろそろ開発版がリリースできそうな雰囲気)。

        親コメント
        • by KENN (3839) on 2002年10月30日 22時56分 (#192448) 日記

          なんじゃそりゃ、と思ってぐぐって見ましたが、要はユーザーレベルスレッド(OSが提供するモノではなく、ユーザーランドのプロセスが自前で提供するスレッド)のJava用語、という理解で良いですか?

          いや、まぁ、そういう意味で「FreeBSDのJavaのスレッドはイマイチ」と言った訳なんですが(と言い訳してみる)。

          親コメント
          • 要はユーザーレベルスレッド(OSが提供するモノではなく、ユーザーランドのプロセスが自前で提供するスレッド)のJava用語、という理解で良いですか?
            はい。JDK 1.0 の頃(Java 2 SE SDK と呼ばれるよりも以前)の Java VM はすべて Green Thread でした。Native Thread に比べて不利な点もありますが、効率はそう悪くない印象です(Ruby もそうですよね?)。

            そういう意味で「FreeBSDのJavaのスレッドはイマイチ」と言った訳なんですが(と言い訳してみる)。
            了解です(誤解してました(^^;)とともに Java VM の Thread 対応が良くないというのは御意です。

            OS 固有の Native Thread の実装状況においては Linux でも FreeBSD でも同じような気がしています(つまり良くない)。ただし Linux, FreeBSD とも新しいカーネルだと良くなってきているようです。

            親コメント
    • > "普通のやつらの上を行け"をいまさら読んで、
      > 『Lispかよ…』と驚いていたところだったのに…。

      ちょっと話がはずれますけど、私もこれ読んで同じように驚いた上に、さらに改めて Lisp の凄さを思い知らされたことがありました。それは、いまではシリアル化と呼ばれる機能がすでに言語として定義されていたことです。

      Java には Serializable があります。Perl では CPAN に Storable なんていうのがあるみたいですけど、標準的に添付はされていないみたいです。PHP は 4.0 から serialize() できるようになったようです。C++ にもPOST++ [ispras.ru]なんていうのがあるみたいです。XML なんてデータ自体がシリアルですからね。
      親コメント
      • Perl では CPAN に Storable なんていうのがあるみたいですけど、標準的に添付はされていないみたいです。

        ちなみにStorableもPerl5.8からは標準モジュールになりました。

        でもData::Dumperなら昔から標準じゃなかったかなぁ
        まぁデータ構造を「文字列化」するんでねぇ...(^^;
        あとはFreezeThawとか、XML::DumperなんかはXML化するし(SOAP::Liteもねぇ...)って、こんなにいろいろあるから Yahoo!に嫌われたんだろうけど(^^)
        親コメント
  • by canonn (11842) on 2002年10月30日 19時16分 (#192326) 日記
    関連リンクとかが .co.jp のほうを指してますが、この話は .com が対象ですよね?
    .co.jp だと全然別物だとおもうんですが~
  • PHP房急増の予感 (スコア:2, すばらしい洞察)

    by Anonymous Coward on 2002年10月30日 21時11分 (#192400)
    この記事を読んで
    よし、これからはPHPだ。だってYahoo!も使ってるんだし!
    とか闇雲に言い出すPHP房急増の予感。Yahoo!にはYahoo!の事情があって、似たような事情の場所もあるだろうし全然事情が違う場所もあるだろう。

    それにしてもちゃんといろんなプロダクトでベンチマーク取ってるのは立派。(ってあたり前か)
  • cheap (スコア:1, 興味深い)

    by Anonymous Coward on 2002年10月30日 17時23分 (#192264)
    Y! is a cheap companyにワラタ

    しかしこれだけ大規模なサイトが
    ほとんどオープンソースのソフトウェアで動いているのは
    ある意味感動しますな。

    #最近のY! Japanはトラブル続きだけどw
    • Re:cheap (スコア:2, すばらしい洞察)

      うん、やっぱりインターネットを支えているのはオープンソースのソフトウェアなんですねぇ。
      また、オープンソースのソフトウェアを支えているのもインターネット。
      そう考えると、インターネットとオープンソースは運命共同体なのでしょうか。オープンソースが滅んだらインターネットも滅ぶ。そのまた逆も然り。

      #オープンソースにケチ付けるやつはインターネット使うな!特にASP作っている会社!
      #冗談冗談
      --
      // Give me chocolates!
      親コメント
  • Cons
      – There's More Than One Way To Do It

    ワラタ。
    --
    -- wanna be the biggest dreamer
  • デザインも日本のだけ変わってないですしJapanだけは別路線を行くのでしょうか。
  • by poo (10689) on 2002年10月31日 1時46分 (#192559)
     ちょうど、仕事でWebアプリケーションのプラットホームを
    何にしようか調査してるとこなんです。

     自分の担当は、JAVA+Strutsなんですが、
    eclipse+TOMCATプラグインを使って、コード補完&デバック
    になれるとなかなか便利で離れられなくなりそうです。
    ただ、コンフィギュレーションファイルの書き方覚えるまで
    結構苦労するような(俺の頭が悪いだけか?)

     yahooなんかとちがってそんなに負荷かからないので、
    とにかく生産性、拡張性重視って事で考えると統合開発環境
    やツールの充実度が重要になってくるとおもうんですが、
    PHPとかはどんな感じですか?

    個人的にはASP.NETとかよさげだけどUNIX限定だから
    今回はつかえない(というか当分使えそうにない)。
    • 私も同感です。Servlet + JSP で、私の場合は IBM VisualAge for Java を使っているのですが、Servlet も JSP も IDE 上でデバッグできて非常に便利です。IBM としてはビジネスなら同社の WebSphere を使って欲しいんでしょうけど、tomcat でも動きます。IDE もフリーのもの(eclipseというのがそうでしょうか)でもいいんですけどね。

      私はこれまでの趣味の開発では php を使ってきましたけど、型や文法が曖昧なところがどうも落ち着かなくて、php に IDE があったとしてもやはり Java に乗り換えていたと思います。Perl や php でたった一行のコードを、Java だと数十行書かなければならなかったりすることもありますけど、それはそれでコストだと割り切っています。

      でも php にもクラスがあってオブジェクト指向でコーディングできるんですよね。Perl のクラスにはブチ切れましたけど、php は割と普通に盛り込まれていて、そういったところも決め手になったのではないでしょうか。何年後かならコミュニティの拡大によって Python や Ruby といった選択肢があったとは思うのですが。

      それでも私は Java ですかねえ。大規模なサイトなのですから、データベース以外のモジュールを分散実行させたりするなんてことは考えていないのでしょうか。シンプルに二層クラサバで十分なんですかね。
      親コメント
    •  yahooなんかとちがってそんなに負荷かからないので、
      とにかく生産性、拡張性重視って事で考えると統合開発環境
      やツールの充実度が重要になってくるとおもうんですが、
      PHPとかはどんな感じですか?
      最近のPHPはJava化しつつあるようです。相変わらず細かい仕様変更があったりとなかなかクセモノぶりを発揮してますがそれを補ってあまりあるお手軽さがナイスな感じです。 PHPの統合開発環境というとZend の Studio あたりが代表的(というかこれしかないのかな)かもです。このあたり [atmarkit.co.jp]に紹介があります。長所を簡単に書くと、

      ●長所
      ・内部にPHPインタプリタを装備していてクライアントで実行可能らしい
      ・IDEにお約束な機能はバッチリ
      ・サーバ上のPHPコードもリモートでデバッグ可能
      ・実行環境の設定もリモートで変更可能(再起動は手動)
      ●短所
      ・Javaなので遅い
      ・UIの練りこみ度がちょっといまいちらしい
      ・キーバインドの変更が充実してない(一部しか変更出来ない等)
      ・PEARの設定等、初心者にはわからない部分が多いかも
      ・IDEのphp.iniが最低限の設定なので、テキストエディタで手動で変更しないといけない

      だそうです。私は使った事がありません(^^; 一度トライアル使ってみようかなぁ。

      親コメント
      • む、なんか紹介していただきどうもです。件の記事の筆者です。

        PHPの統合開発環境はZendIDEだけではなくて、

        などいくつかあります。私もどれも使ったことはないのでアレなんですが、レビューによるとどれもそこそこ使えるものではあるようです。

        あ、あと、ZendIDEに関して
        > ・Javaなので遅い
        というのは私の感触では嘘ですね。たまーにひっかかる感じはありますが、それ以外はなんでこんなに速いねんというくらい軽快に動いてくれました。
        親コメント
        • あ、koyhogeさんが筆者さんだったんですね。あ、わ、いつもMLでみかける人でしたか(^^; PHP-MLはいつもROMっております(笑)

          あ、あと、ZendIDEに関して
          > ・Javaなので遅い
          というのは私の感触では嘘ですね。たまーにひっかかる感じはありますが、それ以外はなんでこんなに速いねんというくらい軽快に動いてくれました。

          ごめんなさい、きっと遅いのは私のマッスィーンなのかもしれません(^^; 何気にトライアルのインストールにチャレンジしましたがクライアントもサーバもインストールで挫折(ぉぃ) やはりトライアルは余裕のある時にやった方がいいのかも。ちょっとインストールの途中でインターネット経由で zend.com にアクセスするのはちょっと難儀です(^^;

          #私の環境は XEmacs + php-mode.el

          親コメント
  • Servlet/JSPを使用しなかった理由に

     FreeBSDでスレッドのサポートがいまいち

    とあって、ここは意地でもFreeBSDでやっていくんだなあ、と。
    FreeBSDなワタシにはちょっと嬉しくもあり。
     
     
    --
    --------------------
    /* SHADOWFIRE */
  • by Anonymous Coward on 2002年10月30日 17時09分 (#192257)
    > なぜ、PerlやASP、JSP、XSLT等ではなくPHPになったのか
    ソースの「プレゼン資料」の要約を日本語で、英語が
    得意な人頼む!
    • Re:要約&和訳 (スコア:1, おもしろおかしい)

      by Anonymous Coward on 2002年10月30日 17時24分 (#192266)
      Perl
      ・一つの事やるのにいろんな書き方がありすぎる
      ・サーバをぶっとばす危険が高い
      ・Webスクリプティング言語としてデザインされてない

      ASP
      ・文法汚い
      ・金!金!金!

      JSP
      ・スレッド無しでは本当に使うことができない
      (?このへん詳しくないのでよくわからない)
      ・FreeBSDでのスレッドサポートがよろしくない

      XSLT
      ・難しい
      親コメント
      • Re:要約&和訳 (スコア:5, 参考になる)

        by Joga (8113) on 2002年10月30日 17時35分 (#192280)
        で、なんで我々はPHPを選んだか
                                   
        1. サーバー側でのWebスクリプト用にデザインされている
         
        2. 大きく、オープンソースな開発コミュニティ
          • 統合されていて、ライブラリがある
          • ドキュメントやトレーニングがしっかりしている
         
        3. デバッグ、プロファイルツールがある
         
        4. シンプルで明快な文法
         
        5. テストでよい成績
          • 効率的(アクセラレータ付きで)
          • 必要なメモリ量が少ない
         
        #ちょっと意訳した。
        親コメント
      • Re:要約&和訳 (スコア:1, 参考になる)

        by Anonymous Coward on 2002年10月30日 19時16分 (#192327)

        JSP ・スレッド無しでは本当に使うことができない (?このへん詳しくないのでよくわからない) ・FreeBSDでのスレッドサポートがよろしくない

        て、言うか、スレッド無しでは、JSPのパフォーマンスが著しく低いからかも知れません。あと、FreeBSD上でのJavaのパフォーマンスはとにかく悪いような気がする。

        # FreeBSDでJavaを使って久しくなるので悪しからず。

        親コメント
    • by Anonymous Coward
      さほど英語自体は難しいものを使ってないから
      英語が苦手でもだいたい読めると思うよ。
      • Re:要約&和訳 (スコア:3, 参考になる)

        by Anonymous Coward on 2002年10月30日 18時18分 (#192301)
        C/C++のCGI
        ・速い
        ・コンパイルしないと動かないのでHTMLの変更だけでもう大変すぎ
        ・シングルプロセス、やはり実行時のメモリーの確保でロスがある。
        ・コーディングめんどくさすぎ

        Perl
        ・シングルプロセス。(実行し終わると、そのままメモリー開放)
        ・5.6からスレッドも出来るらしいが…
        ・呼ばれてから、コンパイル、実行の為、究極に遅い
        ・利用者が多い。駄目なソースがたくさん公開されている。

        ASP
        ・Microsoftで固めた環境じゃないと動かない。
        ・HTMLのコードの中にプログラムを書き込める感じのサーバーサイドの言語としては最初に実現化(たしか)

        JSP
        ・JAVAだけど、無理やりHTML内に埋め込んでみた言語。
        ・JAVA VMは相変わらず速いとは言えない。
        ・なかなかリッチにメモリーを占領する。
        ・マルチスレッド、オブジェクト指向

        PHP
        ・アパッチのモジュールとして動く。PHP自体HTTPDのメモリーで動く
        ・最初に呼ばれるとコンパイルされてずっとその後メモリー上に置かれるらしい。
        ・Zendエンジンを乗っけると早くなるらしい。
        ・言語的にPerlに酷似してる
        ・使い捨てページ生成言語(再利用しにくい)

        XSLT
        ・重くて使い物にならない。
        ・新しいし、思想が良いので期待だけ高い。
        親コメント
        • Re:要約&和訳 (スコア:2, 参考になる)

          by zorio (610) on 2002年10月31日 0時26分 (#192522) ホームページ 日記
          まるで和訳であるようなフリをして自分の意見を書くってのはフェアじゃないですね。

          原文にないことばっかり書いてあるんですけど。
          親コメント
        • by tyamadajp (10476) on 2002年10月31日 1時34分 (#192557) ホームページ
          いまいちよくわからないのが、

          Perl
          ・呼ばれてから、コンパイル、実行の為、究極に遅い

          て書いておいて、実際には mod_perl を評価しているので、
          結果は最速なんですよね。もっとも最終的に PHP を選んだのは
          人の確保しやすさと、サーバーの内部処理に手を突っ込んで
          色々やりたくなってしまうという mod_perl の諸刃の剣度(?)の
          高さを考えると妥当かなという気はします。

          XSLTは…期待はともかくとして、誰か本格的に使っている人は
          います?凝ったことをやろうとするとすぐ XML パズルが待って
          いるので、開発者からは(プログラミング言語ではないので)
          疎まれ、デザイナからも(実はプログラミングなので)意味
          不明、ということになってしまうような…
          親コメント
    • by Anonymous Coward
      とりあえず読もうとも思わなかったのでしょうか。
      軽く流してみましたが、スライド部分を読む分にはそれほど困ることもないと思うのですけど。
      • by pantora (11989) on 2002年10月30日 20時38分 (#192380)
        >スライド部分を読む分にはそれほど困ることもないと思うのですけど。
        同感。
        やっぱ、これくらい読めないと困るね。
        --
        PCにECC Registeredメモリの利用を推奨します。
        親コメント
typodupeerror

長期的な見通しやビジョンはあえて持たないようにしてる -- Linus Torvalds

読み込み中...