2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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

1 :デフォルトの名無しさん:2013/11/15(金) 20:57:08.46 .net
age推奨で

他の言語と比較しながら、具体的にちゃんと説明してください!

2 :デフォルトの名無しさん:2013/11/15(金) 21:27:16.50 .net
PHPの欠点
http://blog.webcreativepark.net/2008/01/31-010847.html

3 :デフォルトの名無しさん:2013/11/15(金) 22:37:59.66 .net
PHPっていうか、動的型の言語がだめだわ。
facebookは拡張して型チェック付のPHP使ってるらしいね。

4 :デフォルトの名無しさん:2013/11/15(金) 23:23:56.39 .net
>>2
それ古すぎるんだわ。新しいのないの?

5 :デフォルトの名無しさん:2013/11/16(土) 00:44:51.86 .net
PHPがダメ言語な理由

* 配列ごときで、arrayの荒らし
* クロージャーがない
* mixinがない

6 :デフォルトの名無しさん:2013/11/16(土) 01:23:08.43 .net
Rubyよりはマシ

7 :デフォルトの名無しさん:2013/11/16(土) 04:52:34.09 .net
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。

アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。

                  京都大学霊長類研究所

8 :599:2013/11/16(土) 07:58:54.52 .net
>>5
それ古すぎるんだわ。新しいのないの?

9 :デフォルトの名無しさん:2013/11/16(土) 08:47:14.99 .net
>>8
探してこい

10 :デフォルトの名無しさん:2013/11/16(土) 08:53:36.29 .net
現状に即してないもの上げるのやめようよ

ここってPHPを賛美するスレではないよな?
そうだったら勘違い

11 :デフォルトの名無しさん:2013/11/16(土) 10:57:52.93 .net
3Bはダメでも5Aならなんとか

12 :デフォルトの名無しさん:2013/11/16(土) 11:02:15.35 .net
PHPerだけど
全ての関数をオブジェクト化するべきだと思う
こんなかんじ
strpos -> string->pos
str_replace -> string->replace
あと引数の順番も整理しておくべき

13 :デフォルトの名無しさん:2013/11/16(土) 11:02:45.85 .net
相互リンク

【PHP】下らねぇ質問はID出して書き込みやがれ 131
http://kohada.2ch.net/test/read.cgi/php/1384065969/

14 :デフォルトの名無しさん:2013/11/16(土) 11:07:41.15 .net
PHPがダメなのは
・引数の順番に統一感がなくリファレンスに頼りがちになる
・戻り値が0とfalseを返すものがあり区別が面倒

これらは最新版でも変わってない

15 :デフォルトの名無しさん:2013/11/16(土) 11:09:47.24 .net
>>12


16 :デフォルトの名無しさん:2013/11/16(土) 11:10:22.14 .net
全く触ったこと無いけど
いざという時にだけ取り出して使うサブ武器としてもふさわしくないようにみえるな

17 :デフォルトの名無しさん:2013/11/16(土) 11:23:00.30 .net
>>16
CUIで使うならRubyかPythonのがふさわしいしな

18 :デフォルトの名無しさん:2013/11/16(土) 11:25:57.59 .net
0==falseはtrue
0===falseはfalse
だから
strposのようにインデックスが0番目にヒットしても0==falseってやるとfalseになってしまう
PHPから緩い比較演算子はなくすべき

19 :デフォルトの名無しさん:2013/11/16(土) 11:36:01.22 .net
参照代入
これが仕様だと効いた時くそ笑った
http://www.programming-magic.com/20080307090613/

20 :デフォルトの名無しさん:2013/11/16(土) 11:54:39.89 .net
>>19
そのページの最初のコードを実行すると最新版でも同様になるけど
説明は間違ってるぞ

バグだと未だに思ってる

21 :デフォルトの名無しさん:2013/11/16(土) 12:05:35.63 .net
なんだこりゃ右辺破壊すんのかよ
ねーよw

22 :デフォルトの名無しさん:2013/11/16(土) 14:22:05.96 .net
$ref = &$array[1]; //参照渡し

$ref = &$array[1]; //参照渡し
$array[1] = &$array[1]; //参照渡し

としてる感覚なんよね
これ理解させるの大変だから、会社では配列要素のリファレンスをとることを禁止してるよ

23 :デフォルトの名無しさん:2013/11/16(土) 14:29:47.30 .net
理解できる出来ないじゃなく、右辺値が変化するところが最高にキモい

24 :デフォルトの名無しさん:2013/11/16(土) 15:39:17.61 .net
>>23
そこ否定する必要がどこに

25 :デフォルトの名無しさん:2013/11/16(土) 16:42:24.55 .net
>>23
わかるわかる。理屈じゃなくて単にキモいわけだよね。

俺も昔はRubyはキモかった。
でもそれは単に自分の問題であることがわかった。
使っていればなれる。理解すればなれる。
それだけの事だった。

理由がない=自分の力不足
そう考えるようになったよ。

26 :デフォルトの名無しさん:2013/11/16(土) 16:46:41.08 .net
名前はObjective PHPでいいな?

27 :デフォルトの名無しさん:2013/11/16(土) 16:49:01.17 .net
>>25
PHP作ったヤツは言語の素人だったから
右辺値や左辺値の知識も無かったのさ

28 :デフォルトの名無しさん:2013/11/16(土) 16:54:47.02 .net
>>27は言語を作る力はない。

29 :デフォルトの名無しさん:2013/11/16(土) 17:09:40.70 .net
PHP4の頃、PHPerに聞いたことがあるが、
リファレンスなんて使わないから関係ないと言われた。

今はオブジェクト指向を使えだっけ?

30 :デフォルトの名無しさん:2013/11/16(土) 17:17:18.63 .net
お前の周りの話だろ。
類は友を呼ぶってな。

31 :デフォルトの名無しさん:2013/11/16(土) 17:33:26.43 .net
代入しただけで値が変化する画期的システム
副作用を避けようとする風潮と真逆

32 :デフォルトの名無しさん:2013/11/16(土) 17:42:00.37 .net
>>31
代入しただけでは変わってないよ

33 :デフォルトの名無しさん:2013/11/17(日) 00:11:08.25 .net
代入して値が変わるなんてありえない言語だな。

var a = 1

34 :デフォルトの名無しさん:2013/11/17(日) 00:12:44.43 .net
それ右辺変わってないがな

35 :デフォルトの名無しさん:2013/11/17(日) 00:50:52.64 .net
いや右辺は変化してるだろ
PHPerは参照が何かすら分かってないのかよ

36 :デフォルトの名無しさん:2013/11/17(日) 04:31:21.23 .net
と言うかPHPにおける参照の概念自体が間違ってるのかも
そのサイト、俺は図を見てもしばらく理解に苦しんだわ
理解したとき、その図には、その前の状態の図が必要だと思った
その前の状態は、×側と同様に変数に値そのものがくっ付いてる状態なんだな
てっきりその前から全てが参照なんだと思ってたら…

37 :デフォルトの名無しさん:2013/11/17(日) 09:09:16.66 .net
>>34-35
>>33にいってるのかそれ以前に言ってるのかはっきりしろ

38 :デフォルトの名無しさん:2013/11/17(日) 09:30:19.04 .net
あれ、参照を用いた言語で、右辺に副作用がないものってあまりないんじゃないか?

参照カウンタ増やすだろ。これも一緒だぞ

配列を渡すとき正しい動作をしてないだけ
配列を参照渡しにしとけばバグらなかった話

この例に
$tmp = $array[1];
$tmp = 'Z';
とか足しても、$arrayや$copyには影響ない。

どちらにしろバグを仕様と言い切ってるわ
駄目言語であることには代わりがない

39 :デフォルトの名無しさん:2013/11/17(日) 09:39:27.13 .net
33は何が言いたいのか意味が分からん。

40 :デフォルトの名無しさん:2013/11/17(日) 12:34:21.56 .net
わかり易い例にしてやろうか?

$value = 1;

$ref1 =& $value;
$ref1 = 2; ← これで$valueが変わるのは普通

$ref2 = $value;
$ref2 = 3; ← これで$valueが変わるのはおかしい

そうだろ?

だけどこれを配列の1要素にした途端、
最後の行で変わってしまうんだよ。

41 :デフォルトの名無しさん:2013/11/17(日) 12:36:06.86 .net
>>40
あなたの説明では余計に分からなくなる

42 :デフォルトの名無しさん:2013/11/17(日) 12:37:11.81 .net
説明下手だなあ

43 :デフォルトの名無しさん:2013/11/17(日) 12:55:04.77 .net
もう少しわかり易い例を出してやろう。

$array[0] = 1;
$copy = $array;
$copy[0] = 2;
print($array[0]); // 出力 = 1

$arrayは変えずに$copyの値を変えているだけだから当然だな。

$array[0] = 1;
$dummy =& $array; // ←一行増やしただけ
$copy = $array;
$copy[0] = 2;
print($array[0]); // 出力 = 1

増やした一行の$dummyは何も使っていないのだからこれも当然だな。

$array[0] = 1;
$dummy =& $array[0]; // ←配列にしただけ
$copy = $array;
$copy[0] = 2;
print($array[0]); // 出力 = 2

仕様だと強弁した所で、どう見てもこれは明らかにバグだろ?

44 :デフォルトの名無しさん:2013/11/17(日) 12:55:57.37 .net
>>41-42
PHP厨は馬鹿だと仮定すれば
わからないお前が馬鹿なので
正しい反応だw

45 :デフォルトの名無しさん:2013/11/17(日) 13:15:45.28 .net
ひと目でわかるPHP

$arr = array(3,4,5);

$ref0 = &$arr[0];
$ref1 = &$arr[1];

$copyA = $arr;
$copy1 = $arr[1];

$copyA[0] = $copyA[0] * 10;
$copy1 = $copy1 * 10;

print_r($arr); // 30, 4, 5

46 :45:2013/11/17(日) 13:22:38.07 .net
コピペ失敗

$arr = array(3,4,5);

$ref0 = &$arr[0];
$ref1 = &$arr[1];

$copy = $arr;
$copy_1_ = $arr[1];

$copy[0] = $copy[0] * 10;
$copy_1_ = $copy_1_ * 10;
$copy[2] = $copy[2] * 10;

print_r($arr); // 30, 4, 5

47 :デフォルトの名無しさん:2013/11/17(日) 13:24:30.08 .net
>>43
お前ほど説明が下手な人は少ないよな

48 :デフォルトの名無しさん:2013/11/17(日) 14:12:31.30 .net
array以外は?

49 :デフォルトの名無しさん:2013/11/17(日) 17:23:06.51 .net
phpはよくプログラマに馬鹿にされるから、プログラミング分からないwebデザイナーの奴らにペチパーと馬鹿にされるのが本当に嫌だ。

50 :デフォルトの名無しさん:2013/11/17(日) 17:27:01.16 .net
>>38の説明ですべて終わってるのに、お前らなにやってるの?

51 :デフォルトの名無しさん:2013/11/17(日) 17:38:23.61 .net
>>38さんご苦労さまですw

52 :デフォルトの名無しさん:2013/11/17(日) 18:01:53.37 .net
言語の仕組み知らないと>>38のいってることがわからないってだけだよ

53 :デフォルトの名無しさん:2013/11/17(日) 18:29:37.17 .net
実行速度面でpython、rubyがぐんぐん改善されてるし
このまま消えていってくれたらいいのにねぇ
出来ることなら触りたくないし

54 :デフォルトの名無しさん:2013/11/17(日) 18:59:24.56 .net
PHPも改善されていってるし
まあ無理だろ?

55 :デフォルトの名無しさん:2013/11/17(日) 19:12:33.01 .net
cuiだと
ruby2>pypy>php5.3以上>python>>>perl>ruby1.8

56 :デフォルトの名無しさん:2013/11/17(日) 19:14:26.49 .net
PHPはfacebookのおかげの部分が大きい

57 :デフォルトの名無しさん:2013/11/17(日) 19:16:50.76 .net
wordpressの方が影響大きいだろ。

facebookアプリはまあサンプルが
phpっぽい気がするので
理由としてありかもしれんが、

それよりもWordPressは本体がPHPだから、
そのプラグインもPHPで書くのが自然だし、
デザインを変えようと思った時、
そのテンプレートはPHPだ。

58 :デフォルトの名無しさん:2013/11/18(月) 00:07:24.33 .net
wordpressはphpの利用人口を増やしたが、phpの改善には何も役立っていない
facebookはいろいろなコードを寄贈することで今のphpの速度がある
5.2と5.3の速度の差は、世にhiphopとして出たfacebookのphpのコンパイラによるものが多い

他の言語でもいえることだけど、ディープにその言語を使う新興の大きい企業が必要で
そこから出るリクエストに答えられる言語の開発側が必要ってことだ

59 :デフォルトの名無しさん:2013/11/18(月) 00:17:29.68 .net
FacebookはDを採用したんだろ

60 :デフォルトの名無しさん:2013/11/18(月) 00:34:20.32 .net
>>58
> facebookはいろいろなコードを寄贈することで今のphpの速度がある

facebookはPHPにコードを寄贈してないよ。

61 :デフォルトの名無しさん:2013/11/18(月) 01:32:26.63 .net
ふーん。FaceBookが何したか知らんけど、5.3で結構速くなったよね
何があったの?

62 :デフォルトの名無しさん:2013/11/18(月) 02:12:48.47 .net
しらね。でもFacebookは関係ないんだろ。

63 :デフォルトの名無しさん:2013/11/18(月) 09:23:10.59 .net
ttps://developers.facebook.com/blog/post/2010/02/02/hiphop-for-php--move-fast/

64 :デフォルトの名無しさん:2013/11/18(月) 09:29:16.10 .net
>>59
バックエンドのC++の置き換えって話だっけ

65 :デフォルトの名無しさん:2013/11/18(月) 12:40:21.32 .net
>>63
やっぱFacebookは貢献してるんだ

66 :デフォルトの名無しさん:2013/11/18(月) 18:33:54.40 .net
次の方〜。いらっしゃいませんか〜

67 :デフォルトの名無しさん:2013/11/19(火) 22:52:39.31 .net
世界はphpで出来ている。
よく見てみろ。お前の周りはphpのコードだらけだ。

68 :デフォルトの名無しさん:2013/11/19(火) 22:57:25.71 .net
2chはperlです

69 :デフォルトの名無しさん:2013/11/19(火) 23:11:17.27 .net
悪貨が良貨を駆逐するなんて言葉もあるし

phpが広く使われている事と、言語としての良し悪しとは分けて考えた方がよかろ
だからといってもちろん関連性皆無だと言うつもりもない
cgi駆逐するに足る、十分使える言語であり、便利な環境を提供できたからこそ普及したと思います、はい。

70 :デフォルトの名無しさん:2013/11/19(火) 23:35:27.90 .net
悪貨が良貨を駆逐する

つまり今俺達が生きているのは
良貨を駆逐した結果なんだよ。

71 :デフォルトの名無しさん:2013/11/21(木) 13:04:58.88 .net
>>69
cgiって・・・

72 :デフォルトの名無しさん:2013/11/21(木) 13:18:39.58 .net
>>69
CGIの意味を知らなさそう

73 :デフォルトの名無しさん:2013/11/21(木) 13:52:05.50 .net
仕組みとしてのCGIがサーバモジュール型サービスの旗手であるPHPに駆逐されたってことだろ
fastCGIが台頭するまでPHPのウリ扱いされてたし

74 :デフォルトの名無しさん:2013/11/21(木) 13:56:40.89 .net
>>73
当時からPHP使ってたが、その売り文句に苦笑してたわ

75 :デフォルトの名無しさん:2013/11/21(木) 14:36:30.82 .net
>>73
mod_perlは1996年からあったけど
fastcgiはいつからだ?

76 :デフォルトの名無しさん:2013/11/21(木) 14:42:52.04 .net
>>75
PerlのFastCGIは1996年だっけな
FastCGI自体はもっと前からあるよ

77 :デフォルトの名無しさん:2013/11/21(木) 16:06:11.72 .net
phpのブームは96年より後だよな

78 :デフォルトの名無しさん:2013/11/21(木) 16:11:19.53 .net
>>70
クソマジメに作ったものより、テキトーに作ったものの方が愚民には受け入れられやすい
というのが俺解釈

79 :デフォルトの名無しさん:2013/11/21(木) 16:27:33.92 .net
素人受けするところはDOSのバッチファイルみたいなものだな

80 :デフォルトの名無しさん:2013/11/21(木) 21:48:16.05 .net
赤いピルを飲んだプログラマが使う言語>PHP

81 :デフォルトの名無しさん:2013/11/23(土) 09:40:11.35 .net
?:の結合順序
とか書こうと思って開いたら>>19見てぶっとんだ

参照される側の変数は最初は図の上の$bみたいな形だが参照されると下の形に変わるということ?

82 :デフォルトの名無しさん:2013/11/23(土) 09:53:43.11 .net
>>81
そんな単純な話ではないよ
配列の要素を参照した場合、その配列のコピーが正常に行われないバグないし仕様

三項演算子の優先順序が他と違ってキモイってあったな

83 :デフォルトの名無しさん:2013/11/23(土) 10:22:21.78 .net
説明ありがと
よくわからんけどw
発生条件にはやはり配列も絡むのか

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

三項演算子はキモいじゃなくマジ不便

84 :デフォルトの名無しさん:2013/11/23(土) 10:39:52.67 .net
配列を返す関数の返り値から特定の要素だけ取り出すとか
(Perlなら (stat("filename"))[9] )
作ったオブジェクトをいきなり使うとか
( (new A())->method() )
いったん変数に代入しないとできないのは地味に不便

85 :デフォルトの名無しさん:2013/11/23(土) 10:48:33.64 .net
>>84
後者って前に対応してなかったか?

86 :デフォルトの名無しさん:2013/11/23(土) 10:50:15.24 .net
>>84
両方とも5.4でできるようになってる

87 :デフォルトの名無しさん:2013/11/23(土) 10:51:01.61 .net
ああ、会社のサーバのは5.2だわ

88 :デフォルトの名無しさん:2013/11/23(土) 10:54:10.95 .net
関数内で使った変数のスコープがデフォルトでローカルなのはよいこととして認める

89 :デフォルトの名無しさん:2013/11/23(土) 11:06:40.82 .net
>>87
5.4以上にすると前に戻れなくなる
その2個以外に
$a = [1, 2, 3, 4];
とか対応してるし

90 :デフォルトの名無しさん:2013/11/23(土) 11:17:15.94 .net
array(array(1,2,3),array(4,5,6),array(7,8,9))とか長ったらしいもんね
だが対外サービスで使ってる環境を簡単に変えるとかないわ

91 :デフォルトの名無しさん:2013/11/23(土) 11:18:34.51 .net
>>90
サポートは大丈夫なん?

92 :デフォルトの名無しさん:2013/11/23(土) 12:46:33.18 .net
問題が見つかっても基本は上のアプリで回避する方向だろな
気づかないところで互換性がなくなるほうがよっぽど怖い

93 :デフォルトの名無しさん:2013/11/23(土) 13:45:35.63 .net
5.2使えてるってことは、客側の要件が緩々なんだろうな。php4がまだ残ってるっていうぐらいだもんな
うちの5.2はディストリがパッチ当ててくれる環境だったけど、CVEしか対応しないからダメってことになって、客の金で作り直したな

94 :デフォルトの名無しさん:2013/11/23(土) 23:04:12.85 .net
当時は専用サーバーやシェルを解放してるレンタルサーバーは高額で稀で、phpは廉価なサーバーで高速にウェブアプリを動かせた
デプロイが簡単だったし
movabletypeが没落してwordpressが台頭した理由がまさにそれ
マンモス本が出てphp3を日本語対応してサービスインする国内のレンタルサーバー屋が出始めたのが2000年位から

95 :デフォルトの名無しさん:2013/11/25(月) 17:50:04.95 .net
多言語がWeb開発で中途半端
PHPには追いつけない

96 :デフォルトの名無しさん:2013/11/25(月) 21:58:46.32 .net
何をもって中途半端かまで書かなきゃそんな呟きは放屁と変わらんぞ

97 :デフォルトの名無しさん:2013/11/26(火) 15:24:40.46 .net
追いつけないワロタ
せめて他の言語齧ってもう一度同じ台詞はいてみろよw

98 :デフォルトの名無しさん:2013/11/26(火) 15:41:44.01 .net
ちょっとの手間で素人が「使えた気になる」
それが長所でもあるけど
ブラウザでしか検証してこなかったコーダなんかがプログラマ気取りになっちゃって
サーバのことなんてこれっぽっちも考えない

99 :デフォルトの名無しさん:2013/12/01(日) 02:56:47.35 .net
鯖屋とコーダーの中間に位置するWeb屋

100 :デフォルトの名無しさん:2013/12/01(日) 06:14:32.32 .net
鯖屋とコーダーの両方ができるWeb屋

101 :デフォルトの名無しさん:2013/12/01(日) 21:26:38.60 .net
最近、PHP触ってるけど$thisがめんどくさい

102 :デフォルトの名無しさん:2013/12/08(日) 10:59:10.72 .net
インスタンスのメソッドから呼び出したstaticメソッドの中で$thisが使えて呼び出し元のインスタンスを示すお馬鹿

103 :デフォルトの名無しさん:2013/12/09(月) 13:32:36.51 .net
>>102
NULL

104 :デフォルトの名無しさん:2013/12/15(日) 02:06:12.63 .net
今日始めたけど
ApacheとPHPの環境設定が全然うまくいかなくて
さっきXAMPPってのを知ってようやく使えるようになった。
でもdate関数使ったら時刻はずれるし(php.iniでAsia/ときょ にしたのに!)
2013年が20136と表示されるし
なんなんやこの言語は!

105 :デフォルトの名無しさん:2013/12/15(日) 15:06:29.97 .net
それはさすがにお前が糞

106 :デフォルトの名無しさん:2013/12/16(月) 20:16:27.19 .net
Web専門のバカでも出来る枠の言語のハズだよな?
先発の言語を駆逐できないのは、技術者の問題や、保守もあるから仕方ないんだが…
Web専門外の言語の後発フレームワークと比べられるのは流石にヤバい流れだと思う

107 :デフォルトの名無しさん:2013/12/16(月) 21:04:16.10 .net
バカでもできる言語である必要ないから後発に譲るよ

108 :デフォルトの名無しさん:2013/12/19(木) 23:16:56.89 .net
バカでもわかるシンプルな設計が最良で、
RFCの仕様がそこらじゅうに見えるPHPがWebにおいて
最良の選択肢なんだって思い知らされた

109 :デフォルトの名無しさん:2013/12/19(木) 23:43:37.58 .net
そうか?他汎用言語のトレンド吸い上げて随分複雑化した印象だけどな
例えて言うなら水周りが貧弱なまま建て増し繰り返したオンボロ物件

RFCが見えるってのもよくわからん
言語問わずRFCに素直な実装したライブラリが整ってれば良い訳で、何が優れてる訳でもなかろ

110 :デフォルトの名無しさん:2013/12/20(金) 00:00:50.41 .net
header(),md5(),$_SESSION[],$_COOKIE[]
この辺が好き。

111 :デフォルトの名無しさん:2013/12/20(金) 00:03:25.27 .net
Java、C#やRoRが裏側で何をやっているのか見えない。

112 :デフォルトの名無しさん:2013/12/20(金) 00:54:22.62 .net
それらと比べるならcakeやZFでは。それだとphpも事情変わらんような

113 :デフォルトの名無しさん:2013/12/20(金) 01:32:46.59 .net
>>109
PHPとRubyはそう言われるな

114 :デフォルトの名無しさん:2013/12/22(日) 06:11:50.97 .net
>>112
骨組みの見えるバギーやレシプロ機ぐらいイケてる

115 :デフォルトの名無しさん:2013/12/28(土) 13:20:15.52 .net
Cakeの本がわからん
いきなりbakeなんか使わせるなよ!

116 :デフォルトの名無しさん:2013/12/28(土) 13:25:13.64 .net
>>114
かっこいい!

117 :デフォルトの名無しさん:2013/12/28(土) 13:37:21.23 .net
>>5

PHPがダメ言語な理由

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

はい、論破

118 :デフォルトの名無しさん:2013/12/28(土) 13:38:46.23 .net
今のPHP界はLaravelが通
CakePHPは古い人が使うFW
Zend Frameworkは見栄を張ってるバカが使うFW

119 :デフォルトの名無しさん:2013/12/28(土) 14:37:31.68 .net
しばらく業務で使ってなかったけどLaravel初耳。フレームワークの世代交代が早いのはいいことなのかどうかって話もあるだろうけどね

ZFはすでに俺俺フレームワーク作っちゃって運用中の職場で、追加ライブラリとして組み込んだりするのには重宝したよ
スレ覗いたら下火感が漂って寂しい限りだが

120 :デフォルトの名無しさん:2013/12/28(土) 18:51:02.16 .net
Laravelいいよ。日本だと知名度低いけどね
PhalconPHPが最近のおもちゃ

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

CakePHPはオフショアとか下請け専用状態やな

121 :デフォルトの名無しさん:2013/12/28(土) 18:57:12.98 .net
Laravelが素晴らしいのは母体に実績のあるSymfonyを使ってるから

122 :デフォルトの名無しさん:2013/12/28(土) 19:00:17.57 .net
個人で使うんだったらどのFWがいい?

123 :デフォルトの名無しさん:2013/12/28(土) 19:03:36.99 .net
CodeIgniter

124 :デフォルトの名無しさん:2013/12/29(日) 10:25:37.60 .net
外注向け
CakePHP、Symfony

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

CodeIgniterはライセンス問題で海外では終わってる
その点を調べてから使うべし

125 :デフォルトの名無しさん:2013/12/30(月) 17:28:17.28 .net
FuelPHPのほうがいいのでは

126 :デフォルトの名無しさん:2013/12/30(月) 18:16:13.98 .net
CodeIgniterのライセンスで騒いでるのは無知だけ

