トップページphp
654コメント182KB

Java VS PHP

■ このスレッドは過去ログ倉庫に格納されています
000112007/04/27(金) 21:21:58ID:U5tJyA2z
Java VS PHP
0377nobodyさん2011/10/29(土) 17:28:31.92ID:???
俺なんか最近まで全部Cで書いて、コンパイルして、CGIで動かしてた。
PHPにしたら、死ぬほど楽。
ライブラリはそろってるし、makeして移動してテストしてみたなメンドくさい作業も要らないし。

速度が遅いかもしれないけど、最近のサーバは性能良いしね。
誰か、ネイティブコードにコンパイル可能なPHPみたいなの作らないかな・・。

売れる気がする。
0378nobodyさん2011/10/29(土) 19:08:27.42ID:???
>>377
PHPはコンパイル型になってもアーキテクチャがマルチプロセスなのでパフォーマンスはあまり変わらないですよ。
0379nobodyさん2011/10/30(日) 00:09:24.80ID:7RgK+kUR
PHPのシングルトンは公式サイトもその意義を疑問視してるね。

http://php.net/manual/en/language.oop5.patterns.php
0380nobodyさん2011/10/30(日) 00:56:39.49ID:???
苦手なりに赤背景部分読んでみた。こういう分かりやすい正直な警鐘出すとこは好感持てるね
たしかにPHPだとシングルトンってただのグローバルに比べてもうまみが薄いよねえ
0381nobodyさん2011/10/30(日) 01:00:28.95ID:???
英語分からんならjaで見ればよかろ
0382nobodyさん2011/10/30(日) 01:38:54.61ID:???
これは失礼w
0383nobodyさん2011/10/30(日) 01:58:11.43ID:???
シングルトンも意味をなさないPHPではOOPは無理がある思う。PHPが真価を発揮させやすいのは構造化プログラミング。それが一番処理が早い。
0384nobodyさん2011/10/30(日) 02:03:58.59ID:???
PHPのシリアライズはバグがあるみたいね。分散処理させない小規模なシステムではあまり影響はないけど、
大規模では使えない。
0385nobodyさん2011/10/30(日) 02:07:35.47ID:???
へ?そらいくらなんでも強弁じゃね
もちろんマルチプロセス前提で普及したゆえに適用できない著名デザパタがあるって事自体は弱みだと思うけどさ
0386nobodyさん2011/10/30(日) 02:09:08.78ID:???
分散は泣きどころだよな
0387nobodyさん2011/10/30(日) 02:19:00.34ID:7RgK+kUR
実際のところ、phpはインタープリッタなのでOOPすれば実行時の解釈量が増え、オーバーベッドが高まる。
0388nobodyさん2011/10/30(日) 02:22:32.03ID:7RgK+kUR
OpenPNEみたいな悲惨なパフォーマンスみればやっぱり無理してるんだなと思う。
キャッシュでごまかしてはいるけれどもね
0389nobodyさん2011/10/30(日) 02:25:45.77ID:???
そこは異論ないな
キャッシュやDBテクでごまかせん規模が容易に予想される分野にゃ辛いw
0390nobodyさん2011/10/30(日) 11:36:40.72ID:???
20年くらい前にさ、「自分で言語を作ろう!」みたいな雑誌の企画や本が結構出版されてた。
構文解析してスタックに詰めて、みたいな・・。
今、どうなんだろう。

今もやってるなら、コンパイル可能なPHPライクな言語を時間がある学生が作れば良いのに・・。
途中一回C変換する、プリコンパイル形式なら、簡単とは言わないけど、難しくは無い土方仕事の気がする。
0391nobodyさん2011/10/30(日) 19:48:57.47ID:???
scalaみたいに他言語のソースコードへ変換されるだけ言語なら作れるかもしれんな。
マルチプラットフォームのランタイムとかだれも作りたくねーし。

