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

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

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

他の言語と比較しながら、具体的にちゃんと説明してください!
0322デフォルトの名無しさん2014/01/22(水) 16:38:07.63
PHPにオーバーロードはある
あるが一般的に言うオーバーロードではない
0323デフォルトの名無しさん2014/01/22(水) 16:40:40.55
マジックメソッドはなんだかな
0324デフォルトの名無しさん2014/01/22(水) 16:42:10.98
>>319
タイプヒントはオブジェクトの振る舞いを定義するものじゃなくてデバグ用だな
いきなりNoMethodErrorがでて初心者が「ファッ!?」となることがなくなる
0325デフォルトの名無しさん2014/01/22(水) 17:02:38.15
>>321
名前付きコンストラクタというのを知らなかったんでググってみたんだけど、これじゃ駄目なの?

class Game
{
  public function __construct($game_type)
  {
    $this->game_type = $game_type;
  }

  static function createSinglePlayerGame()
  {
    return new Game(0);
  }

  static function createMultiPlayerGame()
  {
    return new Game(1);
  }
}
0326デフォルトの名無しさん2014/01/22(水) 18:27:51.60
static function createSinglePlayerGame() {
$c = get_called_class();
return new $c(1);
}
のほうがいいかな
けっきょくは__construct()を可変引数にしてごにょる
0327デフォルトの名無しさん2014/01/22(水) 18:34:24.82
あ、あとGameのコンストラクタはprotectedで
まあクライアントスクリプトのすっきり感の違いかな?
0328デフォルトの名無しさん2014/01/23(木) 01:51:40.84
マジックメソッドはコンパイル時に解決されてるから理解しやすいのが利点だな
黒魔術的なことをしなくてもいい
ただメタプログラミングが簡単じゃないとtraitがいまいち活きない気もする
0329デフォルトの名無しさん2014/01/23(木) 05:40:43.36
プリミティブ型でもタイプヒンティング出来るようになるって言うのはどうなったんだろう
大分前にそういう話を聞いたんだが
トレイトとかネームスペースとかジェネレーターとかはどうでも良いけど、本格的なタイプヒンティングは欲しい機能だ
0330デフォルトの名無しさん2014/01/25(土) 13:04:04.62
phpは些細なことでもネットで情報共有する文化があるから良い
フレームワークも色んな種類があるし進化も淘汰も速い
Javaは言語仕様はシンプルだけど最低限の機能以外本当に何もない言語
その上コミュニティが閉鎖的だから、オレオレutilとかオレオレfwが横行してる
やっぱ初心者はphpやった方がいいよ
0331デフォルトの名無しさん2014/01/25(土) 17:10:19.10
PHP初心者ですけど皆さんどんなエディタ使ってるんですか?
0332デフォルトの名無しさん2014/01/25(土) 18:10:13.70
>>330
Symfony2,laravelとCakePHP、Zendぐらいしか選択肢ないだろ
0333デフォルトの名無しさん2014/01/25(土) 19:58:27.24
Cから入るよりPHPから入るほうが幾分かマシではあるけどrubyから入るのが一番良い
PHPだとforeachとかwhileとか旧世代の文法でロジック組まなきゃいけなくなる
0334デフォルトの名無しさん2014/01/25(土) 20:03:50.66
旧世代っていうけど、Linuxはその旧世代の
更に前のC言語で作られているんだぜ?
0335デフォルトの名無しさん2014/01/25(土) 20:37:28.61
マ板ならRubyでもいいがム板ならHaskellを推す
0336デフォルトの名無しさん2014/01/25(土) 22:04:05.58
>>334
死ねゴミ
0337デフォルトの名無しさん2014/01/25(土) 22:06:22.27
> PHPだとforeachとかwhileとか旧世代の文法でロジック組まなきゃいけなくなる
C言語にはforeachすらないからなぁ。
0338デフォルトの名無しさん2014/01/25(土) 22:16:25.41
そもそも、なんでいきなりLinuxの話になるんだよ知的障害か・・・
0339デフォルトの名無しさん2014/01/25(土) 22:17:49.77
Linuxの話じゃなくて、C言語の話だろ。
0340デフォルトの名無しさん2014/01/25(土) 23:04:15.01
githubとRoRのおかげで、人類は衰退しました
0341デフォルトの名無しさん2014/01/25(土) 23:11:36.72
2007年以前のム板って、本当のプログラマが居たはずなんだけどね
0342デフォルトの名無しさん2014/01/25(土) 23:15:28.33
LinuxやC抜きでPHPの話するって、本物のバカだろ
0343デフォルトの名無しさん2014/01/25(土) 23:29:07.35
これが現実。PythonやRubyなんてPHPの敵ですらない
ScalaなんてRuby以下の闇の力
ttp://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/
0344デフォルトの名無しさん2014/01/26(日) 00:00:23.51
Haskellが意外に高い位置にいて驚いた
0345デフォルトの名無しさん2014/01/26(日) 00:36:19.98
>>341
今でもいないことは無い
けどもう技術交換するに値しない場所だから雑談メインになっている
0346デフォルトの名無しさん2014/01/26(日) 02:28:56.20
もう配列配列配列でやるからphpでいいよ…
配列があれば幸せだ
0347デフォルトの名無しさん2014/01/26(日) 02:38:28.61
この感覚!?CakePHPerか?
0348デフォルトの名無しさん2014/01/26(日) 02:46:49.72
>>346
PHPの配列は、順序付き連想配列だよ。
ハッシュ+順序と考えたほうが正確。
0349デフォルトの名無しさん2014/01/26(日) 03:43:38.01
なんでPHPerってPHP覚えた?だけで力尽きるの

