OO言語へと歩を進めるPHP5 132
ストーリー by Oliver
要望があれば今のうちに 部門より
要望があれば今のうちに 部門より
dseg 曰く、 "本家のストーリーより。
PHPのコアディベロッパー、スターリング ヒューズ氏による 『Introduction to PHP5』がオンラインで公開されている(PDF版)。
この資料は、NYPHPで先月の25日に行われた講演で使用されたもの。
次期バージョンで導入されるのは 新しいオブジェクトモデル、名前空間のサポート、抽象データ型(ADT)、例外処理、インターフェース、クラスのアクセス指定子(Public/Protected/Private)、静的クラス変数/静的メンバ関数、final修飾子等多岐に渡り、本格的なオブジェクト指向言語に生まれ変わる予感がヒシヒシと。やはりJavaを意識しているのだろうか。
本格的OO言語への道を歩み始めたPHP5、皆さんの期待度はいかがだろうか。
蛇足ながら、プレゼンテーション文書が置いてあるサーバ上では PHP5の開発版(PHP/5.0.0-dev)が稼動中だった。現在 pre-alpha ステージというが、リリースは何時頃だろう。"
この流れに乗ってか、 (スコア:2, おもしろおかしい)
Re:この流れに乗ってか、 (スコア:1)
Language specification:
> Increment the pointer.
< Decrement the pointer.
+ Send 'Increment' message to the object at the pointer.
- Send 'Decrement' message to the object at the pointer.
. Send 'Output' message to the object at the pointer.
, Input a byte and send it to the object at the pointer with 'SetByte' message.
[ Jump past the matching ] if the object at the pointer returns 'TRUE' by the sent 'IsZero' message.
] Jump to the matching [.
反復子にしてみました (スコア:1)
Language specification:
> Move the iterator to next.
< Move the iterator to previous.
+ Send 'Increment' message to the iterator.
- Send 'Decrement' message to the iterator.
. Send 'Output' message to the iterator.
, Input a byte and send it to the iterator with 'SetByte' message.
[ Jump past the matching ] if the iterator returns 'TRUE' by the sent 'IsZero' message.
] Jump to the matching [.
# mishimaは本田透先生を熱烈に応援しています
Re:この流れに乗ってか、 (スコア:1)
Re:この流れに乗ってか、 (スコア:3, おもしろおかしい)
Ooops Windows Xpを発表した。
リリースに曰く、「これまでのWindows画面は3Dとか言いながらも、机の上しか表現して
いなかった。これは、オブジェクト指向と言う意味では一段劣っているものだ。こんどの
Ooops Windows XPでは、なんと『机の足』までも表現している。このため見たくない資
料を机の下に隠したり、地震の時に隠れるといった、ユーザの自然な行動をコンピュータ
の上でも違和感なく再現できるようになった。みなさんも、一度使っていただけば、この
素晴らしさを理解していただけると思います」
また、この方向性での新機能では『窓際の席』と『クーラーの直下の席』を今後予定して
いるそうだ。これも、楽しみに待ちたい。
Re:この流れに乗ってか、 (スコア:3, おもしろおかしい)
「これはM.crosoftの十八番のVaporware戦略だ。それに、机の脚まで再現したと言うが、我が社のOSなら、もうとっくに机の脚に足の小指をぶつけて痛くて泣くような動作まで出来るようになっている。M.crosoftは出来てもいないソフトウェアですら太陽社のOSにかないませんと言うつもりか?」
「そんなことより机の脚を引っこ抜いてマックロネリCEOを殴って息の根を止められる機能はないのか?」というだれもがしたがっているはずの質問は怖くてできなかった。
Re:この流れに乗ってか、 (スコア:1)
まぁご心配なく、プログラミングとしてのオブジェクトと実社会のオブジェクトは必ずしも1対1にならないので実社会で OO なのだとはならないと思う。
身近なところから OO を考える (スコア:1, おもしろおかしい)
「何か出てきましたけど。」
「さんきゅー。こっちちょうだい。で、次は…」
# んなわきゃないので AC
PHPにも不満はやっぱりあるわけで (スコア:2, 参考になる)
そんなわけで無料で中間形式への出力可能化を激希望。
すらど宴会SNS開放中 [e-meet.jp]
Re:PHPにも不満はやっぱりあるわけで (スコア:2, 参考になる)
これってどうでしょ。
PHP Bytecode Compiler
http://sourceforge.net/projects/pbc/
PHP で納品する人に取っては必要な手段なのでは。
色々突っ込まれているようですが、どうせクライアントが首を縦に振らない限りクローズドなワケですし。
Re:PHPにも不満はやっぱりあるわけで (スコア:1)
「ほしけりゃ自分で作れよ」
と思うのです。私は。
それが出来るのが OpenSource ベースの魅力でしょ?
自分たちの労働力をつぎ込んで実装するか、お金を出して手に入れるかです。
「OpenSource」 を 「無料ソフトウェア」と混同しているようなのは作者の方々のモチベーションを損ないます。
「希望」というよりもベンダーに対する改善要求のような口振りですよ、それだと。
# rm -rf ./.
Re:PHPにも不満はやっぱりあるわけで (スコア:1)
いちいちエンコードするのにお金をかけるのが馬鹿らしいので
自前でフレームワークのモジュールをCから(笑)
こっちも一応商売でPHPを使うわけだからソースコードは
顧客には見せたくないっていうのはありますね(w
それはさておいて、こういう話はみんな敏感ですねぇ。
すらど宴会SNS開放中 [e-meet.jp]
Re:PHPにも不満はやっぱりあるわけで (スコア:3, すばらしい洞察)
>顧客には見せたくないっていうのはありますね(w
じゃあPHP使うなよ。(笑)
商売で使うからこそ、ソースコードは顧客に全て見せる。
これぞ、プロフェッショナル。
# なお、マイナスモデレート大歓迎!!
PCにECC Registeredメモリの利用を推奨します。
Re:PHPにも不満はやっぱりあるわけで (スコア:1)
まぁ、それでもPHPは使い続けますけど、PHPは好きですから(笑)
すらど宴会SNS開放中 [e-meet.jp]
Re:PHPにも不満はやっぱりあるわけで (スコア:1, すばらしい洞察)
オレが儲けたいからおまえはオレに無償(に近い価格)で奉仕せよって言ってるようなものじゃん。
あなたがお客に「安く上げたいから、タダで働け」って言われて「はいわかりました」って答えるかい?
ソースコードを見せたくない (スコア:1)
# あ~、煽りとかじゃないです、念のため
PHP はほとんど使ってないんですが、僕の仕事では、ソース + バイナリ(インストーラ) + 仕様書(欝)の納品がほとんどだったりします。でも、ソースをわかってくれるお客さんも少ないですね。わかると熱いトークができたりして、それはそれで嬉しかったりもします。
また、ソース付きで納品すると、システム改編時に落札した業者が現役のソースを参照できるため、仕様書には書かれていない、技術者だけが知っている微妙で謎な仕様を見逃がさないという効果も期待できると思います。やっぱり、ソースは嘘をつかないのです、といいつつ、どのソースが最新かわからなかったりすることもありますが...
# つーかオフトピですね、すみません...
-- cooper
Re:ソースコードを見せたくない (スコア:1)
すらど宴会SNS開放中 [e-meet.jp]
マニュアル... (スコア:1)
こいつは悩ましいですね、というかマニュアルがなくても使えるシステムにしろ、と日頃上司に言われます、ハイ...
-- cooper
Re:マニュアル... (スコア:1)
でもわかりやすくて、それでいて親切なマニュアルもつけます。
実はマニュアルや仕様書を書いてる時は楽しかったりします。
それでもシステムが大きくなるとそれなりにマニュアルも分厚くなりますので物理的にかなり大変ではありますが(^^;
すらど宴会SNS開放中 [e-meet.jp]
Re:ソースコードを見せたくない (スコア:1)
確かにそうだと思う。
ソースを全部見せてなんぼでしょ?
PCにECC Registeredメモリの利用を推奨します。
Re:PHPにも不満はやっぱりあるわけで (スコア:1)
私の本音を正直にオブラートに包まず表現してみたわけですが、
他の言語では可能な事がPHPではオプション扱いで高い金額を請求するのって、まぁ商売だからいいんだけどね、やっぱ「ぼったくってるなぁ」と言いたくなるわけですよ。
あなたもそう思いません? とか聞いてみるテスト。
すらど宴会SNS開放中 [e-meet.jp]
Re:PHPにも不満はやっぱりあるわけで (スコア:1, 参考になる)
無償で新しいインタプリタエンジン(Zend)を提供した企業でしょう?
付加価値の部分で儲けたっていいじゃん。ぼったくりは言い過ぎだろ。。
Re:PHPにも不満はやっぱりあるわけで (スコア:1)
Re:PHPにも不満はやっぱりあるわけで (スコア:1)
言われてみればそれもそうですね(^^;
すらど宴会SNS開放中 [e-meet.jp]
Re:PHPにも不満はやっぱりあるわけで (スコア:2, すばらしい洞察)
非OO版もほしい (スコア:1)
互換性の問題 (スコア:1)
ということはPHP4系列もしばらくはメンテが続くのかな。だとするとOO嫌な人はPHP4を使い続けるという手もあるのかな・・・でも、そんな訳にはいかないんだろうなぁ・・・
Re:互換性の問題 (スコア:2, 参考になる)
PHP5でもOOをやりたくない人はやらなくていいわけで、それは今のPHP4の情況と代わりません。PHP4をOOとして使おうと思ったときに不満な点が、PHP5ではかなり改善されるということなので、PHP4をOO的に使ってない人にとっては4でも5でも関係ないんじゃないでしょうか。
Re:互換性の問題 (スコア:1)
http://ns1.php.gr.jp/pipermail/php-users/2002-March/006062.html
~
http://ns1.php.gr.jp/pipermail/php-users/2002-March/006051.html
あたりを読んでいて、がーん、この夏からPHPに移植する予定のWebアプリは4でいくべきか、5でいくべきか悩んでいたところなんですよね。
まあ、ASP -> ASP.NETほどの変わりようではないのでしょうけど。しかし、全く別物だと諦めつくんですけどね・・・微妙に行き当たりばったりで動かないかも・・・ってのが怖いですね。他の言語も一緒ですけど・・・
パフォーマンス面での改善はないのかなぁ・・・
PHP使いの内訳 (スコア:1)
個人的にはPHPは「ディベロッパでなくても使える言語」だと思うので、そういう人たちにも小規模な開発を任せられるという意味で注目しています。
でも仕様がどんどん変わるのはどうかなぁ。
メンテナンスも再利用もクソもないじゃないか、と。
# いやいや、ディベロッパでない人にはメンテナンスも再利用も必要ないか…
Re:PHP使いの内訳 (スコア:1)
とはいえ、はじめて使う時はWeb画面からデータのInsertやSelect結果の表示をするのに非常に苦労したものですが(w
PHPはいい加減な人にもそうで無い人にも使える言語だと思ってます。いい加減な人でもそれなりにプログラムが書けてしまいますし、きっちりしたコードを書けばそれなりにメンテナンスが容易で再利用性の高いコードが書けます。 非常に幅広い人を受け入れられるだけの可能性をもった言語かなと個人的には思います。
すらど宴会SNS開放中 [e-meet.jp]
Re:PHP使いの内訳 (スコア:1)
周りには、「嫌々Javaを使ってる」「PHPでやれたら楽だろうに」という人が多いですね。
Re:PHP使いの内訳 (スコア:1)
成長分野では言語でもライブラリでもそうだと思うのですが、ただ「今動く」コードを書くだけでは、「振り回される」と感じる事もあると思います。
どの様な方針で開発されているのかを知って将来を見据えたコードを書くとか、開発側の設計思想に則った丁寧なコードを書くとか、そう言う事に気を付けると、ある日突然大ピンチ、という事は減ると思います。
# いやいや、ディベロッパでない人にはメンテナンスも再利用も必要ないか…
ディベロッパでなくても、メンテナンスや再利用の概念がない人は、使い物になりません。:p
Re:PHP使いの内訳 (スコア:2, 参考になる)
まあ、おっしゃることはごもっともなんですが…
わざわざ言語の仕様変更を考慮してコード書くくらいなら、足下しっかりした環境でやりたいというのがほとんどの方の意見なんじゃないですかね。
理想はそうなんですよ。何でも先を見越して柔軟に、情報収集もぬかりなく、って。
誰しもそれができるスキルと心の広さ、特に時間があれば文句なぞ言いません。
仕様変わったって機能アップしてれば満足なんです。
既存のコード修正するの楽しみだなぁ、って言ったりして。
じっくり練って設計したから修正する必要ないぜ、とか自己満足したりして。
# 学生の時は自分もそんな風でしたね(苦笑)
UMLやJavaやStrutsが流行ってるのは開発者を振り回さないことを約束しているからですよね。
それに、どんどん納期が短くなって、そんな言語の仕様変更なぞ考慮する余裕がないのが実態だと思います。
フツーに設計してもそれなりにメンテ性や再利用性があってセキュアな成果物ができあがるのが環境としては理想じゃないですか?
私なら自分にそのスキルや時間を代償として負わせるのが嫌(というか、不可能)なので環境側に倒します。
納期も成果物も要求されなければ私もPHPじっくりやりたいですよ。もともと言語好きですし。
現実はそうでないからPHPは「大至急の使い捨てスクリプト」くらいにしか使いません。
1年後をみる方法 (スコア:2, 参考になる)
本家開発サイトの目立つトピックを見てみる。(ZendEngine2の話は1年前から色々と紹介されてました)
マニュアルや関数の改訂が少なく、余りメンテナンスが入っていなさそうなモジュールは怪しんでみる。
セキュリティ上危険な記述や、丁寧とは言えないコーディング(NoticeやWarningが出る様なもの)は放っておかない。いつデフォルト設定が厳格な方にシフトしても、文句は言えないから。
情報を後追いしていると、何が起きても常に「不意打ち」になります。
先を予測して漏れてくる情報を元に予測を補っていけば、1年後がどういうライン上にあるかは、具体的には分からなくても、大筋は分かります。
利用者が困る様な仕様変更は、段階的に、慎重に、移行してきているはずです。
「俺は知らなかった!ムカツク!」と怒ってみても、人によっては「今頃何言ってるの」という事もあるわけで……(^^;)。
不安なら、ML上などで尋ねてみるのも良ろしいかと。
Re:PHP使いの内訳 (スコア:1)
#個人的には4.3系のオブジェクトの参照渡しが云々といったあたりがかなりダメージでかかったですが
すらど宴会SNS開放中 [e-meet.jp]
Web版もPDF版も (スコア:1)
ファイル入出力を伴ったサンプルの所で、パーミッションエラーとかのエラーが出ているのは、意図されたものなでしょうか。文法ミスでOutput(結果)が何も出ていないページもあるし(汗)。
PDF版は、Outputが空っぽで、結果と突き合わせながら言語仕様を推し量る事が出来ないし。
どちらも中途半端で、いい加減な感じがしてしまうのが残念。
Re:Perlの (スコア:2, 参考になる)
少し規模のあるアプリケーションを書こうと思ったりコードを再利用しようと思うと PHP でも OOP にした方が楽だと私は感じています。
コードを追いかける時も労力が違います。
全てのシーンで OO 万歳とは言わないけどオブジェクト指向でなければ耐えれないシーンが増えてきているのも確かでは。
# でないと誰も使わないかと。
Ruby などに比べると月とすっぽんですが一度慣れてしまえば迷路としか思えない function と include には戻れません。
PEAR や PHPDocumentor などツールも充実しつつあります。
日本語Windowsでエラーを吐くので使えませんが著名なPHPエディターの PHPEdit には PHPDoc ツールが仕込んであり、一発でドキュメントを吐いてくれる [backendmedia.com]ようで普及に一役買っているようです。
中途半端さがイイ! (スコア:1)
引数とか、シンプルで、わかりやすくかけますし。
パクリもしやすいと。
Rubyなんかと違って、
「すべてがオブジェクトで無い」
というところに、可能性を感じております。
Re:中途半端さがイイ! (スコア:1)
# mishimaは本田透先生を熱烈に応援しています
Re:中途半端さがイイ! (スコア:1)
>「すべてがオブジェクトで無い」
という言葉は、文脈からみて
「オブジェクト指向でないデータの扱い方も考えてある」
という意味にとったけど。
(だって、単なるデータだって「これはほげほげオブジェクトです」
って言われたらオブジェクトなんだから、
オブジェクト指向でない「オブジェクト」という言葉には意味ないし)
# mishimaは本田透先生を熱烈に応援しています
Re:中途半端さがイイ! (スコア:1)
WEB用のスクリプト言語となると、1実行でそれほど複雑な処理をするわけではないです。
となると、手続き型の方が、シンプルに記述できるのではないかと。
さらに、複雑なデータを処理する部分にオブジェクト指向を持ち込むと、
もっとシンプルさを高められるのではないか、
というようなイメージです。
#うーん、ちょっとちゃうような気もするが。
Re:中途半端さがイイ! (スコア:1)
あー、そういう意味の質問なのね。
それならたとえば、部分的に宣言型で処理を記述できるような言語の可能性はどう?
全てをオブジェクトで扱おうとすると、
このような言語の発展の仕方ができなくなる。
#もういいや、って言ってるのに何だけど。
# mishimaは本田透先生を熱烈に応援しています
Re:中途半端さがイイ! (スコア:3, すばらしい洞察)
そんなプログラムでは手続き型言語とオブジェクト指向言語で差はでないような気がします。
特にRubyとかでは。誤解の再生産に反対。
まつもと ゆきひろ /;|)
Re:中途半端さがイイ! (スコア:2, 興味深い)
そういう形式(メソッド呼び出し)しか許さないオブジェクト指向言語ってSmalltalkしか知らないんですが。世の中に存在する数多くのオブジェクト指向言語が、haruxさんのおっしゃる「中途半端」な形式を許しているのに、それをことさらにPHPの特徴として取り上げるのは「誤解の再生産」ではないかと。
「オブジェクト=メソッド呼び出し」というのは短絡的に過ぎるのでは。
まつもと ゆきひろ /;|)
Re:Perlの (スコア:1)
まぁ、こういう意見もあるという事で(^^
すらど宴会SNS開放中 [e-meet.jp]
Re:Perlの (スコア:1)
まさにPerl4→Perl5の時の違和感を感じるでつ。
#ただ、ポインタ(リファレンス)が登場したのは嬉しかった。
PHPはプロトコルブリッジっつうか、フロントエンド代わり(いい呼び名募集中)としての存在に留まった方が良いんじゃないかと。
スクリプト言語としてのPHP自体に違和感を感じるというのが正直なとこかな。
言語が巨大化すると、とたんに使い勝手が悪くなるような気がしてならないのは、手続き型言語世代の懐古妄想なのでせうか。
C++については何も言うまい…。(合掌)
以下、余談。
Perlって$_の美学があるよね。
あと、後置きifがCにも欲しい…。
Re:スラド自浄効果?(^^; (スコア:1)
meraさんが思うように「Zend Encoderは高すぎる」と考える人がたくさんいるなら、それはある種のビジネスチャンスです、おめでとう。より安く製品を出せば商売になるかもしれないということですよね。自分が不満なら口を開けて待っているだけじゃなくて、どんどん自分から改善していくのが、ビジネスも含めたオープンソースのやり方なのでは?
結論は、口だけじゃなく手を動かさないと何も変わらないということで。
Re:スラド自浄効果?(^^; (スコア:1, すばらしい洞察)
Re:期待~ (スコア:1)
ちなみにZend Engine2 (PHP5)はすでに cvs.php.net で公開されていますので、誰でも試そうと思えば試すことができます。