扱いやすいJavaのフレームワーク(環境設定の自動化も含めた)
を作ったほうが現実的だな。
0392nobodyさん2011/10/31(月) 00:04:41.61ID:gGH32TBv
Quercusがあるのでは?Javaで実装されたphp。。
現在のところマルチバイトがやや難ありだけど生のphpよりも早い感じ。
0393nobodyさん2011/10/31(月) 00:05:01.00ID:???
http://quercus.caucho.com/
0394nobodyさん2011/10/31(月) 04:56:16.28ID:???
ここまでPHPの話題のみ。Java無し
0395nobodyさん2011/10/31(月) 13:38:24.53ID:???
誤爆か?
0396nobodyさん2011/10/31(月) 16:19:06.81ID:???
goo-net重くね?
PHPだから?
0397nobodyさん2011/10/31(月) 22:56:52.53ID:???
>>396
PHPサイトとしては普通ですよ。
0398nobodyさん2011/11/01(火) 00:41:08.40ID:8zPkzMXU
PHPでコネクションプーリングはどうやるのですか?
0399nobodyさん2011/11/01(火) 07:18:16.12ID:???
mysqlはコネクションプーリングしないほうがいいらしい
0400nobodyさん2011/11/02(水) 10:41:39.66ID:kVqZiVh5
PHPの特徴をまとめた。

・アプリケーションスコープが存在しない
・マルチスレッドではなく、マルチプロセスで動作
・シリアライズはバグがあるため、使用に耐えない
・マルチプロセスのためシングルトンは本来の意味をなさない
・OOPはオーバーヘッドをまねく
・コネクションプーリングがない
・インタプリタ方式のため配備が容易である反面、実行が緩慢
・複雑なロジック構築には向かない
0401nobodyさん2011/11/02(水) 10:55:56.98ID:???
PHPはお買い物サイトくらいまでだな
0402nobodyさん2011/11/02(水) 21:20:06.39ID:???
PHPでリアルタイム通信対戦のテーブルゲームのサーバーぐらいなら
書けるって聞いたんですが無理なんですか?
というか基本的になんでも書けると聞いたのですが無理だとしたらすでに
発注したPHPの本はいったい・・・
0403nobodyさん2011/11/02(水) 21:31:08.04ID:???
こんな程度の低いゲームボーイが集まるのがPHP

国家経済の中核を担うミッションクリティカルな
大規模エンタープライズシステムを任せられるのがJava

まあそれは置いといて、PHPってそんなに遅いのか?
mod_phpってコンパイルとまではいかなくても
構文解析とかでそれなりに前処理するから
速いとか聞いてたが遅いと言う人もいてわからん。
0404nobodyさん2011/11/02(水) 22:05:37.17ID:???
Javaが速すぎるんだよ。あれは反則だよ。
0405nobodyさん2011/11/02(水) 22:38:37.79ID:???
PHPは基本速度が遅い事よりキャッシュを作るのに
いちいちDB使う必要があるのが致命的だな。
0406nobodyさん2011/11/03(木) 00:50:26.56ID:???
>>402
余程人気出たら落ちるかもね。しかし言語問わず素人設計ならアクセスはじけりゃ落ちるもんだ
PHPだから駄目なんだ、って所まで行く頃には人雇ったり外注化する予算なんか計上できてなきゃいかんと思うが

なんでPHPでやろうと思ったの?
0407nobodyさん2011/11/03(木) 13:41:41.54ID:???
>>406
今一番主流で速いのはPHPだと聞いたので・・・
PHPでもよほどアクセスが増えなければやっていけるのですね
ならばとりあえずPHPをマスターしたあとJava勉強してみます
0408nobodyさん2011/11/03(木) 14:52:48.15ID:YvPr1Ejs
どのようなシステムか詳細は不明だが、
PHPでもよほどアクセスが増えなければやっていけるとする。

しかし仮にアクセスが増えた場合はPHPの特性上その対策は限られるし、困難が予想される。
その理由は>>400

最悪、別言語で1から作り直し。
0409nobodyさん2011/11/03(木) 15:35:10.50ID:???
リアルタイムってのがな
できない訳じゃ無いにしろ、選定間違ってるとは思う。無駄大杉
余程の事情なければJAVAで簡単なサーバ立てたほうが適切だろ
0410nobodyさん2011/11/03(木) 16:53:50.74ID:???
>>408-409
ありがとうございます
リアルタイムにPHPは向いていないのですね・・・。
調べてみるとJava servletなどでもPHPと同様のことができるようで、
こっちのほうがアクセスの処理や、セキュリティ面でも有利なようですね

