トップページtech
981コメント306KB

PHPがいかに駄目言語であるかをちゃんと説明

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2013/11/15(金) 20:57:08.46
age推奨で

他の言語と比較しながら、具体的にちゃんと説明してください!
0082デフォルトの名無しさん2013/11/23(土) 09:53:43.11
>>81
そんな単純な話ではないよ
配列の要素を参照した場合、その配列のコピーが正常に行われないバグないし仕様

三項演算子の優先順序が他と違ってキモイってあったな
0083デフォルトの名無しさん2013/11/23(土) 10:22:21.78
説明ありがと
よくわからんけどw
発生条件にはやはり配列も絡むのか

関係ないけどPHPの配列って数値添字も含めて全部連想配列なのもキモい
$a[0]=0;
$a[3]=3;
$a[2]=2;
foreach($a as $b){print "$b\n";}

三項演算子はキモいじゃなくマジ不便
0084デフォルトの名無しさん2013/11/23(土) 10:39:52.67
配列を返す関数の返り値から特定の要素だけ取り出すとか
(Perlなら (stat("filename"))[9] )
作ったオブジェクトをいきなり使うとか
( (new A())->method() )
いったん変数に代入しないとできないのは地味に不便
0085デフォルトの名無しさん2013/11/23(土) 10:48:33.64
>>84
後者って前に対応してなかったか?
0086デフォルトの名無しさん2013/11/23(土) 10:50:15.24
>>84
両方とも5.4でできるようになってる
0087デフォルトの名無しさん2013/11/23(土) 10:51:01.61
ああ、会社のサーバのは5.2だわ
0088デフォルトの名無しさん2013/11/23(土) 10:54:10.95
関数内で使った変数のスコープがデフォルトでローカルなのはよいこととして認める
0089デフォルトの名無しさん2013/11/23(土) 11:06:40.82
>>87
5.4以上にすると前に戻れなくなる
その2個以外に
$a = [1, 2, 3, 4];
とか対応してるし
0090デフォルトの名無しさん2013/11/23(土) 11:17:15.94
array(array(1,2,3),array(4,5,6),array(7,8,9))とか長ったらしいもんね
だが対外サービスで使ってる環境を簡単に変えるとかないわ
0091デフォルトの名無しさん2013/11/23(土) 11:18:34.51
>>90
サポートは大丈夫なん?
0092デフォルトの名無しさん2013/11/23(土) 12:46:33.18
問題が見つかっても基本は上のアプリで回避する方向だろな
気づかないところで互換性がなくなるほうがよっぽど怖い
0093デフォルトの名無しさん2013/11/23(土) 13:45:35.63
5.2使えてるってことは、客側の要件が緩々なんだろうな。php4がまだ残ってるっていうぐらいだもんな
うちの5.2はディストリがパッチ当ててくれる環境だったけど、CVEしか対応しないからダメってことになって、客の金で作り直したな
0094デフォルトの名無しさん2013/11/23(土) 23:04:12.85
当時は専用サーバーやシェルを解放してるレンタルサーバーは高額で稀で、phpは廉価なサーバーで高速にウェブアプリを動かせた
デプロイが簡単だったし
movabletypeが没落してwordpressが台頭した理由がまさにそれ
マンモス本が出てphp3を日本語対応してサービスインする国内のレンタルサーバー屋が出始めたのが2000年位から
0095デフォルトの名無しさん2013/11/25(月) 17:50:04.95
多言語がWeb開発で中途半端
PHPには追いつけない
0096デフォルトの名無しさん2013/11/25(月) 21:58:46.32
何をもって中途半端かまで書かなきゃそんな呟きは放屁と変わらんぞ
0097デフォルトの名無しさん2013/11/26(火) 15:24:40.46
追いつけないワロタ
せめて他の言語齧ってもう一度同じ台詞はいてみろよw
0098デフォルトの名無しさん2013/11/26(火) 15:41:44.01
ちょっとの手間で素人が「使えた気になる」
それが長所でもあるけど
ブラウザでしか検証してこなかったコーダなんかがプログラマ気取りになっちゃって
サーバのことなんてこれっぽっちも考えない
0099デフォルトの名無しさん2013/12/01(日) 02:56:47.35
鯖屋とコーダーの中間に位置するWeb屋
0100デフォルトの名無しさん2013/12/01(日) 06:14:32.32
鯖屋とコーダーの両方ができるWeb屋
0101デフォルトの名無しさん2013/12/01(日) 21:26:38.60
最近、PHP触ってるけど$thisがめんどくさい
0102デフォルトの名無しさん2013/12/08(日) 10:59:10.72
インスタンスのメソッドから呼び出したstaticメソッドの中で$thisが使えて呼び出し元のインスタンスを示すお馬鹿
0103デフォルトの名無しさん2013/12/09(月) 13:32:36.51
>>102
NULL
0104デフォルトの名無しさん2013/12/15(日) 02:06:12.63
今日始めたけど
ApacheとPHPの環境設定が全然うまくいかなくて
さっきXAMPPってのを知ってようやく使えるようになった。
でもdate関数使ったら時刻はずれるし(php.iniでAsia/ときょ にしたのに!)
2013年が20136と表示されるし
なんなんやこの言語は!
0105デフォルトの名無しさん2013/12/15(日) 15:06:29.97
それはさすがにお前が糞
0106デフォルトの名無しさん2013/12/16(月) 20:16:27.19
Web専門のバカでも出来る枠の言語のハズだよな?
先発の言語を駆逐できないのは、技術者の問題や、保守もあるから仕方ないんだが…
Web専門外の言語の後発フレームワークと比べられるのは流石にヤバい流れだと思う
0107デフォルトの名無しさん2013/12/16(月) 21:04:16.10
バカでもできる言語である必要ないから後発に譲るよ
0108デフォルトの名無しさん2013/12/19(木) 23:16:56.89
バカでもわかるシンプルな設計が最良で、
RFCの仕様がそこらじゅうに見えるPHPがWebにおいて
最良の選択肢なんだって思い知らされた
0109デフォルトの名無しさん2013/12/19(木) 23:43:37.58
そうか?他汎用言語のトレンド吸い上げて随分複雑化した印象だけどな
例えて言うなら水周りが貧弱なまま建て増し繰り返したオンボロ物件