PHPしか出来ない、覚えられないって人はまずプログラミング側に来るべき人じゃないと本気で思う
0350デフォルトの名無しさん2014/01/26(日) 03:52:56.36
力尽きた人なんていないだろw
0351デフォルトの名無しさん2014/01/26(日) 04:02:02.88
>>349
PHPだけで構文解析器ぐらいまで書けるし、
サーバーやデータベースについてでも学んだ方が有益だから
0352デフォルトの名無しさん2014/01/26(日) 04:06:02.34
foreachで困るほどでもないからな
C#のLinqは優れてると思うが、あれは型指定出来てVSで補完が利くから便利なんであって、スクリプト言語とは方向性が違う
0353デフォルトの名無しさん2014/01/26(日) 04:09:41.68
ORMのある時代にLinqって役に立つのか?
0354デフォルトの名無しさん2014/01/26(日) 04:19:29.70
PHPerたちには.netやjavaよりQtの方が魅力的に映っているはず
0355デフォルトの名無しさん2014/01/26(日) 04:54:16.58
Qtはマルチプラットフォームでありながら
ネイティブで動いてユーザーインターフェースに
HTML、CSS、JavaScriptを使うんだよな。
PHPというよりもウェブ系全体に魅力的。
0356デフォルトの名無しさん2014/01/26(日) 06:11:34.29
>>349
各言語で具体的になにができたら「出来る」っていえるか教えてくれ
わからないことはわからないまま実行せずに、その都度マニュアルみたら覚える必要なくない?
むしろ「はぁあ!? なんでエラーやねん!ちゃんとやってるやろ糞機械が!バグってるわ」と喚く輩に対し
「プログラムは書いた通りにしか動かない。エラー文読めばいい」と返せるであろう俺らは喧嘩せずに解りあうべき
プログラミングで大切なことは癇癪起こさずマニュアル読む姿勢だと俺は思うんだが
0357デフォルトの名無しさん2014/01/26(日) 07:24:20.91
C++だとエラー文読むのは憂鬱になってくる
0358デフォルトの名無しさん2014/01/26(日) 07:55:18.71
>>356
プログラミング、しかもPHP程度で癇癪って発想がまずわけわからない・・・
お前はむいてないわ やめとけほんと
来る世界間違えてる
0359デフォルトの名無しさん2014/01/26(日) 08:02:16.72
>>356
> プログラミングで大切なことは癇癪起こさずマニュアル読む姿勢だと俺は思うんだが

挫けるぜ。これがPHPだ
http://www.php.net/manual/en/function.stats-absolute-deviation.php
0360デフォルトの名無しさん2014/01/26(日) 09:15:27.96
ペチパーの諸君よ とりあえずruby「も」やっとけよ
言語仕様1日かけて読めば、ペチパーってバカにされる理由が分かる
別にそれを知った上でPHP使うとかは止めないし、
ただ洗練された言語構文を知らないままに、全然何もシンタックスシュガーの入ってないPHPが
当たり前の状態だと思ってる状態が良くないんだ
0361デフォルトの名無しさん2014/01/26(日) 09:33:18.36
>>360
rubyもpyも書けと言われたら書けるけど
rubyの方はend end endに耐えられなくなった