アクセスの軽いブログやSNS程度ならばPHPでもいけるようなので、
とりあえず基本としてPHPは覚えておいて、ゲームのリアルタイムサーバには
Java servletを使ってみようと思います
0411nobodyさん2011/11/04(金) 00:51:19.55ID:SyxcnQaS
PHPはマルチスレッドではないから当然synchronizedも無いんですよね。

>>402さんのやりたいことよくわかりませんが、PHPではほとんど無理と思ったほうがいいです。
0412nobodyさん2011/11/04(金) 12:21:40.32ID:???
速いとかは作れること前提なんだが
学生なら5年くらいはプログラミングで遊んでないと
そのレベルに達しないぞ。
0413nobodyさん2011/11/05(土) 01:58:21.79ID:???
>>411
なんでできないの?できるだろ?
>>402のやりたいことも理解できないくせに
ほざいちゃ駄目。OK?
0414nobodyさん2011/11/05(土) 03:20:29.17ID:???
まあ待ったれや
synchronizedとか言い出してる時点でお里が知れるってもんよ。逆になw

動くは動く、方法はあるとかじゃなくてな。JAVA脳だとふつー無理って言うよww
優しい人は「考え得る限りで相当ひどい選択」くらいに留めてくれるだろうけどさ

質問者がservletとか言い出してるので、みんな呆れて放置してるだけだ
まーあれよ、急がば回れっていうしな。
0415nobodyさん2011/11/05(土) 10:09:52.35ID:???
リアルタイムなら、Cでソケットプログラム組むのが最速だし、最善。
JavaとかPHPとか鼻で笑うレベル。
0416nobodyさん2011/11/05(土) 10:40:25.49ID:HhBc5m4r
>>415

車輪の再発明
0417nobodyさん2011/11/05(土) 10:43:34.43ID:???
まあブラウザーで興奮しただけのゲーム小僧の妄想が
実現することはないからどうでもいいけどな。

ゲームボーイ「ぼく、ゲームに人生賭けてるんです。(キリッ)」
0418nobodyさん2011/11/05(土) 10:53:06.32ID:???
Cしかできないこの人が>>417一番かわいそう。
0419nobodyさん2011/11/05(土) 11:06:28.94ID:???
PHPは言語自体が糞いけど
Javaを何も知らないような人に教えるのは大変。
最近のフレームワークはかなりステップ省略してくれるけど
省略されてるものについて知らないと結局つまるw
0420nobodyさん2011/11/06(日) 12:39:31.87ID:CyEdSHTE
>>415
もうC言語だけじゃウェブでは食えなくなったね。
だから今、PHやJavaを勉強しているんだね。
周回遅れだけどがんばってね。
0421nobodyさん2011/11/07(月) 11:36:41.37ID:???
>>377
HipHop for PHP
0422nobodyさん2011/11/07(月) 16:59:02.55ID:???
rubyはperlの系列
phpはCの系列
pythonはjavaの系列