127 :デフォルトの名無しさん:2013/12/30(月) 23:13:59.93 .net
Cakeで途中からMySQLのテーブルに列を増やしたんだがクエリがそれに追随して増えてくれん
そりゃ、$this->query()で直接書けばいいんだが、fetchなんかが増えた列に対応してくれん、、、
どこをなおせばいいんだ?
Model/*phpでdisplay属性に追加すればいいのか?

128 :デフォルトの名無しさん:2013/12/31(火) 10:58:09.40 .net
>>127
http://kohada.2ch.net/test/read.cgi/php/1378659370/

129 :デフォルトの名無しさん:2013/12/31(火) 11:31:39.62 .net
FuelPHPはもう終わったろ

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

Yiiもオススメ

130 :デフォルトの名無しさん:2014/01/02(木) 03:35:57.15 .net
FuelPHP2モダンでいい感じじゃん
イマイチ人気でないけど

131 :デフォルトの名無しさん:2014/01/02(木) 03:51:33.34 .net
フレームワーク語るスレ的な流れだよな
スレタイ関係ないやんかどないなっとんねんな
ごめんなさい話題触れないのに煽んなって話すよねすみません話題降ります

2014年もPHP安泰っすかねセンパイ!!
ねえ!
ねえ…。

132 :デフォルトの名無しさん:2014/01/02(木) 09:50:50.06 .net
FuelPHP2完成してないでしょ

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

もてはやしてるの日本の一部の人だけ

133 :デフォルトの名無しさん:2014/01/04(土) 15:49:55.33 .net
すみませんPHP初心者です、これ動かないんですが何が悪いですか??
http://i.imgur.com/hmfbhY1.jpg

134 :デフォルトの名無しさん:2014/01/04(土) 16:02:03.01 .net
>>133
WebProg板の適切なスレに行って聞いてくれ
その際「どう動かないのか」も添えるようにね

135 :デフォルトの名無しさん:2014/01/04(土) 16:06:17.87 .net
了解しましたm(._.)m

136 :デフォルトの名無しさん:2014/01/05(日) 13:28:27.56 .net
phpって言語ってよりテキストツールみたいなもんだと思ってる
Awkやsedみたいな

137 :デフォルトの名無しさん:2014/01/05(日) 18:48:03.92 .net
>>136
というか最初は実際にPerlで書かれたツールだった。
色々やってく内に言語になっちゃったんだとか。

ただ、テキストツール…っつーと何となくしっくりこないな。
だってPerlの時点でテキストツールだもの。
Web特化ツール、って感じじゃね?

138 :デフォルトの名無しさん:2014/01/05(日) 21:01:14.38 .net
本のサンプルコード自分で入力して書いたんだが、エラーの箇所がわからん・・・

139 :デフォルトの名無しさん:2014/01/05(日) 21:07:10.19 .net
>>138
エラーの箇所がわからないんだったら
エラーじゃないんだよ

140 :138:2014/01/05(日) 23:39:39.43 .net
ブラウザで「**の**行目」ってでて入るんだけど、原因は全然別の所のタイプミス、とか
Cakeを使ってるんだけどバグの原因がよー分からん場面が多くてつらい

141 :デフォルトの名無しさん:2014/01/06(月) 01:08:48.14 .net
>>140
タイプミスはバグではないよ。
それはただのミスでしかない。

まあ、サンプルなんか見ないで
コードを書けるようになったらわかると思うけどね。

142 :デフォルトの名無しさん:2014/01/06(月) 02:10:20.88 .net
バグは、一番上のバグから解決すべし

それより下のバグは、
連鎖的にバグとみなされているだけで、
一番上のバグを解決すると、自然と直ることが多い

143 :デフォルトの名無しさん:2014/01/06(月) 05:44:36.03 .net
エラーの提示ってあんまり進歩しないものなのかね
Cあたりと全然変わってないやん

144 :デフォルトの名無しさん:2014/01/06(月) 05:52:37.04 .net
>>141


145 :デフォルトの名無しさん:2014/01/06(月) 08:44:50.15 .net
>>144
プログラムを書いたことないトロールだろ

146 :デフォルトの名無しさん:2014/01/06(月) 09:04:00.55 .net
>>143
むしろ退化する
シンタックスシュガーみたいな本質的に無駄な要素を滅ぼせ

147 :デフォルトの名無しさん:2014/01/08(水) 01:21:05.57 .net
オサレ系言語は嫌いじゃ
見せかけでドヤ顔したいだけ

148 :デフォルトの名無しさん:2014/01/08(水) 01:30:03.71 .net
いやphpなんて別におされでもないやろ
ハスケルとかおされ
流行りかつ媚びてない裏原っぽさがある
思想分かってない半可通は一瞬で界隈の奴らに見抜かれる
俺とか見抜かれる側の典型
二度と行かねえよあんな店。服の話してんのに何が間接照明だボケが

149 :デフォルトの名無しさん:2014/01/08(水) 01:31:14.14 .net
>>148
あ、いやphpじゃなくて
シンタックスシュガードヤ顔系言語のことね

150 :デフォルトの名無しさん:2014/01/08(水) 01:32:34.76 .net
>>149
取り乱しました
把握同意

151 :デフォルトの名無しさん:2014/01/08(水) 14:45:12.52 .net
・値の比較、評価がわかりずらい
・関数の名前や引数がキモい、グローバルにすんな、オブジェクトにしろよ
・信じられない脆弱性やバグが割と最近まであるせいで怖い

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

c,c++,ruby,js,objc…、PHPどころの騒ぎじゃない糞言語や時代遅れ言語も結構あるのでPHPは不当に叩かれすぎてる感が

152 :デフォルトの名無しさん:2014/01/08(水) 15:34:20.40 .net
===の使用を徹底する
いつも同じキー名をとる複雑な配列はさっさとクラスにしてタイプヒンディングを使う

とかしてると、だんだんphpらしさは無くなります(いいかどうかは別)

153 :デフォルトの名無しさん:2014/01/08(水) 16:11:51.66 .net
phpらしいって、それ褒め言葉?

154 :デフォルトの名無しさん:2014/01/08(水) 16:25:56.74 .net
"自分が思う"phpらしさ
だろ

155 :デフォルトの名無しさん:2014/01/08(水) 16:38:38.45 .net
array(
array(
array(
)
)
)

PHPらしさ

156 :デフォルトの名無しさん:2014/01/08(水) 17:52:05.29 .net
>>155
[[[]]]

157 :デフォルトの名無しさん:2014/01/08(水) 20:34:16.19 .net
>>151
その5つの言語を根拠もなく糞とか言ってる時点で説得力ないでーす

158 :デフォルトの名無しさん:2014/01/08(水) 20:53:01.04 .net
いまだにXSSに言及がないチュートリアルが公開されるところ

159 :デフォルトの名無しさん:2014/01/08(水) 22:41:08.32 .net
初期の頃は機能不足だったり、ライブラリが貧弱だったりしたが、今はもう特別見劣りしないと思う
デザイナー上がりのプログラマーがいたり、ユーザーレベルの平均値は他の言語に比べて低いけど、それは仕方ないだろ
スクリプト言語なんか、どれも似たようなもので、大差ない

160 :デフォルトの名無しさん:2014/01/08(水) 22:56:16.24 .net
雑魚でも使えるってすごいことだよな
たとえそれが悪貨だとしても、雑魚向けの代替環境が鯖屋に普及してないしな

node.jsとかもうちょい雑魚向けにプッシュしていけないもんかね
ターゲット違うんだろうけどさ

161 :138:2014/01/09(木) 00:12:22.39 .net
arrayでLISPの真似事みたいにするのはやめて

162 :デフォルトの名無しさん:2014/01/09(木) 01:15:29.86 .net
>>160
c++とPHPって、どっちが優れた道具なんだ?
LISPがそんなにすごいなら、

163 :デフォルトの名無しさん:2014/01/09(木) 08:31:51.40 .net
LISPの真似事ってなんだ

164 :デフォルトの名無しさん:2014/01/09(木) 10:26:30.88 .net
PHPは最新バージョンでもまだ醜い設計なの?

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

>>162
用途がまったく違うの比較してどうする
C++ないと成り立たないアプリケーションは膨大にあるが
PHPでないと成り立たないものなどない

165 :デフォルトの名無しさん:2014/01/09(木) 10:30:17.01 .net
酷い設計ってなんだ

pythonは無駄が少ない比較的綺麗な言語だとは思う

166 :デフォルトの名無しさん:2014/01/09(木) 10:31:20.91 .net
>>164
PHPでないと成り立たないものはないが
C++でないと成り立たないものもない

167 :デフォルトの名無しさん:2014/01/09(木) 12:07:22.50 .net
>>165
文字通りだよ。
PHPはスクリプト言語としての優秀さ、醜さはどうなのか?ということ
Pythonはインデントが気持ち悪くてとっつきにくい

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

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

一方、C/C++は世の中に不可欠な言語だ。
OSやミドルウェアなど重要なアプリケーションの多くがC++に依存しているし
世の中の膨大なアプリも、C++のランタイムに依存している。

168 :デフォルトの名無しさん:2014/01/09(木) 12:55:23.08 .net
>>166
プロフェッショナルしか使えないと道具と誰でも使える道具って意味で比較したんだけど

169 :デフォルトの名無しさん:2014/01/09(木) 12:58:20.01 .net
c++について学び、イディオムについて学び、己の限界を知ったあたりで
全てがバカバカしくなってくる言語。それがc++。

170 :デフォルトの名無しさん:2014/01/09(木) 13:08:30.22 .net
>>167
低能とはよく言ったものだ
C++が代用不可能な理由を説明してもらおうか

依存関係なんてPHPですらある
依存先を変えれば、または別言語で書き直せばどんなものでも代用可能

171 :デフォルトの名無しさん:2014/01/09(木) 13:15:09.69 .net
PHP自体がC++やCに依存しているが
Javaでも書かれてるしC++がないと成り立たないとはいえない

PHPのPHP実装もあるからな

172 :デフォルトの名無しさん:2014/01/09(木) 13:17:31.48 .net
PHP本体にc++で書かれた部分なんてあったっけ?

173 :デフォルトの名無しさん:2014/01/09(木) 13:35:16.12 .net
>>172
本体の範囲にもよるが、バンドルされてるExtensionにはC++がある
本体自体にはないかな

174 :デフォルトの名無しさん:2014/01/09(木) 13:36:19.05 .net
よし、Lispマシン作ろうぜ。

175 :デフォルトの名無しさん:2014/01/09(木) 19:06:18.58 .net
>>170
低能は不適切だった
あんたは無能だったようだ

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

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

>Javaでも書かれてるしC++がないと成り立たないとはいえない
JavaはC/C++に依存してるんだが
おまえらバカすぎる

176 :デフォルトの名無しさん:2014/01/09(木) 19:11:22.16 .net
>>175
あとからC足すなよ

はぁ

177 :デフォルトの名無しさん:2014/01/09(木) 19:33:25.25 .net
>>175
JavaがC/C++に依存ってなんのこと?
C/C++で書かれてるの?

178 :デフォルトの名無しさん:2014/01/09(木) 19:54:43.54 .net
>>177
JavaのバイトコードはJava Virtual Machine上で動く
Java VMはC/C++で書かれている
だからJavaはC/C++に依存している。

179 :デフォルトの名無しさん:2014/01/09(木) 23:59:40.04 .net
>>178
Oracleのメインのやつはな

180 :デフォルトの名無しさん:2014/01/12(日) 06:32:41.50 .net
まあC/C++は頑張り過ぎで、そろそろ引退させてやれよとは思う
Dちゃんが、もう少ししっかりしてくれたら…ってのもあるけどなw

181 :デフォルトの名無しさん:2014/01/12(日) 07:49:03.67 .net
Cちゃんはこの先10年は現役でしょうなぁ

182 :138:2014/01/12(日) 19:48:06.64 .net
C++はがんばりすぎw
正直、ついていけてる奴なんているのか?最新の改版に
gccでも全機能は対応出来てねーだろ、たしか

183 :デフォルトの名無しさん:2014/01/12(日) 20:32:22.64 .net
コンパイラ屋すら全機能の実装に必死なんて、もはや何かのジョークだろ

184 :デフォルトの名無しさん:2014/01/12(日) 21:26:06.29 .net
c++11全対応にclangが一番乗りできたってニュースが去年だしな
で、今c++14策定中?なんだかなあ

185 :デフォルトの名無しさん:2014/01/12(日) 21:48:35.95 .net
これだからC++は嫌いだ

186 :デフォルトの名無しさん:2014/01/12(日) 21:59:28.80 .net
なんかc++のスレになってきたな。
実装が大変という意味だとphpの最新版も結構当てはまると思うけど、hhvmってどの辺りまでサポートしてるんだろ。

187 :デフォルトの名無しさん:2014/01/14(火) 22:22:45.53 .net
初心者が学ぶのに最適な5つのプログラミング言語
http://news.livedoor.com/article/detail/8425886/

Java, Python, Ruby, C/C++, JavaScriptがランクイン
PHPは圏外だ。

C/C++は同意しかねる。初心者にはハードルが高すぎるよ

Web appならPythonかRubyから始めろってことだね
Windows appならC#一択

188 :デフォルトの名無しさん:2014/01/14(火) 23:36:01.10 .net
なんかもうjavascriptがぶっちぎりのウンコすぎて、あとは大体なんでもいいや

189 :デフォルトの名無しさん:2014/01/14(火) 23:40:15.69 .net
>>187
PHPはむしろ初心者は使うべからずと啓発すべき言語。
Cはポインタ、バッファオーバーフローなど無視してCUIのみで基本構文の学習用なら問題ないと思うが、それならRubyやPythonでもいいか。

190 :デフォルトの名無しさん:2014/01/15(水) 01:25:23.27 .net
Java一番で2番Rubyってありえねぇっと思ったら

Python 34.16%
C/C++ 23.29%
Java 17.63%
JavaScript 16.53%
Ruby 8.39%

かよ、Top4でいい数値

PHPは初心者がやってはいけない言語なのは間違いなし

191 :デフォルトの名無しさん:2014/01/15(水) 02:07:59.81 .net
最初は静的型付けから始めた方がいいわ
jsもphpも気を抜くと酷いことになる
LLでもポインタは避けては通れなくなる時がくるし、
やっぱjavaだな、javaやっとこう

192 :デフォルトの名無しさん:2014/01/15(水) 02:26:23.32 .net
>>189
CUIだとつまらなすぎてやる気が出ないよ

>>190
その数字どこに書いてある?

>>191
ポインタ必須の時代なんてもうこないよ
GCもついてるのが当たり前になってきてる
手動でメモリ管理する時代じゃない

1行目は同意する。
最初はC#とVisual Studioでwindows app開発がいい
web appはセキュリティとか学ばないといけないし初心者にはたいへん

193 :デフォルトの名無しさん:2014/01/15(水) 13:41:26.01 .net
>>192
http://lifehacker.com/five-best-programming-languages-for-first-time-learners-1494256243

よくよく見たら5言語で100%だった。ってことは〜

194 :デフォルトの名無しさん:2014/01/15(水) 14:55:11.14 .net
Firstly I'd ask myself why do I want to learn a programming language?
The preferred language to start might be different depending on the answer.

Still, I'd say PHP is the worst language to learn for a beginner because it does not reinforce any good practices.
What I mean by that is that it's very easy to learn to write messy and unreadable code
which is the single most important thing to learn if you intend to write code professionally.
This can be hard to unlearn later on. Same thing goes for Javascript IMHO.

Personally I'd recommend starting with some sort of object-oriented language.
It has the benefit of teaching a new programmer the importance of separating your code
into logical parts and keeping clear boundaries between separate functionality.
Technical knowledge is second to that and can come later.
I know both JS and PHP allow for object-oriented programming but they don't reinforce it.

I'd also not start with a scripting language
since it doesn't teach you too well about coherency and what actually makes a computer program.

Unfortunately 'big' languages take a bit more work
to see some effects of your effort which might be initially discouraging...
1/05/14 11:01am

195 :デフォルトの名無しさん:2014/01/15(水) 15:06:40.16 .net
>>193
その他全てを足しても0%という目を背けたくなる現実

196 :デフォルトの名無しさん:2014/01/15(水) 15:18:03.31 .net
JavaScriptは単体ならいいと思うけど、HTML、DOM、CSSも一緒にやろうとすると、覚えること結構あるよね
あと、ブラウザの実装具合のせいでやろうとしてることが出来なかった時にはまりそう

197 :デフォルトの名無しさん:2014/01/15(水) 15:18:40.54 .net
PHPって子供向け、初心者向けの言語だろwwww
HSP的な立場wwwwww
そりゃあゴミよ

198 :デフォルトの名無しさん:2014/01/15(水) 15:22:33.69 .net
PHPでいいや。

199 :デフォルトの名無しさん:2014/01/15(水) 15:24:42.55 .net
そもそも、Web開発にはPHP以外に選択肢がないし、
だいたい皆、c/c++の本物の技術者になるのを諦めてぺちぱーになる
だから、おまえらも同じように苦労しろの精神

200 :デフォルトの名無しさん:2014/01/15(水) 15:32:43.56 .net
「PHPでいいや。」にならなかった人たちはRubyistになります。
ブラッドピットのようなカリスマ革命家に救いを求めたのがRubyistたち。
いつの時代にもいる社会への反逆者。自らの運命に逆らい続ける。それがRubyist。

201 :デフォルトの名無しさん:2014/01/15(水) 15:33:00.75 .net
>>199
> そもそも、Web開発にはPHP以外に選択肢がないし、
Java, Rubyもあるで
Perl, Python使う奴もいるし

202 :デフォルトの名無しさん:2014/01/15(水) 15:38:05.50 .net
>>201
Web開発で使う上だけのメリットがよく分からないので選択肢にない

203 :デフォルトの名無しさん:2014/01/15(水) 15:49:24.70 .net
>>202
クラウドではJavaかRubyがメジャーでしょ
PHPがサポートされるのはずっと後になって

204 :デフォルトの名無しさん:2014/01/15(水) 15:51:08.06 .net
>>203
何処それ?Heroku、OpenStack、mogoku,AWS?

205 :デフォルトの名無しさん:2014/01/15(水) 17:01:05.07 .net
>>204
あとGAEとか

206 :デフォルトの名無しさん:2014/01/15(水) 17:04:16.57 .net
結局、どれもPHPをサポートしてるじゃないか

207 :デフォルトの名無しさん:2014/01/15(水) 17:06:51.35 .net
> PHPがサポートされるのはずっと後になって

208 :デフォルトの名無しさん:2014/01/15(水) 17:09:31.20 .net
わりとスグだったじゃないか
Heroku,GAEと言語間で棲み分けてた印象があるけど、
AWSが全部サポートしちゃってビジネスにならない感じ

209 :デフォルトの名無しさん:2014/01/15(水) 17:15:56.55 .net
>>208
Herokuでphpが正式サポートされたのかどうかしらんけど、
AWSもサポートしたのつい最近でしょ

まあそれはともかくとして、
> Web開発で使う上だけのメリットがよく分からない
というから、JavaやRuby、Python(やNode.jsも)とかを使うメリットは、クラウドで使える
(使えるようになるのが早い)ってこと

210 :デフォルトの名無しさん:2014/01/15(水) 17:17:08.42 .net
まああと、俺が作ってるサービスは数万人規模しか無いけど、Javaだとスケーラブルなんじゃないの?

211 :デフォルトの名無しさん:2014/01/15(水) 17:32:19.21 .net
Apache使ってるなら2.2系の所が多いと思うけど、基本preforkだからね。
まぁうちのシステムは一箇所あたり最大数千人しかユーザがいないから、preforkで十分なんだが。

212 :デフォルトの名無しさん:2014/01/15(水) 17:55:08.70 .net
だいぶマシになってきたけど、未だに直らんのが例外処理とエラー処理を同時にかかないかんこと

213 :デフォルトの名無しさん:2014/01/15(水) 18:15:17.07 .net
>>212
どういうこと?
trigger_error()だけじゃ駄目?

214 :デフォルトの名無しさん:2014/01/15(水) 20:07:33.07 .net
>>209
クラウドだとJavaとPythonの2強
他はどっちもどっちだろ

別途RailsのSAASがあるな

>>AWSもサポートしたのつい最近でしょ
これどういう意味だ?

215 :デフォルトの名無しさん:2014/01/15(水) 20:57:26.50 .net
Rubyは人気落ちてきてる
海外はPython強いね

英語弱者の日本はPython普及遅れてる

216 :デフォルトの名無しさん:2014/01/15(水) 22:59:11.78 .net
え?以前にみたときは、
DjangoよりRailsの方がfork数もスターも多い気がしたけど?
クラウドで、わざわざPython使うメリットって?

217 :デフォルトの名無しさん:2014/01/15(水) 23:04:12.02 .net
人気落ちてきてるってどこソースよ、どこソースよそれー?

まさか、TIOBEではあるまいな?

218 :デフォルトの名無しさん:2014/01/15(水) 23:22:55.41 .net
PHPのスレに来てまで言ってる時点でお察しだな

219 :デフォルトの名無しさん:2014/01/15(水) 23:25:05.42 .net
思索を繰り返すうちに、cとRubyだけあれば良い気がしてきた
Javaやc++、lispや関数型言語に纏わる何かが、よくある神話に過ぎないんだ
結局のところ、何もかもは実装依存にすぎず、
今、手元にある不確実な書きやすさだけが唯一確かな生への実感なんだ

220 :デフォルトの名無しさん:2014/01/15(水) 23:28:16.14 .net
RubyやRailsは必要な学習量が多すぎる
実用的に使いこなすのに必要なツールやミドルウェアの周辺知識の学習量も多い
しかも、せっかく覚えた知識の陳腐化が早い
そこまでやっても、RubyはRails専用、Unix系OS専用で、適用出来るシーンが少ない
非常にコストが大きい言語だと思う

221 :デフォルトの名無しさん:2014/01/15(水) 23:31:34.61 .net
>>220
いや、そのくらいなら他の言語も同じでしょう。言語を評価するのにフレームワークと差持ち出すのもおかしいし。

222 :デフォルトの名無しさん:2014/01/15(水) 23:32:05.10 .net
Unix系OS以外にOSなんてあったっけ?

223 :デフォルトの名無しさん:2014/01/15(水) 23:32:41.96 .net
ああ、BeOSとかSymbianのことか

224 :デフォルトの名無しさん:2014/01/15(水) 23:36:41.26 .net
>>219
や、わからんでもないのだけど
あれとあれさえあれば、の内約は結局慣れとかの個人的補正が入るんじゃねーかな
俺だとC++とJavaScriptかなあ
それだって今んとこはって意味だし、Rubyは個人では便利に使ってるし。Haskellなんかも多方面に影響与えてて面白いし
llvmやらHSAやら、環境レベルの取り組みの今後も気になるし

手元で生の感触は大事だけど、なんか面白そうっていう奴らを、業務から離れたところでゆるく楽しんでみるのもこの界隈の醍醐味じゃねえの

225 :215:2014/01/15(水) 23:48:52.91 .net
>>216
言語としての人気とフレームワークの人気を混同しないようにな
言語としてはPythonのが人気。
フレームワーク単体だとRailsのが人気

フレームワークとしてみたらRailsのが上だよ
なぜならRubyはRailsにユーザが集中してるから

PythonはDjango以外にもいろんなフレームワークが
あってけっこうユーザが分散してる。
その違いだよ

>>217
いたるところソース。
とにかく日本人は海外のPython人気を知らなすぎる。
Rubyは開発者が日本人ということもあって日本では人気だけど
海外ではRubyはPythonよりずっと人気は下だよ

>>220
「RubyはRails専用」ってのはそのとおり

>>222
Macは今はふつうUnix系に分類しない

226 :デフォルトの名無しさん:2014/01/15(水) 23:49:00.11 .net
redhatで標準サポートされてるrubyは1.8
windows上のruby環境はゴミ同然で仮想linux必須
railsで使う以外に使い道なし

227 :デフォルトの名無しさん:2014/01/15(水) 23:50:48.12 .net
>>220
他言語なら知識の陳腐化が遅いってのが何かの神話なんだよ
陳腐化させたくないならCOBOLやFortran、schemeで書いたら良いと思う。
けれど、皆、COBOLやSchemeには拒否反応を示すよね?
c++コンパイラもJavascriptインタプリタも、いくつもの実装が存在する。
これまで、それらの実装が、どれだけ標準の仕様を満たしていただろうか?
つまり、実装なんてものが量子力学ぐらい不確かな存在なんだ
それで、c++のノウハウとRubyのノウハウのどちらを溜め込んだら、手っ取り早く仕事が片付くか?
今手元にある環境と実装での書きやすさ。それだけが、この世の真理なんだ。

228 :デフォルトの名無しさん:2014/01/15(水) 23:52:54.37 .net
>>217
少し前のだけど
http://jp.techcrunch.com/2012/09/13/20120912javascript-tops-latest-programming-language-popularity-ranking-from-redmonk/

ここでもPython > Rubyになってる。


TIOBEは参考にならないね
「Transact-SQLが躍進」とか、ないない

229 :228:2014/01/15(水) NY:AN:NY.AN .net
もっと新しいのあったわ
http://redmonk.com/sogrady/2013/07/25/language-rankings-6-13/

Java
JavaScript
PHP
Python
Ruby
C#
C++
C
Objective-C
Shell

230 :デフォルトの名無しさん:2014/01/16(木) 00:03:29.91 .net
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
TIOBEでもPython >>>>> Ruby

Top10でモダンな言語ってC#くらいだな

Scalaはいつの間にか圏外だったわ

Dが上がってきてるな
Facebookが使い始めたんだっけ?

231 :デフォルトの名無しさん:2014/01/16(木) 00:03:52.74 .net
海外というか日本以外じゃRubyよりPythonがずっと普及してるのは明白
PHPはもっと普及してるけど

232 :デフォルトの名無しさん:2014/01/16(木) 00:12:26.98 .net
>>225
海外のローカルのPython Meetupに出てみたことあるけど、
Pythonで実際に何か仕事している人居なかったよ
逆にRubyはRails使ってる人しか居なかった。
ハゲと鼻ピアスとタトゥーの入ったキワモノ揃いばっかで、
日本のIT記事が取り上げる情熱()みたいな印象とは大違い。
Wordpressのミートアップにも参加した。
人は多かったけどNotepad++を使うのと、デザイナ関連のちゃらい兄ちゃんが目立った。

結局、drupalのコミュニティを信用することにしたよ

233 :デフォルトの名無しさん:2014/01/16(木) 00:17:14.24 .net
>>232
そんな基準でしか言語の判断できないわけ?
Webのスタートアップ企業ではPythonが一番人気だぞ

DrupalはPHPってだけでダメだわ
PHPの汚いコードなんて読む気がしない

234 :デフォルトの名無しさん:2014/01/16(木) 00:19:05.88 .net
DrupalはPHPだから汚いんじゃなくてDrupalだから巨大なクソなんだよ

235 :デフォルトの名無しさん:2014/01/16(木) 00:21:36.57 .net
>>234
Drupalってか、SymfonyとCakePHP

236 :デフォルトの名無しさん:2014/01/16(木) 00:23:34.58 .net
>>233
地方性あるだろうけど、実際にPythonでWebの仕事してる人なんて見なかったよ
Rubyは技術的な話が活発で、カピバラの話をしていた。
Wordpressは、ぺちぱーの集まりだった。

237 :デフォルトの名無しさん:2014/01/16(木) 00:23:38.37 .net
PHP的な汚さでいうとWordpressのほうが参考になるぞ

238 :デフォルトの名無しさん:2014/01/16(木) 00:29:29.51 .net
仕事でPythonが使われてないってどれだけ狭い世界見てるんだか

239 :デフォルトの名無しさん:2014/01/16(木) 00:32:54.88 .net
自分の見た現実と直感だよ。
堅実にやりたいだけなら、周りがやっている通りにJavaかc#を使うもの

240 :デフォルトの名無しさん:2014/01/16(木) 00:39:26.49 .net
http://www.quora.com/Python-programming-language-1/Which-Internet-companies-use-Python
3年前か古いな

PythonってGoogleでもFacebookでも使っていい言語にされてるんだよな

241 :デフォルトの名無しさん:2014/01/16(木) 01:08:13.50 .net
pythonを使えば、googleやfacebookがやるような仕事を出来るようになりますか?

242 :デフォルトの名無しさん:2014/01/16(木) 02:58:20.57 .net
dropboxとかtorotisehgとかwindowsのguiアプリでもpython使ってるのは結構あるし
azureでもpythonやphp、nodeはサポートされてるが、rubyは非対応

243 :デフォルトの名無しさん:2014/01/16(木) 04:29:45.86 .net
python使いがみんなこんなに必死なわけじゃないからな

244 :デフォルトの名無しさん:2014/01/16(木) 09:42:42.78 .net
Rubyが嫌いな人が多いのがよくわかる

他言語をdisることで拡散しようとした言語だから仕方ないのか

245 :デフォルトの名無しさん:2014/01/16(木) 14:24:50.56 .net
信者が所構わず競合他者dis繰り返したから仕方ないね
製品名とか社名とか書きたくもないから個人名にするが根は某j(個人)の信者が暴れて嫌われてるのと同じ

246 :デフォルトの名無しさん:2014/01/16(木) 14:40:04.10 .net
今更だがNamespace必要だったんかね
クラス族の衝突だけ避けられればいいのに、そんなにトップレベルに定数とか書きたいんだろうか
Rubyのモジュール方式でよかった気がする
Pythonの用途こそ一般的なNamespaceが有用と思うわ

247 :デフォルトの名無しさん:2014/01/16(木) 14:44:48.52 .net
ん後wwwwwwwwwwwwwwwwwwwwwwww

248 :デフォルトの名無しさん:2014/01/16(木) 15:50:45.72 .net
>>244
Rubyは、もっとアンダーグラウンドな存在であるべき

249 :デフォルトの名無しさん:2014/01/16(木) 16:16:12.42 .net
Perlは先っぽ入れただけでPHPに移り
今はRubyにいるやつが大体一番使えない

250 :デフォルトの名無しさん:2014/01/16(木) 16:27:10.39 .net
Rubyがなんだ実害はないぞ

251 :デフォルトの名無しさん:2014/01/16(木) 16:42:45.79 .net
>>249
ロバみたいな奴だな

252 :デフォルトの名無しさん:2014/01/16(木) 17:12:22.98 .net
Pythonと3ヶ月ほど付き合い、それからRubyに浮気した1週間後には、
捨てられいたPerlと一晩だけ過ごし、今はPHPと真面目に家庭を築こうと考えている

253 :デフォルトの名無しさん:2014/01/16(木) 17:17:30.22 .net
若い頃に、いろんな言語と寝なかったヤツほど
年とってから悪い何かに騙されるんだと思うよ

254 :デフォルトの名無しさん:2014/01/16(木) 17:53:15.53 .net
やっぱ年食っても若い子の方がよくみえるな

255 :デフォルトの名無しさん:2014/01/16(木) 18:09:03.36 .net
あのとき浮気しなければ、こんなのと生涯を一緒にせずに済んだと思うと
悔やんでも悔やみきれないものがある。
けれど、他人の臭いがついた彼女の姿を見たいかっていえば...。

256 :デフォルトの名無しさん:2014/01/16(木) 21:04:16.78 .net
コペンロバーナ「ンーwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwロバwwwwwwwwwwwww」

257 :デフォルトの名無しさん:2014/01/16(木) 22:02:37.38 .net
>>246
namespaceないとクラス名長くなるやん。
そもそもphpのnamespaceって、クラス名をディレクトリ階層ぽくできるくらいの意味しかないし、必要最低限と言える。

258 :デフォルトの名無しさん:2014/01/17(金) 04:58:42.66 .net
>>245
Ruby好きだけどRailsアンチな俺みたいなのも居るんだけど、
何かのアンチな時点でハタから見れば同類なのかなあやっぱ
まあ、教祖(もうそれでいいやw)からして論争焚き付けてる人なのも事実だしな

259 :デフォルトの名無しさん:2014/01/17(金) 07:17:23.29 .net
クラス名長くてもそんなに困らないけどな
スタティックメソッド呼び出す時に見辛くなるくらいで
名前空間あるに越したことはないけど

260 :デフォルトの名無しさん:2014/01/17(金) 12:43:59.82 .net
Rubyって、PHPっぽくベタ書きできるんだっけ?

261 :デフォルトの名無しさん:2014/01/17(金) 14:06:43.90 .net
ゴミ

262 :デフォルトの名無しさん:2014/01/17(金) 14:14:51.88 .net
ベンダープレフィクス程度でいいのに階層掘るのはやめて欲しい

263 :デフォルトの名無しさん:2014/01/17(金) 20:15:53.56 .net
でもwebプログラマやデザイナーの方がイケメン率高い

264 :デフォルトの名無しさん:2014/01/18(土) 14:21:44.59 .net
激しい劣等感を抱えたプログラマほど、闇の力に魅入られて深淵を覗きこむからな
Webのような底の浅い場所に、本物のプログラマたちは居ないんじゃないか

265 :デフォルトの名無しさん:2014/01/18(土) 14:38:55.01 .net
>>264
言わんとすることは分からんでもないが、劣等感抱えて深淵覗き込むプログラマーばかりだと嫌だよw

266 :デフォルトの名無しさん:2014/01/18(土) 15:05:55.80 .net
>>264
どこが底の深い場所なんだ?

267 :デフォルトの名無しさん:2014/01/18(土) 15:57:32.21 .net
闇プログラマですか

268 :デフォルトの名無しさん:2014/01/18(土) 16:08:25.94 .net
コロコロ変わる仕様についていける体力(徹夜的な意味で)とか
デザイナーとのコミュニケーション能力なんかが重要だもんな
PHPの言語仕様がダメなら、なんでこんなにダントツで普及してるのか

269 :デフォルトの名無しさん:2014/01/18(土) 17:22:37.29 .net
PHPは嫌いじゃないけど、PHPの良い所も知らずに、他の言語をdisるPHPerが嫌い。

270 :デフォルトの名無しさん:2014/01/18(土) 20:54:16.36 .net
多言語をdisれるペチパーなんて見たことない

韓国が欧米をdisるくらい無謀な行為

271 :デフォルトの名無しさん:2014/01/18(土) 21:05:02.81 .net
PHPerたちの多くは、幾つもの言語をかじってはPHPへ帰ってきたんだ
そこが本当に居心地の良い場所だって知っているからね。
彼らが他言語をdisるなんて、北朝鮮が欧米をdisるくらい有触れた行為だよ

272 :デフォルトの名無しさん:2014/01/19(日) 04:24:43.26 .net
多言語disるのってRubyistとPerlerの特権であり特性だろ

273 :デフォルトの名無しさん:2014/01/19(日) 06:42:10.93 .net
↑これがdis

274 :デフォルトの名無しさん:2014/01/19(日) 08:00:53.24 .net
>>272
Rubyistはともかく、PerlerはPHPerがケンカ吹っかけるから反論されてるだけじゃん

275 :デフォルトの名無しさん:2014/01/19(日) 08:48:03.21 .net
>>274
10年も前の昔話でしょ

276 :デフォルトの名無しさん:2014/01/19(日) 10:17:13.47 .net
>>275
そう、昔話…しかも専門外なのに使われてた時代の話
元々テキスト処理ツールであり、元鞘に戻っただけなのに
わざわざム板まで出てきて、Perl/CGIは終わった、PHP大勝利とばかりに煽るからバカにされてるのよ

277 :デフォルトの名無しさん:2014/01/19(日) 11:03:35.68 .net
Rubyは作者からして他の言語を批判しまくってたもんな
そりゃ嫌われるわ
だいたいRubyってRailsに乗っかって人気出ただけなのに

278 :デフォルトの名無しさん:2014/01/19(日) 13:16:40.54 .net
Rubyの作者はいいだろ。
あれは営業活動の一環なんだからw

でもただ使っているような奴が色々言うな。
だいたいそんな批判は的外れなものばかりだ。

279 :デフォルトの名無しさん:2014/01/19(日) 14:42:00.40 .net
営業活動しなければいけない時点で乙ですな

280 :デフォルトの名無しさん:2014/01/19(日) 14:55:19.83 .net
>>279
直接Matzに言ってこいよ。日本語通じるよ
?出来ないの?

281 :デフォルトの名無しさん:2014/01/19(日) 15:07:47.44 .net
>>280
Matzなら俺の横で寝てるよ。日本語通じなかったよ・・・(´;ω;`)ウゥゥ

282 :デフォルトの名無しさん:2014/01/19(日) 15:24:26.04 .net
Rubyスレじゃないから Matzが何者かわかってない奴までいる

283 :デフォルトの名無しさん:2014/01/19(日) 15:33:10.00 .net
なんだMatz知らない奴いるのか。
Matzは国連のPKOでさえ撤退を余儀なくされたアフリカの激戦区シオラレオネにおける
苛烈極まる紛争を圧倒的な戦闘力によってわずか2日で集結に導いた伝説の戦闘部隊の部隊長。
一目見ただけで死線をいくどもかいくぐってきたとわかる精悍な風貌をもつ人物。ただし日本語は通じない・・・(´;ω;`)ウゥゥ・・・Matzひどいお・・・

284 :デフォルトの名無しさん:2014/01/19(日) 15:52:09.44 .net
この板はどういう人が書いてるんだ?
タイトルからして想像できんのだ

285 :デフォルトの名無しさん:2014/01/19(日) 16:21:44.77 .net
一時期PHPを使っていたが
今は別言語を使っている奴がほとんどでないのかな

286 :デフォルトの名無しさん:2014/01/19(日) 16:44:53.74 .net
普段はor好きな言語は別にあるが、仕事の関係上PHPを使っているor使っていた人とか

287 :デフォルトの名無しさん:2014/01/19(日) 20:48:58.13 .net
PHP使ってる人は欠点も知りたいだろうから一度はこのスレを開くかもね
二度目はなさげ
言語煽りスレ立ててる人は隔離スレにしたいんだろう

288 :デフォルトの名無しさん:2014/01/19(日) 22:52:55.36 .net
古いPHPの話が多いから、古い人が多そう

289 :デフォルトの名無しさん:2014/01/20(月) 00:12:58.35 .net
>>285
c/c++プログラマどころか、Javaプログラマにもc#プログラマすら成れなかったヤツだっている
Rubyの方がプログラム言語としてイケていても、Web開発にベストな選択肢だとは思えない

290 :デフォルトの名無しさん:2014/01/20(月) 03:26:19.69 .net
PHPで長々とひどいソースコード書いて
おそらく多大な時間をかけたんだろう、Rubyとかなら5分もいかないようなものを「○○作れたー^^」とかいって
ブログ書いてる奴が多い
PHP自体でマシなアルゴリズムや記法を提供してやればマシになるのかなと思って
ちょっとPHPの言語仕様見直したけど、それも不可能だと悟った
彼らはなんなのアレ。マジアレ何。それで良いのかと問いかけたい。
ほんの一週間でいいからRubyやらPythonでまともな書き方を覚えたら
考えも変わってくれるとは思うんだけど

前提を疑えよな
その$とか->とか意味のない記号で埋め尽くされてるソースを見て
何かを感じれば他の言語を試すだろ普通は
プログラミングのような「誰がやっても同じようなもの」に対して
時間をかけて丁寧に一字一句かいていくとか、固執とかはいらないんだよ、

もっとササッとかいて、見やすい、速い、動く、  これだけで良い
こだわりを持って時間かけて何かやりたいならそれは間違いなくプログラミングでやるような事じゃないから
効率の悪いソースコードはリファクタリングでソースファイルごと削除される
PHPで書いてるソース全部がそれだからね

291 :デフォルトの名無しさん:2014/01/20(月) 03:38:55.74 .net
SessionやCookie、暗号化みたいなものが、どこにあるのか分からない言語や
サーバーの設定に分厚いミドルウェアが必要な言語はちょっと...

292 :デフォルトの名無しさん:2014/01/20(月) 03:45:24.10 .net
for-loopとイテレータのどちらが速いかみたいなことで年中考えこむのがRuby
PHPで書くのがはやいし、よほどバカでも間違いようがない

293 :デフォルトの名無しさん:2014/01/20(月) 04:12:11.67 .net
>>290
>> $, ->
これ、PHPというより、Perlをdisってるよね。
問題はそこじゃないと思うけど

294 :デフォルトの名無しさん:2014/01/20(月) 04:15:03.60 .net
>>292
今のRubyは君が思ってよりも速いよ。イテレータ(今は総じてブロックということが多いけど)で問題無い

295 :デフォルトの名無しさん:2014/01/20(月) 04:45:57.25 .net
>>293
Perl使ってるの?なんで?

296 :デフォルトの名無しさん:2014/01/20(月) 05:52:52.35 .net
Perlてもう時代遅れなん?色々焦ってPHP関連買いあさってある程度書けるようになって今度はちょこちょこC♯とObjective-C関連買い漁って猛勉強中
疲れてきました・・・

297 :デフォルトの名無しさん:2014/01/20(月) 06:22:20.63 .net
なんか言っても無駄だろうけど学習順序が違うんだよ?
上辺だけ覚えてもたいして意味がない

本気でPCやプログラミング理解したいならハードウェア、OS、デバイスドライバ、コンパイラとか
そっからまず、ソースコードがどんな風になってるか、OSがどのように起動して何を読み込んで、Windowsはどういう設計になっているか
一通りを学ぶと
C#だのObjective-Cだのその程度のものを覚えるのに1日もかからなくなるんだけど

初心者はそこら辺の深部の勉強めんどくさいやりたくないーって何かを甘えてて、
手っ取り早く上辺技術の学習だけで済ませようとするから
いつまでたっても学習コストが下がらないし、覚えたところで初級〜中級レベルの事しかできない

ちゃんと低レイヤーから一通り理解してれば、新しい技術や言語の学習なんて躓くような場所じゃないんだぜ、な。

298 :デフォルトの名無しさん:2014/01/20(月) 06:43:50.42 .net
なるほど!まずは俺は自作パソコンの基盤から勉強する必要がありそうだなw

299 :デフォルトの名無しさん:2014/01/20(月) 07:48:51.93 .net
>>297
C#、Objective-Cごとき1日で覚えられるという奴のことなど聞くに値しない

300 :デフォルトの名無しさん:2014/01/20(月) 08:20:54.67 .net
>>290
典型的な駄目なRubyistとはお前のこと

301 :デフォルトの名無しさん:2014/01/20(月) 08:21:33.75 .net
>>296
あれこれ齧るより、一つの言語で、プログラミングの技量を上げた方がいいよ。
言語の差より、プログラマの技量の差の方が大きいから。

302 :デフォルトの名無しさん:2014/01/20(月) 08:26:07.69 .net
プログラミングの技量あげるなら、PHPはやめとけ。rubyもな。

303 :デフォルトの名無しさん:2014/01/20(月) 08:29:36.08 .net
rubyは1.9、2.0ではやくなったね
メモリ管理はまだまだだし、web経由で計測をするとイマイチだけどな

304 :デフォルトの名無しさん:2014/01/20(月) 08:54:18.97 .net
>>299
1時間って言っとけばいいの?

劇的に構文が進化して新しい概念詰め込んだ言語ならともかく
既存の概念の書き方ちょっと変えた程度の言語はリファレンスにさっと目を通して終わりだろ
その程度が出来るようにならないなら一流とは程遠い

305 :デフォルトの名無しさん:2014/01/20(月) 09:46:12.57 .net
>>297
別におかしなことは言ってないが
聞いてためになる話でもない
すべってる

306 :デフォルトの名無しさん:2014/01/20(月) 10:55:01.07 .net
ゴミ

307 :デフォルトの名無しさん:2014/01/20(月) 13:06:49.03 .net
ンーwwwwwwwwwwwwww

308 :デフォルトの名無しさん:2014/01/20(月) 13:43:15.49 .net
MS Windows についてある程度、深く理解するためには、
C++ などの言語の知識があったほうが良いよ。

C++ でなくても、C の関数呼び出しの際に、構造体へのポインタを渡すなどのやりかたを知っていないと、
公開されている API すら満足に理解できないだろう。

そういったことが理解できずに、MS Windows がどのような設計になっているかなどを把握しようとしても、
ごく上っ面をなでてみた程度の理解しかできない。

逆に言えば、高級言語についてのその程度の知識もなければ、
それらの OS について、満足な理解は得られないのだから、このあたりは鶏と卵の話に他ならないよ。

古典的な Unix 系の OS なら、C の知識だけで、かなりのところまでは理解できるようになるが、
それらの OS と、C の知識を習得しただけの人間なら、
そこからさらに C#, ObjectiveC などを理解するには、1日や、1時間はちょっと吹かしすぎだ。

まあすべては、理解というのを、どの程度の理解と定義するかで上記の話は違ってくるが。

309 :デフォルトの名無しさん:2014/01/20(月) 13:49:18.26 .net
学習速度ってIQだからね

310 :デフォルトの名無しさん:2014/01/20(月) 14:10:17.87 .net
一瞬見た図形をいくつ正確に記憶していられるかのIQテストがあるだろ
新しいプログラミング言語の言語仕様を覚えるなんてのは、
それの30分とか1時間のバージョンのIQテストのようなもの

一回その「短時間記憶領域」に記憶したら
その後でC#やObjective-Cを今後も使うっていうならそのまま頭の中で反復記憶して「長時間記憶していられる領域」にも記憶させる
逆にいえばC#なんかは既に昔にそれやってて、多分30分〜1時間くらいで覚えてた
世の中にはそういうのもいるからセンスない奴がこっちに来ると悲惨な目に合う

311 :デフォルトの名無しさん:2014/01/20(月) 14:19:07.06 .net
Java 以降の、Virtual Machine 系の言語は、GUI などのユーザインターフェイス層や、
仮想的なネットワーク層などの、あらゆるものを取り込んで、
OS の上に、もう一つの OS を構築したようなものになっているし、
Windows などの OS のほうも、GUI などのユーザインターフェイス層まで OS が取り込んで面倒をみるようになっているから、

どちらかをすみからすみまで学べば、もう一方の概念を理解する助けにもなるが、
これは上層が下層に食い込み、下層も上層に食い込んで、
境界線が溶けちまったって話のように思える。

このあたりもまあ、下層と上層をどのように定義するかって話だが。

312 :デフォルトの名無しさん:2014/01/20(月) 16:38:51.26 .net
やっぱタイプセーフな言語の方がいい
そうでない言語はどんぐりの背比べ

313 :デフォルトの名無しさん:2014/01/20(月) 17:11:58.58 .net
そもそも才能のない人が平均的なプログラマになるキャリア戦略なんてものが、
LAMPスタックでのPHPerから、下のレイヤに向かっていくしか思い浮かばない

314 :デフォルトの名無しさん:2014/01/20(月) 17:24:56.29 .net
デスクトップアプリケーションは途方もない工数をかけてc++で作るだろうし、
Javaは、Javaで出来た分厚いJava世界を作っているし、
世界の互換性なんて大体は神話のようなものだから、
技術的資料を可能な限り読まなくて済むPHPとcがベストな選択肢だって思っている

315 :デフォルトの名無しさん:2014/01/22(水) 05:58:06.71 .net
仕事で初めて使ったんだけどオーバーロード使えないのかよ
代替手段あるんだろうけどオーバーに使えないって

316 :デフォルトの名無しさん:2014/01/22(水) 07:57:39.86 .net
トレイト

317 :デフォルトの名無しさん:2014/01/22(水) 15:28:55.78 .net
オーバーロードって、普通メソッドオーバーロードとか演算子オーバーロードって思うよな
PHPはその辺がトチ狂ってる

318 :デフォルトの名無しさん:2014/01/22(水) 15:34:52.51 .net
10年くらいRejectされ続けてるね
説得性のあるリクエストを出せば実装されるかもよ?

319 :デフォルトの名無しさん:2014/01/22(水) 16:04:46.00 .net
PHPにはInterfaceもタイプヒントもある。
しかし動的型の言語でオーバーロードはいらねーよバカといわれるのが普通。
PythonにもRubyにもない。

320 :デフォルトの名無しさん:2014/01/22(水) 16:36:08.15 .net
演算子オーバーロードはRubyにはあるけども
あれのせいでRubyの学習曲線歪ませてるぐらい入れない方が良いもの

メソッドオーバーロードはLLにいらねーな

321 :デフォルトの名無しさん:2014/01/22(水) 16:37:06.06 .net
>>319
オーバーロードとは少し違うけど名前付きコンストラクタが自然に書けない
ファクトリでラップするのもダルいし
PHP以外のスクリプトでは割と「普通」に使えるんだけどな

322 :デフォルトの名無しさん:2014/01/22(水) 16:38:07.63 .net
PHPにオーバーロードはある
あるが一般的に言うオーバーロードではない

323 :デフォルトの名無しさん:2014/01/22(水) 16:40:40.55 .net
マジックメソッドはなんだかな

324 :デフォルトの名無しさん:2014/01/22(水) 16:42:10.98 .net
>>319
タイプヒントはオブジェクトの振る舞いを定義するものじゃなくてデバグ用だな
いきなりNoMethodErrorがでて初心者が「ファッ!?」となることがなくなる

325 :デフォルトの名無しさん:2014/01/22(水) 17:02:38.15 .net
>>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);
  }
}

326 :デフォルトの名無しさん:2014/01/22(水) 18:27:51.60 .net
static function createSinglePlayerGame() {
$c = get_called_class();
return new $c(1);
}
のほうがいいかな
けっきょくは__construct()を可変引数にしてごにょる

327 :デフォルトの名無しさん:2014/01/22(水) 18:34:24.82 .net
あ、あとGameのコンストラクタはprotectedで
まあクライアントスクリプトのすっきり感の違いかな?

328 :デフォルトの名無しさん:2014/01/23(木) 01:51:40.84 .net
マジックメソッドはコンパイル時に解決されてるから理解しやすいのが利点だな
黒魔術的なことをしなくてもいい
ただメタプログラミングが簡単じゃないとtraitがいまいち活きない気もする

329 :デフォルトの名無しさん:2014/01/23(木) 05:40:43.36 .net
プリミティブ型でもタイプヒンティング出来るようになるって言うのはどうなったんだろう
大分前にそういう話を聞いたんだが
トレイトとかネームスペースとかジェネレーターとかはどうでも良いけど、本格的なタイプヒンティングは欲しい機能だ

330 :デフォルトの名無しさん:2014/01/25(土) 13:04:04.62 .net
phpは些細なことでもネットで情報共有する文化があるから良い
フレームワークも色んな種類があるし進化も淘汰も速い
Javaは言語仕様はシンプルだけど最低限の機能以外本当に何もない言語
その上コミュニティが閉鎖的だから、オレオレutilとかオレオレfwが横行してる
やっぱ初心者はphpやった方がいいよ

331 :デフォルトの名無しさん:2014/01/25(土) 17:10:19.10 .net
PHP初心者ですけど皆さんどんなエディタ使ってるんですか?

332 :デフォルトの名無しさん:2014/01/25(土) 18:10:13.70 .net
>>330
Symfony2,laravelとCakePHP、Zendぐらいしか選択肢ないだろ

333 :デフォルトの名無しさん:2014/01/25(土) 19:58:27.24 .net
Cから入るよりPHPから入るほうが幾分かマシではあるけどrubyから入るのが一番良い
PHPだとforeachとかwhileとか旧世代の文法でロジック組まなきゃいけなくなる

334 :デフォルトの名無しさん:2014/01/25(土) 20:03:50.66 .net
旧世代っていうけど、Linuxはその旧世代の
更に前のC言語で作られているんだぜ?

335 :デフォルトの名無しさん:2014/01/25(土) 20:37:28.61 .net
マ板ならRubyでもいいがム板ならHaskellを推す

336 :デフォルトの名無しさん:2014/01/25(土) 22:04:05.58 .net
>>334
死ねゴミ

337 :デフォルトの名無しさん:2014/01/25(土) 22:06:22.27 .net
> PHPだとforeachとかwhileとか旧世代の文法でロジック組まなきゃいけなくなる
C言語にはforeachすらないからなぁ。

338 :デフォルトの名無しさん:2014/01/25(土) 22:16:25.41 .net
そもそも、なんでいきなりLinuxの話になるんだよ知的障害か・・・

339 :デフォルトの名無しさん:2014/01/25(土) 22:17:49.77 .net
Linuxの話じゃなくて、C言語の話だろ。

340 :デフォルトの名無しさん:2014/01/25(土) 23:04:15.01 .net
githubとRoRのおかげで、人類は衰退しました

341 :デフォルトの名無しさん:2014/01/25(土) 23:11:36.72 .net
2007年以前のム板って、本当のプログラマが居たはずなんだけどね

342 :デフォルトの名無しさん:2014/01/25(土) 23:15:28.33 .net
LinuxやC抜きでPHPの話するって、本物のバカだろ

343 :デフォルトの名無しさん:2014/01/25(土) 23:29:07.35 .net
これが現実。PythonやRubyなんてPHPの敵ですらない
ScalaなんてRuby以下の闇の力
ttp://redmonk.com/sogrady/2014/01/22/language-rankings-1-14/

344 :デフォルトの名無しさん:2014/01/26(日) 00:00:23.51 .net
Haskellが意外に高い位置にいて驚いた

345 :デフォルトの名無しさん:2014/01/26(日) 00:36:19.98 .net
>>341
今でもいないことは無い
けどもう技術交換するに値しない場所だから雑談メインになっている

346 :デフォルトの名無しさん:2014/01/26(日) 02:28:56.20 .net
もう配列配列配列でやるからphpでいいよ…
配列があれば幸せだ

347 :デフォルトの名無しさん:2014/01/26(日) 02:38:28.61 .net
この感覚!?CakePHPerか?

348 :デフォルトの名無しさん:2014/01/26(日) 02:46:49.72 .net
>>346
PHPの配列は、順序付き連想配列だよ。
ハッシュ+順序と考えたほうが正確。

349 :デフォルトの名無しさん:2014/01/26(日) 03:43:38.01 .net
なんでPHPerってPHP覚えた?だけで力尽きるの

PHPしか出来ない、覚えられないって人はまずプログラミング側に来るべき人じゃないと本気で思う

350 :デフォルトの名無しさん:2014/01/26(日) 03:52:56.36 .net
力尽きた人なんていないだろw

351 :デフォルトの名無しさん:2014/01/26(日) 04:02:02.88 .net
>>349
PHPだけで構文解析器ぐらいまで書けるし、
サーバーやデータベースについてでも学んだ方が有益だから

352 :デフォルトの名無しさん:2014/01/26(日) 04:06:02.34 .net
foreachで困るほどでもないからな
C#のLinqは優れてると思うが、あれは型指定出来てVSで補完が利くから便利なんであって、スクリプト言語とは方向性が違う

353 :デフォルトの名無しさん:2014/01/26(日) 04:09:41.68 .net
ORMのある時代にLinqって役に立つのか?

354 :デフォルトの名無しさん:2014/01/26(日) 04:19:29.70 .net
PHPerたちには.netやjavaよりQtの方が魅力的に映っているはず

355 :デフォルトの名無しさん:2014/01/26(日) 04:54:16.58 .net
Qtはマルチプラットフォームでありながら
ネイティブで動いてユーザーインターフェースに
HTML、CSS、JavaScriptを使うんだよな。
PHPというよりもウェブ系全体に魅力的。

356 :デフォルトの名無しさん:2014/01/26(日) 06:11:34.29 .net
>>349
各言語で具体的になにができたら「出来る」っていえるか教えてくれ
わからないことはわからないまま実行せずに、その都度マニュアルみたら覚える必要なくない?
むしろ「はぁあ!? なんでエラーやねん!ちゃんとやってるやろ糞機械が!バグってるわ」と喚く輩に対し
「プログラムは書いた通りにしか動かない。エラー文読めばいい」と返せるであろう俺らは喧嘩せずに解りあうべき
プログラミングで大切なことは癇癪起こさずマニュアル読む姿勢だと俺は思うんだが

357 :デフォルトの名無しさん:2014/01/26(日) 07:24:20.91 .net
C++だとエラー文読むのは憂鬱になってくる

358 :デフォルトの名無しさん:2014/01/26(日) 07:55:18.71 .net
>>356
プログラミング、しかもPHP程度で癇癪って発想がまずわけわからない・・・
お前はむいてないわ やめとけほんと
来る世界間違えてる

359 :デフォルトの名無しさん:2014/01/26(日) 08:02:16.72 .net
>>356
> プログラミングで大切なことは癇癪起こさずマニュアル読む姿勢だと俺は思うんだが

挫けるぜ。これがPHPだ
http://www.php.net/manual/en/function.stats-absolute-deviation.php

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

361 :デフォルトの名無しさん:2014/01/26(日) 09:33:18.36 .net
>>360
rubyもpyも書けと言われたら書けるけど
rubyの方はend end endに耐えられなくなった

perlは出来んことはないと思うけど言語仕様もライブラリも全然知らんままw

362 :デフォルトの名無しさん:2014/01/26(日) 09:51:53.61 .net
>>361
end end end って、割と起きないと思うけどな
まあそもそも、それで耐えられん理由もよー分からんが

363 :デフォルトの名無しさん:2014/01/26(日) 09:58:30.21 .net
>>362
いや、実際黙って耐えるけどさw
}}}で済むのに面倒だなーと

364 :デフォルトの名無しさん:2014/01/26(日) 10:04:16.86 .net
>>363
環境によっては自動で補完されるよ、俺は自分で書く方が好きだけれども
まあ、LISP系のコーディング規約みたく、1行に閉じ括弧纏めたいって話なら流石に仕方ないが

365 :デフォルトの名無しさん:2014/01/26(日) 11:01:52.02 .net
>>360
>言語仕様1日かけて読めば、ペチパーってバカにされる理由が分かる

こういうふうに抽象的に煽るだけで具体例を書かない人は何erであってもエンジニアとしてバカにされます

366 :デフォルトの名無しさん:2014/01/26(日) 14:14:40.30 .net
>>353
慌ててネットで検索してクエリ式でLinq使ってるのみたんだろうけど、LinqとORMは関係ないから

367 :デフォルトの名無しさん:2014/01/26(日) 14:32:38.79 .net
Linq楽だけど遅いぞ
スクリプト言語ならともかくWindowsアプリ開発しようっていうC#であれは許容されるのか?
あっちの文化はよく分からんけど、性能が必要ならVC++使えって住み分けなのかね?

368 :デフォルトの名無しさん:2014/01/26(日) 15:42:20.77 .net
そもそもWindowsじゃアプリに性能とかあんま求められてないよ
何故かハードウェアのほうの性能あげればいい、ってのがまかり通っちゃう世界だし

369 :デフォルトの名無しさん:2014/01/26(日) 15:57:44.40 .net
というかWindows関係なくね?

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

ハードウェアの性能を上げれば、アプリのすべての部分の性能が上がる。
でもアプリの性能をあげようと思っても、局所的にしか上がらないし
結果もすぐには見えてこないよね?

370 :デフォルトの名無しさん:2014/01/26(日) 16:00:39.22 .net
死ねゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

371 :デフォルトの名無しさん:2014/01/26(日) 17:06:40.06 .net
>>360
「やっとく」って何?
何かつくれってこと?

372 :デフォルトの名無しさん:2014/01/26(日) 23:58:46.38 .net
Linqは遅延実行されるから多くの場合パフォーマンス的に有利

373 :デフォルトの名無しさん:2014/01/27(月) 00:15:56.14 .net
    ,   ― ノ)
  γ γ‾   \
  |  / 从从) )   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
  ヽ | | l  l |〃 < さくら恥ずかしぃよぉ〜
  `从ハ ‾ ーノ)   \________
    |ヽ `  \
    | ペ ノ  ノ\
    | // /'   )
    ( ノ ヾ / y  /
    ‘  / / /
      / イ (
     /  / | )
    ( /  /  /
    ‘uノ (__/∴∵
      ∵∴∵∴∵
        ∵∴∵
        ー--- '‾ ー─--'‾

374 :デフォルトの名無しさん:2014/01/27(月) 03:33:10.29 .net
>>368
おまえが性能を求められるソフトウェアを書くような機会の与えられない三流以下なんだろ

375 :デフォルトの名無しさん:2014/01/27(月) 03:35:23.36 .net
>>360
なんでわざわざPHPを使ってるかぐらい考えろ。死ね屑。

376 :デフォルトの名無しさん:2014/01/27(月) 14:37:24.39 .net
考えるまでもなくPHPしか使えないからだ。死ね屑。

377 :デフォルトの名無しさん:2014/01/27(月) 17:40:07.53 .net
ペチパー発狂

378 :デフォルトの名無しさん:2014/01/27(月) 18:42:30.53 .net
PHPが駄目なのではない
PHPerが駄目なのだ

379 :デフォルトの名無しさん:2014/01/27(月) 19:27:10.85 .net
PHPを笑うものはPHPに泣く

380 :デフォルトの名無しさん:2014/01/27(月) 19:32:21.31 .net
スケーラブルに開発できる言語って実はPHPとcじゃないのか

381 :デフォルトの名無しさん:2014/01/27(月) 21:20:02.34 .net
PHPをHTMLテンプレート言語だと思ってるやつ、いまだに腐るほどいるしな
実際はすでにサーバーサイド言語入りしてる

382 :デフォルトの名無しさん:2014/01/28(火) 00:05:45.99 .net
>>381
結局、Webには変わらんから板違いなんだけどね

383 :デフォルトの名無しさん:2014/01/28(火) 02:07:51.25 .net
CLI操作できるんだしこっちだよ

384 :デフォルトの名無しさん:2014/01/29(水) 08:33:09.30 .net
結構スレが延びてて驚いたぞ

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

LLの欠点のほうが多く出てるな

385 :デフォルトの名無しさん:2014/01/29(水) 08:45:40.15 .net
よくできたPHPerは他から叩かれる欠点を(それが偏見で欠点でなくても)よく理解した上で活用してるからな
Rubyに比べてよく訓練されてる

386 :デフォルトの名無しさん:2014/01/29(水) 08:45:44.22 .net
正規表現コンパイラに渡す文字列にデリミタが必要という不思議仕様

387 :デフォルトの名無しさん:2014/01/29(水) 09:21:14.91 .net
オプション付くし

388 :デフォルトの名無しさん:2014/01/29(水) 13:42:59.10 .net
何処で聞いていいかわかんないので, 取り敢えず聞いてみる
PHP の AST ってどっかに転がってないの?

389 :デフォルトの名無しさん:2014/01/29(水) 17:06:05.95 .net
どういう意味かよく分からんがコンパイラが吐く

390 :デフォルトの名無しさん:2014/01/30(木) 01:07:54.97 .net
symfony2とCakePHPって、どっちが使いやすいの?
多種多様なツールやフレームが依存してるsymfony2の方が御利益ありそうだけど、
CakePHPの方が素人にも分かりやすいように見えるのん

391 :デフォルトの名無しさん:2014/01/30(木) 03:25:21.90 .net
検索してバンバン情報出るのがCake
よく分かってないくせにバンバン情報載せる奴がいるのもCake
とりあえずphpフレームワーク触ってみたいだけならCake

392 :391:2014/01/30(木) 03:32:11.32 .net
でもマジレスしても、
stackoverflowの活発さとかCakePHP 3.0に向けた開発陣の熱意、英語ドキュメント群の整備の速さからしてもCakePHPになるような気がするな

SymfonyとCakePHPを比較したブログとかは大半情報古すぎなのであてにならん

393 :デフォルトの名無しさん:2014/01/30(木) 23:40:14.00 .net
symfonyはメモリ喰いまくる

394 :デフォルトの名無しさん:2014/02/01(土) 01:52:39.97 .net
drupal,laravel,behat,composerと大概はSymfony2に依存しているよね
PHP界隈って、何故にSymfonyが大好きなんだろう

395 :デフォルトの名無しさん:2014/02/01(土) 02:15:28.94 .net
phpでドヤ顔できるからじゃない?
いろんなサーバーで小回り効くのは間違いなくCake

396 :デフォルトの名無しさん:2014/02/01(土) 11:00:22.30 .net
設計思想の差でしょ

397 :デフォルトの名無しさん:2014/02/01(土) 14:10:44.45 .net
Cakeってまだ激遅のままなの?

398 :デフォルトの名無しさん:2014/02/01(土) 14:21:23.29 .net
普通に速いよ。ベンチマークしてみればわかると思うけど。

399 :デフォルトの名無しさん:2014/02/01(土) 14:23:14.63 .net
>>397
symfonyに比べればかなりマシになったよ
他のフレームワークや、遅いことで有名なRailsよりはまだ遅い

400 :デフォルトの名無しさん:2014/02/01(土) 14:42:30.78 .net
>>398
ぷぷぷw Cakeのどこが速いんだよw 遅すぎだっての
http://www.techempower.com/benchmarks/

だいたいPHPって時点でアウトだろ。
C++やJavaには到底かなわない。

401 :デフォルトの名無しさん:2014/02/01(土) 14:44:38.90 .net
>>400
CakePHPはともかく、動的型付け言語のなかでは
PHPは上位に入っているような?

402 :デフォルトの名無しさん:2014/02/01(土) 14:46:45.21 .net
Railsってどれも平均して遅いんだな・・・

403 :デフォルトの名無しさん:2014/02/01(土) 14:51:07.64 .net
>>400
LLの中ではPHPは上位にくいんこんでるぞ

Cakeは問題外だけどな

404 :デフォルトの名無しさん:2014/02/01(土) 14:51:59.87 .net
zend phpはそんなに速くないと思うが。
最近はRubyもかなり高速化されてきてる

405 :デフォルトの名無しさん:2014/02/01(土) 14:54:35.99 .net
ruby自体は2.0で早くなったけど
railsはアプリケーションサーバの問題なのか
大して早くならなかったらしいね

406 :デフォルトの名無しさん:2014/02/01(土) 14:57:07.09 .net
>>400
いまC++やJavaの話はしてない

407 :デフォルトの名無しさん:2014/02/01(土) 15:01:41.20 .net
CakePHPはパフォーマンス切り捨てて他のものを取ってるからな
生産性とか統一性とか

Railsと一緒やな

オフショアや受託向きといわれる所以

408 :デフォルトの名無しさん:2014/02/01(土) 20:35:56.94 .net
速さだけならflat phpやvanilla JS

409 :デフォルトの名無しさん:2014/02/04(火) 02:56:04.51 .net
CodeIgniterやFuelPHPって名前が悪いよね。案件が燃えそう

410 :デフォルトの名無しさん:2014/02/04(火) 04:10:22.33 .net
案件が増えそうって言ったげなよ

411 :デフォルトの名無しさん:2014/02/04(火) 06:46:12.80 .net
PHPがダメなところって
Rubyがダメなところと一緒で
他の言語の後継を名乗りたいのかDisりたいのか
他の言語の良いところをパクって作って設計の統一感を失ってるところだな

412 :デフォルトの名無しさん:2014/02/04(火) 09:12:26.52 .net
Rubyのほうが最初からフラフラしてるけどな

413 :デフォルトの名無しさん:2014/02/04(火) 13:41:39.20 .net
>>378
その通りだと思う
C,Php,Python,JavaScriptをしてきた自分にとってPHPが悪い言語だと思ったことはない
今は訳あってPHPではなくPythonの方を使うけれど、最初はPythonは異質で嫌いだった
言語の未完成さとか苛つき方ではJavaScriptが一番だな
今や多くの有志たちによって何とかなってるが
PHPはvar_dump()していけば何のストレスも悩む事もなく非常に使いやすくて簡単な言語だと思うけどな
PHPerのレベルが低いかもしれないのはしっかり教育を受けた人間が少ないからだろ

414 :デフォルトの名無しさん:2014/02/04(火) 14:40:14.94 .net
他の言語なら配列操作が簡潔に書けるとかぐらいで、ウェブページ作るのならどれも大差ない

415 :デフォルトの名無しさん:2014/02/04(火) 15:39:20.26 .net
>>413
> 言語の未完成さとか苛つき方ではJavaScriptが一番だな
何が未完成?
コア部分は結構小奇麗だと思うけど…

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

なんか直交性に欠ける感じなんだよね

416 :デフォルトの名無しさん:2014/02/04(火) 18:39:05.26 .net
俺はJavaだけは好きになれない
何だあの長ったらしい文は
Hello World書く前に勉強する気が失せる

417 :デフォルトの名無しさん:2014/02/04(火) 18:42:15.24 .net
JavaはIDEが優秀だからな

418 :デフォルトの名無しさん:2014/02/04(火) 19:04:17.27 .net
>>416
> 何だあの長ったらしい文は
少なくともコア言語としての直交性はあると思うよ
ここで言ってる直交性ってのは, 言語能力としての直交性
# 驚き再焼成の法則って言ってもいいかも知れない

419 :デフォルトの名無しさん:2014/02/04(火) 19:37:46.34 .net
>>417
Java使いは基本的に無知(IDE依存症の弊害)

420 :デフォルトの名無しさん:2014/02/05(水) 01:19:42.14 .net
IDEはVSがもっとも優秀
VSが優れてるからC#が優れてて、C#が優れてるからVSが優れてる

421 :デフォルトの名無しさん:2014/02/05(水) 04:51:22.94 .net
PHPはWebサイトに特化すれば言語中ナンバーワンだ
コレだけは間違いない
後は何でもかんでも標準関数で入ってるから、出来ないことはない
ただし、Cみたいに自分で何でも作れるような実力は付きにくい

422 :デフォルトの名無しさん:2014/02/05(水) 09:21:36.97 .net
Web特化言語が他の言語にWebで遅れ取ってたら価値がないからな

423 :デフォルトの名無しさん:2014/02/05(水) 12:10:39.49 .net
>>421
たしかに、アルゴリズムを気にするってのはあまりないね

424 :デフォルトの名無しさん:2014/02/05(水) 13:30:22.70 .net
PHPのIDEはLLの中で比較的優秀みたいだな
利用人口が多いのと、RubyやPerlみたいな黒魔術がほぼ使われないからか

425 :デフォルトの名無しさん:2014/02/05(水) 20:33:15.33 .net
それはあるな。PhpStormの補完は結構優秀

426 :138:2014/02/06(木) 08:01:24.05 .net
$GLOBALSを使わせてくれ!

427 :デフォルトの名無しさん:2014/02/06(木) 08:05:59.83 .net
cccccc

428 :デフォルトの名無しさん:2014/02/06(木) 12:08:32.40 .net
PHPerたちの戦いの土俵は、あくまでもビジネスだ

429 :デフォルトの名無しさん:2014/02/06(木) 12:45:46.42 .net
どんなものでも売れなければ意味がない。

430 :デフォルトの名無しさん:2014/02/06(木) 14:43:21.26 .net
PHPは売れても意味がない

431 :デフォルトの名無しさん:2014/02/06(木) 14:51:45.70 .net
安いシステムを中小零細企業が納入するから、
大手もIT周りを整備しないと競争に負けるよと煽っておけば、皆が幸せ

432 :デフォルトの名無しさん:2014/02/06(木) 16:26:10.57 .net
サーバーサイドはScalaとかあるし、レンダリングはJSだろ
もうPHPメリットないって

433 :デフォルトの名無しさん:2014/02/06(木) 16:37:45.77 .net
scala ww

434 :デフォルトの名無しさん:2014/02/06(木) 17:06:37.38 .net
ネタしかなくなってきたな

Perl→PHP→Rubyって行った人たちはこれからどこいくのだろう

435 :デフォルトの名無しさん:2014/02/06(木) 18:30:46.21 .net
JavaをRubyみたいにしたかったんだろうけど、JavaはJavaの良さを追求すべきだった

436 :デフォルトの名無しさん:2014/02/06(木) 18:47:51.21 .net
>>434
> Perl→PHP→Ruby
って, 本当にいるの?
仕事で無理やりやらされるまでは PHP には爪の先ですら障りなくなかったんだけど

437 :デフォルトの名無しさん:2014/02/06(木) 18:58:25.59 .net
>>436
> 仕事で無理やりやらされるまでは PHP には爪の先ですら障りなくなかったんだけど

こういう人ってよくいるよねw
変で価値の無いこだわり。

438 :デフォルトの名無しさん:2014/02/06(木) 19:06:06.43 .net
>>433
あ?Twitterなめんな

439 :デフォルトの名無しさん:2014/02/06(木) 19:20:04.29 .net
>>436
Rails使いの結構の人がその流れよ
PHPから入った人も多い

>>438
RubyとRailsからScalaとJavaにいったんだったな

440 :デフォルトの名無しさん:2014/02/06(木) 19:32:28.22 .net
>>439
その裏でFacebookはせっせとPHP

441 :デフォルトの名無しさん:2014/02/06(木) 23:05:47.17 .net
public static funciton foo() {
static::child_foo();
~~~~~~
}

意味は分かるけどどっちかっていうけどダイナミックだよね

442 :デフォルトの名無しさん:2014/02/06(木) 23:28:39.24 .net
何がダイナミックなんだ?

たとえば、スタティック変数と
スタティック型付け は同じスタティックでも
意味が違うぞ。

ダイナミック○○の○○部分がないと意味がわからんだろ?

443 :デフォルトの名無しさん:2014/02/07(金) 00:45:20.27 .net
staticメソッドをdynamicにバインドしているだけやろ。
この場当たり感がPHPだ!

444 :デフォルトの名無しさん:2014/02/07(金) 00:46:34.31 .net
ただのグローバル

445 :デフォルトの名無しさん:2014/02/07(金) 02:28:08.81 .net
遅延束縛超便利だけどな
traitとあわせてphpだと微妙にごちゃってたプラグインとかヘルパーがすっきりしつつある
ちなみにget_called_class()のほうならstatic以外も呼べるよ
staticに違和感が出るってことは、それだけ動的言語っぽくなってきたってこと

446 :デフォルトの名無しさん:2014/02/07(金) 11:01:09.78 .net
直感的にはselfとstaticが逆

447 :デフォルトの名無しさん:2014/02/08(土) 01:18:58.46 .net
言われてみればそうだな。
最初からselfが実行時クラスで__CLASS__が定義クラスだったらそんでよかったんだろうけど。

448 :デフォルトの名無しさん:2014/02/08(土) 04:41:32.47 .net
> 静的遅延束縛は直近の "非転送コール" のクラス名

とかいいつつクロージャの中にあるstatic::は、それを定義してるクラスになる件
オブジェクトの時はクロージャの中でも非転送コールのクラス名になるからバグだろうな

449 :デフォルトの名無しさん:2014/02/08(土) 05:04:08.08 .net
やってて気づいたけどインスタンスからアローでクラスメソッド呼べるじゃん
これは知らんかったわ

class A {
static function f() {}
}

$obj = new A;
$obj->f(); // A::f()と同じ

450 :デフォルトの名無しさん:2014/02/08(土) 08:46:05.22 .net
>>449
deprecated

451 :デフォルトの名無しさん:2014/02/08(土) 08:54:10.67 .net
>>448
5.5.3だとならんよ

452 :デフォルトの名無しさん:2014/02/08(土) 10:25:56.27 .net
PHPは万事緩いんだよな
変なふうに書いてもとりあえず動く
それが良いケースもあるが

453 :デフォルトの名無しさん:2014/02/08(土) 13:04:07.53 .net
何を勘違いしているのかしらんけど、
PHPのstaticメソッドというのは、
C++のstaticメソッドに似せて作られているものだから。

454 :デフォルトの名無しさん:2014/02/08(土) 13:07:06.84 .net
>>449
Perlでも同じだよ。

クラス=パッケージだから
インスタンスからでもクラスメソッドが呼べる。

正確にはどちらでも呼べるが
アローを使った場合とそうでない場合で
メソッド側で(thisに相当する)$selfが違ってくる

455 :デフォルトの名無しさん:2014/02/08(土) 13:50:27.49 .net
>>453
なんのことを言ってるのかね?

456 :デフォルトの名無しさん:2014/02/08(土) 14:08:02.39 .net
Perlにはスタティックメソッドって言語機能がない
クラスメソッドとして使うことを想定されてるメソッドもあるというだけで

457 :デフォルトの名無しさん:2014/02/08(土) 14:11:30.56 .net
そもそも、パッケージをクラス代わりに、
そのパッケージとblessしたリファレンスを
インスタンス代わりにしてるだけだしなあ

458 :デフォルトの名無しさん:2014/02/09(日) 18:11:14.41 .net
>>622
PHPだとarray_mapのコールバックにnullを渡せばzipになるから簡単

459 :デフォルトの名無しさん:2014/02/10(月) 09:40:40.04 .net
PHPのstrposが全然覚えられません・・。
俺はプログラマーになれません。

460 :デフォルトの名無しさん:2014/02/10(月) 09:59:43.78 .net
毎回リファレンス見ればよろし
関数名覚えてても引数の順番いつも忘れる俺

461 :デフォルトの名無しさん:2014/02/10(月) 10:10:29.97 .net
何かをやる時にselfやthisを使わないで
すべて「引数」と「戻り値」でやるっていう旧世代のやり方だから

462 :デフォルトの名無しさん:2014/02/10(月) 10:32:53.18 .net
しっかしWordPressが進化しまくってPHPを1から書くことなんて無くなってね?
まだObjective-CやC♯真面目にやってたほうがまし

463 :デフォルトの名無しさん:2014/02/10(月) 11:05:44.94 .net
Objective-CやC♯も
1から書くことなんて無いだろ?

お前は1から書きたいのか?
無駄な努力だよ。

464 :デフォルトの名無しさん:2014/02/10(月) 11:33:52.82 .net
>>462,463
ゴミだろ

それって1の場所が変わっただけで
周りがみんなその場所から始めるならそこが1だよ

465 :デフォルトの名無しさん:2014/02/10(月) 11:35:54.32 .net
>>464
何言ってるかいみわからんwww

それにしてもまあ、一から書かなくていいメリットを
ディスるバカが居るなんてなぁw

俺は一から書くしかない言語が優れてると思ってるんだ!
ですか?www

466 :デフォルトの名無しさん:2014/02/10(月) 12:46:19.16 .net
ライブラリやフレームワークの意味が分かってない馬鹿が一人

467 :デフォルトの名無しさん:2014/02/10(月) 13:07:50.63 .net
なんで、haskellでwebアプリって作られないんだろ
金になりそうなのに

468 :デフォルトの名無しさん:2014/02/10(月) 13:14:16.23 .net
手間すぎるから

469 :デフォルトの名無しさん:2014/02/10(月) 13:33:26.46 .net
もうウェブサイトを一から作るって案件は減ってるのは確か
ウェブじゃなくて、モバイルのネイティブアプリで展開するケースが増えてる
ウェブもよほど凝ったサイト以外はWordPressで作った方が早い

470 :デフォルトの名無しさん:2014/02/10(月) 14:21:55.33 .net
>>469
なんかもう最近はCSS(というかCompass)書くのが一番だるい
HTMLもPHPも書かん
PHP書くのはCakeくらい

471 :デフォルトの名無しさん:2014/02/10(月) 15:46:02.07 .net
webアプリの案件も減っているの?

472 :デフォルトの名無しさん:2014/02/10(月) 15:53:47.71 .net
フリーでオープンを謳ってたヤツらの間で、ファイナンスが熱くなったらいいな

473 :デフォルトの名無しさん:2014/02/10(月) 16:40:03.86 .net
>>471
最近ほっとんどJSだと思うけど

474 :デフォルトの名無しさん:2014/02/10(月) 20:05:39.43 .net
>>470
え?まさかsass使ってないの?

475 :デフォルトの名無しさん:2014/02/10(月) 20:23:35.31 .net
>>474
Compassって書いてあるよ

476 :デフォルトの名無しさん:2014/02/10(月) 20:43:26.97 .net
Compassはライブラリであって
書くものじゃないんだが?

477 :デフォルトの名無しさん:2014/02/10(月) 21:48:31.49 .net
>>476
いるよねーこういう屁理屈いう奴

478 :デフォルトの名無しさん:2014/02/10(月) 22:10:01.06 .net
事実言ってるのに、屁理屈というやつなんなんだろ?

479 :デフォルトの名無しさん:2014/02/10(月) 22:41:14.52 .net
>>622に期待

480 :デフォルトの名無しさん:2014/02/10(月) 22:59:21.71 .net
>>622
期待と言っておきながら、>>479自身でレスするのかよw

481 :デフォルトの名無しさん:2014/02/11(火) 06:51:31.09 .net
低能ちゃんは突っかかるからなぁ

482 :デフォルトの名無しさん:2014/02/11(火) 09:07:04.49 .net
まともに働いてるやつはこんなスレ見にこないからなw

483 :デフォルトの名無しさん:2014/02/11(火) 10:51:45.31 .net
貧乏暇無しってヤツだね!

484 :デフォルトの名無しさん:2014/02/11(火) 10:55:48.89 .net
2ちゃんねるやってるから暇なし

485 :デフォルトの名無しさん:2014/02/11(火) 12:14:42.73 .net
怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ

486 :デフォルトの名無しさん:2014/02/11(火) 12:52:17.01 .net
マジレスすると
http://netyougo.com/wara/10154.html

「怒らないでマジレスしてほしいんだけど」とは、2chにおける有名なコピペである。
以下の様な書き込み。

怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ
こんな時間に書き込んでいる人物について批判をしているが、この書き込みを行っているユーザーも同様ということに気がついていない、というもの。

487 :デフォルトの名無しさん:2014/02/11(火) 13:52:31.09 .net
>>486
なんだこのゴミ氏ねゴミ

488 :デフォルトの名無しさん:2014/02/11(火) 15:09:49.18 .net
>>486
気持ち悪

489 :デフォルトの名無しさん:2014/02/11(火) 15:18:42.23 .net
>>486
ジャ・・ジャ・・ジャ・・ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwww

490 :デフォルトの名無しさん:2014/02/11(火) 16:38:05.14 .net
つーか今日祝日ってことも知らねーニートなの?

491 :デフォルトの名無しさん:2014/02/11(火) 16:39:13.14 .net
ニートだから祝日を知らないか、社会人だから祝日を知らないか、それが問題だ

492 :デフォルトの名無しさん:2014/02/11(火) 16:40:32.40 .net
>>478
死ねよコミュ障

493 :デフォルトの名無しさん:2014/02/11(火) 16:59:03.85 .net
c++やPythonよりHaskellの方が書く効率良さそうだよね
c++でポリモーフィズムやテンプレート使うと継承や仮想関数について理解する必要できるけど、
組込開発やUnix方面では殆どcで書くしかないから、cの作法について熟知してる方がマシだし
Pythonだと毎度ながら変数への代入を間違えて、つまらないデバッグに時間を取られてしまう
PHPの場合、Haskellが型チェックすることで効率が良くなるようなコードなんて書きそうにない
仕事でcとPHPを軸にして趣味でHaskell製アプリを書くと、とても幸せになれそう

494 :デフォルトの名無しさん:2014/02/11(火) 17:17:16.02 .net
>>493
うん、理屈ではそうなんだけど、
実際やってみると、開発時間的には大差ないよ。

495 :デフォルトの名無しさん:2014/02/11(火) 17:26:57.57 .net
>>494
嘘つけ

496 :デフォルトの名無しさん:2014/02/11(火) 17:32:00.66 .net
>>495
開発時間が半分になる言語があったら
開発費用も半分になるんだ。

開発時間も開発費用も半分でいいですから
○○言語でやらせてください!

といえるかい?

497 :デフォルトの名無しさん:2014/02/11(火) 17:35:19.03 .net
>>496
その例えって、すごくバカで、開発者側からしか見てないよね?
競合がc++で書いて2倍の工数を掛けるなら、短納期で安い方に顧客が移るだろ

498 :デフォルトの名無しさん:2014/02/11(火) 17:36:24.97 .net
Haskell開発者は、CやPHPの開発者と単価同じで仕事してくれるの?

499 :デフォルトの名無しさん:2014/02/11(火) 17:37:13.87 .net
そもそも趣味だっつんだから論点ずれてねーか?

500 :デフォルトの名無しさん:2014/02/11(火) 17:37:57.27 .net
○○言語で書くから2倍の工数と賃金を下さいって、すごく間抜けな発言

501 :デフォルトの名無しさん:2014/02/11(火) 17:38:24.15 .net
>>497
> 短納期で安い方に顧客が移るだろ
それがPHPだったりするんですよね。

502 :デフォルトの名無しさん:2014/02/11(火) 17:38:57.38 .net
>>498
裁量労働か無料で仕事するんじゃないか?

503 :デフォルトの名無しさん:2014/02/11(火) 17:40:42.91 .net
競合がPHPで書いているとすると、それに対抗するなら
短い時間、安い金額で仕事をしないといけないわけで。

504 :デフォルトの名無しさん:2014/02/11(火) 17:46:56.61 .net
タダのWebアプリ、Webサイト作りならね
パーサー書いたりコード解析などの将来性まで含めたら、
どちらが費用対効果高いか分かるでしょ

505 :デフォルトの名無しさん:2014/02/11(火) 17:47:26.27 .net
一番重要なのは、ちょっとぐぐれば大抵のことはわかる言語かどうか

Yes な言語なら開発者はヘボでもいい
No な言語ならプロジェクト内で発生する課題一つ一つを自力で解決できるレベルの開発者が必要になる
この差はでかい

506 :デフォルトの名無しさん:2014/02/11(火) 17:50:04.03 .net
>>504
将来のことは分からないから無駄な投機はしない
ってかぶっちゃけパーサとかコード解析とかならHaskellよりOcamlの方が使いやすい
その程度の用途にHaskellはぶっ飛びすぎ

507 :デフォルトの名無しさん:2014/02/11(火) 17:50:09.81 .net
DelphiやVBより、Haskellの方が優れた選択肢になるじゃないか

508 :デフォルトの名無しさん:2014/02/11(火) 17:53:30.08 .net
>>506
Ocamlって、パッと見たときに型が分からないんだけど
これって、Objectが状態遷移を表現してるの?

509 :デフォルトの名無しさん:2014/02/11(火) 18:16:17.51 .net
はじめてのc、すごいH、パーフェクト3P

510 :デフォルトの名無しさん:2014/02/11(火) 18:49:00.74 .net
PHPゴリゴリ書いていたらいいんだよ

511 :デフォルトの名無しさん:2014/02/11(火) 19:45:48.68 .net
>>510
WEB のサーバー側しか書けないじゃん >PHP

# 組み込み門は無理
# バックエンドの計算主体系は無理
# 遅いし
# コンパイラ屑だし

512 :デフォルトの名無しさん:2014/02/11(火) 20:32:47.71 .net
PHPだと後からいくらでも不具合出るから保守費用でどっさり追加できるもんね

513 :デフォルトの名無しさん:2014/02/11(火) 21:49:37.00 .net
>>511
なんかもうc++でいーじゃん

514 :デフォルトの名無しさん:2014/02/11(火) 21:59:36.37 .net
>>508
型推論で記述が省略されているか、.mliファイルに記述されている

515 :デフォルトの名無しさん:2014/02/11(火) 23:08:28.49 .net
PHPが駄目なのはわかるけど何の言語と比較して駄目なのか
同じ駄目さが他の多くの言語にもあるし、PHPがずば抜けて糞とは言えない

PHPユーザーにプログラミング初心者が多すぎて糞コードが量産されているから悪いイメージがあるだけだと思う

OOP十分理解していれば他のLL(特にruby,js,perl)より相当読みやすいコード書けるよ

516 :デフォルトの名無しさん:2014/02/11(火) 23:42:59.53 .net
C#もよく出来た言語の割に初心者コード量産してるよ。Unity関係でとち狂った説明してるサイトも良くぐぐった先で到達してもやもやする。「なんかstaticって付けたらすげー便利になった」みたいなレベルの解説ブログとか。

言語が良くできてるかどうかじゃないと思うよ
obj-cなんか起源からして建て増し住宅の末路な糞設計のくせしてちゃんと回ってるからな
ARCとかblocks拡張とか魔改造で振り回しくさって酷いもんだよ。Appleの改変の歴史知らずに古いコードをコピペしても、もはや謎のエラーしか出ない
一方、文法などが美しいのではと聞かれたら、八割がたの経験者が鼻で笑うだろう
あの変態さがクセになってる奴もいるのだけど。c/c++とsmalltalk同居させてARCの罠を掻い潜ってトールフリーな連携できたときの達成感といったらもうそれこそ黒魔術うっひょーだよほんと

脱線した
要するに、phpは世間がいうほど悪くない程度の糞

517 :デフォルトの名無しさん:2014/02/11(火) 23:49:11.18 .net
C#みたいなタイプセーフでブロックスコープな言語はどんなにメチャクチャに書こうとコンパイルが通る以上、最低限のクオリティは保証される
他人のコードをリファクタリングするのも容易
スクリプト言語とは決定的な差がある

518 :デフォルトの名無しさん:2014/02/12(水) 00:00:21.55 .net
最初から綺麗にコードを書けばいいだけの話。
じっくりと設計に時間をかけて、拡張性を持たせて、
仕様変更もないようにすれば
リファクタリングが必要になることはない。

519 :デフォルトの名無しさん:2014/02/12(水) 00:09:24.18 .net
無理だね

520 :デフォルトの名無しさん:2014/02/12(水) 00:29:15.97 .net
>>515
OOPに関してPHPが読みやすいということはないっしょ。そもそもPHPって満足にOOPできないし。OOPの機能は充実してるけど、基本的な値に対してOOPを使えないのが致命的。
str.lengthと書きたいのに、strlen($str)と書かないといけないし。(マルチバイト考慮するならmb_strlen($str)になるのがさらに糞)

OOPを理解していることで他のLLより読みやすいコード理屈はない。(良いプログラマが書くなら対してかわらん)
PHPの場合読みやすさ云々より、くそプログラマを呼び寄せやすいという体質が一番の問題。しかもそれはイメージではなく本当のこと。

521 :デフォルトの名無しさん:2014/02/12(水) 00:36:52.45 .net
>>516
Obj-CのARCとBlocksを引き合いに出すのはちがうとおもうぞ。
両方共必要だから追加された仕様なわけで。ARCはiOS用に、BlocksはGCDのために。(そもそもBlocksはObj-Cではなく、Cのコンパイラ仕様)

対してPHPの場合、例えばトレイトなんてなんのために追加されたのかわからない。
クラスさえ満足に扱えていないし、そもそもinterfaceがあるのにトレイトとか取って付けた感しかない。

>要するに、phpは世間がいうほど悪くない程度の糞
これは同意。ただ、ただクソプログラマの傍若無人さを助長してしまうのは何とかしてほしい。

522 :デフォルトの名無しさん:2014/02/12(水) 00:50:51.83 .net
逆じゃないかな
なんでPHPはインターフェイスや抽象クラス導入したんだろう
PerlやPythonやRubyは多重継承やミックスインが以前から出来た
スクリプト言語のくくりで言えば、もっと早くトレイトは導入すべきで、インターフェイスはなくても良かった

523 :デフォルトの名無しさん:2014/02/12(水) 01:02:02.08 .net
トレンド真似る順番間違えた、ってことじゃないの
5系初期はとりあえずJava真似ときました感があるし

524 :デフォルトの名無しさん:2014/02/12(水) 01:11:46.35 .net
>>520
rubyのObjectクラスみたいに元々あるクラスの設計が酷すぎて、それに依存するもの全てがキモくなるとかがあるからラッパー書いた方がまだ綺麗と思った

525 :デフォルトの名無しさん:2014/02/12(水) 01:14:52.91 .net
多重継承とミックスインなら、継承とインターフェースとトレイトの方が好き
前者はis aがすぐ崩れる

526 :デフォルトの名無しさん:2014/02/12(水) 01:22:22.47 .net
phpの大量の小汚い謎関数ゴリ押しも、ラッパー書けば足りることではあるな
まるっと非推奨にしてくれたら見た目の印象も綺麗になるのかな

でもexplodeって関数名なんかはある意味発明だと思うw

527 :デフォルトの名無しさん:2014/02/12(水) 01:56:13.97 .net
>>524
RubyのObjectがどう酷いのかよくわからんが、ラッパーだって設計が変われば新しいラッパーができて、じゃあどっち使えばいいんだよ!古い方の使ってたコードはそのまま放置?ってなるからたいして変わらないと思うけど。

528 :デフォルトの名無しさん:2014/02/12(水) 02:02:10.43 .net
>>521
> 例えばトレイトなんてなんのために追加されたのかわからない。
> クラスさえ満足に扱えていないし、

君のレベルはまだまだ低い。がんばろう。

529 :デフォルトの名無しさん:2014/02/12(水) 02:22:42.48 .net
いい感じの議論が起こってるなw
とりあえず現時点で一番糞なのは話題にものぼらなくなったPerlだと思う

なんだあいつ

530 :デフォルトの名無しさん:2014/02/12(水) 02:24:21.77 .net
なんだあいつってお前が荒らしてるんだろw

531 :デフォルトの名無しさん:2014/02/12(水) 02:28:55.87 .net
Perlの最新事情なんも知らないなー。随分世話になったのに
「学生時代にアイドルだったxxxちゃんって今どうしてるのかな……いや、別にどうでもいいけど」的な位置づけ
mixiで現役だっけ?

532 :デフォルトの名無しさん:2014/02/12(水) 02:54:07.94 .net
>>528
何のために追加されたかわからないという言い方は不適切だったな。
利点は分かるが、一度JavaのようなOOPスタイルにしたのに、トレイトを追加とか節操がないなと思った。
他の言語はもっと慎重だからさ。

特にPHPの開発者はついて行けないと思うんだよな。クラスも満足にってのはそういう意味ね

533 :デフォルトの名無しさん:2014/02/12(水) 03:28:32.44 .net
traitは一部でコードテストを後付けするのに使っとるくらいだわ
オブジェクトとしてクラス定義を操作できるようになるまでは、わざわざ使わないかなー

534 :デフォルトの名無しさん:2014/02/12(水) 03:59:57.07 .net
>>532
いや、お前がトレイトわかってないだけだよ。
トレイトと継承やインターフェースは全く別の概念。

ダイアログを継承して、ボタン付きダイアログを作るだろ?
この時、ボタン付きダイアログは、ダイアログの多く機能をそのまま備えており
ダイアログに+αしたもの。これが継承。

インターフェースというのはあるクラスが、どんなクラスとして使えるかって定めたもの
めちゃくちゃな例だが、ボタン付きダイアログにシューティングゲームの自機戦闘機インターフェースを
持たせれば、ボタン付きダイアログを自機戦闘機としても使える。
外部から見た時にあるクラスがどんな性質を持っているか、という時にインターフェースを使う。

そしてトレイトはたとえるならば装備だ。レーザーとかミサイルとかな。
自機戦闘機にレーザーを装備できる。だが自機戦闘機はレーザーを継承しているわけじゃないし
レーザーインターフェースを持ったわけじゃない。(別に外部からインターフェースを知りたいわけじゃない)

単に、自機戦闘機がレーザーを使いたいからそれを装備した。
これは継承ともインターフェースとも違う。

535 :デフォルトの名無しさん:2014/02/12(水) 04:31:48.97 .net
>>534
それは知ってる。
でもそれを理解して使い分けられる人は少ないよ。
PHPのトレイトは本来の意味を忠実に実装してる分、返って理解されにくいと思う。あと、型とトレイトが分かれてるのもかったるいし、説明しにくい。
それよりはinterfaceが実装を持てるぐらいの方が良かったなと思う。(Java8はこれを選んだけど)

536 :デフォルトの名無しさん:2014/02/12(水) 05:08:02.37 .net
いや、お前がトイレわかってないだけだよ。
トイレと便座や便器は全く別の概念。

トイレットペーパーを継承して、香り付きトイレットペーパーを作るだろ?
この時、香り付きトイレットペーパーは、トイレットペーパーの多く機能をそのまま備えており
トイレットペーパー+αしたもの。これが継承。

537 :デフォルトの名無しさん:2014/02/12(水) 05:23:57.50 .net
>>534
その説明だと、トレイトってよりは、コンポジットだな。
鳥(親クラス)にトレイト(飛べる)つけて、スズメ(具象クラス)とかみたいな例がいいかと。
さらに言うと、合成についても説明がいるが、端折ったのか?

538 :デフォルトの名無しさん:2014/02/12(水) 05:26:28.69 .net
朝の4時5時から詳細な説明を要求する人って・・・

539 :デフォルトの名無しさん:2014/02/12(水) 05:40:12.85 .net
トレイトと型(インターフェイス)が分かれているのって一見綺麗だけど、トレイトを型安全に書くには両方必要になって面倒(名前どうすればいいだろ…)

割り切って、トレイトオンリーってなら、Rubyのようにダックタイピングにするか、Scalaのように型としての機能も持たせればよかった。
だから、実用性がなんか微妙なんだよな。ある意味PHPらしくない

結局、インターフェイス入れたのが間違いな気がする。タイプヒントとか使ってるのあまり見たことないし

540 :デフォルトの名無しさん:2014/02/12(水) 06:54:00.18 .net
>>520
現場的に言えば、そういうのはコードの読みやすさと関係ないのでどっちでもいい
str.length と書いても strlen($str) と書いてもどちらでも理解できる
そういうところに拘るのは宗教

541 :デフォルトの名無しさん:2014/02/12(水) 07:11:42.14 .net
>>540
「oop理解してたら他のLLよりphpが読みやすい」とか言うから、文字列すらオブジェクトじゃないのに関係ないだろ、と返しただけで、メソッドと関数どっちが読みやすいなんて論じてないよ。

ま 、strlen他文字列関数には読みやすさ以外にダメな点たくさんあるけどね。

542 :デフォルトの名無しさん:2014/02/12(水) 07:20:19.38 .net
>>541
ああ、なるほど。
Perl, PHP, Python, Ruby の中だと OOP を意識した設計がなされているのは Ruby だけで他 3 言語はどっこいどっこい
という主張なら同意する

543 :デフォルトの名無しさん:2014/02/12(水) 07:43:14.16 .net
>>541
文字列だけに限らず、OOPの機能が一切存在しないといえなければ、関係ないとはいえないが…

544 :デフォルトの名無しさん:2014/02/12(水) 07:53:21.91 .net
perlとやubyをヘビーに使ってる人は読み易さの基準が一般人と違う印象があるな
彼らが読み易いと言うコードは読み難い

545 :デフォルトの名無しさん:2014/02/12(水) 07:55:21.20 .net
それは今だに闇属性が抜けきれてないPerlerやRubyist

546 :デフォルトの名無しさん:2014/02/12(水) 07:57:05.33 .net
>>544
一般人はソースコードなんて読めないんだが?
それが技術ってもんだろう?

どっちが読みやすいかは両方知っている人でないと
判断できない。

片方しか知らない人がいう「読みにくい」は
まさに一般人がソースコードを読めないのと同じこと。

技術力がついてから読みやすいかどうかの話題に参加してね。

547 :デフォルトの名無しさん:2014/02/12(水) 07:57:57.81 .net
噂をすれば闇プログラマ

548 :デフォルトの名無しさん:2014/02/12(水) 08:00:25.40 .net
反論できない、悔しい。
そうだ悪口を言おう、
お前は闇プログラマ。(よし勝った!) ←馬鹿じゃね?w

549 :デフォルトの名無しさん:2014/02/12(水) 08:04:54.95 .net
perlやrubyに限らず、闇属性(笑)は一定数いるよ
リファクタリングとパフォーマンスチューニングとコードゴルフの区別がつかない技術者が実際多すぎて、しかもそういう人間に限ってヲタク的な知識をひけらかしてチヤホヤされるから本当に闇

550 :デフォルトの名無しさん:2014/02/12(水) 08:06:21.53 .net
だからなんだよw
スレ上げてまで、なにお前の話してるんだよw

551 :デフォルトの名無しさん:2014/02/12(水) 08:07:24.69 .net
とある誰かにこてんぱんにされて、
ここでうっぷん晴らしてるんだろ?

552 :デフォルトの名無しさん:2014/02/12(水) 08:37:15.60 .net
こんな早朝から盛り上がりすぎwww

553 :デフォルトの名無しさん:2014/02/12(水) 08:58:10.59 .net
今日は休みなんで。

554 :デフォルトの名無しさん:2014/02/12(水) 12:21:05.39 .net
年中の間違いだろ

555 :デフォルトの名無しさん:2014/02/12(水) 13:37:02.05 .net
糞の役にも立たない日本語は廃止すべき。

556 :デフォルトの名無しさん:2014/02/12(水) 15:12:48.42 .net
perlのoopをまともにしたのがruby

この2言語、一人で書くにはかなり生産性高いグッド
人に読ませるには読みにくくてバッド

選民主義って言われるのもよくわかる

557 :デフォルトの名無しさん:2014/02/12(水) 15:18:50.08 .net
読みにくいと思ってる>>556
民として選ばれなかったんですね?

558 :デフォルトの名無しさん:2014/02/12(水) 15:34:19.18 .net
そんあことより賤民言語の極みの英語を何とかしたい

559 :デフォルトの名無しさん:2014/02/12(水) 16:05:42.97 .net
プログラミング技法の記事って、ほとんど英語で書かれてるわけで
日本語は盲目に生まれついたのと同じレベルの不幸

560 :デフォルトの名無しさん:2014/02/12(水) 19:23:52.81 .net
いやperlは読みにくいよ

561 :デフォルトの名無しさん:2014/02/12(水) 20:18:02.70 .net
Perlはブロックスコープで変数宣言必須なのがいい

562 :デフォルトの名無しさん:2014/02/12(水) 20:29:24.92 .net
>>561
宣言必須に出来るだけだっけ?

563 :デフォルトの名無しさん:2014/02/13(木) 00:27:14.58 .net
>>448,451
こういうことであってる?
これだと無名関数の呼び出しは性的コールじゃないから、別ケースだと思う。
どういう挙動がいいかは分からん。

class X {
static function f() {
static::g();
return function() { static::g(); };

}

static function g() {
print("X");
}
}

class Y extends X {
static function g() {
print("Y");
}
}

$cg = X::f();
$cg();

$dg = Y::f();
$dg();

// 5.3 => fatal
// 5.4 => XXYX

564 :536:2014/02/13(木) 00:59:03.57 .net
今見たら読みにくかったので直しました。すんまそん。

class X {
static function f() {
static::g();
$g = function() { static::g(); };
$g();
}

static function g() {
print("X");
}
}

class Y extends X {
static function g() {
print("Y");
}
}

X::f();
Y::f();

565 :デフォルトの名無しさん:2014/02/13(木) 07:00:21.08 .net
>>562
ワンライナーや個人的スクリプトでない限りそうするのがマナーだね

566 :デフォルトの名無しさん:2014/02/13(木) 18:21:01.82 .net
>>563
マニュアルではそのオブジェクトのクラスと同じになるって書いてあるから
仕様通りならClosureのクラスメソッドがコールされることになってしまうような
とまあ戯言はおいといて、5.4の方向性でいくとフツーのClosureはYに、
Static closureはスコープエラーか何かになるべきじゃないかな

つーかどんだけstatic使いまわすのかと

567 :デフォルトの名無しさん:2014/02/13(木) 22:42:59.45 .net
クロージャからstaticとか、なんか嫌な予感しかしない

568 :デフォルトの名無しさん:2014/02/14(金) 00:10:47.39 .net
>>563,566
クロージャはクラス内で使うと、暗黙にクラスのメンバのように扱われるようになったから
「クロージャが宣言されてるオブジェクトのクラスと同じ」になると解釈できる
staticなクロージャも$thisをuseしてないだけで同様じゃねーか?

かつ、クロージャはレキシカルであると期待されてるから、後で評価しても定義された
時点のクラスを返すのは不自然ではない

クロージャを基準に考えると遅延静的束縛の方が無意味

569 :デフォルトの名無しさん:2014/02/15(土) 03:22:15.76 .net
> クロージャはクラス内で使うと、暗黙にクラスのメンバのように扱われるようになったから

というか任意のインスタンスにバインドできる
ようはjsの関数だ

無名関数としてだけ使うこともできるし、クロージャとして使うこともできるし、
プロトタイプベースの関数オブジェクトのようにも使えるキメラ的な何か

570 :デフォルトの名無しさん:2014/02/15(土) 23:06:51.45 .net
クロージャの中でLSB使えないってのは分かったけど定義クラスからのメソッドコールとみなすのは無理筋すぎる…

571 :デフォルトの名無しさん:2014/02/16(日) 00:07:02.70 .net
PHPは言語定義が甘い

572 :デフォルトの名無しさん:2014/02/17(月) 10:59:23.43 .net
adaやc++ほど優れた言語仕様を作ったところで、そんなもの誰も読まないじゃないか

573 :デフォルトの名無しさん:2014/02/18(火) 23:48:09.41 .net
c++が優れてるなんてもちろん皮肉ですよね(棒)

574 :デフォルトの名無しさん:2014/02/19(水) 00:03:11.39 .net
優れた、の意図するところに依るかな
少なくともナイスだとかマーベラスとかではない
ありゃ標準化の奴らが現場の空気読まずコンプリートとかクリンリネスあたりで優れようとしてるからたち悪いんだと思う

言語仕様に賭ける情熱は高いと思うよ

575 :デフォルトの名無しさん:2014/02/25(火) 19:23:38.05 .net
最近Pythonばっか触ってたらPHPの書き方忘れた
PHPはWeb用のクライアント言語としてはナンバーワンだ
Pythonなんかめんどくさいの何のって
PHPは楽で本当に良い
ただし、問題は文字コード周り
コレのおかげでPython使わないといけなくなってる

576 :デフォルトの名無しさん:2014/02/25(火) 19:31:27.23 .net
>>575
文字コードの問題を詳しく

577 :デフォルトの名無しさん:2014/02/25(火) 22:19:05.09 .net
mbstrじゃダメっすか

578 :デフォルトの名無しさん:2014/02/26(水) 04:52:11.53 .net
正確に覚える必要がある言語って、PHPとSQLみたいな仕事に直結するものだけだよね?
後は、趣味でHaskellでも叩いてるのが幸せ。

579 :デフォルトの名無しさん:2014/02/26(水) 08:31:01.25 .net
Haskellってほんと趣味って感じ
実用で使われてるプロジェクトとかあんのかな

580 :デフォルトの名無しさん:2014/02/26(水) 10:08:56.31 .net
PHPが悪いわけでなく、使うやつ次第だろ。
ベーシックやフォートランやコボルやアセンブラが得意な人はそれがいいわけで。
PHPが得意な人には良い言語で、苦手ならそうでないだけ。
どれでもそう。

581 :デフォルトの名無しさん:2014/02/26(水) 10:19:42.76 .net
Haskellは特定環境下での速度がCより速いから
証券の高速売買とかで使われてるよ

582 :デフォルトの名無しさん:2014/02/26(水) 13:29:22.05 .net
>>581
市販アプリケーションレベルでしか考えてない俺が無知でした

583 :デフォルトの名無しさん:2014/02/26(水) 14:33:40.76 .net
HaskellやC言語が早いのでなく、コンパイラが早いだけ。
JavaScriptでHaskellやC言語のインタプリタ作れば遅い。

584 :デフォルトの名無しさん:2014/02/26(水) 14:50:21.67 .net
M$の吐いたコードよりv8の方が速いからな

585 :デフォルトの名無しさん:2014/03/05(水) 01:26:31.10 .net
pyramidよりもbottleよりも生PHPが速いのならwebサイトにPythonを使うメリットを感じないのですが、なぜ移行する人が多いのでしょうか。

1.phpのフレームワークよりはpythonのフレームワークの方が速いから。

2.webでもpythonを使っていたい。

こんな理由を想像してみました。
実際の意見が知りたいです。

586 :デフォルトの名無しさん:2014/03/05(水) 01:59:40.37 .net
PHPの文字連結は「.」でやるという話を聞いてなんて複雑怪奇な言語なんだと思ったあの日

587 :デフォルトの名無しさん:2014/03/05(水) 02:11:35.95 .net
>>585
データマイニング用のツールを使いたい
PHPでサーバー側のプログラムを書きたくない

588 :デフォルトの名無しさん:2014/03/05(水) 02:13:17.05 .net
>>586
Gnuplotか何か別の言語でも、.を文字連結に使っていたよ

589 :デフォルトの名無しさん:2014/03/05(水) 11:31:53.58 .net
>>585
1はない

pythonのが堅牢だからでないか?

590 :デフォルトの名無しさん:2014/03/06(木) 11:13:17.41 .net
>>586
それPerl由来ですし

591 :デフォルトの名無しさん:2014/03/06(木) 19:16:37.74 .net
+でやるより文字列連結を明示できて良いと思う

592 :デフォルトの名無しさん:2014/03/06(木) 20:46:44.01 .net
>>591
"5" - 2 // 3
"5" + 2 // "52"

こんなJavaScriptは嫌いだ

593 :デフォルトの名無しさん:2014/03/09(日) 14:45:49.46 .net
現在プログラム板のID制導入の投票を実施中です
よろしくお願いします

プログラム板 強制ID制導入に関する投票スレ
http://kohada.2ch.net/test/read.cgi/vote/1394290844/

594 :デフォルトの名無しさん:2014/03/10(月) 02:52:49.63 .net
>>593


595 :デフォルトの名無しさん:2014/03/10(月) 15:41:25.96 .net
質問スレの回答する側が
http://kohada.2ch.net/test/read.cgi/php/1390166591/497
>saltが判明していれば、saltが無いのと同じ。
のレベルなこと
こうやって、だめなサイトが構築され、だめなブログ記事が書かれ、だめな知識が継承されていく
もう伝統芸

596 :デフォルトの名無しさん:2014/03/10(月) 17:23:44.72 .net
>>595
他スレの一部を転載するな
ブルートフォースアタックに関しての話だろ、あってるよ

597 :デフォルトの名無しさん:2014/03/11(火) 08:28:13.57 .net
PHPerにジェネレーターを使えてる奴いるのかね?

598 :デフォルトの名無しさん:2014/03/11(火) 09:02:01.60 .net
>>596
元をはっきりさせた上で使うのは、引用っていうんやで

599 :デフォルトの名無しさん:2014/03/11(火) 21:25:39.06 .net
あのフレームワークが速い!爆速!とか煽り文句書いてるけど、
単にコンドームは薄い方が気持ち良いってだけ?

600 :デフォルトの名無しさん:2014/03/12(水) 01:47:49.84 ID:4zZOK386.net
その理屈なら生最強だがそうはなってない
フレームワークというコンドームに求められるのは薄さより安心感的なものなんだろうな
俺俺フレームワークなんてまるで外出しテクを競う愚行というところか

601 :デフォルトの名無しさん:2014/03/12(水) 05:09:22.10 ID:3SicOySt.net
__callが威力でかすぎて他の言語使える気がしない

602 :デフォルトの名無しさん:2014/03/12(水) 05:10:20.73 ID:3SicOySt.net
今気付いたが強制ID始まったか、よかったよかった

603 :デフォルトの名無しさん:2014/03/13(木) 01:10:38.13 ID:1g7vjGnB.net
初心者を脱するためのコラムにしか思えないものが
上級者になるためのコラムとは、さすがPHPerクォリティ
http://resocia.jp/column/368/

604 :デフォルトの名無しさん:2014/03/13(木) 01:35:34.90 ID:AIWZ4REO.net
ざーっと読んで見たけど、「上級者になるために知っておきたいこと」って題ならこんな入り口内容でもいいんじゃねーの
「これを読めばあなたも上級者!」なら同じ感想だけどさ
言及弱くて、よくて「そもそもSPLとかさー」、とかの談義が始まりゃマシ程度のレスだな
ミスリード狙いっぽく読めるのがなんかどうもな

605 :デフォルトの名無しさん:2014/03/13(木) 09:11:21.29 ID:LTbtGzLp.net
>>603
結局ひねくれて見えるんだよな、この手の記事

606 :デフォルトの名無しさん:2014/03/13(木) 10:24:05.81 ID:1g7vjGnB.net
>>603
そこのコラムのもう一人の執筆者の肩書きが

PHP技術者認定機構 理事長
Rails技術者認定試験運営委員会 委員長

同じ穴か

607 :デフォルトの名無しさん:2014/03/13(木) 18:45:09.88 ID:qaG+7LaQ.net
>>603
PythonやRubyを仕事で使うのを諦めた層は、そんな糞コラム読まないだろ
田舎零細企業でAccessやExcelを弄ってる40歳以上を想定してるはず

608 :デフォルトの名無しさん:2014/03/25(火) 09:02:21.24 ID:UiDCLV+E.net
>>1 だって、作者自身がそう言ってたでしょ? 仕事やっつけのためだけに作ったって。

609 :デフォルトの名無しさん:2014/03/31(月) 17:25:09.15 ID:WQVzru6S.net
ttp://fc2information.blog.fc2.com/blog-entry-1354.html
あれテストがない?と思ったらStaticまみれワロタ

610 :デフォルトの名無しさん:2014/04/09(水) 12:21:49.63 ID:5hcMVv4L.net
PHP最近勉強し始めたんだけどHTMLコードって<?PHP?>の外に書くべきか中に書くべきか迷う
視認しやすさは絶対外に書いたほうだと思うんだけどいろんなプログラムのソース見てると
$header = <<< HTML 〜みたいなことして最期にechoしてるのが結構あったので気になった
実際どっちがいいの?

611 :デフォルトの名無しさん:2014/04/09(水) 18:03:12.55 ID:sLXa1YUE.net
マルチポスト乙

612 :デフォルトの名無しさん:2014/04/12(土) 16:17:32.58 ID:RuY08Pck.net
PHPが駄目言語であるかの様なデタラメを流布する
目的のスレがかえってPHPが優れている言語である
ことを証明してしまった。
糸冬

613 :デフォルトの名無しさん:2014/04/15(火) 18:53:44.51 ID:TTuLgdjjE
PHPはゴミwwwwwwwwww

ゴミゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwww

ごみwwwwwwwwwwwwwww

614 :デフォルトの名無しさん:2014/04/20(日) 22:28:50.63 ID:6zjHScac.net
aptanaっていうIDE使ってるんだけど、
pearライブラリーのコードアシストを出すには何か設定が必要なんですか?
それともドキュメント見ながらメソッド打たなきゃいけないんですか?

OSはwin8です。

615 :デフォルトの名無しさん:2014/05/31(土) 09:21:39.25 ID:1YpY4EUA.net
なんでphpだけ専用スレないの?

616 :デフォルトの名無しさん:2014/05/31(土) 11:59:32.10 ID:YgxuCMdP.net
php板はあるのにな

617 :デフォルトの名無しさん:2014/06/06(金) 02:56:12.95 ID:UgiouvQd.net
PHPも嫌いじゃないけどCakeだけは勘弁して

618 :デフォルトの名無しさん:2014/06/22(日) 23:28:23.75 ID:I40vD2Or.net
PHPでJava並にオブジェクト指向で書いたら、
すごく重いのですが、仕様ですか?

619 :デフォルトの名無しさん:2014/06/22(日) 23:40:50.98 ID:dgCxS7of.net
それにはまず、重いという証拠を
だしてください。

話はそれからです。

620 :デフォルトの名無しさん:2014/06/23(月) 01:47:44.99 ID:x59p+xZh.net
>>618
PHPがJAVAより遅いのは仕様です
PHPで単にオブジェクト思考にしたら遅くなったのだとしたら、あなたの能力の問題です

621 :デフォルトの名無しさん:2014/06/23(月) 11:36:05.41 ID:2cPnnJRd.net
>>618
PHPが遅いというより、Javaが速いんだと思う。

ベンチマークによるけど概ねこんな感じ
Javaなどのコンパイラ系は速くて、スクリプト言語は軒並み遅い

http://d.hatena.ne.jp/kwatch/20100430/1272585083
> これを見れば、最速な言語は C/C++ であり、Java や Haskell や OCaml といった
> 静的な言語は軒並み上位に登場する。これに対し、Ruby や Python や
> PHP といったスクリプトは全部下のほう (つまり遅い)。

http://maplesystems.co.jp/blog/all/programming/2015/
> Java > C >>>> PHP > Python >> Ruby

http://akiniwa.hatenablog.jp/entry/2013/09/28/142947
> 結果をまとめると
>
> 言語 実行時間
> c 0.2741[s]
> java 1.7661[s]
> perl 11.9690[s]
> ruby 7.8373[s]
> python 12.2507[s]

http://www.akazah.com/lang-run/
> Cは当然一番早いがJavaはほとんど変わらない。
> Scalaは少し遅いけれど、その次のLuaとは一桁違う。
> ここまでコンパイル系。
> スクリプト系ではLuaが一番。
> その次のJRubyとはほぼ互角。
> PHPも案外早くて、Rubyがその次。
> Perlはとても遅い・・・。

622 :デフォルトの名無しさん:2014/06/25(水) 10:00:19.03 ID:uLaDf7W/.net
>>621
> http://maplesystems.co.jp/blog/all/programming/2015/
> > Java > C >>>> PHP > Python >> Ruby

の部分、Cの速度は、gcc に最適化オプションをつけずにコンパイルした
255 msの場合で、最適化オプション -o をつけると 58ms となり、
Java の181ms よりも 3.12 倍も高速になる、とのことだよ。

623 :デフォルトの名無しさん:2014/06/25(水) 10:05:02.39 ID:uLaDf7W/.net
なお、Java は整数演算は C/C++ の 1/3 程度の速度を持っているが、
メモリ確保が入ってくるととたんに性能が落ちる。

経験的には、同じ容量を確保した場合、C/C++ の 100倍〜1000倍
程度メモリを食うらしい。

さらに、Garbage Collection が不定期に実行されるので
スクロール中にガタガタと止まったりする。
無駄に多くメモリを消費するのも、GC の頻度が高くなる最大の原因
になってもいる。

Javaアプリの起動が遅いのは、アプリの初期化時にメモリ確保を一気に行うときに時間がかかって
居ることが主な原因。

624 :デフォルトの名無しさん:2014/06/25(水) 10:38:23.32 ID:uLaDf7W/.net
訂正:

>経験的には、同じ容量を確保した場合、C/C++ の 100倍〜1000倍
>程度メモリを食うらしい。

ここは嘘だった。実際は、Javaの参照(ポインタ)は、C/C++よりも
ずっと容量を食うらしく、参照によってリンクを張った構造を
作ると C/C++ のポインタで同様の事を行った場合に比べて、
100〜1000倍のメモリ容量を食う。

625 :デフォルトの名無しさん:2014/06/25(水) 16:53:28.76 ID:uLaDf7W/.net
なぜJavaがメモリを大量消費するかについて、自分なりの見解を述べ
よう。

・参照の変数の内部表現に必要なバイト数がC/C++のポインタに比べて
 大きい。ただし、大きいといっても、これだけで100〜1000倍にも
 なる理由の説明にはなりそうにはない。

・C/C++ では、オブジェクトを構造体やクラスの中に参照やポインタ
 を解さずにそのまま埋め込むことが出来たが、Javaでは必ず参照
 となるため、必ずヒープ(ストア)領域から new する必要があり、
 これが、複数のメンバを持つ一般的な構造体では意外と大量の
 メモリを食ってしまう可能性。 これについても、C/C++の経験
 では、「大した増加にはならない」と予想されるが・・・。

626 :デフォルトの名無しさん:2014/06/26(木) 07:46:08.82 ID:H9MJZ09s.net
【追加】

・クラス・オブジェクトのサイズがとても大きい可能性。
 例えば、intのメンバ変数1つだけを持つC/C++の構造体のサイズは4バイト
 だが、Javaのクラスで同様のものを作ると、4バイト+100バイト程度に
 なっているのかもしれない。追加された「100バイト」の原因として
 考えられるのは、Java のあらゆるクラスのルート・クラスの「Object」
 のサイズ + クラスの継承時に付く何らかのデータやパディング。

627 :デフォルトの名無しさん:2014/06/26(木) 07:56:39.75 ID:lRUtVmtM.net
いつからアンチJAVAスレになった

628 :デフォルトの名無しさん:2014/06/28(土) 17:01:39.43 ID:A3rASK73.net
PHPって配列変数のシンタックスシュガー付いたんだ
あとは文字列操作をメソッド化してほしい

629 :デフォルトの名無しさん:2014/07/01(火) 21:05:42.50 ID:GeIQQ2aO.net
見解とか妄想してないで知りたかったらソース読めよw

630 :デフォルトの名無しさん:2014/07/02(水) 16:21:25.63 ID:fvFaAf5b.net
>>629
誰に言ってるの?

631 :デフォルトの名無しさん:2014/07/02(水) 16:41:49.10 ID:UOkv1KGW.net
なるべく他の処理を止めないように、
今では、JavaのGCは一度にやらず、
10msごとに小刻みに行う

また、使うメモリの量が増えると、
GCにかかる時間も増える

632 :デフォルトの名無しさん:2014/07/05(土) 10:04:44.86 ID:e1V2szvr.net
>>631
経験的には、Javaは、C/C++ の 100〜1000倍のメモリを食う。
これは、Swingなどの動的ライブラリの大きさが大きいというだけではなく、
アプリ独自のデータに対しての話。C++なら300Kバイトもかかるかかからないか
のような場合でも、Javaでは、150MBくらい消費した。
つまり、500倍程度。

633 :デフォルトの名無しさん:2014/07/05(土) 11:38:22.81 ID:mAp+Ajil.net
経験的()

634 :デフォルトの名無しさん:2014/07/05(土) 12:19:36.06 ID:atmyUkOz.net
いつからアンチJAVAスレになった

他の言語を叩くやつって何か抜けてる奴が多い

635 :デフォルトの名無しさん:2014/07/05(土) 16:54:43.41 ID:e1V2szvr.net
>>634
話の流れじゃん。
頭が固い人には創造的結果は出来ないよ。

636 :デフォルトの名無しさん:2014/07/05(土) 16:58:20.65 ID:e1V2szvr.net
>>633
嘘だと思うなら実測してみなよ。

637 :デフォルトの名無しさん:2014/07/05(土) 17:48:34.11 ID:DUJJhZn/.net
>>632
それは嘘だと思います。

実測データ出せますか?

638 :デフォルトの名無しさん:2014/07/05(土) 18:19:52.16 ID:e1V2szvr.net
>>637
うーん。絶対間違い無い、と確信できるほどの厳密な調査はして無い。
しかし、

・見た目の上では自作アプリは設計通りの動作をしていること。
 今議題にあがっているデータは見た目でデータ構造が一目瞭然
 になるような物で、間違っていれば分かると思えること。

・メモリ使用量を見ると(たしか)150MB 程度で、それが原因で GC
 が高頻度で起きており、JVMのメモリ量を変更することで大幅な
 GC頻度の減少が見られた事。

・もし、同じことを C/C++ でやれば、ほぼ 200KB 程度であると予測
 出来るし、使用容量の見積もりはそれほど難しくないように思えた
 事。もし多めに見積もっても、1MB は超えないであろうと思える。

639 :デフォルトの名無しさん:2014/07/05(土) 18:30:06.21 ID:lG7Vks4t.net
メモリ使用って、どうやって調べてんの
タスクマネージャならなんの値をメモリって言ってる?
ランタイムが大きい分メモリを消費するのは当たり前なんだが

640 :デフォルトの名無しさん:2014/07/05(土) 18:40:42.15 ID:e1V2szvr.net
>>639
そのとき色々確認したが、大量のメモリを使っていることは確実に
思えた。

641 :デフォルトの名無しさん:2014/07/05(土) 18:45:33.74 ID:e1V2szvr.net
あと、本質的にはランタイムの大きさではなかった。
なぜなら、オブジェクトの作成を、画面で見えている部分だけに
限定するように修正してみたら大幅に使用量が改善したから。
もしC++だったら、そのような工夫をしなくても余裕だったのが、
プログラムの手間や複雑さが増大してしまったが。

642 :デフォルトの名無しさん:2014/07/05(土) 18:49:46.37 ID:pJl1PMF0.net
嘘こけ

643 :デフォルトの名無しさん:2014/07/05(土) 19:00:25.28 ID:e1V2szvr.net
>>642
嘘をついているつもりは無い。
もしかして、試したこと無いで言ってる?

Javaで実際的なアプリを作った経験が有る人は少数派だろうけど、
自分はその「少数派」に当たるかも。

そもそもやってみたことが無い人が多い中で、自分はやってみた
結果で話しているよ。

644 :デフォルトの名無しさん:2014/07/05(土) 19:12:35.24 ID:5Xg0uObF.net
Javaは仮装マシン動かすからな

645 :デフォルトの名無しさん:2014/07/05(土) 19:30:12.00 ID:DUJJhZn/.net
+αが必要なだけで、
一つのオブジェクトあたりの
メモリ使用量は変わらないんだよな。

646 :デフォルトの名無しさん:2014/07/05(土) 19:34:53.19 ID:3zLRhjeW.net
>>625-626
を読んでみた?

647 :デフォルトの名無しさん:2014/07/05(土) 19:37:24.83 ID:1SwtShn+.net
何でまだJavaの話してんの?

648 :デフォルトの名無しさん:2014/07/05(土) 19:51:45.11 ID:3zLRhjeW.net
>>647
なぜ、そんな了見が狭いの?

649 :デフォルトの名無しさん:2014/07/05(土) 20:30:06.08 ID:pJl1PMF0.net
>>643
試したことなく適当こいてるのはお前だろ

650 :デフォルトの名無しさん:2014/07/05(土) 20:31:59.12 ID:3zLRhjeW.net
>>649
いや、実際的なアプリ製作での実体験に基づいているよ。

651 :デフォルトの名無しさん:2014/07/05(土) 20:33:00.76 ID:3zLRhjeW.net
まあいいや、信用できないと思うんなら、無視してもいいよ。
こんなんで訴訟なんて起こされても困るし。

652 :デフォルトの名無しさん:2014/07/05(土) 20:39:10.12 ID:pJl1PMF0.net
>>651
平気で嘘を吐いても良心が痛まない人って居るよね

653 :デフォルトの名無しさん:2014/07/05(土) 20:42:31.51 ID:zqYTQuxN.net
"思う""予想できる""多分"

654 :デフォルトの名無しさん:2014/07/05(土) 21:57:34.45 ID:lG7Vks4t.net
VM上で動くんだからメモリ使用量が不利なのは当たり前

単に作りが悪くてメモリリークしてるとか、GCの効率を妨害してるとか、そういうことを検証しないで経験とかで言われてもね

> 考えられるのは、Java のあらゆるクラスのルート・クラスの「Object」
> のサイズ + クラスの継承時に付く何らかのデータやパディング。
Objectのサイズってなに?仮装関数テーブルとか?それがインスタンスごと複製されちゃうのか?

655 :デフォルトの名無しさん:2014/07/05(土) 22:38:24.14 ID:rZ0JUFAI.net
そもそも
> Javaで実際的なアプリを作った経験が有る人は少数派だろうけど、
> 自分はその「少数派」に当たるかも。
とか言ってる時点でお察し。
Javaで実用アプリ書くなんて珍しくもなんともないだろ。こいつの視野が狭いことが予想されるし、どうして150MBも食うのかもろくに分析してないんだろうな。
てかC++で書いて計測したわけじゃなくてC++の方は予測なんだろ?
もしかして、試したこと無いで言ってる?w

656 :デフォルトの名無しさん:2014/07/06(日) 00:30:25.23 ID:QUzsj6Vp.net
なぜJavaのメモリの話になっているのか謎だが、
Javaのオブジェクトは.classやらhashCodeやらのヘッダ情報で必ず8バイト食うので、
メモリ使用量で不利になるとの情報あり。これだからプリミティブ型とかでみみっちい事しなきゃならない。
しかし結局オートボクシングのおかげで無駄にオブジェクトが生成されるわけだが
Javaオブジェクトのメモリ構造
http://www.codeinstructions.com/2008/12/java-objects-memory-structure.html

657 :デフォルトの名無しさん:2014/07/06(日) 04:16:12.79 ID:XAawtdmz.net
今時のパソコンのメモリ量で気にすることじゃないだろ

658 :デフォルトの名無しさん:2014/07/06(日) 07:41:01.36 ID:dl4OC7T3.net
>>654
>Objectのサイズってなに?仮装関数テーブルとか?それがインスタンスごと複製されちゃうのか?

Java は、どんなクラスも、基本基底クラスなるものがあって、それが
「Object」クラス。例えば、自前で
class CMyData {
 int x;
}

というクラスを作ったとしても、CMyData は、Object クラスを継承して
しまう。なので、少なくとも、
sizeof(CMyData) >= sizeof(Object) + sizeof(int)
となる。

659 :デフォルトの名無しさん:2014/07/06(日) 07:48:52.93 ID:dl4OC7T3.net
>>655
まあ、一般プログラマの「予想」と、オイラの「予想」の予測精度の高さ
は違うんだけど、それは匿名掲示板では伝えることが出来ないから、
なんとでも言えてしまうよ。

660 :デフォルトの名無しさん:2014/07/06(日) 07:57:56.20 ID:dl4OC7T3.net
>>656
intメンバだけを持つクラスでも、暗黙のHEADERの8バイトの他に、
Objectがnewされて、その参照が追加される。
しかも、boolean (1bit)には、8バイトアラインが付き、8バイトも消費
される。byteも4byteアラインが付く。

これだけでも、C++より遥かにメモリ容量を食っている事が分かる。
実際はもっと凄いことになっているよ。

661 :デフォルトの名無しさん:2014/07/06(日) 08:20:21.04 ID:dl4OC7T3.net
>>654
>単に作りが悪くてメモリリークしてるとか、GCの効率を妨害してるとか、
>そういうことを検証しないで経験とかで言われてもね

オイラは、実際に、最高レベルのプログラマだと評価が有る。
めったなことでは間違わないよ。

662 :デフォルトの名無しさん:2014/07/06(日) 09:46:48.12 ID:HgdZEROT.net
JavaとC++じゃ利用シーンが違うだろ。
てかいい加減スレ違いだからやめろ。レベルな高いプログラマならこんなとこじゃ無くて、ブログにでも書けや

663 :デフォルトの名無しさん:2014/07/06(日) 10:19:41.20 ID:lHEQcTu3.net
察してあげてください

最高レベルのプログラマは間違えないのです

664 :デフォルトの名無しさん:2014/07/06(日) 10:25:13.41 ID:ZmPBc803.net
節子それ人間やない機械や

665 :デフォルトの名無しさん:2014/07/06(日) 14:55:58.47 ID:dl4OC7T3.net
100〜1000倍というのはひょっとしたら間違っているかも知れない事は
認めよう。しかし、数十倍であることは、まず間違いない。

666 :デフォルトの名無しさん:2014/07/06(日) 15:01:09.07 ID:ikMLm2G0.net
ところで >>622 のリンク先に一応突っ込んどくと、

gcc で -O3 付けたら、そもそも sumup は一度も呼ばれない。
sumup は副作用のない関数で戻り値が代入される result もローカル変数だろ。
その result は main の後の処理で使われないだろ。

だから gcc の最適化器は main 関数の中にある for 自体を丸ごと全部消す。
printf して終わるだけのバイナリができる。

667 :デフォルトの名無しさん:2014/07/06(日) 16:13:41.57 ID:c4JqBC4F.net
>>661
最高レベルなら予想とかじゃなくてOpenJVM解析して正しい結果出してくれる?

というか、ミスをしないとか言っちゃってる地点でたいしたやつじゃないか

668 :デフォルトの名無しさん:2014/07/06(日) 16:18:11.30 ID:dl4OC7T3.net
>>667
そんな暇じゃない。

669 :デフォルトの名無しさん:2014/07/06(日) 16:20:59.87 ID:JKxWpx0K.net
同じ物同士の比較である限りは
数十倍であることがまず間違いないのなら
100〜1000倍というのはまず間違っているということになるわけだが

670 :デフォルトの名無しさん:2014/07/06(日) 16:22:15.18 ID:ZmPBc803.net
数十倍と1000倍って凄い差ですね

671 :デフォルトの名無しさん:2014/07/06(日) 16:22:40.22 ID:dl4OC7T3.net
ああ、「少なく見積もっても数十倍であることがまず間違いない」
の書き間違いだった。すまん。

672 :デフォルトの名無しさん:2014/07/06(日) 16:31:50.40 ID:tlPqhdeM.net
そんなコロコロ発言が変わる人の言うことなんて信用できるわけがない

673 :デフォルトの名無しさん:2014/07/06(日) 16:36:59.55 ID:dl4OC7T3.net
信用しない人は信用しなくてもいい。
じゃあ、Javaでも「C++ で必用な容量とほぼ同じ」と信じていてください。
一向に構いません。そう信じて損するのもあなた、得するのもあなたです
から。

674 :デフォルトの名無しさん:2014/07/06(日) 16:42:00.47 ID:ZmPBc803.net
流石に苦しい
JavaがC++に比べればかなりの容量を食うのは皆知ってるだろ
君が適当に出した100〜1000倍って数値とその後のレスの内容が怪しいと突っ込まれただけ
最初から数十倍ならここまで反応はなかったよ

675 :デフォルトの名無しさん:2014/07/06(日) 16:44:46.61 ID:dl4OC7T3.net
>>674
>JavaがC++に比べればかなりの容量を食うのは皆知ってるだろ

それは発耳。

オイラがここで言わなかったら、ほとんど誰も知らなかったと思うが。

676 :デフォルトの名無しさん:2014/07/06(日) 16:54:08.91 ID:khAlvNFC.net
容量ってメモリのことか?

5年くらい前のXNAの本で読んだ話だが、C#とC++を比較して、
CPU性能はC++の80%ほど、メモリは2倍消費するくらいを目処にするといいらしい

メモリは2倍消費するというより、仮想マシンはとりあえず2倍確保しておいて、
それをメモリプールとしてスタンバイさせておくのだろうね

677 :デフォルトの名無しさん:2014/07/06(日) 16:58:29.43 ID:ikMLm2G0.net
public class heaptest {
  public static void main(String[] args) {
    SimpleObj[] objs = new SimpleObj[100];
    for (int i = 0; i < 100; i++) {
      objs[i] = new SimpleObj();
    }
    try { Thread.sleep(180 * 1000); } catch (Exception e) {}
  }
}
class SimpleObj {
  public int i;
}

$ javac heaptest.java
$ java heaptest &
$ jmap -dump:format=b,file=heaptest.hprof <PID>
$ jhat heaptest.hprof

これで 7000 番にサーバが立つからブラウザで http://localhost:7000 を開いて見ていけば
どういうオブジェクトがどれだけメモリを使ってるか分かる。
SimpleObj 1 個で 20 バイト。

678 :デフォルトの名無しさん:2014/07/06(日) 16:59:22.11 ID:dl4OC7T3.net
>>676
Java のメモリ消費量は、C++ の2倍程度などという生易しいものではない。

679 :デフォルトの名無しさん:2014/07/06(日) 17:00:18.62 ID:ikMLm2G0.net
<PID> のところは ps でプロセス ID を調べて入力する。
動いているプロセスに attach してダンプを取る仕組みだから Thread.sleep で終わらせないようにしているわけ。

680 :デフォルトの名無しさん:2014/07/06(日) 17:03:28.26 ID:dl4OC7T3.net
スマンが、今はテストするほど暇が無いので、おいらは何もしない。

681 :デフォルトの名無しさん:2014/07/06(日) 17:06:01.78 ID:ikMLm2G0.net
JVM はオブジェクトの representation については特に仕様で決まってるわけじゃないのか。知らなかった
http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-2.html#jvms-2.7

20バイトってのは64bit版のOpenJDK1.7調べ

682 :デフォルトの名無しさん:2014/07/06(日) 17:07:27.69 ID:tlPqhdeM.net
即レスするほど張り付いてID赤色の暇人がなんか言ってるよ

683 :デフォルトの名無しさん:2014/07/06(日) 17:10:54.74 ID:dl4OC7T3.net
考え事してる合間に投稿してる。
今は考える事こそが自分のやるべきことだから。

684 :デフォルトの名無しさん:2014/07/06(日) 17:20:22.01 ID:tlPqhdeM.net
「下手の考え休むに似たり」とはこの事だなw

685 :デフォルトの名無しさん:2014/07/06(日) 17:23:05.74 ID:dl4OC7T3.net
なんのこっちゃ。

686 :デフォルトの名無しさん:2014/07/06(日) 17:34:37.76 ID:c4JqBC4F.net
>>675
さすがに知ってるわ
GCもないC++の方が総じてメモリとか速度は優れてるに決まってる

ところで、JavaはC#みたいに値型導入しないの?

687 :デフォルトの名無しさん:2014/07/06(日) 17:45:08.97 ID:dl4OC7T3.net
>>686
メモリを数十倍も食うのをどこで知ったの?

WebPageがあるなら、URLをどうぞ:

688 :デフォルトの名無しさん:2014/07/06(日) 17:53:50.20 ID:ikMLm2G0.net
ソース追っかけてみたけど、これの oopDesc にある _mark と _metadata が 8*2 で 16 バイト分なのかな。
http://hg.openjdk.java.net/jdk7/jdk7/hotspot/file/c7f3d0b4570f/src/share/vm/oops/oop.hpp

PHP しか使わないから Java のことは全然わからん。
誰か詳しい人教えてくれ。

689 :デフォルトの名無しさん:2014/07/06(日) 18:15:07.74 ID:dl4OC7T3.net
当然のことだけど、クラスの使用バイト数だけを調べても駄目なのは
分かっているよね? さらに、参照の表面的なバイト数だけでも駄目。

参照が表面的に 4 バイトしか使ってない様に見えても、ユーザー
ランドでは見えない関連データが沢山存在している可能性が有る。
例えば、GCの「ウォーク」を行うためのリンクポインタなど。

また、new CMyData の場合、CMyData の内部表現のサイズが
分かっただけでは意味が無いことも分かってる?

690 :デフォルトの名無しさん:2014/07/06(日) 18:30:07.48 ID:c4JqBC4F.net
手近なところだとWikipediaとか
http://ja.m.wikipedia.org/wiki/Java%E3%81%AE%E6%80%A7%E8%83%BD
詳しくは書いてないけど、何と無くとか、経験的にとか、可能性とかいうのよりはマシ

ウォークっての検索したけどうまくでない
なんか別の言い方ある?

691 :デフォルトの名無しさん:2014/07/06(日) 18:47:01.26 ID:dl4OC7T3.net
このようなものを調査するには、ソースを見るより実験して、
OS標準のタスクマネージャーなどでメモリ使用量を見るのが最も
正確。Javaの付属ツールのようなものが表示するのが実メモリ使用量
だとは限らない。個々のオブジェクトのサイズなどを表示しても
余り意味は無い。JVM全体でどれだけ使用しているかが大事。

Javaのクラスライブラリの初期メモリ使用量 + オブジェクトの確保に
伴うメモリ使用量

となるので、オブジェクトを増やしたときの変化の様子を見ると良い。

692 :デフォルトの名無しさん:2014/07/06(日) 18:54:07.35 ID:8H24GUT0.net
> OS標準のタスクマネージャーなどでメモリ使用量を見るのが最も正確。

それがそうでもないんだよな。

たとえばアプリってのは小さいメモリ、1KB未満とかね。
そういったサイズを何個も生成する。

でも、その小さい単位毎にOSからメモリ要求したら
パフォーマンスが悪い。だからある程度固まったブロックで
メモリ要求をする。

つまりアプリで使用しているが、実際には空きであることがおおいんだよ。
でもアプリ内の空きメモリはOSからみれば使用中扱い。

だから実際に使用しているメモリとタスクマネージャのメモリをみても
正確なことはわからないんだよね。

だからJavaは専用のツールを用意している。

693 :デフォルトの名無しさん:2014/07/06(日) 19:07:44.59 ID:ikMLm2G0.net
>>689 >>691
大変参考になりました。感謝します。

694 :デフォルトの名無しさん:2014/07/06(日) 19:30:04.71 ID:DB81ilAH.net
いい加減Javaの話はやめろ。プログラミング言語は読めても、日本語は理解できないのか?
せめてPHPのメモリの話をしろ

695 :デフォルトの名無しさん:2014/07/07(月) 01:38:10.57 ID:WuDwAVLf.net
最高のプログラマさんは
GC制御したことないのだろうな
メモリ消費量が多いプログラムもしたことがないのだろうな

696 :デフォルトの名無しさん:2014/07/07(月) 07:21:58.57 ID:X/YVfDYM.net
>>692
システムの負担からすると、OSから見てのメモリ使用量の方が大事。

697 :デフォルトの名無しさん:2014/07/07(月) 07:42:20.97 ID:X/YVfDYM.net
>>692
例えば50MBしか使ってないのに、タスクマネージャーでは150MBと表示される
という事なの? じゃあ、残りの 100MB はいつ使ってくれるの?

メモリブロック間の「スキマ」の事だとしたら、そういう無駄をなくす
事が GC の役割じゃないの?

GC などない C++ だと 200KB で済むんだよ。

698 :デフォルトの名無しさん:2014/07/07(月) 08:05:00.00 ID:bzyQG1wL.net
このスレ荒らしが住み着いてて機能してねーな

699 :デフォルトの名無しさん:2014/07/07(月) 08:50:56.08 ID:n46FrZRh.net
ならWebProgでやるかい?

700 :デフォルトの名無しさん:2014/07/07(月) 09:16:04.79 ID:XWsYxeAh.net
      r;ァ'N;:::::::::::::,ィ/      >::::::::::ヽ
.      〃  ヽル1'´        ∠:::::::::::::::::i
       i′  ___, - ,. = -一   ̄l:::::::::::::::l
.      ! , -==、´r'          l::::::/,ニ.ヽ
      l        _,, -‐''二ゝ  l::::l f゙ヽ |、 ここはお前の日記帳じゃねえんだ
        レー-- 、ヽヾニ-ァ,ニ;=、_   !:::l ) } ト
       ヾ¨'7"ry、`   ー゙='ニ,,,`    }::ヽ(ノ  チラシの裏にでも書いてろ
:ーゝヽ、     !´ " ̄ 'l,;;;;,,,.、       ,i:::::::ミ
::::::::::::::::ヽ.-‐ ト、 r'_{   __)`ニゝ、  ,,iリ::::::::ミ
::::::::::::::::::::Vi/l:::V'´;ッ`ニ´ー-ッ-,、:::::`"::::::::::::::;゙ ,  な!
:::::::::::::::::::::::::N. ゙、::::ヾ,.`二ニ´∠,,.i::::::::::::::::::::///
:::::::::::::::::::::::::::::l ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /

701 :デフォルトの名無しさん:2014/07/08(火) 00:08:37.76 ID:yingp3+3.net
>>697
解放されたメモリはすぐOSにはかえさず、また確保があったときにそこから割り当てる

>メモリブロック間の「スキマ」事だとしたら、そういう無駄をなくす事が GC の役割じゃないの?
ちがう。GCの役割は無駄をなくすことではなくメモリ管理の手間を減らすこと
むしろメモリに余裕があれば重たい解放処理はあまり行われない

>GC などない C++ だと 200KB で済むんだよ。
管理の手間を代償に速度と低メモリを選択した言語なんだから少ないのは当たり前

そもそも200KBというのはなんの数値だ?
タスクマネージャのどの数値のことを言っているのかわからないとなにも言えん
PrivateBytesはメモ帳ですら数MBいっているのにそれよりシンプルなソフトなのか

702 :デフォルトの名無しさん:2014/07/08(火) 02:15:19.99 ID:CfgSejZA.net
class A {
public $i;
}

PHPでこれ一個newしたら400バイト以上使う

703 :デフォルトの名無しさん:2014/07/08(火) 03:52:52.21 ID:M37XHoid.net
>>702
そういう検証しやすいネタはいいね。

こういうコードを書いて5秒後にpsコマンドでVSZとRSSがどれだけ増えるかやってみたよ。
<?php
class A {
public $i;
}

sleep(5);
for($i = 0; $i < $argv[1]; $i++) {
$o[$i] = new A();
}
sleep(5);

new 1個・・・ VSZ:+0KB  RSS:+0KB
new 10個・・・ VSZ:+0KB  RSS:+0KB
new 100個・・・ VSZ:+0KB  RSS:+0KB
new 200個・・・ VSZ:+260KB  RSS:+0KB
new 500個・・・ VSZ:+260KB  RSS:+0KB
new 700個・・・ VSZ:+260KB  RSS:+260KB
new 1000個・・・ VSZ:+260KB  RSS:+260KB
new 1020個・・・ VSZ:+260KB  RSS:+260KB
new 1023個・・・ VSZ:+260KB  RSS:+260KB
new 1024個・・・ VSZ:+520KB  RSS:+260KB
new 1050個・・・ VSZ:+520KB  RSS:+260KB
new 1500個・・・ VSZ:+520KB  RSS:+524KB

切りが良い数字で増えたね。このことから1個ごとにメモリが増えるわけじゃなく、
ある単位ごとで一気にメモリが増えている。

ここから計算するとオブジェクト1個あたり260バイトのようだ。

704 :デフォルトの名無しさん:2014/07/08(火) 03:58:15.34 ID:M37XHoid.net
さてここで、疑問がある。

class A {
public $i;
public $j;
public $k;
public $l;
public $m;
public $n;
}

これだと、new 1023個した場合どうなるか?である。

$i一個のとき1023個で260KB、1024個だと520KBだから、
$i 〜 $n の6個だと、1023個newしたら260KBを超えるだろうと、
単純に考える。

だけど答えは260KBのままだった。

つまり、話はそんなに単純じゃないんだよね。
オブジェクト1個であっても、そこで使用しているバイト数の分確保しているのではなく、
ある程度のブロックで確保していると考えられる。

705 :デフォルトの名無しさん:2014/07/08(火) 04:14:03.91 ID:M37XHoid.net
やってみたら、$i〜$pの8個の変数まで増やしても
260KBのままだった。

単純計算だが、
class A {
public $i;
}
だと1個あたり260バイトだが、実際にはパディング領域があるからで、
その内訳は多くても一つの変数あたり約32バイトだろう。
実際にはクラス定義にもう少しメモリをしようてい、
変数自体は1つ16バイトとかな?

706 :デフォルトの名無しさん:2014/07/08(火) 04:23:41.10 ID:M37XHoid.net
念の為に言っておくが、メモリも断片化する。

たとえば1KBのメモリを100個確保して、
偶数個目のメモリを開放すると見事に
1KBごとに使用している・していないという形に断片化する。

OSからメモリを確保する時に、ある程度のブロック単位で
確保するのは、この断片化をなるべく起こらないようにするため。

メモリを確保する時に使用していない領域があるのが嫌だと思うかもしれないが
それはパフォーマンスを上げるために必要なことで、それはC言語のmallocでも
やっていることなんだよ。

メモリプールとか断片化という単語でググればわかるよ。

707 :デフォルトの名無しさん:2014/07/08(火) 05:32:34.81 ID:eSEnngJC.net
気軽にHackが使えたらいいんだけどな

708 :デフォルトの名無しさん:2014/07/08(火) 07:41:22.82 ID:t74qz3XV.net
>>706
そんな当たり前のことを説明しなきゃならないほど、レベルが低いんだ。
ここの人たちは。

709 :デフォルトの名無しさん:2014/07/08(火) 09:39:09.87 ID:isXEy+iv.net
>>708
多言語叩く人なんてそんなレベル

念の為ってついてるけどな

710 :デフォルトの名無しさん:2014/07/08(火) 09:49:19.72 ID:t74qz3XV.net
>>709
いや、Javaの正しい問題点を正しく述べてべている人のことを、
中途半端なレベルの人が叩いている。

711 :デフォルトの名無しさん:2014/07/08(火) 10:39:35.41 ID:isXEy+iv.net
>>710
どっちも中途半端だろ?

712 :デフォルトの名無しさん:2014/07/08(火) 14:31:33.26 ID:t74qz3XV.net
>>711
そんなこと無い。
投稿の文書の美しさなどだけから、才能や能力を判断する無かれ。

713 :デフォルトの名無しさん:2014/07/08(火) 14:47:37.86 ID:DAN/kaNn.net
いやスレ違いのことを延々と語ってる荒らしだろ

714 :デフォルトの名無しさん:2014/07/08(火) 19:14:59.57 ID:F/+7QgrM.net
ネイティブ vs 仮想マシンGC付き言語一般のダメさ(PHP, Java, C#, etc...)になっとるな

サーブレットと比べて、PHPはCGI前提ゆえにアプリケーションスコープや
まともなstatic変数が存在しないからキャッシュを作れないところが糞だと思う
memcachedに出し入れして高速化ノウハウとか紹介されてるし

715 :デフォルトの名無しさん:2014/07/08(火) 19:35:36.20 ID:isXEy+iv.net
>>714
いつの時代の人ですか?

716 :デフォルトの名無しさん:2014/07/08(火) 21:04:49.73 ID:JciV060L.net
PHPは仮想マシンじゃなくてインタプリタだろ
C#はネイティブにもできるしな

717 :デフォルトの名無しさん:2014/07/08(火) 21:15:56.44 ID:0HE/NAtT.net
>>716
ZendのPHPはな。あとインタプリタっても、実行の度にソースコード解析してるわけじゃないぞ。
あとあとFacebookのPHP実装(HHVM)は仮想マシンだぞ。
分かってるのかもしれないが、ここまで言わにゃあ勘違いされるぞ。

718 :デフォルトの名無しさん:2014/07/08(火) 22:33:53.86 ID:F/+7QgrM.net
PHPは名前空間の\や$this->必須なのも糞いな。嫌がらせとしか思えんセンスだわ

719 :デフォルトの名無しさん:2014/07/08(火) 23:05:29.95 ID:0HE/NAtT.net
>>718
macだからバックスラッシュはそんなに嫌ではない。
$thisは面倒ではある。アロー演算子なんで余計にな

720 :デフォルトの名無しさん:2014/07/08(火) 23:05:48.32 ID:M37XHoid.net
>>718
> PHPは名前空間の\や$this->必須なのも糞いな。嫌がらせとしか思えんセンスだわ
C++を参考にしているからかな。

721 :デフォルトの名無しさん:2014/07/08(火) 23:14:17.59 ID:MFU1oOcl.net
>>718
thisが必須でないJavaの方がキモいわ。
ローカル変数とメンバ変数の違いが判らんだろ

722 :デフォルトの名無しさん:2014/07/08(火) 23:29:13.47 ID:vanWZNwy.net
>>721
つシンタックスハイライト

723 :デフォルトの名無しさん:2014/07/08(火) 23:45:49.75 ID:MFU1oOcl.net
>>721
IDEの力に頼ってる時点で駄目

724 :デフォルトの名無しさん:2014/07/08(火) 23:46:45.47 ID:MFU1oOcl.net
>>723>>722宛てな

725 :デフォルトの名無しさん:2014/07/08(火) 23:48:50.24 ID:M37XHoid.net
そのうち>>723はテキストエディタの力に
頼ってる時点でダメとかいいそうだよな。

補完するな、全てを覚えろ。みたいなw

726 :デフォルトの名無しさん:2014/07/08(火) 23:49:41.55 ID:vanWZNwy.net
>>724
シンタックスハイライトなんて、ヘボエディタでもviでもEmacsでもサポートしてんじゃん。
メモ帳でプログラミングするのかよ、ダサ

727 :デフォルトの名無しさん:2014/07/09(水) 00:10:20.28 ID:q/0HKq/r.net
シンタックスがだめならプリフィクスでも付けたら?
何とでもなるよ

728 :デフォルトの名無しさん:2014/07/09(水) 00:16:01.45 ID:Uj/pBvlL.net
プリフィクス一択

729 :デフォルトの名無しさん:2014/07/09(水) 09:51:07.32 ID:9+17vlT8.net
this.xxx = xxx;

より、

m_xxx = xxx;

の方が便利。

730 :デフォルトの名無しさん:2014/07/09(水) 12:25:57.74 ID:V4w6/u2b.net
プレフィックスはださい。特にC++は

731 :デフォルトの名無しさん:2014/07/09(水) 14:45:09.57 ID:Z9U3ERYz.net
this. と m_ は、文字数が 5 対 2 で、後者のほうが記述効率が良い。

732 :デフォルトの名無しさん:2014/07/09(水) 15:01:18.02 ID:g1gM0anc.net
m_xxx をgrep検索すると、メンバ変数定義の部分まで表示できるのに対し、
this.xxx だと表示できない。

逆に xxx を検索すると local 変数まで検索されてしまう。

733 :デフォルトの名無しさん:2014/07/09(水) 15:17:40.54 ID:6LMuMalC.net
$this->client->info = "名前:".$this->name.", "."E-mail:".$this->mail;

734 :デフォルトの名無しさん:2014/07/09(水) 15:26:51.26 ID:g1gM0anc.net
$this->client->info

こういう場合、$this->info を検索しても、メンバ変数は検索できない
んだね。

やはり、m_xxx の法が便利だ。

735 :デフォルトの名無しさん:2014/07/09(水) 15:33:49.13 ID:1SU4YkH/.net
C#ならIDEで名前ではなく、ちゃんと構文解析して探してくれるので

736 :デフォルトの名無しさん:2014/07/09(水) 15:43:24.12 ID:LA3y01hh.net
>>735
自分の好きなエディタが使えないし、コードを書きかけの時は、
うまく働かないときもあるのでは。

737 :デフォルトの名無しさん:2014/07/09(水) 15:50:12.13 ID:LA3y01hh.net
あと、m_xxx で問題ないのに、敢えてMSのIDEにしかない機能を頼る事もない。

738 :デフォルトの名無しさん:2014/07/09(水) 15:57:23.21 ID:1SU4YkH/.net
>>736
別のエディタつかいたいならm_も別にいいんじゃない?
そもそもC#を他のエディタで書こうとは思わんから、つけないけど
インテリセンスなしとかきついし

Roslynでブラウザ上でも参照検索とかできめるから、他のエディタでもm_とかいらない時代くるかも

739 :デフォルトの名無しさん:2014/07/09(水) 15:57:48.84 ID:6LMuMalC.net
構文解析?

javaやc#は静的型付け言語だからIDEがメソッドや変数を探せるんだよ
Eclipse・VisualStudioといったIDEの種類による都合ではない

740 :デフォルトの名無しさん:2014/07/09(水) 16:03:05.20 ID:LA3y01hh.net
>>738
WzEditor だと、m_xxx タイプなら瞬間的にすぐ上のものを検索したり
出来るんだよ。IDE だときついと思うが。

741 :デフォルトの名無しさん:2014/07/09(水) 16:05:00.95 ID:1SU4YkH/.net
>>739
ためにはちゃんとIDEが構文解析してメソッド名とかを取得するでしょ?

742 :デフォルトの名無しさん:2014/07/09(水) 16:05:42.84 ID:1SU4YkH/.net
>>740
上のものってどういう意味?

743 :デフォルトの名無しさん:2014/07/09(水) 16:10:17.99 ID:LA3y01hh.net
>>740
F9 キーでカーソル以後の単語を読み込んで、SHIFT+上 キーで
それより前の行にある単語を検索できる。IDEだとそこまで快適には
出来ない気がする。

744 :デフォルトの名無しさん:2014/07/09(水) 16:21:28.55 ID:6LMuMalC.net
階層深いオブジェクトを全部プレフィックスつけてあらかじめ解体しておくのか?
どちらにしろ、それを突き詰めると静的型付け言語が良いねって話になるぞ

function __constractor($client){
$info = $client->info;
$this->m_name = $info->name;
$this->m_email= $info->email;
$this->m_password = $info->password;
}

745 :デフォルトの名無しさん:2014/07/09(水) 16:21:41.79 ID:YSvBHpPH.net
こいつらPDTやPhpStorm使ったこと無いんだろうな

746 :デフォルトの名無しさん:2014/07/09(水) 16:25:11.46 ID:LA3y01hh.net
C++流にはだったら:

function __constractor($client){
 $info    = $client->m_info;
 m_name    = $info->m_name;
 m_email   = $info->m_email;
 m_password = $info->m_password;
}

と書くけど。

747 :デフォルトの名無しさん:2014/07/09(水) 16:25:27.12 ID:YSvBHpPH.net
>>739
静的型付けは型が決まってるから補完しやすいだけで、動的言語でも頑張ればできる。
PhpStormやPDTはかなりの精度だぞ

748 :デフォルトの名無しさん:2014/07/09(水) 16:32:57.49 ID:pubU33im.net
ID:t74qz3XV は最高のプログラマだろ。文体が慇懃無礼な感じですぐ分かる。自演バレバレで恥ずかしいな。
てか、「俺は能力がある。俺の言っていることは正しい。異論は認めない。が、俺の論理が正しいことの根拠は俺は忙しいので見せてやらない。」ということを言ったってだれも賛同してくれねーよ。
到底プログラマーとしてのろくな経験があると思えない素人さんだな。

749 :デフォルトの名無しさん:2014/07/09(水) 16:39:26.17 ID:6LMuMalC.net
最高のプログラマってどっかのコテハンか何か?

750 :デフォルトの名無しさん:2014/07/09(水) 16:42:47.55 ID:pubU33im.net
てか ID:LA3y01hh も同一人物だろうな。
>>746とかconstructorの綴り間違えてたり、$つけ忘れてたりthisつけ忘れてたり、偉そうな書き込みする割には手落ちが多すぎる。
その上IDEの強力な構文解析がその辺のエディタのパターンマッチング&マクロで代替できると思ってる。
しかもIDEを否定する理由が方法も考えたこと無いのに「快適にはできない気がする」だしな。

他人の意見は一切聞くことができない、ドヤ顔で自分の意見だけを語りたい、人付き合いの殆ど無い頭の硬い嫌なオッサンなんだろうな。

相手してもしょうがないでしょ。

>>747
PDTってそんなに精度いいかな?今は亡きPHPEclipseとくらべて、PHPEclipseの方が良い感じだなあという印象だった。
具体的には一つのindex.phpからrequireされるアクションクラスとユーティリティクラスがあって、アクションクラスの方からユーティリティクラスをnewした後に
そのクラスのメソッドを補完できるかできないかという違いがあった。
そこまで不満になるほど精度悪い、という訳ではないけれども。

751 :デフォルトの名無しさん:2014/07/09(水) 16:45:51.78 ID:pubU33im.net
>>749
>>622あたりからJavaはC++に比べて同じオブジェクト作るのに10-100倍くらいメモリ消費するから糞だとかいうわけのわからん自説を展開してる人。
おかしなところに突っ込んでも理解してもらえずスルー

752 :デフォルトの名無しさん:2014/07/09(水) 16:54:57.89 ID:6LMuMalC.net
>オイラは、実際に、最高レベルのプログラマだと評価が有る。
>めったなことでは間違わないよ。

こいつか。ワロタ。TRPGパラノイアかと思ったぜ

753 :デフォルトの名無しさん:2014/07/09(水) 16:55:23.29 ID:1SU4YkH/.net
>>743
カーソルの下にある単語で検索をかけて、移動するってこと?
VisualStudioだと、単語としてならCtrl+Shift+F3
文脈読んでローカル変数とかフィールドとかを区別するときはCtrl+Shift+上でいける

しかも、他のクラスのメソッドとかと名前がかぶってもある程度区別してくれる

C#は文脈キーワードが多いからシンタックスハイライトもRoslynつかうかIDEじゃないと完全には無理だと思うよ

754 :デフォルトの名無しさん:2014/07/09(水) 17:15:54.89 ID:LA3y01hh.net
やっぱ天才は凡人には理解してもらえないのさ。

755 :デフォルトの名無しさん:2014/07/09(水) 17:37:45.42 ID:LA3y01hh.net
>>750
>他人の意見は一切聞くことができない

あはは。そりゃ、天才にとっては余りにも当たり前なことを凡人は証明
しないと納得できないからだよ。証明しろ、証明しろと言ってくる。

756 :デフォルトの名無しさん:2014/07/09(水) 17:49:40.92 ID:YSvBHpPH.net
>>750
自分で言っててあれだけど、確かにPDTは言うほどではない。
俺はJava慣れてるから、EclipseのPDT使いやすいと思っただけかも。

757 :デフォルトの名無しさん:2014/07/09(水) 17:59:08.62 ID:pubU33im.net
>>755
証明を要求する人たちとコミュニケーションをとりたくないなら2chに書き込まないほうがいいよ、ブログに書いて天才同士で交流したほうが効率的だよ

758 :デフォルトの名無しさん:2014/07/09(水) 20:45:18.35 ID:amMo63ZQ.net
PHP はだいたい emacs で書いてる。たまに vi

759 :デフォルトの名無しさん:2014/07/11(金) 19:39:02.54 ID:inU81yI5.net
eclipseは重いらしいが、Javaで書かれていることが主な原因だろう。
特にメモリ周りが重いかも。

760 :デフォルトの名無しさん:2014/07/11(金) 23:05:23.74 ID:/84HdtBK.net
また最高のプログラマさんがなんか言ってるのかな
VisualStudioでC++書くときよりEclipseでC++書くときのほうが軽いわ。

761 :デフォルトの名無しさん:2014/07/11(金) 23:33:15.84 ID:LapjKz7x.net
>>760
eclipseは重いという話をネットで見かけたが。

762 :デフォルトの名無しさん:2014/07/12(土) 01:20:44.41 ID:qvFsgpuu.net
らしい云々じゃ誰も納得せんのだから、試してからモノ言ってはどうか
試すヒマもないとかあると思うけど、知らねえなら黙ってろって言われてお終いでしょ

普段Android開発やりとりで使ってるけど確かに重いなと感じる事はあるんだけど、そもそも組み込みエディタのカスタマイズ性に苦痛がある
重さだけ見たら多分無視できるレベルだと思うわ。Atomなネットブックでやってるのでなけりゃ気にならん

カスタマイズが弱すぎるのが辛いなぁ
vimカスタムでやってきた派としては、このIDEとしての恩恵が無視できるレベルだと思うのだけど皆さんどうなんだろ
独自エディタプラグイン作れと?

763 :デフォルトの名無しさん:2014/07/12(土) 01:32:11.14 ID:UUivqCYR.net
>>762
そもそもバリバリにカスタマイズするのは、IDEのメインユーザに対して需要がない。
IDEってなんでも入ってるから、プログラムの大小に関わらず、インストールさえすればコーディング&実行できるってのが利点なんだわ。
vimやemacsは簡単なプログラムなら問題ないが、使いこなそうとすると覚えないといけないことが多すぎてめんどい。

764 :デフォルトの名無しさん:2014/07/12(土) 07:51:59.47 ID:LaymN89h.net
>>760
そもそも、gcc は C++ のコンパイル速度が VC++ に比べてだいぶ遅い
んじゃない?

VC++でpch(pre compiled header)を使った場合は 30 倍程度、pch を使わない
場合でも、10倍弱程度の差が有ると思う。

765 :デフォルトの名無しさん:2014/07/12(土) 07:55:12.18 ID:LaymN89h.net
>>763
>そもそもバリバリにカスタマイズするのは、IDEのメインユーザに対して需要がない。
>IDEってなんでも入ってるから、プログラムの大小に関わらず、インストールさえすればコーディング&実行できるってのが利点なんだわ。

でも VC++ のIDE は、好きなエディタと組み合わせて使えるし、カスタマイズ
も可能だし、バリバリのプログラマでも、IDE なしでは困るくらいの便利さは
持ってる。

766 :デフォルトの名無しさん:2014/07/12(土) 08:02:39.22 ID:LaymN89h.net
>>762
>らしい云々じゃ誰も納得せんのだから、試してからモノ言ってはどうか
>試すヒマもないとかあると思うけど、知らねえなら黙ってろって言われてお終いでしょ

かなり試してから言っても同じ。
不都合な真実が書かれると、バッシングされて終わり。

767 :デフォルトの名無しさん:2014/07/12(土) 12:25:00.24 ID:gJLYIyot.net
真実に目覚めよ(くわっ

768 :デフォルトの名無しさん:2014/07/12(土) 12:47:24.91 ID:GEPvnRyB.net
起動が重いのかテキストエディタの反応が悪いのか
裏で走ってるコンパイラが重いのか
クソなプラグインが悪さしているのか
ム板民なら切り分けて当然

769 :デフォルトの名無しさん:2014/07/12(土) 14:30:07.42 ID:/MFQssgb.net
>>764-766
コンパイル速度についてはどういうプログラムをコンパイルした上で言ってるの?
自分がよくコンパイルするプログラム程度では10倍の差があるなんて感じたことはないな。
あとそもそもEclipseだからってgccに縛られるわけじゃないし、Eclipseでcl.exeを使うことだってできる。
というかgccを選ぶかcl.exeを選ぶかはIDEの選択によって決めるようなものじゃないだろ。比較対象がおかしい。

そしてEclipseだって別のエディタを起動できるし。

本当にVCと同程度の時間使ってみて、不満を自分なりに解消する努力をしてから言ってるのかな?
Javaは100-1000倍メモリ食うとかいう謎な妄想にとりつかれて、Eclipseはダメだって思い込みが激しすぎてほとんど使ってなくて想像でものを言ってるんじゃないの?

不都合な真実もなにも、こっちはVisual StudioもEclipseもXcodeも使わざるを得ない状況でそれぞれでC++を書いたときに
それぞれどういうところが使いづらいかある程度わかった上でものを言っている。
どれか一つのシンパとかいうことはないので不都合な真実なんかないわけ。

まあ、「自分は最高のプログラマだと評価を受けている。だから自分の言っていることは間違ってないんだ。批判をしてくる連中は不都合があるから言論を封殺してるんだ」と
思い込んでるような奴になにを言っても無駄だとは思うけど。

バッシングっていうか反論されたくないなら、ブログに書いて賛同してくれる人のコメント以外消すとかにしたほうがいいよ。ここは2chなんだから疑り深い他人に納得してもらうためには
そのための証拠が必要だ。

770 :デフォルトの名無しさん:2014/07/12(土) 14:36:44.17 ID:/MFQssgb.net
つーかこいつEclipse総合スレに行って質問してるw

979 名前:デフォルトの名無しさん[sage] 投稿日:2014/07/12(土) 08:29:44.87 ID:LaymN89h
以下のようなことをネットで見つけましたが、真実でしょうか?
真実だとしたらどの程度ですか?

・eclipse は重い
・eclipse は、よく「落ちる」。例えば一日に10回ほど落ちるか、
 ハングアップする?
・eclipseはメモリを大量に消費するので、JVMのメモリオプションを
 変更したり、起動中にGCを手動で行う必要が有る。

全然使ったこと無いで印象だけで批判してんのな。試したこともないでネット上で見つけた感想みたいなので持論を展開するのに「最高のプログラマ」って…

771 :デフォルトの名無しさん:2014/07/12(土) 15:32:59.84 ID:LaymN89h.net
>>769
>コンパイル速度についてはどういうプログラムをコンパイルした上で言ってるの?

一つは、自分で書いた小さなプログラム。後は、OSSのプログラムをmakeした
時の経験。VC++6.0でも、昔のtccでも経験したことの無い程度の時間をgccは
コンパイルに必要とするように感じた。

>自分がよくコンパイルするプログラム程度では10倍の差があるなんて感じたことはないな。

自分はかなり古いCPU(Pen4, 3GHz)を使っているので差が目立つのかもしれ
ない。最近のCPUでは分からないだけかも。

772 :デフォルトの名無しさん:2014/07/12(土) 15:39:45.82 ID:LaymN89h.net
>>769
>本当にVCと同程度の時間使ってみて、不満を自分なりに解消する努力をしてから言ってるのかな?
>Javaは100-1000倍メモリ食うとかいう謎な妄想にとりつかれて、Eclipseはダメだって思い込みが激しすぎてほとんど使ってなくて想像でものを言ってるんじゃないの?

eclipseは一度も使った事が無いが、Javaがメモリを馬鹿食いする実例
としてeclipseも該当するのではないか、と思えたので話しにあげてみた。

IDEというのはDOS時代からあって、その時代、メインに使えるのは
640KBだけだった。eclipseは、1GB (1500倍)も欲すると聞いた。
ユーザーのコード量は、その時代より1500倍 に増加した分けではない。
標準的なユーザー・コード量は余り変わって無いか、多くても10倍
程度までだ。そうすると、Javaは、DOS時代のIDEの150〜1500倍も
メモリを必要とすることになる。この結果は、自前のJavaコードの
実験結果と一致している。

773 :デフォルトの名無しさん:2014/07/12(土) 15:41:42.84 ID:/MFQssgb.net
>>771
> OSSのプログラムをmakeした
これは、もちろん同じプログラムをVCのコンパイラ・リンカを使ってビルドして時間を比較したうえで、gccの方がVCより10倍遅いって言ってるんだよね?

774 :デフォルトの名無しさん:2014/07/12(土) 15:48:01.10 ID:/MFQssgb.net
>>772
DOS時代のメチャクチャ貧弱なIDEと比較して何の意味があるわけ?
そしてEclipseを一回も使ったことがないのに他人からの伝聞だけでEclipseを評価するな。
ちなみに今VisualStudioでC++を書いてるが、メモリは400MBくらい使ってる。Eclipseの方は700MBくらいだ。
精々2倍。100-1000倍とかいうことはない。

とにかく、「プログラマ」を自称するつもりが今後もあるならば、伝聞、推測、妄想でものを言うなよ。少なくとも測定して具体的なデータが出てから言えよ。
測定方法に文句が出たときはその文句に対応しろよ。そうじゃなきゃ、なんにもわかってない初心者がワーワー喚いているのと同じ。いまのあんたの状態はそういう状態なんだよ。
いくらDOS時代からの趣味プログラミングの経験があろうともね。
つーかDOS時代だってEMSとかXMSとかあったし、本当に640kBのメインメモリだけでやりくりしてた時代ばかりじゃないだろ。

775 :デフォルトの名無しさん:2014/07/12(土) 15:57:50.33 ID:LaymN89h.net
>>773
言ってない。
その意味では厳密性は欠く。

>>774
>DOS時代のメチャクチャ貧弱なIDEと比較し

デバッグ時にブレイクポイントも変数の表示は出来たはずで、
それほど貧弱でもない。

>ちなみに今VisualStudioでC++を書いてるが、メモリは400MBくらい使ってる。Eclipseの方は700MBくらいだ。

今見たところ、VC++ のIDE自体は、12MBしか使ってない。400MB や
700MBというのは、OSを含んだ恐らくシステム全体のメモリ量のこと
だと思うが、だとすると、eclipseは、VC++ よりも 300MB も多いこと
になり、312MB 食っている計算になる。ということは、312/12=26倍
もeclipseはVC++よりメモリを食っていることになる。

>とにかく、「プログラマ」を自称するつもりが今後もあるならば、
>伝聞、推測、妄想でものを言うなよ。少なくとも測定して具体的な
>データが出てから言えよ。

責任ある雑誌などで、最終結論を書くときはもちろんそうだが、
今は中間的な報告で、今は他の人の経験を聞いている段階。
あなたの意見も一つだが、それがすべてでは無いと思う。

776 :デフォルトの名無しさん:2014/07/12(土) 16:16:18.50 ID:Ev8rKuO+.net
スレ違いだ馬鹿共

777 :デフォルトの名無しさん:2014/07/12(土) 16:50:30.28 ID:/MFQssgb.net
>>775
12MB?バージョンいくつ使ってるわけ?
ちなみに自分がいまEclipseとVisualStudio両方起動してタスクマネージャのスクリーンショットをとったらこんな感じだ。
http://gyazo.com/31b758d145601b53388d1ccbef39ef6f
javaw.exeがEclispe、devenv.exeがVisual Studio。

26倍なんてことはない。
ちなみにEclipseは同一ワークスペースなら複数のプロジェクトを一つのexeで同時に開けるのに対して、
Visual Studioはソリューション毎になるから複数ソリューションをまたいだ場合はEclipseの方が省メモリなんてこともある。

古い設計のアプリケーションと最新のアプリケーションを比較してなんの意味があるんだ?VSもEclipseもどっちもバージョンが上がる毎にどんどんメモリを食う量は増えてる。
Javaの方が2倍とかその程度には不利だということはあると思うけど、10倍20倍の差は出ないのが普通。

778 :デフォルトの名無しさん:2014/07/12(土) 17:02:14.90 ID:LaymN89h.net
>>777
自分は、VC++6.0 だが、比較的大きなプロジェクト(ワークスペース)を
ロードした状態で、CTRL+ALT+DELの「Windows タスクマネージャー」で、

イメージ名:msdev.exe
メモリ使用量:12,536K(起動直後), 2,620K(数十秒後)
仮想メモリサイズ:10,512K

と表示される。

779 :デフォルトの名無しさん:2014/07/12(土) 17:59:27.42 ID:4TUef3KK.net
>>778
VC6とかいうサポートも終わったような10年以上前のIDEを基準にしてるオッサン乙
はいはい解散
一生VC6使ってろよw

780 :デフォルトの名無しさん:2014/07/12(土) 19:55:54.77 ID:QxcUStnc.net
>>778
だからなんのメモリを見てるんだよ
ワーキングセット?プライベート?

それにVC6はインテリセンスも不完全だし、機能的に劣ってるんだからメモリ使用量少ないに決まってるじゃん
DOSよりライブラリの容量も増加して、インテリセンスでデータベースだけで何百MBもあったりするし
OSのAPIのメモリ使用量自体がちがう

そもそも、メモリに余裕がある現代はメモリにキャッシュして高速化をはかってんだぞ?
当時は極力ディスクに追い出したんじゃないだろうか
メモリ使用量だけみて無駄遣いとしか判断できないのは重症

781 :デフォルトの名無しさん:2014/07/12(土) 23:19:56.65 ID:bYbbILg6.net
メモリ使用量 = プロセスの現在のワーキングセット
       = 現在メモリに常駐しているページの数

仮想メモリサイズ = プロセスにコミットされた仮想メモリの量。
         = アドレス空間の総量。

782 :デフォルトの名無しさん:2014/07/12(土) 23:22:14.06 ID:bYbbILg6.net
>>780
>そもそも、メモリに余裕がある現代はメモリにキャッシュして高速化をはかってんだぞ?
>当時は極力ディスクに追い出したんじゃないだろうか
>メモリ使用量だけみて無駄遣いとしか判断できないのは重症

はあ、その結果、重くてコンパイル待ち時間にコーヒー入れてくつろげる
ようにしたのが eclipse ですか。

高速化とは、コーヒーの待ち時間を作ることだったんだ。メモφ(・_・)

783 :デフォルトの名無しさん:2014/07/12(土) 23:30:57.65 ID:bYbbILg6.net
>>779
古いIDEを使っているから、間違ったことを言っていると決め付けるん
ですか。

最新のハード、最新のOS、最新のIDEを使っている人以外は正しい判断が
出来ないとでも?

784 :デフォルトの名無しさん:2014/07/12(土) 23:47:21.04 ID:QxcUStnc.net
>>781
ワーキングセットは共有DLLと

785 :デフォルトの名無しさん:2014/07/12(土) 23:51:08.38 ID:QxcUStnc.net
>>784
誤爆

>>781
ワーキングセットは共有DLLとプライベートワーキングセットが含まれると思うんだけど

786 :Jolly Rogers ◆0tkoCr0voc :2014/07/12(土) 23:53:56.98 ID:1ZmhyZTN.net
>782
VC6を、出た当時のマシンで使うと、コンパイルかけたらコーヒーブレイクどころか昼食いってもまだ終わらない、なんてこともあったが?

VC6の頃と今とじゃ、マシンのスペックは100倍じゃ効かないしなあ。

787 :デフォルトの名無しさん:2014/07/12(土) 23:59:13.36 ID:QxcUStnc.net
>>782
コンパイルとIDEにどんな関係があるの?
コンパイルが遅いのはコンパイラの問題では?

788 :Jolly Rogers ◆0tkoCr0voc :2014/07/13(日) 00:05:51.45 ID:HA7ujDQg.net
>783
少なくとも現在サポートの受けられるOS向けのターゲットアプリを作るのに適してない、古い環境持ってきても意味はないな。

789 :デフォルトの名無しさん:2014/07/13(日) 00:16:34.42 ID:oz53nHyg.net
>>782
そもそもEclipse使ったことがないのに妄想でコーヒーブレイクとか言ってんのか
差分だけとかじゃない限り、Cのコンパイルに時間がかかるのは昔からだろ

790 :デフォルトの名無しさん:2014/07/13(日) 00:37:21.09 ID:U7MouUtR.net
分割コンパイルしないと未だに長いもんな

791 :デフォルトの名無しさん:2014/07/13(日) 01:32:46.96 ID:oywTPTFh.net
>>783
少なくともVC6は最早主流ではないし、自分の経験や知識を一般化はできないほど少数派になってしまっているだろ。
そういう意味では、一般論を語るのには「正しい判断ができない」。

というか、「他の人の経験を聞いている段階」というのなら、VC6以外のことについては知らないのを自覚して勝手に想像して決め付けんなよ。

792 :デフォルトの名無しさん:2014/07/13(日) 11:52:38.39 ID:pCB2HMHj.net
硬直というのはこういうことであるという見本
気をつけましょう
自分は柔軟であるという思い込みこそ怖い…

793 :デフォルトの名無しさん:2014/07/13(日) 14:27:04.11 ID:K5eijfLH.net
>>786
VC++6を出た当時から使ってるけど、VC++6のIDEは最初から十分高速だった。
コンパイルかけても昼食行っている暇などなかった。

VC++6の頃のマシンと今のマシンを比べると、SSEなどの並列化命令を
除けば、3.5倍程度高速になっただけ。これは、Superパイ・ベンチマーク
による結果。100倍は行ってない。

794 :デフォルトの名無しさん:2014/07/13(日) 15:07:46.99 ID:oz53nHyg.net
規模によって時間は変わるんだよ
あと、最適化とか当時よりだいぶ丁寧にやってるんじゃない?

795 :デフォルトの名無しさん:2014/07/13(日) 15:13:18.70 ID:wXsIV8Q/.net
規模によって変わるので、別にバージョンは関係ない。

796 :デフォルトの名無しさん:2014/07/13(日) 15:28:41.31 ID:InKoIVOW.net
ネタが多いな

本人気づいてないんだろうけど

797 :デフォルトの名無しさん:2014/07/13(日) 16:49:22.98 ID:oywTPTFh.net
あまりにも突っ込みどころが多いので、突っ込みたくなるところをちゃんと研究した上で計算された釣りなのかとちょっと思ってしまう。

798 :デフォルトの名無しさん:2014/07/13(日) 17:00:16.05 ID:K5eijfLH.net
>>797
じゃあ、突っ込んでみたら?

799 :デフォルトの名無しさん:2014/07/13(日) 17:02:29.77 ID:oywTPTFh.net
>>798
だってあんた突っ込んでも「時間がないから証拠は出せない。凡人はすぐ証明しろと言う」とか、「新しい環境は使ってないのでわからない。推測しただけ」とか
結局ツッコミに対してちゃんと反論してないじゃん。結局、確たる論拠のない無責任な発言を繰り返してるだけだろ。

800 :デフォルトの名無しさん:2014/07/13(日) 17:05:38.71 ID:K5eijfLH.net
>>799
確かに厳密な証拠は今回は示して無い。
しかし、自分の人生経験でいつもそうだった事に基づいて省略した。

いつもそうだったこととは、少なくとも自分が一度確信したことは、
後で証明すれば必ず証明可能なことであった、という事。

801 :デフォルトの名無しさん:2014/07/13(日) 17:07:49.61 ID:InKoIVOW.net
ネタは読んでて飽きない

本人は気づいてないんだろうけど

802 :デフォルトの名無しさん:2014/07/13(日) 17:22:23.05 ID:oywTPTFh.net
>>800
じゃあ今回もC++の100-1000倍となるようなJavaのプログラムを例示して証明してよ。
俺らにはあんたの今までの人生なんか分からないからそんなのなんの証拠にもならないから。匿名掲示板で「今まで俺が言ったことは全て正しかった」なんて言ってくれても、
あんたを誰か特定する手立てがないのだからなんの意味もないことくらい論理的にすぐわかるだろ?
あんたの経歴が色々わかるような状況ならともかくさ。
1週間毎日書き込むくらいの余裕はあるんだから、その程度のサンプルコードをideoneなりgithubなりに挙げるのに必要な工数割けるだろ?

803 :デフォルトの名無しさん:2014/07/13(日) 18:30:33.70 ID:oalHtyrt.net
>>802
今はそのことに時間は割けないので、辛抱してほしい。

前にも行ったが、考え事の合間に(余り考えなく済むことを)書き込んでいる
だけだから。

804 :デフォルトの名無しさん:2014/07/13(日) 18:30:48.70 ID:oz53nHyg.net
>>800

>>697 で言っているワークセットが200KBのソフト、機能は適当でいいから作ってみて
OSに強制ロードされる共有DLLだけで200KB以上はあると思うが、できるんだろ?

805 :デフォルトの名無しさん:2014/07/13(日) 18:33:02.88 ID:oalHtyrt.net
>>804
200KB というのは、自分のプログラムでデータ用にアロケートしたメモリ
限定。Java だとこの部分だけで50MBは超えると推定している。

806 :デフォルトの名無しさん:2014/07/13(日) 18:35:37.47 ID:InKoIVOW.net
あら、さらに墓穴掘ったっぽい

807 :デフォルトの名無しさん:2014/07/13(日) 18:36:09.52 ID:oalHtyrt.net
>>806
もともとそういう意味だったんだけども。

808 :デフォルトの名無しさん:2014/07/13(日) 18:40:18.40 ID:InKoIVOW.net
タスクマネージャーとか言ってなかったけ?

809 :デフォルトの名無しさん:2014/07/13(日) 18:52:06.26 ID:rvKBBEC7.net
いい加減やめろよおまえら。
どっちもスレ違い指摘されて無視してる時点で同レベルだよ。
消えろ

810 :デフォルトの名無しさん:2014/07/13(日) 21:11:37.48 ID:4dWHqJ9t.net
まだやっていたのか。
スレ違いだし、JavaがCより食っててもそりゃそうだという感想しかないし、
それでJavaの有用性が否定されるけでもないし、いったい何なんだ

811 :デフォルトの名無しさん:2014/07/13(日) 22:23:49.15 ID:oalHtyrt.net
>>808
タスクマネージャーで総量を測ることが基本だけど、
「演繹的」に自前でアロケートした量を「推定」してはいけないと
は言って無い。

Java専用のツールを使った場合、「偽者の値」を出してしまう可能性が
あるから、駄目だと言った。

「計算」は良い。嘘の値を出すようなツールは駄目、という事。

812 :デフォルトの名無しさん:2014/07/13(日) 22:28:33.21 ID:oalHtyrt.net
「計算」は良い、と言っても間違ってはいけないのは、構造体の理想的な
サイズを足して出すような計算は駄目だよ。

タスクマネージャーから測定した値Mを出発点として、自前のデータ数Nや
データの階層数Aを変えた時に、タスクマネージャーの値がどのように変動
するかを測定する。そして、そこから、物理学のように M=f(N,A) を
求める。すると、N の一次関数になったりすれば、N 一つ当たりのバイト数
が正確に判明する。

813 :デフォルトの名無しさん:2014/07/13(日) 22:30:02.45 ID:InKoIVOW.net
次スレはタイトル変えろやな

814 :デフォルトの名無しさん:2014/07/13(日) 22:56:02.79 ID:oalHtyrt.net
なんというか、物理学と同じ。

・あらゆる影響を合成した値が入ってくるが、間違いなくある物理量を正直に
 測定できる測定器Aと、
・一見単独の値を測定しているように見えるが、実は中で勝手に信頼できない
 方法で計算しているかもしれない測定器B

があった場合、B よりも A を使うべきということ。

A は、さまざまな影響が合成されているのでそのままでは目的の量を図ること
は出来ないが、演繹的に作った物理理論に基付いた数式を駆使することで非常
にさまざまな量を正確に「推定」することが出来る。

815 :デフォルトの名無しさん:2014/07/13(日) 23:13:38.78 ID:InKoIVOW.net
>>814
Aできちんと測ってくれ

まだ測れてないのは明確だぞ

816 :デフォルトの名無しさん:2014/07/13(日) 23:23:01.34 ID:oz53nHyg.net
Cの方は測ってないし、Javaもメモリ使用量をみただけで厳密な計算をしてないんだろ?
計算式があったところで使わずに適当なことを言ってるじゃん

しかも、メモリをまとめて確保したりするGCの前に、そんなに正確にわからないでしょ

>>802
のとおり例示してくれ

817 :デフォルトの名無しさん:2014/07/13(日) 23:35:42.22 ID:pbeFQgJS.net
そういやYahooってPHPのビッグユーザだけど、HHVMに投資したりすることは無いのかね。
Zendのはマシになってるとはいえ、元がうんこだから捨てて欲しいんだけど

818 :デフォルトの名無しさん:2014/07/13(日) 23:41:23.80 ID:InKoIVOW.net
>>817
今のところないんじゃないか?
Zendがうんこだとしても、他のLLよりは性能いいしな

819 :デフォルトの名無しさん:2014/07/13(日) 23:54:23.99 ID:pbeFQgJS.net
>>818
どこがだよ。トータルなら大差ないだろ
(Zendの)PHPって基本的な処理に使う関数がCの薄いラッパーになってるから速いだけ。Stringとかをクラス化して測ったら遅くなんじゃね?

820 :デフォルトの名無しさん:2014/07/13(日) 23:56:00.22 ID:InKoIVOW.net
>>819
かなり間違ってるけど

まぁいいんじゃ大差ないんだったら

821 :デフォルトの名無しさん:2014/07/13(日) 23:57:28.89 ID:pbeFQgJS.net
>>820
間違ってるんなら語れよ
語れなきゃ俺の勝ちなwwwww

822 :デフォルトの名無しさん:2014/07/14(月) 01:12:17.39 ID:uVwHuFeV.net
基本的な処理がCってのがまずよくわかんね
rubyやpythonは違うのかい。抽象化の度合いを語りたいの?速いだけ、って良いことだよな
基本的な処理つーても、オブジェクト処理の絡まないアプリの方が珍しいしなぁ
それが大差ないならそれでいいだろ
Stringをクラス化して云々は数字だしてから物言えば、って感じですな
何を訴えたいのかがよく分からんし、そもそも何の勝ち負けなの

823 :デフォルトの名無しさん:2014/07/14(月) 01:52:07.76 ID:WtYDGs7y.net
動的型言語の実行速度なんて最適化しても限界があるから
例えばPythonのCythonみたいなアプローチのほうが
実際のアプリは速くなるよ

824 :デフォルトの名無しさん:2014/07/14(月) 02:48:48.77 ID:B2JzmrNh.net
FacebookのHackがもっと広まって欲しい

825 :デフォルトの名無しさん:2014/07/14(月) 14:44:34.18 ID:62iJT8jV.net
>>812
M=f(N,A)が O(N・logN)やO(N^2)だったり、
参照の複雑さLに対して、
M=f(N,A,L)が O(L・logL)やO(L^2)
だとすれば、NやLが大きな時だけ C++の100〜1000倍のMになるというのも
まんざら嘘ではないかも。
参照の複雑さが小さいときには、C++の2倍程度にしかならないので、
気付く人が少ないだけで。

826 :Jolly Rogers ◆0tkoCr0voc :2014/07/15(火) 03:33:11.80 ID:BgyrQY3S.net
>793
はい嘘確定。
VC6 は1998年の製品。当時のCPUだと辛うじてPentium II が 400MHz台で動作。
現在のCPUがマルチコアにHT付きで4GHzに達すること考えると、100倍はあるレベルだぞ。

あと、メモリ量も当時だと128MB積むのも厳しかったから、これも地味に100倍超える。

HDD のアクセススピードやメモリの動作クロックも桁違い。

827 :デフォルトの名無しさん:2014/07/15(火) 10:13:56.14 ID:yI8b/Dze.net
>>826
VC6当事のCPUとしてPen4 3.0GHz を想定していたが、PenII だったのか。
そういえばそうだったかも。

でも、PennII と、Corei5 あたりを比べた場合でも、クロック数で8倍、
IPCが3倍程度だと思うので、せいぜい24倍程度だと思うよ。
メモリやHDDが早くなっているのは、CPUの速度に対する
「律則(りっそく)」を減らしているだけなので、「ダブル効果」や
「掛け算の効果」にはならない。

例えば、CPU速度が10倍になっても、メモリが同じ速度のままだと、
システム全体の速度は10倍にはならない。メモリの速度も10倍になった
時に初めて10倍の速度になる。

逆にCPUの速度がそのままでメモリの速度が100倍になったとしても、
CPUの内部速度がそのまま引き出せるようになるだけで、システムの速度
が100倍になるわけではない。それに、メモリ速度がk倍になった場合、
k=3くらいまでは、徐々にシステムの速度も向上するだろう、それでも、
k=3でも、システム速度は3倍未満にしかならない。
k=10になっても、最初の10倍になったりするわけではない。

828 :デフォルトの名無しさん:2014/07/15(火) 10:21:10.05 ID:yI8b/Dze.net
誤字訂正:

PennII ---> PenII
律則 ---> 律速
メモリやHDDが早くなってい ---> メモリやHDDが速くなっているのは、


ちなみに、Pen4 は、2000年かららしいが、

Visual C++ 6.0 のリリース 1998年
Visual C++.NET 2002 のリリース 2002年

らしいので、C++6.0の購入時期と、Pen4の購入時期が同じ人がいても
不思議ではない。

829 :デフォルトの名無しさん:2014/07/15(火) 10:27:48.59 ID:yI8b/Dze.net
待って。自分の脳内の記憶と解釈だと、1Coreでは:

PentiumII は、クロック数が400MHzで、IPC=1 弱程度
Pentium4 は、クロック数が3.0GHzで、IPC=0.3 程度度
Corei5 は、クロック数が3.0GHz程度で、IPC=1 程度

位。「解釈」と書いたのは、正式なIPCは多分、公表されて無いと思ったから。

これを見ると分かるように、1Coreあたりでは、PenII から Corei5 でも、
8倍程度しか速度向上はしてない。

マルチコアになって、コンパイル速度は上がったのかな?

830 :デフォルトの名無しさん:2014/07/15(火) 10:31:15.24 ID:yI8b/Dze.net
何度も申し訳ないが、PenII とPen4 の速度差は 2倍もなかったと記憶して
いる。なので、>>829はどこかに間違いが有る。

正しくは、1Core 当たり:

PentiumII は、クロック数が400MHzで、IPC=1 弱程度
Pentium4 は、クロック数が3.0GHzで、IPC=0.2 程度
Corei5 は、クロック数が3.0GHz程度で、IPC=1 程度


位かと思われる。

831 :デフォルトの名無しさん:2014/07/15(火) 10:34:33.24 ID:yI8b/Dze.net
ごめん。これだと、Pen4とCorei5 は5倍も速度差があることになってしまう。
実際は3.2倍程度。
なお、PenII の IPC は、1を超えていたとは思えない。
そして、PenII と Pen4 の速度差は2倍もなかった。

これらを全て満たすパズルの答えが必要です。(笑)

832 :デフォルトの名無しさん:2014/07/15(火) 13:10:20.24 ID:1JPZTQiO.net
うわあんんん
んん
これは痛い

833 :デフォルトの名無しさん:2014/07/15(火) 14:20:40.70 ID:LeytXOcq.net
恥の上塗りはもうご馳走様

834 :デフォルトの名無しさん:2014/07/16(水) 01:17:48.70 ID:BJVIoB1G.net
PHPを絶賛しているのは最高のプログラマーくらいの雑魚だけ

835 :デフォルトの名無しさん:2014/07/16(水) 09:03:21.69 ID:NGJkVcZA.net
>>834
最高のプログラマーは、PHPを絶賛してるわけじゃないと思うが。

836 :デフォルトの名無しさん:2014/07/23(水) 00:52:32.42 ID:gU9I4UPn.net
すっかり静かになったな。
ところでおまえら、空文字列のチェックはどうしてる?
俺は色々試したが、if(strlen($str)==0)に落ち着いたわ。empty使えなさすぎ

837 :デフォルトの名無しさん:2014/07/23(水) 08:41:20.09 ID:sEiUyUCO.net
is_null()とかempty()とか似たようなのたくさんあって違いがわからん

838 :デフォルトの名無しさん:2014/07/23(水) 21:55:40.35 ID:2Tlnhhs+.net
if ($str === '') じゃダメなの?

839 :デフォルトの名無しさん:2014/08/09(土) 22:38:05.00 ID:hS02uKVY.net
empotyはシンボルテーブルにない変数や配列を参照しても黙って真を返すのがいいところ

840 :デフォルトの名無しさん:2014/08/09(土) 22:38:32.09 ID:hS02uKVY.net
(でもあり罠でもある)

841 :デフォルトの名無しさん:2014/08/10(日) 01:30:31.73 ID:Kl0u+PQd.net
それより何より empty('0') が true になるという摩訶不思議仕様。

842 :デフォルトの名無しさん:2014/08/10(日) 12:21:06.07 ID:JTN9tFDt.net
>>841
そう、それがあるからブランク文字列のチェックに使えない
nullもブランクと同じ扱いにする場合、if (is_null($str) || $$str === '') だと冗長。
strlen($str)にnull渡すと0返すし、一番いいのかなと

843 :デフォルトの名無しさん:2014/08/10(日) 22:40:54.27 ID:VNlj7l21.net
空文字と区別しないならそもそもnull型を使う必要がないかな。

844 :デフォルトの名無しさん:2014/08/10(日) 22:46:55.36 ID:JTN9tFDt.net
>>843
理想はそうなんだけど、""を期待してるのにnullを返してくる不躾なAPIや、DB(MySQL)なんかだと区別する場合もあるわけで。
そういったときは、エラーにするのではなく、空文字として処理した方が無難なんだよね。

モダンな言語ならOptionals(Nullable Type)で解決できるんだけど。

845 :デフォルトの名無しさん:2014/08/10(日) 22:51:17.95 ID:JTN9tFDt.net
optionalsは動的型付けのPHPには無縁だった。(type hintingみたいにすればいいかもだけど)

846 :デフォルトの名無しさん:2014/08/11(月) 00:00:15.03 ID:uZnIFoLV.net
http://jobinjapan.jp/job-listing/keyword-php-pg-osaka-pref.html

847 :デフォルトの名無しさん:2014/08/11(月) 10:47:00.66 ID:kQW7h5cd.net
PHP 5.4.4から==の挙動が一段と難しくなりました
http://d.hatena.ne.jp/hnw/20140809

848 :デフォルトの名無しさん:2014/08/15(金) 01:45:43.95 ID:ZQKQttwC.net
PHPってJavaみたいにインスタンス作りまくると重いですか?

849 :デフォルトの名無しさん:2014/08/20(水) 11:12:04.13 ID:vq1CPHYS.net
バージョン間の互換を捨て過ぎ

850 :デフォルトの名無しさん:2014/08/21(木) 01:10:23.25 ID:PMLnbNW2.net
探せ!バグのすべてをそこに置いてきた!ことニューバージョンPHP5.6は月末リリースになります

851 :デフォルトの名無しさん:2014/09/15(月) 12:08:44.75 ID:VaqGfg1a.net
>>846
それ凄い勉強になったよ。ありがとう。
===が安定だね。

852 :デフォルトの名無しさん:2014/09/17(水) 23:10:22.55 ID:BG3Rsxwy.net
ララベル使っとる。

853 :デフォルトの名無しさん:2014/09/21(日) 07:11:47.00 ID:Rf9+oeun.net
PHPで仕事してる人に質問なんだけど
PHPは中規模
javaなら大規模開発ができる
PHPのWEBアプリケーションの仕事の応募が多いがあれをやって(PHPでもjavascriptやhtmlいろいろ覚えるんでしょうけど)
そのごjava Servletなんかに移行するのって相当難しかったり別分野だったりするんですか?
javaの言語は多少既に扱える状態の話
移った人いませんよね。募集もPHPjavaって多いし壁はないのかな

854 :デフォルトの名無しさん:2014/09/21(日) 10:17:32.83 ID:JsYFaRvV.net
勉強コストが低い言語としては優秀だと思う

855 :デフォルトの名無しさん:2014/09/21(日) 11:18:03.29 ID:aP8Aq0OA.net
>>853
両方きちんと理解してれば壁というほどの問題はないと思うけど
逆にそれが仇となって
移行する意義をなおざりにして巨大なクソの山が出来るかも

856 :デフォルトの名無しさん:2014/09/21(日) 15:21:58.22 ID:SEleEbGk.net
まずは日本語だな

857 :デフォルトの名無しさん:2014/09/21(日) 15:37:25.69 ID:+YftySIr.net
$this-> $this-> $this-> $this-> $this-> $this->
$this-> $this-> $this-> $this-> $this-> $this->
$this-> $this-> $this-> $this-> $this-> $this->

858 :デフォルトの名無しさん:2014/09/21(日) 21:01:04.04 ID:9HRHeOPJ.net
>>855
最後がよく分からいですが
移行するのが面倒になるってことですか

PHPで書いててjavaで作ってよっていわれて作ることは
仕事上よくあるのかな

859 :デフォルトの名無しさん:2014/09/21(日) 21:07:20.48 ID:TY3LPXLd.net
しかしPHPカンファレンス1か月切ってるのに未だにプログラム発表されないとか
運営なにやってんの?

860 :デフォルトの名無しさん:2014/09/21(日) 21:37:20.60 ID:JHigoyTJ.net
AccessやらExcelで回してた業務をWeb化したいということで
PHPやJavaで作るということは多々あると思う。
ただPHPで動いてたものをJavaにリプレースしたいというのは、
よっぽどパフォーマンスが必要だとか、改修規模が膨れ上がりそう
ということでもない限り、ないんじゃないかな。

Java屋がPHP屋に移行するのは支障ないと思う。
逆にPHPしか経験がない人がJava屋に移行するのは結構苦労しそうな気が。

あと今どき Java Servlet なんて直接触らないから。

861 :デフォルトの名無しさん:2014/09/22(月) 11:23:38.06 ID:3VdwGLoe.net
>>860
ありがとう。今ってjavaでどうやってWEBアプリつくってるんですか?

862 :デフォルトの名無しさん:2014/09/22(月) 18:02:36.65 ID:6PbuDchW.net
普通 web アプリ用フレームワークを使う。
http://en.wikipedia.org/wiki/Comparison_of_web_application_frameworks#Java

たくさんあるけど一番メジャーなのは Spring かな。あと JavaEE。
国内限定なら Seasar2 というのもあるけどもはや新規案件で使われることはほとんどないと思う。

その他参考
https://gist.github.com/monzou/e355a2c425cdad109537

そろそろスレ違いなのでこの辺で。

863 :デフォルトの名無しさん:2014/09/23(火) 10:33:55.15 ID:XYt2bOt1.net
ありがとうございます。助かりました

864 :デフォルトの名無しさん:2014/09/23(火) 12:59:41.35 ID:XYt2bOt1.net
PHPの本をよんでてXAMPPというのがありました
最初はこれでいいんでしょうけどどのくらいしたら
linuxのCUIで作るほうがいいんでしょう?

eclipseでjavaなんかを多少趣味レベルでいじってますが
保管コマンド?みたいな記述間違えを正すのがないと難しそう

865 :デフォルトの名無しさん:2014/09/23(火) 14:15:37.03 ID:Fyh7HsMD.net
XAMPPって単体のものをまとめてるだけだから
それぞれ個別にあつかえばいいだけだろ

保管コマンドって、セーブすんのかと思ったけど
よく考えたら補間のことかいな
別にプログラムは好きなので書いたらいいよ
設定ファイルはvi覚えときゃいいだけ

866 :デフォルトの名無しさん:2014/09/23(火) 19:08:36.77 ID:3F3Dv3qs.net
専門用語が多すぎてよくわからないけどありがとう
linuxはviを開いて閉じれる程度のCUI操作で
どうにかなるってことですか。
バーチャルマシンのCDROMのつくりかたもかいてある
linuxのCUIのいい本さがすしかないかな

867 :デフォルトの名無しさん:2014/09/23(火) 19:19:24.02 ID:TztB4n9q.net
「LinuxのCUIで作る」というのがどういう状況を指しているのかよくわからないけれど、
EclipseだってPDTというPHP開発用プラグインはあるし、ほかにも Netbeans でも
PHPStorm でも好きな IDE を使えばいいと思う。

868 :デフォルトの名無しさん:2014/09/23(火) 19:20:40.72 ID:3F3Dv3qs.net
>>867
実務でlinuxコマンドでの操作が多いみたいで学ぶわけです

869 :デフォルトの名無しさん:2014/09/23(火) 19:32:40.96 ID:TztB4n9q.net
865を「専門用語が多すぎて」と感じるレベルであれば、
悪いことは言わないから vi やら vim やらの単なる
テキストエディタではなくて、868の手元の Windows に
IDE を入れて開発する方向をお勧めする。

まさか本番Linux環境のPHPプログラムを直接いじって
直せとか、そういう要求をされているのではあるまいな。

870 :デフォルトの名無しさん:2014/09/23(火) 19:34:22.77 ID:3F3Dv3qs.net
PHPとlinuxセットでよくある求人だよ
内容は知らないです

871 :デフォルトの名無しさん:2014/09/23(火) 19:46:37.10 ID:3F3Dv3qs.net
>LAMP環境(Linux+Apache+MySQL+PHP)による開発
これです

872 :デフォルトの名無しさん:2014/09/23(火) 20:46:52.37 ID:DS8lLlTc.net
うわぁ・・・

873 :デフォルトの名無しさん:2014/09/23(火) 20:52:09.75 ID:DS8lLlTc.net
そんなことより10/11だってのにまだPHPカンファレンスの詳細発表ないよ ほんとにやるの?

874 :デフォルトの名無しさん:2014/09/23(火) 21:40:05.51 ID:TztB4n9q.net
要するに >>853 は Java をかじったくらいのスキルしかなくて、LAMP 環境での
開発の求人に応募しようか悩んでいるのでアドバイスが欲しいってことなのか。
最初からそういえばいいのに。説明が小出しすぎて回りくどいぞ。

Linuxのコマンドを覚えたいという話なら、VirtualBoxなり何なり入れて
CentOSでも突っ込んで好きに触るといい。
XAMPPみたいなオールインワンパッケージに頼らず、自力で標準的な
LAMP環境を構築できるくらいのスキルは身につけておいた方が後々便利だ。

PHPのプログラムを実際に書くのは、Windows側でやればいい。
PHPのプログラムを組むこと自体は、Linuxのコマンドの知識はなくてもできる。
どうせ「LAMP環境で開発」と謳う求人だったら、Windows側で開発して
テスト環境なり本番環境にはFTPでアップロードみたいなレガシーなやり方しか
してないだろう。

875 :デフォルトの名無しさん:2014/09/24(水) 01:16:38.51 ID:LVfiXZCR.net
同レベルじゃん

876 :デフォルトの名無しさん:2014/09/24(水) 02:33:34.89 ID:eH6DY9tZ.net
>>865-866
LAMP, XAMPP は仕事では常識
DB, Webサーバを知らなかったら、仕事はできない

Linux コマンド逆引き事典、2013
これを買って、ざっと読む

877 :デフォルトの名無しさん:2014/09/24(水) 07:55:36.70 ID:j4UUBdk8.net
XAMPPが常識とか言っちゃう奴は地雷にしか見えない
XAMPPみたいなオールインワンパッケージは使わないのが「仕事では常識」だろ

878 :デフォルトの名無しさん:2014/09/24(水) 10:33:44.83 ID:3Cm2Nqvi.net
>>877
仕事でXAMPPを使わないから
仕事してる人はXAMPPを知らないということにはならんだろ
XAMPPすら使えないなら、仕事にならないという意味でしょ

879 :デフォルトの名無しさん:2014/09/24(水) 10:43:57.19 ID:27efG/Se.net
XAMPPなんて利用しなくても個別にApacheもPHPもPerlもMySQLも扱えばいいだけ。
今はなんでもやってくれる環境があるからいいけど、
ちょっと前のSolarisとかだとgccのビルドから始めてたぜ・・・

880 :デフォルトの名無しさん:2014/09/24(水) 14:12:37.42 ID:Yuo4JRo7.net
ぺちぴーなんかいりませんよ(笑)

881 :デフォルトの名無しさん:2014/09/24(水) 16:19:42.73 ID:j4UUBdk8.net
>>878
使う使わないじゃなくて……
「XAMPP を知っている事は仕事では常識」
と言い換えてみたところで、やっぱりそいつは地雷にしか見えないわけだが

882 :デフォルトの名無しさん:2014/09/24(水) 16:23:38.52 ID:mOUhfZZD.net
新しく学ばせたくない言語だな
保守要員育成のために人材最低限にしたい言語

883 :デフォルトの名無しさん:2014/09/24(水) 21:25:59.31 ID:OwjZSLjL.net
>>879
それらが個別で使える人がXAMPP使えないとは思えんが…

884 :デフォルトの名無しさん:2014/09/24(水) 21:27:32.79 ID:orwWPvfC.net
PHPで将棋つくれるらしいが
基礎本読んだ程度じゃ掲示板ぐらいしかつくれない
run()がのってないからか
javascript の方か

885 :876:2014/09/25(木) 03:06:08.71 ID:9y3YUuB0.net
質問者が専門用語が難しいというから、
LAMP, XAMPP という言葉を知らない人は、
まずいないという意味

多くの本・アプリが、これらを前提としているので、
知らないことはあり得ない

むしろ個別にバージョンを変えると、
動かないアプリが続出するのでは?

886 :デフォルトの名無しさん:2014/09/25(木) 03:38:54.39 ID:n9fbmn4D.net
他部署で保守されてる昔作られたphp製の大規模アプリがあるんたが
随分前に公表されたphpのセキュリティホールに対応しなければならないという話が出た。
スクリプトも使ってるphpも古すぎて互換の問題ですぐには上げられないとなって
改修のための予算要求で話が上に上にと行って
しまいにはその問題は無かったことにされてた。
他の会社ではどうやって対応してるんだ?

887 :デフォルトの名無しさん:2014/09/25(木) 04:51:39.23 ID:9y3YUuB0.net
そりゃ、お金・人員などの資源は有限だから、
業務の優先順位に応じて、与えられる

経営判断では常に、何かが切り捨てられるので、
一社員が気にすることはない
意見を言って、経営陣がそれを採用しないのなら、仕方がない

一般的に、経営陣が切り捨てやすい案件は、
費用が高いわりに、効果が低いもの

わけのわからない研究開発など、
数年間はお金にならない事業は、よく切り捨てられる

888 :デフォルトの名無しさん:2014/09/25(木) 14:53:20.37 ID:hpDKmPwo.net
基礎からのPHPっていう本を読みました
次何やったらいいでしょうか。

Linux コマンド逆引き事典、2013ってやつですか?
Linuxを0から教えるようなCUI操作の本も買ったほうがいい
気がしますが

889 :876:2014/09/26(金) 05:41:25.71 ID:EeHYxFor.net
UNIX シェルスクリプト・コマンドブック 第2版
山下哲典、2012

シェルスクリプトも、一つのプログラミング言語で、
勉強するのに数十時間かかるので、本を買わずに、
わからなければその都度、ネットで調べた方がよい
WindowsのPowerShellも同じ

ls, cd など基本的なコマンドだけで十分
それら以外はその都度、ネットで調べる

Linux コマンド逆引き事典、2013
この本なら、数時間で読める。これで十分

890 :デフォルトの名無しさん:2014/09/26(金) 10:02:15.53 ID:E0qCgAxd.net
PHPダメだとか...
俺はJavaScriptの方が酷いと思うが
Web関係で言えばPHP一択だと思うな
楽さが違う

ただ不満な点も多々あるけど
書き方が沢山あり過ぎて混乱することある
見た目が汚い

でもとにかく動かすことは簡単だよな 
PHPは
var_dump()の存在も素晴らしいと思う

891 :デフォルトの名無しさん:2014/09/26(金) 11:12:56.58 ID:Mxr6hFYX.net
PHPは本当楽。楽だけどそれゆえの欠点もあるから使うかどうかはその人次第なんだよな。

CMSの一つWornPressもPHPだし学んでおいてもいいと思うんだ

892 :デフォルトの名無しさん:2014/09/26(金) 14:47:14.73 ID:tSjIa31+.net
プログラマ歴18年
PHPにひさびさにさわってみたけど、だいぶ変わったんだね。
RESTのシステム作ってんだけど、最新のPHPについて学べる良書をさがしています。
誰か教えろください。

あとLaravelについての本も探しています。

893 :デフォルトの名無しさん:2014/09/26(金) 14:48:50.88 ID:KY963ZnN.net
>>889
thx

894 :デフォルトの名無しさん:2014/09/28(日) 08:58:25.71 ID:L8CmCeM8.net
>>890
PHP一択なんだから不満なんか言うなよ
不満と思う時点でお前の方が間違ってる
PHPの仕様は全てが正しいんだよ

895 :デフォルトの名無しさん:2014/09/28(日) 14:57:58.92 ID:9GQuc8zR.net
>>894
お前は >>841 を見てもまだそう思うのか

ところでPHPにマルチスレッドをまともに扱えるようになる日は来るんだろうか。
pthreads があるけど実用には程遠い。
Javaの java.util.concurrent レベルの仕組みがないと厳しい。

896 :デフォルトの名無しさん:2014/09/28(日) 15:01:49.72 ID:L8CmCeM8.net
>>895
それぐらい受け入れるのがPHPユーザじゃないのか

897 :デフォルトの名無しさん:2014/09/28(日) 15:29:50.35 ID:J5abx0zT.net
一択と言ってるんだから、他の選択肢は存在しないんだろう

898 :デフォルトの名無しさん:2014/09/29(月) 01:35:18.46 ID:Ql1JuOCu.net
存在するわけねぇだろ
じゃぁ何使うんだ?
Perlめんどくさい
Pythonは良く使うがApacheとの連携超しんどい
Rubyは使った事ない
Java面倒くさい
ASP?論外
Node.js?ご冗談を

Web関係ではPHP一択
それ以外となると.....

899 :デフォルトの名無しさん:2014/09/29(月) 09:08:21.41 ID:gOGcIqZS.net
そんなに一生懸命スキルの低さを力説されても、そのなんだ、困る

900 :デフォルトの名無しさん:2014/09/29(月) 09:32:34.21 ID:yt38cp2j.net
しかも全部の処理をサーバサイドでやる気のようだし

901 :デフォルトの名無しさん:2014/09/29(月) 22:36:20.76 ID:20kfxFHi.net
javaのほうが楽

902 :デフォルトの名無しさん:2014/09/30(火) 17:14:11.98 ID:ZVujbQ37.net
画像掲示板とコメントレス いいねぼたんのあるHPはPHPでつくれます
コピペするだけなので、簡単で実際には作ってませんが。
以前にC趣味でやってたので簡単でした。

応募対象
Linux、PHP、Apache/PostgreSQL/MySQL

みたいな求人がある場合次に何やるべでしょう。応募できるレベルには上がっては起きたいです

903 :デフォルトの名無しさん:2014/09/30(火) 17:25:13.84 ID:JjKI4EMd.net
Linuxのコマンドを一通り勉強する。
PHPでSQLを使ってみる。

904 :デフォルトの名無しさん:2014/09/30(火) 17:28:41.39 ID:0GEeaCri.net
まあVMでもそこらの使ってないPCでもいいのでLinux入れて
apacheとMySQL/PostgreSQLとphp入れて動作環境作ってみては。
DBはインストールから管理方法まで違うけどSQL部分はどっちもあまり変わらんから
片方をまず覚える、でもいいが。

905 :デフォルトの名無しさん:2014/09/30(火) 17:34:26.22 ID:RiiTjQ6h.net
>>902個人的にデータベースからかな

PHPとデータベースの連携は必須だからquery叩いてSQL覚えるより実際にCLIで学習してからの方が効率いいと思う

Apacheは大切な概念だけどPHP学んでいくうえで覚えるから大丈夫

906 :デフォルトの名無しさん:2014/09/30(火) 17:36:13.29 ID:nEb9+V5n.net
このスレのタイトルどおりのことができるようになればいいんじゃないか

907 :デフォルトの名無しさん:2014/10/01(水) 00:49:02.16 ID:MnuOSGFP.net
>>902
CentOS, Apache, PostgreSQL, PHPで実際に本格的なものを作るべき
たぶん環境の問題でそのコピペは動かなかったりして簡単に作れないから

908 :デフォルトの名無しさん:2014/10/01(水) 00:53:05.03 ID:MnuOSGFP.net
あと最初はローカル環境でもいいけどネットワークやセキュリティの知識を身に付けるために
AWSとかのインターネット環境でサーバー立ててみた方がいいかな

909 :902:2014/10/01(水) 15:27:33.72 ID:VUkrEABO.net
ありがとうlinuxのバーチャルから調べないといけないかも
SQLは趣味でjavaの方でHP作成で使ったことあります

910 :デフォルトの名無しさん:2014/10/03(金) 12:26:38.09 ID:cvbDPmHR.net
すみません、質問するスレが分らなかったのでここで質問レスさせていただきます

2つのテーブルにあるカラム同士が外部キー設定されているとき(例えばそれぞれのテーブルにidというカラムがありそれらは外部キーが設定されている)

idを中心に2つのテーブルからデータを持って来てjsonで返すというプログラムを作りたいのですが上手く行きません。

{
Id:
1つ目のテーブルの全てのデータ
[2つ目のテーブルの全てのデータ]
}

連想配列で1つ目のテーブルの全てのデータを持って来て、それに対応した2つ目のテーブルのデータを持って来るという考えなのですが・・・

911 :デフォルトの名無しさん:2014/10/03(金) 13:04:58.66 ID:iY8lG3PN.net
なんで最近ここは相談スレと化してるんだ

912 :デフォルトの名無しさん:2014/10/03(金) 14:12:56.03 ID:MolrNikG.net
>>910
おれも似たような仕事してるが、なにについて聞きたいのかよくわからん(´・ω・`)

DBのことについて聞きたいのか、jsonの組立かたについて聞きたいのか?(´・ω・`)

913 :デフォルトの名無しさん:2014/10/03(金) 17:19:56.41 ID:cvbDPmHR.net
>>912
jsonの組み立てについて聞きたいです

[
id: {
idに対するテーブル1のデータ,
[idが一致するテーブル2の集合]
},
id: {
idに対するテーブル1のデータ,
[idが一致するテーブル2の集合]
},
...
...
]

このような構造でデータを返したいです


連想配列にしたテーブル1の全てのデータをforeachで回し、中でidに対応するテーブル2のデータをselectしてるという感じでやっています

914 :デフォルトの名無しさん:2014/10/03(金) 17:28:03.61 ID:BlqF2NHp.net
>>911
ム板でPHP単独のスレタイは、こことコマンドのほうだけだから
CUIでなければここかな?と思っちゃうんだろ
WebProg板にきちんとスレあるんだから、そっちへ誘導すべきなんだろうけどさ

【PHP】下らねぇ質問はID出して書き込みやがれ 137
http://kanae.2ch.net/test/read.cgi/php/1411222521/

915 :デフォルトの名無しさん:2014/10/05(日) 13:00:44.65 ID:NXvHvMDM.net
PHP、かつてWebで人気だった言語が下火になりつつある
http://readwrite.jp/archives/12295

916 :デフォルトの名無しさん:2014/10/08(水) 00:03:44.61 ID:GuRadpxG.net
なんなのこのクソ言語?
型がいい加減すぎ。

==と===はどう違うんだよ。
なんでわざわざこんなわかりづらい仕組みにしてんの?

917 :デフォルトの名無しさん:2014/10/08(水) 00:25:41.03 ID:JXp0dS9r.net
ところが、

918 :デフォルトの名無しさん:2014/10/08(水) 14:43:10.22 ID:5a7mAS48.net
いい加減に作って==が破綻したから===追加したんじゃないの

919 :デフォルトの名無しさん:2014/10/14(火) 00:33:36.20 ID:1OL+UINB.net
でも俺は==が好きだよ

920 :デフォルトの名無しさん:2014/10/21(火) 18:51:32.84 ID:71bVRl2g.net
>>845
動的型付け???wwww

921 :デフォルトの名無しさん:2014/10/21(火) 18:53:12.39 ID:71bVRl2g.net
>>916
この型がいい加減ってのもの 同じ様な勘違いだな。
PHPの変数の型は一意に決まっている。

==という比較演算子の仕様がアレなだけ。

922 :デフォルトの名無しさん:2014/10/21(火) 20:17:06.74 ID:7v8mFBlr.net
>>921
いや、いい加減だよ。

なんなの戻り値mixedって?
何が返ってくるか見当もつかんわ。

923 :デフォルトの名無しさん:2014/10/21(火) 22:54:01.69 ID:oyVLrdl5.net
戻り値の検討がつかないなら言語以前の問題だな
型がいい加減といういい加減さも頭が痛くなる話だがようはバカなんだろ?

924 :デフォルトの名無しさん:2014/10/21(火) 23:24:21.10 ID:7v8mFBlr.net
>>923
いや、言語の問題だよ。
なぜなら他の型がしっかりしてる言語なら、戻り値の型は明確だからだ。

PHPと違ってな。

925 :デフォルトの名無しさん:2014/10/22(水) 03:44:29.99 ID:NoApm9kp.net
ひどい。
http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

ひどすぎる。
$x = null;
$x--;
$x++;
echo $x;

926 :デフォルトの名無しさん:2014/10/22(水) 09:50:15.97 ID:7pgr6yoh.net
>>922
型が不定なものが帰って来るわけでもあるまいにw
変数の型があいまいなのではなく、戻す値の型が固定してないだけじゃん。

ソレがいいかどうかはともかく、そういう仕様であることすら正確に把握できずあいまいだ何て言ってるレベルが
文句言ってるっていう毎度の構図じゃん。

927 :デフォルトの名無しさん:2014/10/22(水) 09:55:16.60 ID:R3YYuTDs.net
PHP RFC: Return Type Declarations
https://wiki.php.net/rfc/returntypehinting
戻り値もタイプヒンティングできるようになりそうだね
Hackのおかげか

928 :デフォルトの名無しさん:2014/10/22(水) 11:07:36.62 ID:RIes3wgV.net
>>925
そのサイトの

> > $arg = 'T';
> > $vehicle = ( ( $arg == 'B' ) ? 'bus' :
> > ( $arg == 'A' ) ? 'airplane' :
> > ( $arg == 'T' ) ? 'train' :
> > ( $arg == 'C' ) ? 'car' :
> > ( $arg == 'H' ) ? 'horse' :
> > 'feet' );
> > echo $vehicle;
>
> prints horse.

これは一体どう解釈されてんの?誰かカッコつけてくれないだろうか…

929 :デフォルトの名無しさん:2014/10/22(水) 11:51:51.39 ID:4NVtIeAn.net
左結合だけど、カッコつけてもわかりにくいよ、要は
'train' ? 'horse' : 'feet'
になっちゃうってことだ

930 :デフォルトの名無しさん:2014/10/22(水) 12:04:42.38 ID:4NVtIeAn.net
あー実際にはtrain以降が置き換わるけどね、最後の評価は'car'?ってことね

931 :デフォルトの名無しさん:2014/10/22(水) 20:09:49.63 ID:mfvJzrII.net
>>926
>戻す値の型が固定してない

うっわ最悪だわそれ。
完全に意味不明。

932 :デフォルトの名無しさん:2014/10/22(水) 20:29:09.40 ID:BospgsZ1.net
>>929
何故

>'train' ? 'horse' : 'feet'

になっちゃうんだ?

933 :デフォルトの名無しさん:2014/10/22(水) 22:03:34.97 ID:nY+j2JSk.net
>>931
ちなみに今までどういうキャリア積んできたの?

934 :デフォルトの名無しさん:2014/10/22(水) 22:13:05.64 ID:mfvJzrII.net
>>933
あっ話を逸らしたww

935 :デフォルトの名無しさん:2014/10/22(水) 22:19:25.20 ID:nY+j2JSk.net
>>934
いやもしかして本当にかわいそうな子なのかと思って
実行時に型が判定される言語なんてありふれてる時代なのに、腰みのに石斧持って藪から出てきた原始人みたいな物言いだからさ

936 :デフォルトの名無しさん:2014/10/23(木) 08:54:03.58 ID:qWIee6sX.net
複数の型を返しうるっていうのが受け入れられないぐらい頭固いんだろ。

937 :デフォルトの名無しさん:2014/10/23(木) 08:59:10.06 ID:qWIee6sX.net
複数の型返せるとか、型判別して処理分けるとか
おじさん共はそういう新しい概念とか嫌うからなぁ。
クラスを分からんから使うな言うおじさんと同じ。

938 :デフォルトの名無しさん:2014/10/23(木) 11:50:46.10 ID:TnfHDly0.net
>>932
最初
( $arg == 'B' ) ? 'bus' : ( $arg == 'A' )
falseだから次が
( $arg == 'A' ) ? 'airplane' : ( $arg == 'T' )
falseだから次も
( $arg == 'T' ) ? 'train' : ( $arg == 'C' )
ここでtrueだから
'train' ? 'car' : ( $arg == 'H' )
これもtrueだから
'car' ? 'horse' : 'feet'

ということ

939 :デフォルトの名無しさん:2014/10/23(木) 15:41:23.38 ID:5KZv7nGW.net
括弧つけるとこうだな
あんま見たことない選択式だけど

↓PHPの仕様
$arg = 'T';
$vehicle = (((($arg == 'B' ? 'bus' :
$arg == 'A') ? 'airplane' :
$arg == 'T') ? 'train' :
$arg == 'C') ? 'car' :
$arg == 'H') ? 'horse' : 'feet';

左の?:から評価されると詰まるところ (((( ... ))) ? 'horse' : 'feet') になる

↓期待された仕様
$vehicle = $arg == 'B' ? 'bus' :
($arg == 'A' ? 'airplane' :
($arg == 'T' ? 'train' :
($arg == 'C' ? 'car' :
($arg == 'H' ? 'horse' : 'feet'))));

↓よく訓練されたPHP脳
$vehicle = $arg != 'B' ? $arg != 'A' ? $arg != 'T' ? $arg != 'C' ? $arg
'feet' : 'horse' : 'car' : 'train' : 'airplane' : 'bus';

940 :デフォルトの名無しさん:2014/10/23(木) 15:52:08.26 ID:5KZv7nGW.net
>>935
C原人なら構造体をポインタで引き回してキャストするのと同じだとすぐ分かる
実際ZVALがそういうものだ

聞いた話最近のNewbieは泥アプリから入るから、API頼りで常識が通用しないらしい
ジャワ原人ならぬジャワ新人だ

941 :939:2014/10/23(木) 15:57:06.80 ID:5KZv7nGW.net
失礼
馬が抜けていた

$arg != 'B' ? $arg != 'A' ? $arg != 'T' ? $arg != 'C' ? $arg != 'H' ?
'feet' : 'horse' : 'car' : 'train' : 'airplane' : 'bus';

942 :デフォルトの名無しさん:2014/10/23(木) 16:01:29.17 ID:qWIee6sX.net
構造体とか共用体とか懐かしい

943 :デフォルトの名無しさん:2014/11/11(火) 15:14:16.37 ID:cC0Ri94i.net
$a = x;

$$a = y;

echo $x; //yが出力

最近こんなの見て笑ったわ

944 :デフォルトの名無しさん:2014/11/11(火) 17:13:04.42 ID:2x8szm9G.net
まあ、頭の固い奴にはメタプログラミングは笑うしか出来ないだろうね。

945 :デフォルトの名無しさん:2014/11/25(火) 15:11:56.63 ID:l5YKVk4u.net
xとyコロンで囲めよ

946 :デフォルトの名無しさん:2014/11/25(火) 18:59:22.42 ID:pSkNhkFB.net
:x:

947 :デフォルトの名無しさん:2014/11/26(水) 14:38:36.84 ID:mrEHIgdQ.net
::::x:::: ::::y::::

948 :デフォルトの名無しさん:2014/11/26(水) 14:40:42.94 ID:2jjxPQIv.net
ちゃんと出来たな
偉いぞ

949 :デフォルトの名無しさん:2014/12/09(火) 20:22:23.09 ID:/ijYo4+P.net
>>895
マルチスレッドが必要になるような処理はバックエンドに回せ
phpでそんな事をやろうとするな
って事だと思う

950 :デフォルトの名無しさん:2014/12/09(火) 21:28:04.29 ID:lJ/HYBtO.net
なるほど
ちょい腕組みして考え込んだけど、phpにはとっととリクエスト返して欲しい用途以外で使われても、なんか利点感じないな
マルチスレッドができたとして、何に使えばいいんだべ
いや、別にディスってんじゃないのだけども。nodb.jsなんかもそうだしな

処理受け付けるだけにして、裏で回して進捗書き込む…程度の用途なら別の言語使っちまうな
俺なら慣れたrubyかbashかな。別にjavaでもpythonでもc#でもいいわけだしなぁ

異論は認める。つかむしろ異論を聞きたい

951 :デフォルトの名無しさん:2014/12/09(火) 22:36:47.12 ID:RsXgP/lA.net
>>949
ここでいう「バックエンド」って何を指してるの?
PHPってバックエンド用の言語だと思ってた

952 :デフォルトの名無しさん:2014/12/09(火) 22:56:53.31 ID:1O4Jy1Lz.net
PHPはバックエンドもできるよ

953 :デフォルトの名無しさん:2014/12/09(火) 23:26:46.56 ID:lJ/HYBtO.net
urlに対する処理で見れば、apatchモジュールとしてフロントエンド?
一方リクエストに対して見ると入り口はルータだしphpはエンド寄り
フロントとエンドの区別は場合次第すぎて定義が無意味な気がする

今回はマルチスレッドの話が発端だったので、サーバサイドのアプリ上でスレッドっていうと、即時に結果を応答できない系の仕事なのかなと判断してた
バックエンドなphpよりさらにバックエンドな仕事をフォークするってことじゃないの
もちろん>>952の言うようにcuiでphp走らせればそれも可能なんでややこしいけど

954 :デフォルトの名無しさん:2014/12/09(火) 23:28:22.49 ID:lJ/HYBtO.net
cuiのphpってなんか意味不明だねごめん
単なるコマンドで呼べばって意図でした

955 :デフォルトの名無しさん:2014/12/10(水) 00:09:21.43 ID:+OotUVpA.net
>>951
とりあえずphpはリクエスト返して他の言語で重い処理やるって程度の意味
分散やマルチスレッドが必要になった時とか
phpでできない事もないんだろうけど

956 :デフォルトの名無しさん:2014/12/10(水) 02:51:39.55 ID:cUpHdSie.net
DBにキュー用のテーブル用意してジョブは別プロセスで実行したほうがいいんじゃないかな
スケーリングも容易になるし
100ms以内に16スレッド使って何かを頑張って計算して返すとかだとスレッドが欲しくなるけど

957 :デフォルトの名無しさん:2014/12/10(水) 07:07:44.30 ID:vJvh8GaS.net
山田祥寛(よしひろ)、翔泳社
10日でおぼえる PHP 入門教室、第4版、2012

この本を読んだが、PHPは素晴らしすぎる
プレイスホルダーを使って、ポンポンポンと、
値を埋め込んでいくだけで、SQLインジェクションを防げる

INSERT INTO table(a,b) VALUES(:a,:b)
bindValue(':a',1)
bindValue(':b',2)

フォーム認証の、PEAR::Auth とかも便利すぎる
本当に10日で、XAMPPを制覇してまうわ

958 :951:2014/12/12(金) 00:47:58.66 ID:sV/7cf3x.net
Webアプリでいうところの「フロントエンド」言語はhtml/css/javascriptで
要するにブラウザ上で解釈・実行されるもので、
「バックエンド」はjavaでもrubyでもphpでもいいんだけど、
要するにサーバーサイドで動いているものという感覚だった

それはそれとして、PHPのポリシー自体が非同期処理をやりたければ
PHPでやらずに他の何かを呼び出してやれというということなら、
スレタイどおりの駄目言語というか、痒いところに手が届かない残念な
言語だね、という感想しか持ち得ないな

ところで stack overflow 経由で知ったけど、ここに書かれてることが面白かった
PHP: a fractal of bad design / fuzzy notepad
http://eev.ee/blog/2012/04/09/php-a-fractal-of-bad-design/

959 :デフォルトの名無しさん:2014/12/12(金) 00:54:57.40 ID:E/liDhvH.net
山田祥寛の本はクソ。

なぜか執拗に、山田祥寛を宣伝している人がいるだけ。

山田祥寛登場→ボロクソに叩かれる
というのがお決まりの流れになっている。

960 :デフォルトの名無しさん:2014/12/17(水) 11:34:22.23 ID:Ch2nenwH.net
>>957
それRDBMSの機能だよ

961 :デフォルトの名無しさん:2014/12/19(金) 10:16:07.37 ID:zC8jp3KR.net
>>951
システム構成上の位置関係の話なので、どの言語がバックエンドという固定した概念はない。

962 :デフォルトの名無しさん:2014/12/20(土) 23:44:28.27 ID:P6f2/Byp.net
>>959
地雷だよな。スゴイ簡単な話を、ムチャクチャ遠回しで不要な情報満載で説明するからな。
初心者が手にしたら絶対にプログラムがイヤになる。
枝葉末節余計な情報満載にして複雑化し、なんでもスパゲティソースにして混乱させる。

963 :デフォルトの名無しさん:2014/12/22(月) 15:23:19.18 ID:bXw2G98F.net
たまにマイナー系で、こいつしか本書いている奴がいないから
ないよりはマシ程度で買うけど、
個人のウェブサイトと同レベルの扱いだな。
読み捨てる本。

964 :デフォルトの名無しさん:2014/12/22(月) 17:34:44.57 ID:yqQU7aar.net
そんなやつだとしても結婚してる
それにくらべおまえr(ry

965 :デフォルトの名無しさん:2014/12/22(月) 17:54:55.27 ID:bXw2G98F.net
ということにしたい

966 :デフォルトの名無しさん:2015/03/13(金) 17:16:20.22 ID:XH/Vc0KQ.net
駄目なところより、良いところを見つけようぜ(´・ω・`)

967 :デフォルトの名無しさん:2015/03/13(金) 20:11:19.73 ID:FQqfzrLS.net
vb6とかcobolの世界と比べたら全てがまし

968 :デフォルトの名無しさん:2015/03/28(土) 02:49:47.48 ID:HEuIcOqS.net
【導入決定!】PHP7で実装されるスカラー型宣言とは?
http://tech.respect-pal.jp/php7_scalar_type_hinting/

ついに引数にint型とかも指定できるようになるってよ。

969 :デフォルトの名無しさん:2015/03/28(土) 16:01:43.41 ID:4IFxdD2n.net
いいけどいつごろ現場で使えるんだかな
うちは雑魚そろいなんで5.6にリプレースすんのにも年単位で難航してしもたよ

970 :デフォルトの名無しさん:2015/03/28(土) 18:44:44.96 ID:HEuIcOqS.net
今年PHP7が出て、リリースから3年でサポート終了だから、
再来年辺りには弊社も御社も移行できる…できるはず(震え声

971 :デフォルトの名無しさん:2015/05/25(月) 20:44:19.08 ID:sWtm10Nk.net
PHPさいこぉおおおおおおおおお!!!

972 :デフォルトの名無しさん:2015/05/28(木) 10:03:45.37 ID:Y/snqfhy.net
次スレないぞ

973 :デフォルトの名無しさん:2015/05/28(木) 10:06:20.01 ID:rBvx4GGD.net
次スレ http://peace.2ch.net/test/read.cgi/tech/1432775140/

974 :デフォルトの名無しさん:2015/08/07(金) 07:39:26.81 ID:BVyIgFHO.net
おわり

975 :デフォルトの名無しさん:2015/08/07(金) 07:40:30.91 ID:BVyIgFHO.net
おわり

976 :デフォルトの名無しさん:2015/08/07(金) 07:41:17.48 ID:BVyIgFHO.net
おわり

977 :デフォルトの名無しさん:2015/08/07(金) 07:41:51.80 ID:BVyIgFHO.net
おわり

978 :デフォルトの名無しさん:2015/08/07(金) 07:42:22.40 ID:BVyIgFHO.net
おわり

979 :デフォルトの名無しさん:2015/08/07(金) 08:58:53.41 ID:Z/LHjnTk.net
だめ

980 :デフォルトの名無しさん:2015/08/07(金) 09:00:17.84 ID:Z/LHjnTk.net
全然

981 :デフォルトの名無しさん:2015/08/07(金) 09:01:03.80 ID:Z/LHjnTk.net
駄目

総レス数 981
241 KB
掲示板に戻る 全部 前100 次100 最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★