RFCが見えるってのもよくわからん
言語問わずRFCに素直な実装したライブラリが整ってれば良い訳で、何が優れてる訳でもなかろ
0110デフォルトの名無しさん2013/12/20(金) 00:00:50.41
header(),md5(),$_SESSION[],$_COOKIE[]
この辺が好き。
0111デフォルトの名無しさん2013/12/20(金) 00:03:25.27
Java、C#やRoRが裏側で何をやっているのか見えない。
0112デフォルトの名無しさん2013/12/20(金) 00:54:22.62
それらと比べるならcakeやZFでは。それだとphpも事情変わらんような
0113デフォルトの名無しさん2013/12/20(金) 01:32:46.59
>>109
PHPとRubyはそう言われるな
0114デフォルトの名無しさん2013/12/22(日) 06:11:50.97
>>112
骨組みの見えるバギーやレシプロ機ぐらいイケてる
0115デフォルトの名無しさん2013/12/28(土) 13:20:15.52
Cakeの本がわからん
いきなりbakeなんか使わせるなよ!
0116デフォルトの名無しさん2013/12/28(土) 13:25:13.64
>>114
かっこいい!
0117デフォルトの名無しさん2013/12/28(土) 13:37:21.23
>>5

PHPがダメ言語な理由

* 配列ごときで、arrayの荒らし → PHP5.4から[1,2,3]と書けます
* クロージャーがない → PHP5.3で実装されました
* mixinがない → トレイと使えばおk

はい、論破
0118デフォルトの名無しさん2013/12/28(土) 13:38:46.23
今のPHP界はLaravelが通
CakePHPは古い人が使うFW
Zend Frameworkは見栄を張ってるバカが使うFW
0119デフォルトの名無しさん2013/12/28(土) 14:37:31.68
しばらく業務で使ってなかったけどLaravel初耳。フレームワークの世代交代が早いのはいいことなのかどうかって話もあるだろうけどね

ZFはすでに俺俺フレームワーク作っちゃって運用中の職場で、追加ライブラリとして組み込んだりするのには重宝したよ
スレ覗いたら下火感が漂って寂しい限りだが
0120デフォルトの名無しさん2013/12/28(土) 18:51:02.16
Laravelいいよ。日本だと知名度低いけどね
PhalconPHPが最近のおもちゃ

Zend Frameworkが見栄ってのはいまいち理解できない
フルスタックフレームワークとしては終わってるね