rubyやperlの構文を簡単と表現するのは間違ってる。
0423nobodyさん2011/11/08(火) 23:28:58.77ID:xqDz7Hyh
PHPでプログラム初めて3年ぐらいの人間ですが、
シングルトンをPHPでやった場合、オブジェクトを生成するコストが軽減されるから有利って聴いたんだけど、意味ないのかな?
0424nobodyさん2011/11/09(水) 00:08:37.13ID:???
意味はあるさ
でもJavaほどの意味はない
0425nobodyさん2011/11/09(水) 01:22:29.50ID:???
>>423
プロセスの範囲内で意味がある。範囲外では意味が無い。
0426nobodyさん2011/11/09(水) 01:28:26.42ID:???
それだとglobalと変わらんって事になるな
0427nobodyさん2011/11/09(水) 01:34:43.48ID:???
マルチスレッドとマルチプロセスの違いがわかれば効能を理解しやすい。
0428nobodyさん2011/11/09(水) 01:37:36.15ID:???
phpの公式サイトですらシングルトンの意義を疑問視する見方があると警告を発しているのでやはり意味は薄いと考えるべき。
0429nobodyさん2011/11/09(水) 03:08:48.67ID:???
>>427
是非ご教示くださいな
0430nobodyさん2011/11/09(水) 09:32:08.77ID:oOybQmeL
>>429
激しく既出
0431nobodyさん2011/11/10(木) 09:20:26.94ID:???
ページを横断できない上に
リクエストが終わったら消えるんだろ?
RDB+memcachedしかキャッシュ作る方法ないって
つらそうだなPHP
0432nobodyさん2011/11/10(木) 18:33:10.38ID:???
PHPってプロセスなの?
0433nobodyさん2011/11/11(金) 03:47:03.01ID:mvrSjj2U
>>432
cgiかmod_phpか、それ以外か、による。
0434nobodyさん2011/11/11(金) 08:47:31.29ID:uxVWvnFW
マルチスレッドではない。
0435nobodyさん2011/11/11(金) 12:24:05.67ID:???
内部ではこっそりスレッドとプロセスを両方使ってるみたいだが
あれはランタイムの速度の話であって
プログラム上でメモリを扱うときはプロセスのみ。
0436nobodyさん2011/11/12(土) 15:42:45.00ID:lTOZckQV
PHPのメモリ管理は非効率。
結果としてデータベース読み出し回数が多くなる。
やっぱり小規模サイト向け。
0437nobodyさん2011/11/12(土) 18:10:05.12ID:???
開発が楽になるための代償としてそうなったのなら
良かったんだが、単に作りが悪いんだよな>PHP
0438nobodyさん2011/11/12(土) 20:26:52.17ID:???
javaはメモリ使うんじゃなくて
JSPがページの静的な部分もメモリのバッファに
キャッシュしておくから消費量が大きいんだと思う。
その分速いと思うけど単純にページが増えるだけで
メモリ消費量がうなぎのぼり。
普通のページはテキストだけで50KB〜100KBだから
オブジェクトにするともう少しメモリが必要だとして
ページ平均100KBと大きめに見積もったとしても
100ページで10MBだな。tomcatやセッションを見積もっても
レンタル鯖は最低256MBくらいメモリ使えるから小規模なら余裕。
レンタル鯖の数が少ない+値段3倍ぐらいなのがネックだが。
0439nobodyさん2011/11/12(土) 23:41:05.99ID:???
>>438
???
0440nobodyさん2011/11/20(日) 23:45:14.62ID:aeb5Hjma
PHPの特徴(Javaと比較して)

・アプリケーションスコープが存在しない
・マルチスレッドではなく、マルチプロセスで動作
・シリアライズはバグがあるため、使用に耐えない
・マルチプロセスのためシングルトンは本来の意味をなさない
・OOPはオーバーヘッドをまねく
・コネクションプーリングがない
・インタプリタ方式のため配備が容易である反面、実行が緩慢
・複雑なロジック構築には向かない
0441nobodyさん2011/11/21(月) 20:21:31.59ID:ds44pbYz
javaのwebっていわゆるjspってやつだよね
閲覧速度で言ったらPHPの方が早い、javaは遅い
0442nobodyさん2011/11/21(月) 20:45:55.52ID:???
JSPも1回目は遅い。でもそれは2回目以降をPHPより速くするためにね。
じゃあ1回目のアクセスじゃなくてサーバー立ち上げたときに最適化しろ
って思うかもしれないだろうけど、そうするとサーバー立ち上げるのに
時間かかるからってことで1回目のアクセス時にそのページだけ
最適化コンパイルが走るしくみ。

0443nobodyさん2011/11/21(月) 20:54:02.14ID:???
javaのwebは全てServletで、JSPはServletのフレームワークみたいなもん。
JSPはPHPのZendと同じように本家が作ったフレームワークだから使っている
人が多いけど、Servletから代替技術を作ることはできる。
0444nobodyさん2011/11/22(火) 01:26:33.43ID:p9DuxQ+f
JSPはプリコンパイルしてアップすれば一回目から早い。
またソースコードをアップロードする必要がなくなくのでセキュリティ高まる。