perlは出来んことはないと思うけど言語仕様もライブラリも全然知らんままw
0362デフォルトの名無しさん2014/01/26(日) 09:51:53.61
>>361
end end end って、割と起きないと思うけどな
まあそもそも、それで耐えられん理由もよー分からんが
0363デフォルトの名無しさん2014/01/26(日) 09:58:30.21
>>362
いや、実際黙って耐えるけどさw
}}}で済むのに面倒だなーと
0364デフォルトの名無しさん2014/01/26(日) 10:04:16.86
>>363
環境によっては自動で補完されるよ、俺は自分で書く方が好きだけれども
まあ、LISP系のコーディング規約みたく、1行に閉じ括弧纏めたいって話なら流石に仕方ないが
0365デフォルトの名無しさん2014/01/26(日) 11:01:52.02
>>360
>言語仕様1日かけて読めば、ペチパーってバカにされる理由が分かる

こういうふうに抽象的に煽るだけで具体例を書かない人は何erであってもエンジニアとしてバカにされます
0366デフォルトの名無しさん2014/01/26(日) 14:14:40.30
>>353
慌ててネットで検索してクエリ式でLinq使ってるのみたんだろうけど、LinqとORMは関係ないから
0367デフォルトの名無しさん2014/01/26(日) 14:32:38.79
Linq楽だけど遅いぞ
スクリプト言語ならともかくWindowsアプリ開発しようっていうC#であれは許容されるのか?
あっちの文化はよく分からんけど、性能が必要ならVC++使えって住み分けなのかね?
0368デフォルトの名無しさん2014/01/26(日) 15:42:20.77
そもそもWindowsじゃアプリに性能とかあんま求められてないよ
何故かハードウェアのほうの性能あげればいい、ってのがまかり通っちゃう世界だし
0369デフォルトの名無しさん2014/01/26(日) 15:57:44.40
というかWindows関係なくね?

それって、同じコストをかけるのであれば、開発時間を長くするか
性能が高いハードウェアを買うかって話でしょ?
極端に言えば、アセンブラで書くか高級言語で書くかって話。