CakePHPはオフショアとか下請け専用状態やな
0121デフォルトの名無しさん2013/12/28(土) 18:57:12.98
Laravelが素晴らしいのは母体に実績のあるSymfonyを使ってるから
0122デフォルトの名無しさん2013/12/28(土) 19:00:17.57
個人で使うんだったらどのFWがいい?
0123デフォルトの名無しさん2013/12/28(土) 19:03:36.99
CodeIgniter
0124デフォルトの名無しさん2013/12/29(日) 10:25:37.60
外注向け
CakePHP、Symfony

個人・少人数開発向け
CodeIgniter、Laravel

CodeIgniterはライセンス問題で海外では終わってる
その点を調べてから使うべし
0125デフォルトの名無しさん2013/12/30(月) 17:28:17.28
FuelPHPのほうがいいのでは
0126デフォルトの名無しさん2013/12/30(月) 18:16:13.98
CodeIgniterのライセンスで騒いでるのは無知だけ
0127デフォルトの名無しさん2013/12/30(月) 23:13:59.93
Cakeで途中からMySQLのテーブルに列を増やしたんだがクエリがそれに追随して増えてくれん
そりゃ、$this->query()で直接書けばいいんだが、fetchなんかが増えた列に対応してくれん、、、
どこをなおせばいいんだ?
Model/*phpでdisplay属性に追加すればいいのか?
0128デフォルトの名無しさん2013/12/31(火) 10:58:09.40
>>127
http://kohada.2ch.net/test/read.cgi/php/1378659370/
0129デフォルトの名無しさん2013/12/31(火) 11:31:39.62
FuelPHPはもう終わったろ

CodeIgniterのライセンスは厳密には問題ないんだ
けどさ途中でライセンスが変わったプロダクトは好まれない
OSLとAFLを理解するのも難しいのも痛い

Yiiもオススメ
0130デフォルトの名無しさん2014/01/02(木) 03:35:57.15
FuelPHP2モダンでいい感じじゃん
イマイチ人気でないけど
0131デフォルトの名無しさん2014/01/02(木) 03:51:33.34
フレームワーク語るスレ的な流れだよな
スレタイ関係ないやんかどないなっとんねんな
ごめんなさい話題触れないのに煽んなって話すよねすみません話題降ります

2014年もPHP安泰っすかねセンパイ!!
ねえ!
ねえ…。
0132デフォルトの名無しさん2014/01/02(木) 09:50:50.06
FuelPHP2完成してないでしょ

FuelPHPは終わったというより、スタートに立ってない
メジャーバージョンアップで互換性がなくなりそうなの見えてるのに
誰も使えない

もてはやしてるの日本の一部の人だけ
0133デフォルトの名無しさん2014/01/04(土) 15:49:55.33
すみませんPHP初心者です、これ動かないんですが何が悪いですか??
http://i.imgur.com/hmfbhY1.jpg
0134デフォルトの名無しさん2014/01/04(土) 16:02:03.01
>>133
WebProg板の適切なスレに行って聞いてくれ
その際「どう動かないのか」も添えるようにね
0135デフォルトの名無しさん2014/01/04(土) 16:06:17.87
了解しましたm(._.)m
0136デフォルトの名無しさん2014/01/05(日) 13:28:27.56
phpって言語ってよりテキストツールみたいなもんだと思ってる
Awkやsedみたいな
0137デフォルトの名無しさん2014/01/05(日) 18:48:03.92
>>136
というか最初は実際にPerlで書かれたツールだった。
色々やってく内に言語になっちゃったんだとか。

ただ、テキストツール…っつーと何となくしっくりこないな。
だってPerlの時点でテキストツールだもの。
Web特化ツール、って感じじゃね?
0138デフォルトの名無しさん2014/01/05(日) 21:01:14.38
本のサンプルコード自分で入力して書いたんだが、エラーの箇所がわからん・・・
0139デフォルトの名無しさん2014/01/05(日) 21:07:10.19
>>138
エラーの箇所がわからないんだったら
エラーじゃないんだよ
01401382014/01/05(日) 23:39:39.43
ブラウザで「**の**行目」ってでて入るんだけど、原因は全然別の所のタイプミス、とか
Cakeを使ってるんだけどバグの原因がよー分からん場面が多くてつらい
0141デフォルトの名無しさん2014/01/06(月) 01:08:48.14
>>140
タイプミスはバグではないよ。
それはただのミスでしかない。

まあ、サンプルなんか見ないで
コードを書けるようになったらわかると思うけどね。
0142デフォルトの名無しさん2014/01/06(月) 02:10:20.88
バグは、一番上のバグから解決すべし

それより下のバグは、
連鎖的にバグとみなされているだけで、
一番上のバグを解決すると、自然と直ることが多い
0143デフォルトの名無しさん2014/01/06(月) 05:44:36.03
エラーの提示ってあんまり進歩しないものなのかね
Cあたりと全然変わってないやん
0144デフォルトの名無しさん2014/01/06(月) 05:52:37.04
>>141
0145デフォルトの名無しさん2014/01/06(月) 08:44:50.15
>>144
プログラムを書いたことないトロールだろ
0146デフォルトの名無しさん2014/01/06(月) 09:04:00.55
>>143
むしろ退化する
シンタックスシュガーみたいな本質的に無駄な要素を滅ぼせ
0147デフォルトの名無しさん2014/01/08(水) 01:21:05.57
オサレ系言語は嫌いじゃ
見せかけでドヤ顔したいだけ
0148デフォルトの名無しさん2014/01/08(水) 01:30:03.71
いやphpなんて別におされでもないやろ
ハスケルとかおされ
流行りかつ媚びてない裏原っぽさがある
思想分かってない半可通は一瞬で界隈の奴らに見抜かれる
俺とか見抜かれる側の典型
二度と行かねえよあんな店。服の話してんのに何が間接照明だボケが
0149デフォルトの名無しさん2014/01/08(水) 01:31:14.14
>>148
あ、いやphpじゃなくて
シンタックスシュガードヤ顔系言語のことね
0150デフォルトの名無しさん2014/01/08(水) 01:32:34.76
>>149
取り乱しました
把握同意
0151デフォルトの名無しさん2014/01/08(水) 14:45:12.52
・値の比較、評価がわかりずらい
・関数の名前や引数がキモい、グローバルにすんな、オブジェクトにしろよ
・信じられない脆弱性やバグが割と最近まであるせいで怖い

5.4までは知ってるがこんなもんか

c,c++,ruby,js,objc…、PHPどころの騒ぎじゃない糞言語や時代遅れ言語も結構あるのでPHPは不当に叩かれすぎてる感が
0152デフォルトの名無しさん2014/01/08(水) 15:34:20.40
===の使用を徹底する
いつも同じキー名をとる複雑な配列はさっさとクラスにしてタイプヒンディングを使う

とかしてると、だんだんphpらしさは無くなります(いいかどうかは別)
0153デフォルトの名無しさん2014/01/08(水) 16:11:51.66
phpらしいって、それ褒め言葉?
0154デフォルトの名無しさん2014/01/08(水) 16:25:56.74
"自分が思う"phpらしさ
だろ
0155デフォルトの名無しさん2014/01/08(水) 16:38:38.45
array(
array(
array(
)
)
)

PHPらしさ
0156デフォルトの名無しさん2014/01/08(水) 17:52:05.29
>>155
[[[]]]
0157デフォルトの名無しさん2014/01/08(水) 20:34:16.19
>>151
その5つの言語を根拠もなく糞とか言ってる時点で説得力ないでーす
0158デフォルトの名無しさん2014/01/08(水) 20:53:01.04
いまだにXSSに言及がないチュートリアルが公開されるところ
0159デフォルトの名無しさん2014/01/08(水) 22:41:08.32
初期の頃は機能不足だったり、ライブラリが貧弱だったりしたが、今はもう特別見劣りしないと思う
デザイナー上がりのプログラマーがいたり、ユーザーレベルの平均値は他の言語に比べて低いけど、それは仕方ないだろ
スクリプト言語なんか、どれも似たようなもので、大差ない
0160デフォルトの名無しさん2014/01/08(水) 22:56:16.24
雑魚でも使えるってすごいことだよな
たとえそれが悪貨だとしても、雑魚向けの代替環境が鯖屋に普及してないしな

node.jsとかもうちょい雑魚向けにプッシュしていけないもんかね
ターゲット違うんだろうけどさ
01611382014/01/09(木) 00:12:22.39
arrayでLISPの真似事みたいにするのはやめて
0162デフォルトの名無しさん2014/01/09(木) 01:15:29.86
>>160
c++とPHPって、どっちが優れた道具なんだ?
LISPがそんなにすごいなら、
0163デフォルトの名無しさん2014/01/09(木) 08:31:51.40
LISPの真似事ってなんだ
0164デフォルトの名無しさん2014/01/09(木) 10:26:30.88
PHPは最新バージョンでもまだ醜い設計なの?

Webに使えるスクリプト言語で一番ましなのはPython?

>>162
用途がまったく違うの比較してどうする
C++ないと成り立たないアプリケーションは膨大にあるが
PHPでないと成り立たないものなどない
0165デフォルトの名無しさん2014/01/09(木) 10:30:17.01
酷い設計ってなんだ

pythonは無駄が少ない比較的綺麗な言語だとは思う
0166デフォルトの名無しさん2014/01/09(木) 10:31:20.91
>>164
PHPでないと成り立たないものはないが
C++でないと成り立たないものもない
0167デフォルトの名無しさん2014/01/09(木) 12:07:22.50
>>165
文字通りだよ。
PHPはスクリプト言語としての優秀さ、醜さはどうなのか?ということ
Pythonはインデントが気持ち悪くてとっつきにくい

>>166
何言ってるんだお前は
スクリプト言語しかしらない低能だろ

PHPはWeb専用の言語といっていいし
PHPで動いてるサイトなんて他のスクリプト言語で簡単に代替、移植できる。

一方、C/C++は世の中に不可欠な言語だ。
OSやミドルウェアなど重要なアプリケーションの多くがC++に依存しているし
世の中の膨大なアプリも、C++のランタイムに依存している。
0168デフォルトの名無しさん2014/01/09(木) 12:55:23.08
>>166
プロフェッショナルしか使えないと道具と誰でも使える道具って意味で比較したんだけど
0169デフォルトの名無しさん2014/01/09(木) 12:58:20.01
c++について学び、イディオムについて学び、己の限界を知ったあたりで
全てがバカバカしくなってくる言語。それがc++。
0170デフォルトの名無しさん2014/01/09(木) 13:08:30.22
>>167
低能とはよく言ったものだ
C++が代用不可能な理由を説明してもらおうか

依存関係なんてPHPですらある
依存先を変えれば、または別言語で書き直せばどんなものでも代用可能
0171デフォルトの名無しさん2014/01/09(木) 13:15:09.69
PHP自体がC++やCに依存しているが
Javaでも書かれてるしC++がないと成り立たないとはいえない

PHPのPHP実装もあるからな
0172デフォルトの名無しさん2014/01/09(木) 13:17:31.48
PHP本体にc++で書かれた部分なんてあったっけ?
0173デフォルトの名無しさん2014/01/09(木) 13:35:16.12
>>172
本体の範囲にもよるが、バンドルされてるExtensionにはC++がある
本体自体にはないかな
0174デフォルトの名無しさん2014/01/09(木) 13:36:19.05
よし、Lispマシン作ろうぜ。
0175デフォルトの名無しさん2014/01/09(木) 19:06:18.58
>>170
低能は不適切だった
あんたは無能だったようだ

一番したのレイヤーのOSがC/C++に依存している
C/C++を代替できる言語は今はない

>>171
>PHPのPHP実装もあるからな
それ遅いだろ、存在価値がない
さらにいうとアプリケーションサーバもC/C++に依存している。
PHPで書かれたコードだけでWebサービスは動かない

>Javaでも書かれてるしC++がないと成り立たないとはいえない
JavaはC/C++に依存してるんだが
おまえらバカすぎる
0176デフォルトの名無しさん2014/01/09(木) 19:11:22.16
>>175
あとからC足すなよ

はぁ
0177デフォルトの名無しさん2014/01/09(木) 19:33:25.25
>>175
JavaがC/C++に依存ってなんのこと?
C/C++で書かれてるの?
0178デフォルトの名無しさん2014/01/09(木) 19:54:43.54
>>177
JavaのバイトコードはJava Virtual Machine上で動く
Java VMはC/C++で書かれている
だからJavaはC/C++に依存している。
0179デフォルトの名無しさん2014/01/09(木) 23:59:40.04
>>178
Oracleのメインのやつはな
0180デフォルトの名無しさん2014/01/12(日) 06:32:41.50
まあC/C++は頑張り過ぎで、そろそろ引退させてやれよとは思う
Dちゃんが、もう少ししっかりしてくれたら…ってのもあるけどなw
0181デフォルトの名無しさん2014/01/12(日) 07:49:03.67
Cちゃんはこの先10年は現役でしょうなぁ
■ このスレッドは過去ログ倉庫に格納されています