PHPは毎回遅い。
0445nobodyさん2011/11/22(火) 01:28:46.86ID:p9DuxQ+f
PHPの遅さの原因はインタープリタ型ということもあるけど、
メモリ管理が貧弱なのも大きい。
WordPressなんか見るとムダが多すぎて悲惨なレベル。
0446nobodyさん2011/11/22(火) 08:38:41.14ID:9Jg7q1AK
実際javaのネットショッピング遅いよ。最初の接続なんて超遅い
0447nobodyさん2011/11/22(火) 09:42:21.52ID:???
>>446
それはJavaのせいちゃう
0448nobodyさん2011/11/22(火) 12:32:05.01ID:1zP6IafJ
>>446
Java勉強した上で言ってるの?

htmlspecialchars()と同等の機能をサーバーサイドJavaで実現するためには
どうすればよろしいのでしょうか?答えてね。
0449nobodyさん2011/11/22(火) 12:38:22.90ID:???
なんか凄まじい勘違いでめちゃくちゃな誤った情報をばら撒いてるのがいるな・・・
>>441-443,446あたりの方はWebアプリの基礎のキをちゃんと学んでからもの言ってくれ・・・
0450nobodyさん2011/11/22(火) 14:04:14.90ID:???
java知らない奴には分かりやすいだろう?
jsf2でjspつかわなくなったし、言いたいのは
jspに対する不満がjavaに対する不満にならないというだけのこと。
0451nobodyさん2011/11/22(火) 18:20:31.74ID:1C+Yi1D1
そうかな。java好きだけどな。
確かに自分だけが見て書くならphpでもperlでもいいかもしれないが
他人のphpのソースはひどいものはひどい。
その点javaでちゃんとオブジェクト思考で書いたたとえばstrutsは
見やすい。ちゃんとオブジェクト思考を理解している人が書けばまあ
案外はずれはない。
後さ、板違いかもしれないがhtmlのテーブルレイアウトで基地外みたいな
ソースを書くやつもいる。htmlでもここまできたなくかけるのかとちょっと
関心してしまった

0452nobodyさん2011/11/23(水) 01:24:53.57ID:TchKIcRa
PHPの特徴(Javaと比較して)

・アプリケーションスコープが存在しない
・マルチスレッドではなく、マルチプロセスで動作
・シリアライズはバグがあるため、使用に耐えない
・マルチプロセスのためシングルトンは本来の意味をなさない
・OOPはオーバーヘッドをまねく
・コネクションプーリングがない
・インタプリタ方式のため配備が容易である反面、実行が緩慢
・複雑なロジック構築には向かない
・スキルが高い技術者がいない(有能な技術者は他へ流れる)
0453nobodyさん2011/11/23(水) 11:22:33.48ID:+z4pWX+/
java,javaと騒いるがhp比較してから言え
0454nobodyさん2011/11/23(水) 17:15:26.55ID:???
>>453
日本語おk
比較対象が、>>446のような頭弱いやつが作ったサイトでは意味が無い
0455nobodyさん2011/11/23(水) 19:09:51.17ID:???
OOPはオーバーヘッドをまねくとかどの言語にも言えることを
PHPの特徴として挙げてるのが頭弱そうだなw
0456nobodyさん2011/11/23(水) 19:50:17.10ID:???
俺も昔Javaは遅いって偏見もってたけど自分で実装したら爆速だった。
0457nobodyさん2011/11/23(水) 23:18:48.02ID:???
OOPにするとリフレクションを使ったフレームワークがでてくるんだが、
これがとにかく重い。

だけど最近のJavaフレームワークはバイトコード書き換えライブラリで
リフレクションの重さを消してるから大きな差がでる。
0458nobodyさん2011/11/23(水) 23:31:03.36ID:TchKIcRa
>>455
OOPはオーバーヘッドをまねくとかどの言語にも言えない。
JavaはデフォルトがOOPなので「オーバーヘッド」とは言葉の意味として変。

他の言語で言えば、Objective-Cは早さを求める部分だけはC言語を使う。
OOPしたいときはObjective-C特有の記述を行う(処理が若干遅い)。
この言語ではオーバーヘッドだと言える。

