[PHP-users 6056] Re: PHPの仕様の不安定さ (was: PHP デザインパタン )

Yasuo Ohgaki php-users@php.gr.jp
Sun, 10 Mar 2002 19:54:54 +0900


harikawa wrote:
> 針川@茅ヶ崎です。
> いつも参考にさせていただいてます。
> 
> 
>>あ、ここでぼくが書いた「不安定」というのは「バグが多い」という意味の不安
>>定ではないんです。
>>簡単に言えば、「PHP4.1で動いてたスクリプトがPHP6でそのまま動くか」という
>>話です。

これも同感です。PHPは言語なのにBNFがないのですから。

特定の仕様は意図した仕様なのかたまたまそう動作するのか、BNFがないと
解らないので困ります。

PHP5ではisset($this)がパースエラーになると今日のZendEngineのMLに
でていました。どうしてパースエラーになるのかは予想がつきますが、開発状況
を把握していないと絶対解らないでから、、、

>>
>>PHP3で動いていたスクリプトはPHP4でそのまま動かないことがありました。
>>それも、動かない部分は動かしてみるまでわからないという感じで。

その通りです!PHP5で結構動作が変更されるので、こんなに変えるくらいなら、
大文字/小文字を区別してほしい、と個人的には思っていました。

動かさないと動作するかしないか解らない、一見正しく動作しているように
見えるなどと言うのは最悪ですが、もしかするとそうなってしまうかもしれ
ません。

# MLで仕様変更による互換性問題を議論した時に、私は解りやすいエラー
# が表示される仕様変更は影響されるスクリプトが多くても比較的重大な
# 問題ではないのでは(どちらにしろ、スクリプト全体を見直す必要があ
# るので)とメールしたのですが、スクリプトの安全性に関わる仕様変更
# でも影響されるスクリプトは少ないのでエラーがでなくてもOK、エラーを
# だすこともできるから、と言う返信をもらった事があります :(
# 本当にエラーが出力されるかは定かではありません、、、、

# エラーを出さないのなら、大文字/小文字を区別すれば、ほぼすべての
# のスクリプトが動作しなくなり、互換性がないの事が明確になるので
# 良い(?)かもしれません。

>>nl2brの挙動が変わってHDMLでエラーが出るようになったり。。。
> 

XHTMLモードがあっても良いかもしれません。

> 
> これ、私も不満と言うより不安です。
> 
> PHP3 から PHP4 移行ではライブラリをかなり書き直す必要がありました。
> 言語仕様を変えないで欲しい、というのが希望なのですが・・・

残念ながら、PHP4からPHP5への移行はスクリプトの修正が多くの場合、必要
になると思います。

言語仕様が決まっていない(というより、実装により決まっている)事は
大きな課題と思います。

プロジェクトロードマップとかも無いですし。
互換性に関係する変更をどのような場合に行なうか、行なう場合はどのように
ユーザーに通知するかなども特に決まりはありません。。。
TODOアイテムの処理をどうするかなども、かなり場当たりです :)
少なくとも、TODOアイテムに"新しい命名規約に沿うように変更
する"とずっと前からあるのだから、一気に変更してしまうベキと
思います。

> # お願いだから関数名変えないで(^^;;

理解できます!きちんとした命名規約がなかったのがいけないのだと思います。
tokenizerモジュール(4.2.0から追加)を使うと、関数名などを簡単に新しい
名前に変更できます。

xsltモジュールなど、不安定な部分は多いですよね。PHPプロジェクトの進め方に、
改善の余地があるのだと思います。

> 
> PHP のメリットはやはり楽に書ける言語で開発効率が良い、という点にあるか
> と思います。小口の案件にはもってこいなんですよね。

同感です。

> 大口の高度な用途では servlet もありますし、敢えてそうしたものと重複す
> るような方向に行かなくても?と思うんですが・・・

そうなんですよね。私も複雑なビジネスロジックが必要なプロジェクトの場合は
Javaかな、と思います。ずっと以前のメールにも書きましたが、Java/Servlet
で作った方がビジネスオブジェクティブを達成しやすい場合は迷わずJavaを使い
ます。(ASP、.NET等が最適な場合も多いと思います)

建築に例えると、PHPは普通の住宅用、Javaは高層ビル用と言った感じでは
ないでしょうか?高層ビル用の機材/設備は住宅用にも使えますが、不便だったり、
コストがかかり過ぎたりしますから。

-- 
Yasuo Ohgaki
yohgaki@dd.iij4u.or.jp

__________________________________________________
Do You Yahoo!?
Yahoo! BB is Broadband by Yahoo!  http://bb.yahoo.co.jp/