ハードウェアの性能を上げれば、アプリのすべての部分の性能が上がる。
でもアプリの性能をあげようと思っても、局所的にしか上がらないし
結果もすぐには見えてこないよね?
0370デフォルトの名無しさん2014/01/26(日) 16:00:39.22
死ねゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0371デフォルトの名無しさん2014/01/26(日) 17:06:40.06
>>360
「やっとく」って何?
何かつくれってこと?
0372デフォルトの名無しさん2014/01/26(日) 23:58:46.38
Linqは遅延実行されるから多くの場合パフォーマンス的に有利
0373デフォルトの名無しさん2014/01/27(月) 00:15:56.14
    ,   ― ノ)
  γ γ‾   \
  |  / 从从) )   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ | | l  l |〃 < さくら恥ずかしぃよぉ〜
  `从ハ ‾ ーノ)   \________
    |ヽ `  \
    | ペ ノ  ノ\
    | // /'   )
    ( ノ ヾ / y  /
    ‘  / / /
      / イ (
     /  / | )
    ( /  /  /
    ‘uノ (__/∴∵
      ∵∴∵∴∵
        ∵∴∵
        ー--- '‾ ー─--'‾
0374デフォルトの名無しさん2014/01/27(月) 03:33:10.29
>>368
おまえが性能を求められるソフトウェアを書くような機会の与えられない三流以下なんだろ
0375デフォルトの名無しさん2014/01/27(月) 03:35:23.36
>>360
なんでわざわざPHPを使ってるかぐらい考えろ。死ね屑。
0376デフォルトの名無しさん2014/01/27(月) 14:37:24.39
考えるまでもなくPHPしか使えないからだ。死ね屑。
0377デフォルトの名無しさん2014/01/27(月) 17:40:07.53
ペチパー発狂
0378デフォルトの名無しさん2014/01/27(月) 18:42:30.53
PHPが駄目なのではない
PHPerが駄目なのだ
0379デフォルトの名無しさん2014/01/27(月) 19:27:10.85
PHPを笑うものはPHPに泣く
0380デフォルトの名無しさん2014/01/27(月) 19:32:21.31
スケーラブルに開発できる言語って実はPHPとcじゃないのか
0381デフォルトの名無しさん2014/01/27(月) 21:20:02.34
PHPをHTMLテンプレート言語だと思ってるやつ、いまだに腐るほどいるしな
実際はすでにサーバーサイド言語入りしてる
0382デフォルトの名無しさん2014/01/28(火) 00:05:45.99
>>381
結局、Webには変わらんから板違いなんだけどね
0383デフォルトの名無しさん2014/01/28(火) 02:07:51.25
CLI操作できるんだしこっちだよ
0384デフォルトの名無しさん2014/01/29(水) 08:33:09.30
結構スレが延びてて驚いたぞ

意外にも欠点がほとんど出てないな

LLの欠点のほうが多く出てるな
0385デフォルトの名無しさん2014/01/29(水) 08:45:40.15
よくできたPHPerは他から叩かれる欠点を(それが偏見で欠点でなくても)よく理解した上で活用してるからな
Rubyに比べてよく訓練されてる
0386デフォルトの名無しさん2014/01/29(水) 08:45:44.22
正規表現コンパイラに渡す文字列にデリミタが必要という不思議仕様
0387デフォルトの名無しさん2014/01/29(水) 09:21:14.91
オプション付くし
0388デフォルトの名無しさん2014/01/29(水) 13:42:59.10
何処で聞いていいかわかんないので, 取り敢えず聞いてみる
PHP の AST ってどっかに転がってないの?
0389デフォルトの名無しさん2014/01/29(水) 17:06:05.95
どういう意味かよく分からんがコンパイラが吐く
0390デフォルトの名無しさん2014/01/30(木) 01:07:54.97
symfony2とCakePHPって、どっちが使いやすいの?
多種多様なツールやフレームが依存してるsymfony2の方が御利益ありそうだけど、
CakePHPの方が素人にも分かりやすいように見えるのん
0391デフォルトの名無しさん2014/01/30(木) 03:25:21.90
検索してバンバン情報出るのがCake
よく分かってないくせにバンバン情報載せる奴がいるのもCake
とりあえずphpフレームワーク触ってみたいだけならCake
03923912014/01/30(木) 03:32:11.32
でもマジレスしても、
stackoverflowの活発さとかCakePHP 3.0に向けた開発陣の熱意、英語ドキュメント群の整備の速さからしてもCakePHPになるような気がするな

SymfonyとCakePHPを比較したブログとかは大半情報古すぎなのであてにならん
0393デフォルトの名無しさん2014/01/30(木) 23:40:14.00
symfonyはメモリ喰いまくる
0394デフォルトの名無しさん2014/02/01(土) 01:52:39.97
drupal,laravel,behat,composerと大概はSymfony2に依存しているよね
PHP界隈って、何故にSymfonyが大好きなんだろう
0395デフォルトの名無しさん2014/02/01(土) 02:15:28.94
phpでドヤ顔できるからじゃない?
いろんなサーバーで小回り効くのは間違いなくCake
0396デフォルトの名無しさん2014/02/01(土) 11:00:22.30
設計思想の差でしょ
0397デフォルトの名無しさん2014/02/01(土) 14:10:44.45
Cakeってまだ激遅のままなの?
0398デフォルトの名無しさん2014/02/01(土) 14:21:23.29
普通に速いよ。ベンチマークしてみればわかると思うけど。
0399デフォルトの名無しさん2014/02/01(土) 14:23:14.63
>>397
symfonyに比べればかなりマシになったよ
他のフレームワークや、遅いことで有名なRailsよりはまだ遅い
0400デフォルトの名無しさん2014/02/01(土) 14:42:30.78
>>398
ぷぷぷw Cakeのどこが速いんだよw 遅すぎだっての
http://www.techempower.com/benchmarks/

だいたいPHPって時点でアウトだろ。
C++やJavaには到底かなわない。
0401デフォルトの名無しさん2014/02/01(土) 14:44:38.90
>>400
CakePHPはともかく、動的型付け言語のなかでは
PHPは上位に入っているような?
0402デフォルトの名無しさん2014/02/01(土) 14:46:45.21
Railsってどれも平均して遅いんだな・・・
0403デフォルトの名無しさん2014/02/01(土) 14:51:07.64
>>400
LLの中ではPHPは上位にくいんこんでるぞ

Cakeは問題外だけどな
0404デフォルトの名無しさん2014/02/01(土) 14:51:59.87
zend phpはそんなに速くないと思うが。
最近はRubyもかなり高速化されてきてる
0405デフォルトの名無しさん2014/02/01(土) 14:54:35.99
ruby自体は2.0で早くなったけど
railsはアプリケーションサーバの問題なのか
大して早くならなかったらしいね
0406デフォルトの名無しさん2014/02/01(土) 14:57:07.09
>>400
いまC++やJavaの話はしてない
0407デフォルトの名無しさん2014/02/01(土) 15:01:41.20
CakePHPはパフォーマンス切り捨てて他のものを取ってるからな
生産性とか統一性とか

Railsと一緒やな

オフショアや受託向きといわれる所以
0408デフォルトの名無しさん2014/02/01(土) 20:35:56.94
速さだけならflat phpやvanilla JS
0409デフォルトの名無しさん2014/02/04(火) 02:56:04.51
CodeIgniterやFuelPHPって名前が悪いよね。案件が燃えそう
0410デフォルトの名無しさん2014/02/04(火) 04:10:22.33
案件が増えそうって言ったげなよ
0411デフォルトの名無しさん2014/02/04(火) 06:46:12.80
PHPがダメなところって
Rubyがダメなところと一緒で
他の言語の後継を名乗りたいのかDisりたいのか
他の言語の良いところをパクって作って設計の統一感を失ってるところだな
0412デフォルトの名無しさん2014/02/04(火) 09:12:26.52
Rubyのほうが最初からフラフラしてるけどな
0413デフォルトの名無しさん2014/02/04(火) 13:41:39.20
>>378
その通りだと思う
C,Php,Python,JavaScriptをしてきた自分にとってPHPが悪い言語だと思ったことはない
今は訳あってPHPではなくPythonの方を使うけれど、最初はPythonは異質で嫌いだった
言語の未完成さとか苛つき方ではJavaScriptが一番だな
今や多くの有志たちによって何とかなってるが
PHPはvar_dump()していけば何のストレスも悩む事もなく非常に使いやすくて簡単な言語だと思うけどな
PHPerのレベルが低いかもしれないのはしっかり教育を受けた人間が少ないからだろ
0414デフォルトの名無しさん2014/02/04(火) 14:40:14.94
他の言語なら配列操作が簡潔に書けるとかぐらいで、ウェブページ作るのならどれも大差ない
0415デフォルトの名無しさん2014/02/04(火) 15:39:20.26
>>413
> 言語の未完成さとか苛つき方ではJavaScriptが一番だな
何が未完成?
コア部分は結構小奇麗だと思うけど…

PHPもそんなにひどい言語とは思わないけど,
C, C++, Common Lisp, scheme, Haskell, Python, …
を先にやってて, 無理やり仕事で使わされた時には,
「なんでこんなキモい仕様になってるの???」
と, 思う所が結構あった

なんか直交性に欠ける感じなんだよね
0416デフォルトの名無しさん2014/02/04(火) 18:39:05.26
俺はJavaだけは好きになれない
何だあの長ったらしい文は
Hello World書く前に勉強する気が失せる
0417デフォルトの名無しさん2014/02/04(火) 18:42:15.24
JavaはIDEが優秀だからな
0418デフォルトの名無しさん2014/02/04(火) 19:04:17.27
>>416
> 何だあの長ったらしい文は
少なくともコア言語としての直交性はあると思うよ
ここで言ってる直交性ってのは, 言語能力としての直交性
# 驚き再焼成の法則って言ってもいいかも知れない
0419デフォルトの名無しさん2014/02/04(火) 19:37:46.34
>>417
Java使いは基本的に無知(IDE依存症の弊害)
0420デフォルトの名無しさん2014/02/05(水) 01:19:42.14
IDEはVSがもっとも優秀
VSが優れてるからC#が優れてて、C#が優れてるからVSが優れてる
0421デフォルトの名無しさん2014/02/05(水) 04:51:22.94
PHPはWebサイトに特化すれば言語中ナンバーワンだ
コレだけは間違いない
後は何でもかんでも標準関数で入ってるから、出来ないことはない
ただし、Cみたいに自分で何でも作れるような実力は付きにくい
■ このスレッドは過去ログ倉庫に格納されています