PHPも同様。手続き型が早く、OOPするとオーバーヘッド。
0459nobodyさん2011/11/23(水) 23:33:43.99ID:???
phpは速度がいらない用途に使われることで
javaと住み分ければいい。

だからphpの命運はrubyしだいじゃないの?
0460nobodyさん2011/11/24(木) 00:46:29.22ID:7Rm3n7B1
データベースを使用しないサイトではPHP有利。

しかし、データベースを使用するサイトでは
同じデータのためにユーザー別にデータベースに取りに行く羽目に
なるから悲惨。シングルトンも中途半端で意味ないし。

ユーザー固有のデータをユーザー別に取りに行くのであればわかるが。。。
0461nobodyさん2011/11/24(木) 00:47:50.51ID:7Rm3n7B1
最たる例がOpenPNE、続いてWordPress。
0462nobodyさん2011/11/24(木) 01:34:38.03ID:9qxbQIMl
javaってタグ出力1行ずつなの?
0463nobodyさん2011/11/24(木) 03:23:45.21ID:???
>>462
質問の意味、不明
0464nobodyさん2011/11/24(木) 03:29:38.05ID:???
servletはリクエストごとにデフォルトで2000文字のレスポンスバッファ(メモリ)が
用意されてて、上から一行ずつレスポンスバッファにコピーされていく。
そしてバッファが満タンになるごとにブラウザへネットワーク出力される。
つまり2KB毎の出力。(大きく出来るが)

単純な実行速度の差(forループが速いとか)なら誰も気にしないんだけど、
キャッシュを作ったりするプログラマ側の工夫・テクニックが
phpには利用不可なところで大きな差がでるんだよ。
0465nobodyさん2011/11/24(木) 03:31:58.83ID:???
>>462
ついでにいうと、PHPの例を上げてもらうとJavaの場合を説明しやすい。
基本的にPHPよりもJavaの方が選択肢が多いと考えたほうがいい。
0466nobodyさん2011/11/24(木) 03:37:01.08ID:???
PHPに小技を使うプログラマを意図的に追い出して
初心者と上級者のコードの差をなくしたい目的があるなら
それでもいいかもしれんが、目的の為の結果ではなく
単なる設計上の失敗でこうなってるわけだ。
0467nobodyさん2011/11/24(木) 03:37:47.34ID:???
>>460にあるようにPHPであればリソースがムダになるのがデフォルトなのでパフォーマンスでは不利だろうね。
0468nobodyさん2011/11/24(木) 03:42:33.94ID:???
>>460の弱点を補うために共有リソースをJSON化し、JavaScriptで読む設計を見たとき、PHP大変だなと思った。
0469nobodyさん2011/11/24(木) 09:24:19.45ID:Q/4cL+dK
javaはWEBには向かない非効率過ぎだろう
0470nobodyさん2011/11/24(木) 12:12:39.84ID:iozStp/e
>>469
たとえば?
0471nobodyさん2011/11/25(金) 02:57:59.91ID:r9GSFHRA
>>469
で?
0472nobodyさん2011/11/25(金) 17:58:21.02ID:eVJvll6H
javaのwebページを見たらわかるけど画面が一瞬消える(真っ白)
0473nobodyさん2011/11/25(金) 20:06:41.84ID:???
完全論破されたPHPユーザの末路だな。

これまでPHP使ってた程度の低い連中が
最近Rubyに流れ出したらしく、railsだかherokuの人が怒ってたな。
0474nobodyさん2011/11/25(金) 21:45:22.30ID:RQAHKfhw
>>472
で?
0475nobodyさん2011/11/25(金) 22:55:47.08ID:JAScN6im
facebook,MysqlツールのMySQLAdminもphp
0476nobodyさん2011/11/25(金) 23:13:44.71ID:c2XffeOU
javaはServletに対応したインターネット・サービス・プロバイダ(ISP)がほとんどない
0477nobodyさん2011/11/26(土) 00:17:25.63ID:kHsr0WWb
javaとjspの違いわかってないんじゃねw
■ このスレッドは過去ログ倉庫に格納されています