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

PHP、5.3 系のサポート終了が迫るも移行進まず 60

ストーリー by reo
この際だから捨てち(ry 部門より

ある Anonymous Coward 曰く、

21 日の W3Techs の記事によると、PHP 5.3 系のサポート終了 (end of life cycle) が今月末と迫る中、いまだもっとも使われている PHP のバージョンは 5.3 系であり、5.4 系への移行はほとんど進んでいないという (W3Techs の記事, マイナビニュースの記事より) 。

PHP のバージョン別のシェアとしては長い間 2010 年 12 月にサポートが終了した 5.2 系が最も高いシェアを占めていたが、21 日ついに 5.3 系がそれを追い越しトップシェアを獲得した。しかし、その 5.3 系も 2013 年 3 月のサポート終了が予定されており (PHP 5.3.20 リリース時のニュース記事)、来月以降唯一のサポート対象となる 5.4 系は昨年 3 月にリリースされたが (/.J 記事) いまだ 3 % 程度のシェアしか獲得していないという。5.2 系と 5.3 系を合わせたシェアは 93 % 以上となる。

5.2 系から 5.3 系への移行すら遅々として進まない背景としては、この間の互換性の問題があげられている。PHP の場合、サポート終了といっても即座にセキュリティパッチが提供されなくなるわけではないが、5.2 系のサポート終了の際は、修正版のリリースが後回しにされるといった影響が確認されている (gihyo.jp の記事) 。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2013年03月26日 15時11分 (#2350446)

    5.4の新機能の為に移りましょうよ

    traitがとても便利
    似非多重継承ができるのでオブジェクト指向言語としてなんとか許せるレベルになった感じ?(フレームの元?)
    trait型とかは使えないけど、まあ、PHPだし
    abstractメソッドとかは持てるし
    色々なクラスで使うメソッドをメンバで持たなくていいので記述がすっきり
    嬉しすぎてデバッグ系のメソッドまとめたtraitとか、メソッド結果キャッシュするtraitとか、
    DB結果編集によく使うメソッドまとめたtraitとかTool系のクラスを沢山traitに移植した
    privateフィールド名が被るとエラるのでtraitのprivateフィールドにベタな名前つけない点だけ注意
    (useで変更もできるけど面倒なので)

    後Arrayの砂糖さんが地味に便利
     Array() ⇒ []
     function (Array $arg = []){…}とか、
     private $m_option = [];とか

    パフォーマンスも上がってる
    処理にもよるけど10%~20%とか
    APCを使ってる環境だと何故かもっと上がるっぽい
    測っていないけど客からパフォーマンスチューニングしてくれた?とか聞かれる位、目に見えて速度上がった
    パフォーマンスチューニングで10%~20%とかあげるのは(元がダメダメなコードとかでなければ)どれだけ大変かと

    確かに変更点は多いけど、普通に5.3用に書かれたコードなら大体何もしなくても動く
    動かなくても殆どのケースでちょっと修正程度の事が殆ど
    古いライブラリで警告やエラーが出る事があるので、そこだけチェックして問題なさそうならさっさと5.4にするのがお勧め

    • by Anonymous Coward on 2013年03月26日 15時31分 (#2350455)

      > 動かなくても殆どのケースでちょっと修正程度の事が殆ど
      この「ちょっと修正」をしたくないからみんな移らないんだよね。

      親コメント
      • by Anonymous Coward

        新機能やSyntax Sugerとかを使うから、次のバージョンアップの際にさっそく仕様変更されて、また書き直す羽目になるんですよね。。
        そういう思いを何度もすると人は学習して、段々とガチガチのコア機能しか使わなくなってくるという

      • by Anonymous Coward

        しかもPHPの場合は「ちょっと修正」しなければならない場所を検出するのが、
        超めんどくさい。そこが最大の障害と言ってもいいくらいに。

        まず「コンパイル」がないから、コンパイル時のエラーでは変更点やバグを検出できないし、
        実行時エラーも一度実行しただけでは出るとは限らず、全パスの全ての組み合わせを
        網羅的に実行してようやくエラーが出る有様。

        さらに酷い時は関数や演算子の動作が変更されていて、実行したら結果は
        変われど、実行時エラーが出ずにすんなり動いてしまうことも。

        その結果、変更する部分が仮に本当に少しだけだったとしても、新バージョンへの
        移植とデバッグにかかるコストが膨大になる。

        • by Anonymous Coward

          PHP界隈には自動テストの習慣ってないんでしょうか?
          それとも、最先端のWeb開発ではテストを自動化するという流れはもう廃れてしまったのでしょうか?

          • by Anonymous Coward

            ないわけではないけれど、日本だと、
            「人月単価が安いから ≒ 低スキル技術者を使えるから」
            がPHPを採用する最大の理由だから。
            ユニットテストだなんて、そんな『高度なスキル』を駆使できる会社の方が珍しいかも。
            #そういう意味ではPHPは「最先端のWeb開発」じゃなくて、「時代遅れのWeb開発」なのです。

            そういう職場ではMVCフレームワークどころか、共通モジュールの切り分けさえ
            せずに、ガチガチに結合した単一のPHPファイルで書く人も多い。結果として
            テスト不可能なコードが量産されるので、ユニットテストどころの騒ぎでは無い。

            かといってPHPではフレームワークを使うと、今度はそのフレームワークが
            「フレームワーク Ver1はPHP5.0から5.2.xまでしか動きません。

          • by Anonymous Coward

            自分が作ったコード部分ならまだしも、他者が作ったライブラリやフレームワークについては、
            ユニットテストがあろうとなかろうと、変更する部分を検出することは困難。

            かりに判明しても、ライブラリがPHPの新しいバージョン用には提供されてなくて、差し替えようにも
            代替となるライブラリが存在しなくて、移行は断念せざるをえなかったり。運良く代替ライブラリが
            見つかっても、互換ではないために差し替えのコストがかなり高く付いたり。

    • by Anonymous Coward

      > 古いライブラリで警告やエラーが出る事があるので、そこだけチェックして問題なさそうならさっさと5.4にするのがお勧め

      趣味でPHP使ってるならこんないい加減な判断でも何も問題ありませんが,
      業務だと有り得ない話ですね.

      • by Anonymous Coward on 2013年03月26日 15時54分 (#2350467)

        うん、おっしゃるとおり。
        でもサポートが終了した処理系を使うのも業務ではありえない
        ・・・と思うんだが、往々にしてありえるのが困るんだよな。

        親コメント
        • PHP は民間企業が延長サポートサービスしてたりするよ。

          アプリの工数100万なんて真面目にプロジェクト管理すると何もしないのと同じようなもんだから、
          その程度の金でセキュリティ対応できるなら安いという判断はありかもね。

          まぁ根本対応はPHPのライフサイクルか、互換性のどちらかをまともにする必要があるわけですが。

          --
          [Q][W][E][R][T][Y]
          親コメント
        • by Anonymous Coward

          なんで有り得るんだろう?
          困ったらどうする?
          その辺を語らなきゃ、抽象的で無意味なグチですな。

          # 俺の周辺では無いのは救いだ

          • あり得るのは、移行コストが高すぎるから。特にPHP。

            困るのは、たとえば処理系のバグや脆弱性が見つかった時に、コミュニティに頼ることが
            できず自分で修正するしか無いこと。それを修正できる保証も無いし、仮にできたとしても
            時間も金もかかる。

            実際には移行するだけの人も金もないから使ってるんだし、おそらく修正は無理。
            綱渡り状態だよ。

            それを上司や経営者が理解してないのが最大の問題だな。

            親コメント
          • by Anonymous Coward

            別ACだけど、
            言語に対するサポートなんて飾りじゃないの?
            PHP本体がどれだけバグってようが、要は自分とこのユースケースでがっちり試験して
            その範囲だけでの動作保証を自ら行いさえすれば、言語のバージョンなんて上げなくてよくね?

            OSとかなら話は別だけど、PHPは実行環境そのものを不特定ユーザに開放してるわけじゃないじゃん。
            サポート切れてバグが放置されてたとしても、そういうバグがあると知ってさえいりゃあ
            ある意味バグも仕様なわけで。自分らで回避して作りこめばそれまでだよね。

      • by Anonymous Coward
        業務でPHPを使ってるなら、網羅的なテストスィートがあるはずだから、チェックも楽ちんのはずだよね。
    • by Anonymous Coward

      逆です。
      PHP終了のお知らせと解釈した方がいいでしょう。
      これまで使っていたところが、バージョンアップに反応していないんだから。

      • by Anonymous Coward

        バージョンアップに反応してないのは、作るだけ作ったけどメンテナンス体制が整えられてないサイトが多数存在するのではないでしょうか。PHPで作られているCMSも多いので、CMSを使ったコンテンツ作成はできるけどPHPはよくわからんっていう人は多い気がします。

    • by Anonymous Coward

      いや、もうPHPから別の環境に移行すれば?

      • by Anonymous Coward

        中小向けのWeb制作が触るサーバだと、Perlなんて5.8系がデフォです。

        いろいろ触れるところなら、Perlbrewなり何なりで自力で何とかなるんですが。

  • CentOS民なのでPHPは5.1.6か5.3のどっちかになってるな。

    • by Anonymous Coward

      その5.1.6になかなか強烈な不具合があってだな。一部CMSは5.1.6だけはよせ(それ以前の5.1系なら大丈夫)とサポート外にしてたり...
      ...CentOSがPHPの悪評をつくる一端を担ってたりする。

      • by Anonymous Coward

        >...CentOSがPHPの悪評をつくる一端を担ってたりする。
        根本的な原因はCentOSというよりRHELですね

  • by Technical Type (3408) on 2013年03月26日 23時44分 (#2350795)
    PHP採用した段階で、これから重大な脆弱性が次々に見つかることと、旧バージョンのサポートがさっさと打ち切られる事と、上位互換性が皆無で移植困難だってのがセットで来る事があらかじめ解っている人はPHPは避けて、あるいはPHPよりマシな代替品でシステムを組む。だからこの辺を考えず、PHPで目先の手っ取り早いシステム完成しか考えずに採用するという事は、後の事を考えていないのでいずれ悲惨な目に遭って、もう移行はできない。
    • by Anonymous Coward

      久々に本気で殺意の湧くコメント見たわ

    • by Anonymous Coward

      採用時から袋小路ですよね。
      しかし、ビジネスチャンスへの即時対応のためにはさけられないことも。
      webminを避けたら代わりになにがあるのかとか、どうします?

  • by Anonymous Coward on 2013年03月26日 12時56分 (#2350361)

    RHEL5/CentOS5民なんで、Red Hatが諦めてphp54を追加とかしない限りはphp53で行くかな

  • by Anonymous Coward on 2013年03月26日 13時29分 (#2350381)

    5.2 系から 5.3 系への移行すら遅々として進まない背景としては、この間の互換性の問題があげられている。

    後方互換性を維持することへの熱心さが足らないと。

    • by Sukoya (33993) on 2013年03月26日 13時51分 (#2350395) 日記

      半世紀近く維持されてきたCOBOLの話は止めるんだ。

      親コメント
      • by Anonymous Coward

        じゃあ、20億年維持されてきた生命の話をしよう。

        #類人猿の次のメジャーバージョンアップはいつですか

        • by Anonymous Coward on 2013年03月26日 14時10分 (#2350414)
          生物学的には接続コネクタの互換性があるうちはメジャーバージョンアップ扱いしないらしいしなぁ
          # 後方互換性がアッー!
          親コメント
        • by Anonymous Coward

          次の進化ってどういうものになるんだろうね。
          なんかリアルな想像がつかないや。

          私の中二人格によると、「能力者」だそうですが。

          • by Anonymous Coward

            進化って能力の飛躍だけじゃないでしょう。
            環境適応したものが進化なわけで。

            • by Anonymous Coward

              中国あたりで環境適応した人がでてきそうですね。

            • by Anonymous Coward

              もちろんその通りなんだけど、劇的な環境変化が起こりそうもないし。
              そもそも、猿から人間って環境要因?
              ザックリと割り切れないテーマだと思うよ。

              • by Anonymous Coward
                人類って森林の減少によって樹上生活からサバンナに脱出したサルの子孫でしょ。
          • by Anonymous Coward

            >私の中二人格によると、「能力者」だそうですが。
            呪力?・・・そりゃ「新世界より」だな。

            こそこそとAC

        • by Anonymous Coward

          生命はずっと -CURRENT です。
          公式にリリースされたバージョンはありません。

    • by Anonymous Coward

      コンパイル系言語であればごにょごにょごまかしを行えるステップがありますけれど、スクリプト系はなかなか悩ましいところですねえ。

  • by Anonymous Coward on 2013年03月26日 14時26分 (#2350427)

    5系なら完全な上位互換性があるから
    10年前のスクリプトでも一切の改修なしに動くのはWebProg板での常識なんだが

    • by Anonymous Coward

      君は実に幸せな奴だな・・・

    • by Anonymous Coward

      Pukiwiki は5.4じゃそのままじゃ動かないですね。

      • by Anonymous Coward

        もう素のPukiWikiは捨てたほうがいいんだろうね。事実上メンテナンスが放棄されているし。
        PukiWiki Plus!も不活性なようだし今から入れるなら PukiWiki Advance か。

        • by Anonymous Coward

          そのうち、PukiWiki Superとか、PukiWiki Hyperとか出てくるんだろうか…

    • by Anonymous Coward

      > 5系なら完全な上位互換性があるから

      どこの異次元の5系ですか?

  • by Anonymous Coward on 2013年03月26日 16時09分 (#2350476)

    5.5が出るころには5.2がどっかり減って、5.4が主流になってるんじゃない?

    レンサバ屋の動向とか見てると、どんだけ動作検証に時間かけてるのやら?(それとも前評判が落ち着くの待ってから入れるかどうか検証始めてる?)
    大きいところほど、(現行のと並行で)提供開始するころにはもう次期バージョンがリリースになるかならないかって時期になっているってことが多いかも。

    # 媚びてLTSすることもできず、サポート終了で尻叩いても客は動かず、なかなか大変ね。

  • by Anonymous Coward on 2013年03月26日 21時25分 (#2350724)

    ユーザーの多い有力なCMSが有無を言わさず動作保証を5.3以上にしてしまうとか、サポート切れのPHPバージョンではテストすらしないと宣言してしまうとかでサーバー管理者やディストロの尻を叩く形にしたらいいんですよ。
    それでCMSを捨てる判断をするようなヤツはいらん。ゼロデイの餌食にでもなってしまえ。くらいの強硬さは必要...なはず。

    #弱小だと未だに4.x互換コード見かけることもあるけど、概ね有名どころは5.2以上になってる??

  • by Anonymous Coward on 2013年03月26日 22時41分 (#2350767)

    PHPよりはるかに深刻だと思う

typodupeerror

吾輩はリファレンスである。名前はまだ無い -- perlの中の人

読み込み中...