age推奨で
他の言語と比較しながら、具体的にちゃんと説明してください!
2 :
デフォルトの名無しさん:2013/11/15(金) 21:27:16.50
PHPっていうか、動的型の言語がだめだわ。
facebookは拡張して型チェック付のPHP使ってるらしいね。
PHPがダメ言語な理由
* 配列ごときで、arrayの荒らし
* クロージャーがない
* mixinがない
Rubyよりはマシ
このスレッドは天才チンパンジー「アイちゃん」が
言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
8 :
599:2013/11/16(土) 07:58:54.52
9 :
デフォルトの名無しさん:2013/11/16(土) 08:47:14.99
現状に即してないもの上げるのやめようよ
ここってPHPを賛美するスレではないよな?
そうだったら勘違い
3Bはダメでも5Aならなんとか
PHPerだけど
全ての関数をオブジェクト化するべきだと思う
こんなかんじ
strpos -> string->pos
str_replace -> string->replace
あと引数の順番も整理しておくべき
PHPがダメなのは
・引数の順番に統一感がなくリファレンスに頼りがちになる
・戻り値が0とfalseを返すものがあり区別が面倒
これらは最新版でも変わってない
全く触ったこと無いけど
いざという時にだけ取り出して使うサブ武器としてもふさわしくないようにみえるな
>>16 CUIで使うならRubyかPythonのがふさわしいしな
0==falseはtrue
0===falseはfalse
だから
strposのようにインデックスが0番目にヒットしても0==falseってやるとfalseになってしまう
PHPから緩い比較演算子はなくすべき
>>19 そのページの最初のコードを実行すると最新版でも同様になるけど
説明は間違ってるぞ
バグだと未だに思ってる
なんだこりゃ右辺破壊すんのかよ
ねーよw
$ref = &$array[1]; //参照渡し
↓
$ref = &$array[1]; //参照渡し
$array[1] = &$array[1]; //参照渡し
としてる感覚なんよね
これ理解させるの大変だから、会社では配列要素のリファレンスをとることを禁止してるよ
理解できる出来ないじゃなく、右辺値が変化するところが最高にキモい
>>23 わかるわかる。理屈じゃなくて単にキモいわけだよね。
俺も昔はRubyはキモかった。
でもそれは単に自分の問題であることがわかった。
使っていればなれる。理解すればなれる。
それだけの事だった。
理由がない=自分の力不足
そう考えるようになったよ。
名前はObjective PHPでいいな?
>>25 PHP作ったヤツは言語の素人だったから
右辺値や左辺値の知識も無かったのさ
PHP4の頃、PHPerに聞いたことがあるが、
リファレンスなんて使わないから関係ないと言われた。
今はオブジェクト指向を使えだっけ?
お前の周りの話だろ。
類は友を呼ぶってな。
代入しただけで値が変化する画期的システム
副作用を避けようとする風潮と真逆
代入して値が変わるなんてありえない言語だな。
var a = 1
それ右辺変わってないがな
いや右辺は変化してるだろ
PHPerは参照が何かすら分かってないのかよ
と言うかPHPにおける参照の概念自体が間違ってるのかも
そのサイト、俺は図を見てもしばらく理解に苦しんだわ
理解したとき、その図には、その前の状態の図が必要だと思った
その前の状態は、×側と同様に変数に値そのものがくっ付いてる状態なんだな
てっきりその前から全てが参照なんだと思ってたら…
あれ、参照を用いた言語で、右辺に副作用がないものってあまりないんじゃないか?
参照カウンタ増やすだろ。これも一緒だぞ
配列を渡すとき正しい動作をしてないだけ
配列を参照渡しにしとけばバグらなかった話
この例に
$tmp = $array[1];
$tmp = 'Z';
とか足しても、$arrayや$copyには影響ない。
どちらにしろバグを仕様と言い切ってるわ
駄目言語であることには代わりがない
33は何が言いたいのか意味が分からん。
わかり易い例にしてやろうか?
$value = 1;
$ref1 =& $value;
$ref1 = 2; ← これで$valueが変わるのは普通
$ref2 = $value;
$ref2 = 3; ← これで$valueが変わるのはおかしい
そうだろ?
だけどこれを配列の1要素にした途端、
最後の行で変わってしまうんだよ。
41 :
デフォルトの名無しさん:2013/11/17(日) 12:36:06.86
説明下手だなあ
もう少しわかり易い例を出してやろう。
$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
仕様だと強弁した所で、どう見てもこれは明らかにバグだろ?
>>41-42 PHP厨は馬鹿だと仮定すれば
わからないお前が馬鹿なので
正しい反応だw
ひと目でわかる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
コピペ失敗
$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
48 :
デフォルトの名無しさん:2013/11/17(日) 14:12:31.30
array以外は?
phpはよくプログラマに馬鹿にされるから、プログラミング分からないwebデザイナーの奴らにペチパーと馬鹿にされるのが本当に嫌だ。
>>38の説明ですべて終わってるのに、お前らなにやってるの?
言語の仕組み知らないと
>>38のいってることがわからないってだけだよ
実行速度面でpython、rubyがぐんぐん改善されてるし
このまま消えていってくれたらいいのにねぇ
出来ることなら触りたくないし
PHPも改善されていってるし
まあ無理だろ?
cuiだと
ruby2>pypy>php5.3以上>python>>>perl>ruby1.8
PHPはfacebookのおかげの部分が大きい
wordpressの方が影響大きいだろ。
facebookアプリはまあサンプルが
phpっぽい気がするので
理由としてありかもしれんが、
それよりもWordPressは本体がPHPだから、
そのプラグインもPHPで書くのが自然だし、
デザインを変えようと思った時、
そのテンプレートはPHPだ。
wordpressはphpの利用人口を増やしたが、phpの改善には何も役立っていない
facebookはいろいろなコードを寄贈することで今のphpの速度がある
5.2と5.3の速度の差は、世にhiphopとして出たfacebookのphpのコンパイラによるものが多い
他の言語でもいえることだけど、ディープにその言語を使う新興の大きい企業が必要で
そこから出るリクエストに答えられる言語の開発側が必要ってことだ
FacebookはDを採用したんだろ
>>58 > facebookはいろいろなコードを寄贈することで今のphpの速度がある
facebookはPHPにコードを寄贈してないよ。
ふーん。FaceBookが何したか知らんけど、5.3で結構速くなったよね
何があったの?
しらね。でもFacebookは関係ないんだろ。
>>59 バックエンドのC++の置き換えって話だっけ
次の方〜。いらっしゃいませんか〜
世界はphpで出来ている。
よく見てみろ。お前の周りはphpのコードだらけだ。
2chはperlです
悪貨が良貨を駆逐するなんて言葉もあるし
phpが広く使われている事と、言語としての良し悪しとは分けて考えた方がよかろ
だからといってもちろん関連性皆無だと言うつもりもない
cgi駆逐するに足る、十分使える言語であり、便利な環境を提供できたからこそ普及したと思います、はい。
悪貨が良貨を駆逐する
つまり今俺達が生きているのは
良貨を駆逐した結果なんだよ。
仕組みとしてのCGIがサーバモジュール型サービスの旗手であるPHPに駆逐されたってことだろ
fastCGIが台頭するまでPHPのウリ扱いされてたし
>>73 当時からPHP使ってたが、その売り文句に苦笑してたわ
>>73 mod_perlは1996年からあったけど
fastcgiはいつからだ?
>>75 PerlのFastCGIは1996年だっけな
FastCGI自体はもっと前からあるよ
phpのブームは96年より後だよな
>>70 クソマジメに作ったものより、テキトーに作ったものの方が愚民には受け入れられやすい
というのが俺解釈
79 :
デフォルトの名無しさん:2013/11/21(木) 16:27:33.92
素人受けするところはDOSのバッチファイルみたいなものだな
赤いピルを飲んだプログラマが使う言語>PHP
?:の結合順序
とか書こうと思って開いたら
>>19見てぶっとんだ
参照される側の変数は最初は図の上の$bみたいな形だが参照されると下の形に変わるということ?
>>81 そんな単純な話ではないよ
配列の要素を参照した場合、その配列のコピーが正常に行われないバグないし仕様
三項演算子の優先順序が他と違ってキモイってあったな
説明ありがと
よくわからんけどw
発生条件にはやはり配列も絡むのか
関係ないけどPHPの配列って数値添字も含めて全部連想配列なのもキモい
$a[0]=0;
$a[3]=3;
$a[2]=2;
foreach($a as $b){print "$b\n";}
三項演算子はキモいじゃなくマジ不便
配列を返す関数の返り値から特定の要素だけ取り出すとか
(Perlなら (stat("filename"))[9] )
作ったオブジェクトをいきなり使うとか
( (new A())->method() )
いったん変数に代入しないとできないのは地味に不便
ああ、会社のサーバのは5.2だわ
関数内で使った変数のスコープがデフォルトでローカルなのはよいこととして認める
>>87 5.4以上にすると前に戻れなくなる
その2個以外に
$a = [1, 2, 3, 4];
とか対応してるし
array(array(1,2,3),array(4,5,6),array(7,8,9))とか長ったらしいもんね
だが対外サービスで使ってる環境を簡単に変えるとかないわ
問題が見つかっても基本は上のアプリで回避する方向だろな
気づかないところで互換性がなくなるほうがよっぽど怖い
5.2使えてるってことは、客側の要件が緩々なんだろうな。php4がまだ残ってるっていうぐらいだもんな
うちの5.2はディストリがパッチ当ててくれる環境だったけど、CVEしか対応しないからダメってことになって、客の金で作り直したな
当時は専用サーバーやシェルを解放してるレンタルサーバーは高額で稀で、phpは廉価なサーバーで高速にウェブアプリを動かせた
デプロイが簡単だったし
movabletypeが没落してwordpressが台頭した理由がまさにそれ
マンモス本が出てphp3を日本語対応してサービスインする国内のレンタルサーバー屋が出始めたのが2000年位から
多言語がWeb開発で中途半端
PHPには追いつけない
何をもって中途半端かまで書かなきゃそんな呟きは放屁と変わらんぞ
97 :
デフォルトの名無しさん:2013/11/26(火) 15:24:40.46
追いつけないワロタ
せめて他の言語齧ってもう一度同じ台詞はいてみろよw
98 :
デフォルトの名無しさん:2013/11/26(火) 15:41:44.01
ちょっとの手間で素人が「使えた気になる」
それが長所でもあるけど
ブラウザでしか検証してこなかったコーダなんかがプログラマ気取りになっちゃって
サーバのことなんてこれっぽっちも考えない
鯖屋とコーダーの中間に位置するWeb屋
鯖屋とコーダーの両方ができるWeb屋
101 :
デフォルトの名無しさん:2013/12/01(日) 21:26:38.60
最近、PHP触ってるけど$thisがめんどくさい
インスタンスのメソッドから呼び出したstaticメソッドの中で$thisが使えて呼び出し元のインスタンスを示すお馬鹿
今日始めたけど
ApacheとPHPの環境設定が全然うまくいかなくて
さっきXAMPPってのを知ってようやく使えるようになった。
でもdate関数使ったら時刻はずれるし(php.iniでAsia/ときょ にしたのに!)
2013年が20136と表示されるし
なんなんやこの言語は!
それはさすがにお前が糞
Web専門のバカでも出来る枠の言語のハズだよな?
先発の言語を駆逐できないのは、技術者の問題や、保守もあるから仕方ないんだが…
Web専門外の言語の後発フレームワークと比べられるのは流石にヤバい流れだと思う
バカでもできる言語である必要ないから後発に譲るよ
バカでもわかるシンプルな設計が最良で、
RFCの仕様がそこらじゅうに見えるPHPがWebにおいて
最良の選択肢なんだって思い知らされた
そうか?他汎用言語のトレンド吸い上げて随分複雑化した印象だけどな
例えて言うなら水周りが貧弱なまま建て増し繰り返したオンボロ物件
RFCが見えるってのもよくわからん
言語問わずRFCに素直な実装したライブラリが整ってれば良い訳で、何が優れてる訳でもなかろ
header(),md5(),$_SESSION[],$_COOKIE[]
この辺が好き。
Java、C#やRoRが裏側で何をやっているのか見えない。
それらと比べるならcakeやZFでは。それだとphpも事情変わらんような
>>112 骨組みの見えるバギーやレシプロ機ぐらいイケてる
115 :
デフォルトの名無しさん:2013/12/28(土) 13:20:15.52
Cakeの本がわからん
いきなりbakeなんか使わせるなよ!
116 :
デフォルトの名無しさん:2013/12/28(土) 13:25:13.64
>>5 PHPがダメ言語な理由
* 配列ごときで、arrayの荒らし → PHP5.4から[1,2,3]と書けます
* クロージャーがない → PHP5.3で実装されました
* mixinがない → トレイと使えばおk
はい、論破
今のPHP界はLaravelが通
CakePHPは古い人が使うFW
Zend Frameworkは見栄を張ってるバカが使うFW
しばらく業務で使ってなかったけどLaravel初耳。フレームワークの世代交代が早いのはいいことなのかどうかって話もあるだろうけどね
ZFはすでに俺俺フレームワーク作っちゃって運用中の職場で、追加ライブラリとして組み込んだりするのには重宝したよ
スレ覗いたら下火感が漂って寂しい限りだが
Laravelいいよ。日本だと知名度低いけどね
PhalconPHPが最近のおもちゃ
Zend Frameworkが見栄ってのはいまいち理解できない
フルスタックフレームワークとしては終わってるね
CakePHPはオフショアとか下請け専用状態やな
Laravelが素晴らしいのは母体に実績のあるSymfonyを使ってるから
個人で使うんだったらどのFWがいい?
CodeIgniter
外注向け
CakePHP、Symfony
個人・少人数開発向け
CodeIgniter、Laravel
CodeIgniterはライセンス問題で海外では終わってる
その点を調べてから使うべし
FuelPHPのほうがいいのでは
CodeIgniterのライセンスで騒いでるのは無知だけ
127 :
デフォルトの名無しさん:2013/12/30(月) 23:13:59.93
Cakeで途中からMySQLのテーブルに列を増やしたんだがクエリがそれに追随して増えてくれん
そりゃ、$this->query()で直接書けばいいんだが、fetchなんかが増えた列に対応してくれん、、、
どこをなおせばいいんだ?
Model/*phpでdisplay属性に追加すればいいのか?
FuelPHPはもう終わったろ
CodeIgniterのライセンスは厳密には問題ないんだ
けどさ途中でライセンスが変わったプロダクトは好まれない
OSLとAFLを理解するのも難しいのも痛い
Yiiもオススメ
FuelPHP2モダンでいい感じじゃん
イマイチ人気でないけど
フレームワーク語るスレ的な流れだよな
スレタイ関係ないやんかどないなっとんねんな
ごめんなさい話題触れないのに煽んなって話すよねすみません話題降ります
2014年もPHP安泰っすかねセンパイ!!
ねえ!
ねえ…。
FuelPHP2完成してないでしょ
FuelPHPは終わったというより、スタートに立ってない
メジャーバージョンアップで互換性がなくなりそうなの見えてるのに
誰も使えない
もてはやしてるの日本の一部の人だけ
133 :
デフォルトの名無しさん:2014/01/04(土) 15:49:55.33
>>133 WebProg板の適切なスレに行って聞いてくれ
その際「どう動かないのか」も添えるようにね
135 :
デフォルトの名無しさん:2014/01/04(土) 16:06:17.87
了解しましたm(._.)m
phpって言語ってよりテキストツールみたいなもんだと思ってる
Awkやsedみたいな
>>136 というか最初は実際にPerlで書かれたツールだった。
色々やってく内に言語になっちゃったんだとか。
ただ、テキストツール…っつーと何となくしっくりこないな。
だってPerlの時点でテキストツールだもの。
Web特化ツール、って感じじゃね?
138 :
デフォルトの名無しさん:2014/01/05(日) 21:01:14.38
本のサンプルコード自分で入力して書いたんだが、エラーの箇所がわからん・・・
>>138 エラーの箇所がわからないんだったら
エラーじゃないんだよ
140 :
138:2014/01/05(日) 23:39:39.43
ブラウザで「**の**行目」ってでて入るんだけど、原因は全然別の所のタイプミス、とか
Cakeを使ってるんだけどバグの原因がよー分からん場面が多くてつらい
>>140 タイプミスはバグではないよ。
それはただのミスでしかない。
まあ、サンプルなんか見ないで
コードを書けるようになったらわかると思うけどね。
バグは、一番上のバグから解決すべし
それより下のバグは、
連鎖的にバグとみなされているだけで、
一番上のバグを解決すると、自然と直ることが多い
エラーの提示ってあんまり進歩しないものなのかね
Cあたりと全然変わってないやん
144 :
デフォルトの名無しさん:2014/01/06(月) 05:52:37.04
>>144 プログラムを書いたことないトロールだろ
>>143 むしろ退化する
シンタックスシュガーみたいな本質的に無駄な要素を滅ぼせ
オサレ系言語は嫌いじゃ
見せかけでドヤ顔したいだけ
いやphpなんて別におされでもないやろ
ハスケルとかおされ
流行りかつ媚びてない裏原っぽさがある
思想分かってない半可通は一瞬で界隈の奴らに見抜かれる
俺とか見抜かれる側の典型
二度と行かねえよあんな店。服の話してんのに何が間接照明だボケが
>>148 あ、いやphpじゃなくて
シンタックスシュガードヤ顔系言語のことね
151 :
デフォルトの名無しさん:2014/01/08(水) 14:45:12.52
・値の比較、評価がわかりずらい
・関数の名前や引数がキモい、グローバルにすんな、オブジェクトにしろよ
・信じられない脆弱性やバグが割と最近まであるせいで怖い
5.4までは知ってるがこんなもんか
c,c++,ruby,js,objc…、PHPどころの騒ぎじゃない糞言語や時代遅れ言語も結構あるのでPHPは不当に叩かれすぎてる感が
===の使用を徹底する
いつも同じキー名をとる複雑な配列はさっさとクラスにしてタイプヒンディングを使う
とかしてると、だんだんphpらしさは無くなります(いいかどうかは別)
phpらしいって、それ褒め言葉?
"自分が思う"phpらしさ
だろ
array(
array(
array(
)
)
)
PHPらしさ
>>151 その5つの言語を根拠もなく糞とか言ってる時点で説得力ないでーす
158 :
デフォルトの名無しさん:2014/01/08(水) 20:53:01.04
いまだにXSSに言及がないチュートリアルが公開されるところ
初期の頃は機能不足だったり、ライブラリが貧弱だったりしたが、今はもう特別見劣りしないと思う
デザイナー上がりのプログラマーがいたり、ユーザーレベルの平均値は他の言語に比べて低いけど、それは仕方ないだろ
スクリプト言語なんか、どれも似たようなもので、大差ない
雑魚でも使えるってすごいことだよな
たとえそれが悪貨だとしても、雑魚向けの代替環境が鯖屋に普及してないしな
node.jsとかもうちょい雑魚向けにプッシュしていけないもんかね
ターゲット違うんだろうけどさ
161 :
138:2014/01/09(木) 00:12:22.39
arrayでLISPの真似事みたいにするのはやめて
>>160 c++とPHPって、どっちが優れた道具なんだ?
LISPがそんなにすごいなら、
LISPの真似事ってなんだ
PHPは最新バージョンでもまだ醜い設計なの?
Webに使えるスクリプト言語で一番ましなのはPython?
>>162 用途がまったく違うの比較してどうする
C++ないと成り立たないアプリケーションは膨大にあるが
PHPでないと成り立たないものなどない
酷い設計ってなんだ
pythonは無駄が少ない比較的綺麗な言語だとは思う
>>164 PHPでないと成り立たないものはないが
C++でないと成り立たないものもない
>>165 文字通りだよ。
PHPはスクリプト言語としての優秀さ、醜さはどうなのか?ということ
Pythonはインデントが気持ち悪くてとっつきにくい
>>166 何言ってるんだお前は
スクリプト言語しかしらない低能だろ
PHPはWeb専用の言語といっていいし
PHPで動いてるサイトなんて他のスクリプト言語で簡単に代替、移植できる。
一方、C/C++は世の中に不可欠な言語だ。
OSやミドルウェアなど重要なアプリケーションの多くがC++に依存しているし
世の中の膨大なアプリも、C++のランタイムに依存している。
>>166 プロフェッショナルしか使えないと道具と誰でも使える道具って意味で比較したんだけど
c++について学び、イディオムについて学び、己の限界を知ったあたりで
全てがバカバカしくなってくる言語。それがc++。
>>167 低能とはよく言ったものだ
C++が代用不可能な理由を説明してもらおうか
依存関係なんてPHPですらある
依存先を変えれば、または別言語で書き直せばどんなものでも代用可能
PHP自体がC++やCに依存しているが
Javaでも書かれてるしC++がないと成り立たないとはいえない
PHPのPHP実装もあるからな
PHP本体にc++で書かれた部分なんてあったっけ?
>>172 本体の範囲にもよるが、バンドルされてるExtensionにはC++がある
本体自体にはないかな
よし、Lispマシン作ろうぜ。
>>170 低能は不適切だった
あんたは無能だったようだ
一番したのレイヤーのOSがC/C++に依存している
C/C++を代替できる言語は今はない
>>171 >PHPのPHP実装もあるからな
それ遅いだろ、存在価値がない
さらにいうとアプリケーションサーバもC/C++に依存している。
PHPで書かれたコードだけでWebサービスは動かない
>Javaでも書かれてるしC++がないと成り立たないとはいえない
JavaはC/C++に依存してるんだが
おまえらバカすぎる
>>175 JavaがC/C++に依存ってなんのこと?
C/C++で書かれてるの?
>>177 JavaのバイトコードはJava Virtual Machine上で動く
Java VMはC/C++で書かれている
だからJavaはC/C++に依存している。
まあC/C++は頑張り過ぎで、そろそろ引退させてやれよとは思う
Dちゃんが、もう少ししっかりしてくれたら…ってのもあるけどなw
Cちゃんはこの先10年は現役でしょうなぁ
182 :
138:2014/01/12(日) 19:48:06.64
C++はがんばりすぎw
正直、ついていけてる奴なんているのか?最新の改版に
gccでも全機能は対応出来てねーだろ、たしか
コンパイラ屋すら全機能の実装に必死なんて、もはや何かのジョークだろ
c++11全対応にclangが一番乗りできたってニュースが去年だしな
で、今c++14策定中?なんだかなあ
これだからC++は嫌いだ
なんかc++のスレになってきたな。
実装が大変という意味だとphpの最新版も結構当てはまると思うけど、hhvmってどの辺りまでサポートしてるんだろ。
なんかもうjavascriptがぶっちぎりのウンコすぎて、あとは大体なんでもいいや
>>187 PHPはむしろ初心者は使うべからずと啓発すべき言語。
Cはポインタ、バッファオーバーフローなど無視してCUIのみで基本構文の学習用なら問題ないと思うが、それならRubyやPythonでもいいか。
Java一番で2番Rubyってありえねぇっと思ったら
Python 34.16%
C/C++ 23.29%
Java 17.63%
JavaScript 16.53%
Ruby 8.39%
かよ、Top4でいい数値
PHPは初心者がやってはいけない言語なのは間違いなし
最初は静的型付けから始めた方がいいわ
jsもphpも気を抜くと酷いことになる
LLでもポインタは避けては通れなくなる時がくるし、
やっぱjavaだな、javaやっとこう
>>189 CUIだとつまらなすぎてやる気が出ないよ
>>190 その数字どこに書いてある?
>>191 ポインタ必須の時代なんてもうこないよ
GCもついてるのが当たり前になってきてる
手動でメモリ管理する時代じゃない
1行目は同意する。
最初はC#とVisual Studioでwindows app開発がいい
web appはセキュリティとか学ばないといけないし初心者にはたいへん
194 :
デフォルトの名無しさん:2014/01/15(水) 14:55:11.14
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
>>193 その他全てを足しても0%という目を背けたくなる現実
JavaScriptは単体ならいいと思うけど、HTML、DOM、CSSも一緒にやろうとすると、覚えること結構あるよね
あと、ブラウザの実装具合のせいでやろうとしてることが出来なかった時にはまりそう
197 :
デフォルトの名無しさん:2014/01/15(水) 15:18:40.54
PHPって子供向け、初心者向けの言語だろwwww
HSP的な立場wwwwww
そりゃあゴミよ
PHPでいいや。
そもそも、Web開発にはPHP以外に選択肢がないし、
だいたい皆、c/c++の本物の技術者になるのを諦めてぺちぱーになる
だから、おまえらも同じように苦労しろの精神
「PHPでいいや。」にならなかった人たちはRubyistになります。
ブラッドピットのようなカリスマ革命家に救いを求めたのがRubyistたち。
いつの時代にもいる社会への反逆者。自らの運命に逆らい続ける。それがRubyist。
>>199 > そもそも、Web開発にはPHP以外に選択肢がないし、
Java, Rubyもあるで
Perl, Python使う奴もいるし
>>201 Web開発で使う上だけのメリットがよく分からないので選択肢にない
>>202 クラウドではJavaかRubyがメジャーでしょ
PHPがサポートされるのはずっと後になって
>>203 何処それ?Heroku、OpenStack、mogoku,AWS?
結局、どれもPHPをサポートしてるじゃないか
> PHPがサポートされるのはずっと後になって
わりとスグだったじゃないか
Heroku,GAEと言語間で棲み分けてた印象があるけど、
AWSが全部サポートしちゃってビジネスにならない感じ
>>208 Herokuでphpが正式サポートされたのかどうかしらんけど、
AWSもサポートしたのつい最近でしょ
まあそれはともかくとして、
> Web開発で使う上だけのメリットがよく分からない
というから、JavaやRuby、Python(やNode.jsも)とかを使うメリットは、クラウドで使える
(使えるようになるのが早い)ってこと
まああと、俺が作ってるサービスは数万人規模しか無いけど、Javaだとスケーラブルなんじゃないの?
Apache使ってるなら2.2系の所が多いと思うけど、基本preforkだからね。
まぁうちのシステムは一箇所あたり最大数千人しかユーザがいないから、preforkで十分なんだが。
だいぶマシになってきたけど、未だに直らんのが例外処理とエラー処理を同時にかかないかんこと
>>212 どういうこと?
trigger_error()だけじゃ駄目?
>>209 クラウドだとJavaとPythonの2強
他はどっちもどっちだろ
別途RailsのSAASがあるな
>>AWSもサポートしたのつい最近でしょ
これどういう意味だ?
Rubyは人気落ちてきてる
海外はPython強いね
英語弱者の日本はPython普及遅れてる
え?以前にみたときは、
DjangoよりRailsの方がfork数もスターも多い気がしたけど?
クラウドで、わざわざPython使うメリットって?
人気落ちてきてるってどこソースよ、どこソースよそれー?
まさか、TIOBEではあるまいな?
PHPのスレに来てまで言ってる時点でお察しだな
思索を繰り返すうちに、cとRubyだけあれば良い気がしてきた
Javaやc++、lispや関数型言語に纏わる何かが、よくある神話に過ぎないんだ
結局のところ、何もかもは実装依存にすぎず、
今、手元にある不確実な書きやすさだけが唯一確かな生への実感なんだ
RubyやRailsは必要な学習量が多すぎる
実用的に使いこなすのに必要なツールやミドルウェアの周辺知識の学習量も多い
しかも、せっかく覚えた知識の陳腐化が早い
そこまでやっても、RubyはRails専用、Unix系OS専用で、適用出来るシーンが少ない
非常にコストが大きい言語だと思う
>>220 いや、そのくらいなら他の言語も同じでしょう。言語を評価するのにフレームワークと差持ち出すのもおかしいし。
Unix系OS以外にOSなんてあったっけ?
ああ、BeOSとかSymbianのことか
>>219 や、わからんでもないのだけど
あれとあれさえあれば、の内約は結局慣れとかの個人的補正が入るんじゃねーかな
俺だとC++とJavaScriptかなあ
それだって今んとこはって意味だし、Rubyは個人では便利に使ってるし。Haskellなんかも多方面に影響与えてて面白いし
llvmやらHSAやら、環境レベルの取り組みの今後も気になるし
手元で生の感触は大事だけど、なんか面白そうっていう奴らを、業務から離れたところでゆるく楽しんでみるのもこの界隈の醍醐味じゃねえの
225 :
215:2014/01/15(水) 23:48:52.91
>>216 言語としての人気とフレームワークの人気を混同しないようにな
言語としてはPythonのが人気。
フレームワーク単体だとRailsのが人気
フレームワークとしてみたらRailsのが上だよ
なぜならRubyはRailsにユーザが集中してるから
PythonはDjango以外にもいろんなフレームワークが
あってけっこうユーザが分散してる。
その違いだよ
>>217 いたるところソース。
とにかく日本人は海外のPython人気を知らなすぎる。
Rubyは開発者が日本人ということもあって日本では人気だけど
海外ではRubyはPythonよりずっと人気は下だよ
>>220 「RubyはRails専用」ってのはそのとおり
>>222 Macは今はふつうUnix系に分類しない
redhatで標準サポートされてるrubyは1.8
windows上のruby環境はゴミ同然で仮想linux必須
railsで使う以外に使い道なし
>>220 他言語なら知識の陳腐化が遅いってのが何かの神話なんだよ
陳腐化させたくないならCOBOLやFortran、schemeで書いたら良いと思う。
けれど、皆、COBOLやSchemeには拒否反応を示すよね?
c++コンパイラもJavascriptインタプリタも、いくつもの実装が存在する。
これまで、それらの実装が、どれだけ標準の仕様を満たしていただろうか?
つまり、実装なんてものが量子力学ぐらい不確かな存在なんだ
それで、c++のノウハウとRubyのノウハウのどちらを溜め込んだら、手っ取り早く仕事が片付くか?
今手元にある環境と実装での書きやすさ。それだけが、この世の真理なんだ。
229 :
228:2014/01/15(水) NY:AN:NY.AN
海外というか日本以外じゃRubyよりPythonがずっと普及してるのは明白
PHPはもっと普及してるけど
>>225 海外のローカルのPython Meetupに出てみたことあるけど、
Pythonで実際に何か仕事している人居なかったよ
逆にRubyはRails使ってる人しか居なかった。
ハゲと鼻ピアスとタトゥーの入ったキワモノ揃いばっかで、
日本のIT記事が取り上げる情熱()みたいな印象とは大違い。
Wordpressのミートアップにも参加した。
人は多かったけどNotepad++を使うのと、デザイナ関連のちゃらい兄ちゃんが目立った。
結局、drupalのコミュニティを信用することにしたよ
>>232 そんな基準でしか言語の判断できないわけ?
Webのスタートアップ企業ではPythonが一番人気だぞ
DrupalはPHPってだけでダメだわ
PHPの汚いコードなんて読む気がしない
DrupalはPHPだから汚いんじゃなくてDrupalだから巨大なクソなんだよ
>>234 Drupalってか、SymfonyとCakePHP
>>233 地方性あるだろうけど、実際にPythonでWebの仕事してる人なんて見なかったよ
Rubyは技術的な話が活発で、カピバラの話をしていた。
Wordpressは、ぺちぱーの集まりだった。
PHP的な汚さでいうとWordpressのほうが参考になるぞ
仕事でPythonが使われてないってどれだけ狭い世界見てるんだか
自分の見た現実と直感だよ。
堅実にやりたいだけなら、周りがやっている通りにJavaかc#を使うもの
pythonを使えば、googleやfacebookがやるような仕事を出来るようになりますか?
dropboxとかtorotisehgとかwindowsのguiアプリでもpython使ってるのは結構あるし
azureでもpythonやphp、nodeはサポートされてるが、rubyは非対応
python使いがみんなこんなに必死なわけじゃないからな
Rubyが嫌いな人が多いのがよくわかる
他言語をdisることで拡散しようとした言語だから仕方ないのか
245 :
デフォルトの名無しさん:2014/01/16(木) 14:24:50.56
信者が所構わず競合他者dis繰り返したから仕方ないね
製品名とか社名とか書きたくもないから個人名にするが根は某j(個人)の信者が暴れて嫌われてるのと同じ
今更だがNamespace必要だったんかね
クラス族の衝突だけ避けられればいいのに、そんなにトップレベルに定数とか書きたいんだろうか
Rubyのモジュール方式でよかった気がする
Pythonの用途こそ一般的なNamespaceが有用と思うわ
247 :
デフォルトの名無しさん:2014/01/16(木) 14:44:48.52
ん後wwwwwwwwwwwwwwwwwwwwwwww
>>244 Rubyは、もっとアンダーグラウンドな存在であるべき
Perlは先っぽ入れただけでPHPに移り
今はRubyにいるやつが大体一番使えない
250 :
デフォルトの名無しさん:2014/01/16(木) 16:27:10.39
Rubyがなんだ実害はないぞ
251 :
デフォルトの名無しさん:2014/01/16(木) 16:42:45.79
Pythonと3ヶ月ほど付き合い、それからRubyに浮気した1週間後には、
捨てられいたPerlと一晩だけ過ごし、今はPHPと真面目に家庭を築こうと考えている
若い頃に、いろんな言語と寝なかったヤツほど
年とってから悪い何かに騙されるんだと思うよ
やっぱ年食っても若い子の方がよくみえるな
あのとき浮気しなければ、こんなのと生涯を一緒にせずに済んだと思うと
悔やんでも悔やみきれないものがある。
けれど、他人の臭いがついた彼女の姿を見たいかっていえば...。
256 :
デフォルトの名無しさん:2014/01/16(木) 21:04:16.78
コペンロバーナ「ンーwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwロバwwwwwwwwwwwww」
>>246 namespaceないとクラス名長くなるやん。
そもそもphpのnamespaceって、クラス名をディレクトリ階層ぽくできるくらいの意味しかないし、必要最低限と言える。
>>245 Ruby好きだけどRailsアンチな俺みたいなのも居るんだけど、
何かのアンチな時点でハタから見れば同類なのかなあやっぱ
まあ、教祖(もうそれでいいやw)からして論争焚き付けてる人なのも事実だしな
クラス名長くてもそんなに困らないけどな
スタティックメソッド呼び出す時に見辛くなるくらいで
名前空間あるに越したことはないけど
Rubyって、PHPっぽくベタ書きできるんだっけ?
261 :
デフォルトの名無しさん:2014/01/17(金) 14:06:43.90
ゴミ
ベンダープレフィクス程度でいいのに階層掘るのはやめて欲しい
でもwebプログラマやデザイナーの方がイケメン率高い
激しい劣等感を抱えたプログラマほど、闇の力に魅入られて深淵を覗きこむからな
Webのような底の浅い場所に、本物のプログラマたちは居ないんじゃないか
>>264 言わんとすることは分からんでもないが、劣等感抱えて深淵覗き込むプログラマーばかりだと嫌だよw
闇プログラマですか
コロコロ変わる仕様についていける体力(徹夜的な意味で)とか
デザイナーとのコミュニケーション能力なんかが重要だもんな
PHPの言語仕様がダメなら、なんでこんなにダントツで普及してるのか
PHPは嫌いじゃないけど、PHPの良い所も知らずに、他の言語をdisるPHPerが嫌い。
多言語をdisれるペチパーなんて見たことない
韓国が欧米をdisるくらい無謀な行為
PHPerたちの多くは、幾つもの言語をかじってはPHPへ帰ってきたんだ
そこが本当に居心地の良い場所だって知っているからね。
彼らが他言語をdisるなんて、北朝鮮が欧米をdisるくらい有触れた行為だよ
多言語disるのってRubyistとPerlerの特権であり特性だろ
↑これがdis
>>272 Rubyistはともかく、PerlerはPHPerがケンカ吹っかけるから反論されてるだけじゃん
>>275 そう、昔話…しかも専門外なのに使われてた時代の話
元々テキスト処理ツールであり、元鞘に戻っただけなのに
わざわざム板まで出てきて、Perl/CGIは終わった、PHP大勝利とばかりに煽るからバカにされてるのよ
Rubyは作者からして他の言語を批判しまくってたもんな
そりゃ嫌われるわ
だいたいRubyってRailsに乗っかって人気出ただけなのに
Rubyの作者はいいだろ。
あれは営業活動の一環なんだからw
でもただ使っているような奴が色々言うな。
だいたいそんな批判は的外れなものばかりだ。
営業活動しなければいけない時点で乙ですな
>>279 直接Matzに言ってこいよ。日本語通じるよ
?出来ないの?
281 :
デフォルトの名無しさん:2014/01/19(日) 15:07:47.44
>>280 Matzなら俺の横で寝てるよ。日本語通じなかったよ・・・(´;ω;`)ウゥゥ
Rubyスレじゃないから Matzが何者かわかってない奴までいる
283 :
デフォルトの名無しさん:2014/01/19(日) 15:33:10.00
なんだMatz知らない奴いるのか。
Matzは国連のPKOでさえ撤退を余儀なくされたアフリカの激戦区シオラレオネにおける
苛烈極まる紛争を圧倒的な戦闘力によってわずか2日で集結に導いた伝説の戦闘部隊の部隊長。
一目見ただけで死線をいくどもかいくぐってきたとわかる精悍な風貌をもつ人物。ただし日本語は通じない・・・(´;ω;`)ウゥゥ・・・Matzひどいお・・・
この板はどういう人が書いてるんだ?
タイトルからして想像できんのだ
一時期PHPを使っていたが
今は別言語を使っている奴がほとんどでないのかな
普段はor好きな言語は別にあるが、仕事の関係上PHPを使っているor使っていた人とか
PHP使ってる人は欠点も知りたいだろうから一度はこのスレを開くかもね
二度目はなさげ
言語煽りスレ立ててる人は隔離スレにしたいんだろう
古いPHPの話が多いから、古い人が多そう
>>285 c/c++プログラマどころか、Javaプログラマにもc#プログラマすら成れなかったヤツだっている
Rubyの方がプログラム言語としてイケていても、Web開発にベストな選択肢だとは思えない
290 :
デフォルトの名無しさん:2014/01/20(月) 03:26:19.69
PHPで長々とひどいソースコード書いて
おそらく多大な時間をかけたんだろう、Rubyとかなら5分もいかないようなものを「○○作れたー^^」とかいって
ブログ書いてる奴が多い
PHP自体でマシなアルゴリズムや記法を提供してやればマシになるのかなと思って
ちょっとPHPの言語仕様見直したけど、それも不可能だと悟った
彼らはなんなのアレ。マジアレ何。それで良いのかと問いかけたい。
ほんの一週間でいいからRubyやらPythonでまともな書き方を覚えたら
考えも変わってくれるとは思うんだけど
前提を疑えよな
その$とか->とか意味のない記号で埋め尽くされてるソースを見て
何かを感じれば他の言語を試すだろ普通は
プログラミングのような「誰がやっても同じようなもの」に対して
時間をかけて丁寧に一字一句かいていくとか、固執とかはいらないんだよ、
もっとササッとかいて、見やすい、速い、動く、 これだけで良い
こだわりを持って時間かけて何かやりたいならそれは間違いなくプログラミングでやるような事じゃないから
効率の悪いソースコードはリファクタリングでソースファイルごと削除される
PHPで書いてるソース全部がそれだからね
SessionやCookie、暗号化みたいなものが、どこにあるのか分からない言語や
サーバーの設定に分厚いミドルウェアが必要な言語はちょっと...
for-loopとイテレータのどちらが速いかみたいなことで年中考えこむのがRuby
PHPで書くのがはやいし、よほどバカでも間違いようがない
>>290 >> $, ->
これ、PHPというより、Perlをdisってるよね。
問題はそこじゃないと思うけど
>>292 今のRubyは君が思ってよりも速いよ。イテレータ(今は総じてブロックということが多いけど)で問題無い
295 :
デフォルトの名無しさん:2014/01/20(月) 04:45:57.25
296 :
デフォルトの名無しさん:2014/01/20(月) 05:52:52.35
Perlてもう時代遅れなん?色々焦ってPHP関連買いあさってある程度書けるようになって今度はちょこちょこC♯とObjective-C関連買い漁って猛勉強中
疲れてきました・・・
297 :
デフォルトの名無しさん:2014/01/20(月) 06:22:20.63
なんか言っても無駄だろうけど学習順序が違うんだよ?
上辺だけ覚えてもたいして意味がない
本気でPCやプログラミング理解したいならハードウェア、OS、デバイスドライバ、コンパイラとか
そっからまず、ソースコードがどんな風になってるか、OSがどのように起動して何を読み込んで、Windowsはどういう設計になっているか
一通りを学ぶと
C#だのObjective-Cだのその程度のものを覚えるのに1日もかからなくなるんだけど
初心者はそこら辺の深部の勉強めんどくさいやりたくないーって何かを甘えてて、
手っ取り早く上辺技術の学習だけで済ませようとするから
いつまでたっても学習コストが下がらないし、覚えたところで初級〜中級レベルの事しかできない
ちゃんと低レイヤーから一通り理解してれば、新しい技術や言語の学習なんて躓くような場所じゃないんだぜ、な。
298 :
デフォルトの名無しさん:2014/01/20(月) 06:43:50.42
なるほど!まずは俺は自作パソコンの基盤から勉強する必要がありそうだなw
>>297 C#、Objective-Cごとき1日で覚えられるという奴のことなど聞くに値しない
>>290 典型的な駄目なRubyistとはお前のこと
>>296 あれこれ齧るより、一つの言語で、プログラミングの技量を上げた方がいいよ。
言語の差より、プログラマの技量の差の方が大きいから。
プログラミングの技量あげるなら、PHPはやめとけ。rubyもな。
rubyは1.9、2.0ではやくなったね
メモリ管理はまだまだだし、web経由で計測をするとイマイチだけどな
304 :
デフォルトの名無しさん:2014/01/20(月) 08:54:18.97
>>299 1時間って言っとけばいいの?
劇的に構文が進化して新しい概念詰め込んだ言語ならともかく
既存の概念の書き方ちょっと変えた程度の言語はリファレンスにさっと目を通して終わりだろ
その程度が出来るようにならないなら一流とは程遠い
>>297 別におかしなことは言ってないが
聞いてためになる話でもない
すべってる
306 :
デフォルトの名無しさん:2014/01/20(月) 10:55:01.07
ゴミ
307 :
デフォルトの名無しさん:2014/01/20(月) 13:06:49.03
ンーwwwwwwwwwwwwww
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
学習速度ってIQだからね
310 :
デフォルトの名無しさん:2014/01/20(月) 14:10:17.87
一瞬見た図形をいくつ正確に記憶していられるかのIQテストがあるだろ
新しいプログラミング言語の言語仕様を覚えるなんてのは、
それの30分とか1時間のバージョンのIQテストのようなもの
一回その「短時間記憶領域」に記憶したら
その後でC#やObjective-Cを今後も使うっていうならそのまま頭の中で反復記憶して「長時間記憶していられる領域」にも記憶させる
逆にいえばC#なんかは既に昔にそれやってて、多分30分〜1時間くらいで覚えてた
世の中にはそういうのもいるからセンスない奴がこっちに来ると悲惨な目に合う
Java 以降の、Virtual Machine 系の言語は、GUI などのユーザインターフェイス層や、
仮想的なネットワーク層などの、あらゆるものを取り込んで、
OS の上に、もう一つの OS を構築したようなものになっているし、
Windows などの OS のほうも、GUI などのユーザインターフェイス層まで OS が取り込んで面倒をみるようになっているから、
どちらかをすみからすみまで学べば、もう一方の概念を理解する助けにもなるが、
これは上層が下層に食い込み、下層も上層に食い込んで、
境界線が溶けちまったって話のように思える。
このあたりもまあ、下層と上層をどのように定義するかって話だが。
やっぱタイプセーフな言語の方がいい
そうでない言語はどんぐりの背比べ
そもそも才能のない人が平均的なプログラマになるキャリア戦略なんてものが、
LAMPスタックでのPHPerから、下のレイヤに向かっていくしか思い浮かばない
デスクトップアプリケーションは途方もない工数をかけてc++で作るだろうし、
Javaは、Javaで出来た分厚いJava世界を作っているし、
世界の互換性なんて大体は神話のようなものだから、
技術的資料を可能な限り読まなくて済むPHPとcがベストな選択肢だって思っている
仕事で初めて使ったんだけどオーバーロード使えないのかよ
代替手段あるんだろうけどオーバーに使えないって
トレイト
オーバーロードって、普通メソッドオーバーロードとか演算子オーバーロードって思うよな
PHPはその辺がトチ狂ってる
10年くらいRejectされ続けてるね
説得性のあるリクエストを出せば実装されるかもよ?
PHPにはInterfaceもタイプヒントもある。
しかし動的型の言語でオーバーロードはいらねーよバカといわれるのが普通。
PythonにもRubyにもない。
演算子オーバーロードはRubyにはあるけども
あれのせいでRubyの学習曲線歪ませてるぐらい入れない方が良いもの
メソッドオーバーロードはLLにいらねーな
>>319 オーバーロードとは少し違うけど名前付きコンストラクタが自然に書けない
ファクトリでラップするのもダルいし
PHP以外のスクリプトでは割と「普通」に使えるんだけどな
PHPにオーバーロードはある
あるが一般的に言うオーバーロードではない
マジックメソッドはなんだかな
>>319 タイプヒントはオブジェクトの振る舞いを定義するものじゃなくてデバグ用だな
いきなりNoMethodErrorがでて初心者が「ファッ!?」となることがなくなる
>>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);
}
}
static function createSinglePlayerGame() {
$c = get_called_class();
return new $c(1);
}
のほうがいいかな
けっきょくは__construct()を可変引数にしてごにょる
あ、あとGameのコンストラクタはprotectedで
まあクライアントスクリプトのすっきり感の違いかな?
マジックメソッドはコンパイル時に解決されてるから理解しやすいのが利点だな
黒魔術的なことをしなくてもいい
ただメタプログラミングが簡単じゃないとtraitがいまいち活きない気もする
プリミティブ型でもタイプヒンティング出来るようになるって言うのはどうなったんだろう
大分前にそういう話を聞いたんだが
トレイトとかネームスペースとかジェネレーターとかはどうでも良いけど、本格的なタイプヒンティングは欲しい機能だ
phpは些細なことでもネットで情報共有する文化があるから良い
フレームワークも色んな種類があるし進化も淘汰も速い
Javaは言語仕様はシンプルだけど最低限の機能以外本当に何もない言語
その上コミュニティが閉鎖的だから、オレオレutilとかオレオレfwが横行してる
やっぱ初心者はphpやった方がいいよ
331 :
デフォルトの名無しさん:2014/01/25(土) 17:10:19.10
PHP初心者ですけど皆さんどんなエディタ使ってるんですか?
>>330 Symfony2,laravelとCakePHP、Zendぐらいしか選択肢ないだろ
333 :
デフォルトの名無しさん:2014/01/25(土) 19:58:27.24
Cから入るよりPHPから入るほうが幾分かマシではあるけどrubyから入るのが一番良い
PHPだとforeachとかwhileとか旧世代の文法でロジック組まなきゃいけなくなる
旧世代っていうけど、Linuxはその旧世代の
更に前のC言語で作られているんだぜ?
マ板ならRubyでもいいがム板ならHaskellを推す
336 :
デフォルトの名無しさん:2014/01/25(土) 22:04:05.58
> PHPだとforeachとかwhileとか旧世代の文法でロジック組まなきゃいけなくなる
C言語にはforeachすらないからなぁ。
338 :
デフォルトの名無しさん:2014/01/25(土) 22:16:25.41
そもそも、なんでいきなりLinuxの話になるんだよ知的障害か・・・
Linuxの話じゃなくて、C言語の話だろ。
githubとRoRのおかげで、人類は衰退しました
2007年以前のム板って、本当のプログラマが居たはずなんだけどね
LinuxやC抜きでPHPの話するって、本物のバカだろ
Haskellが意外に高い位置にいて驚いた
345 :
デフォルトの名無しさん:2014/01/26(日) 00:36:19.98
>>341 今でもいないことは無い
けどもう技術交換するに値しない場所だから雑談メインになっている
もう配列配列配列でやるからphpでいいよ…
配列があれば幸せだ
この感覚!?CakePHPerか?
>>346 PHPの配列は、順序付き連想配列だよ。
ハッシュ+順序と考えたほうが正確。
349 :
デフォルトの名無しさん:2014/01/26(日) 03:43:38.01
なんでPHPerってPHP覚えた?だけで力尽きるの
PHPしか出来ない、覚えられないって人はまずプログラミング側に来るべき人じゃないと本気で思う
力尽きた人なんていないだろw
>>349 PHPだけで構文解析器ぐらいまで書けるし、
サーバーやデータベースについてでも学んだ方が有益だから
foreachで困るほどでもないからな
C#のLinqは優れてると思うが、あれは型指定出来てVSで補完が利くから便利なんであって、スクリプト言語とは方向性が違う
ORMのある時代にLinqって役に立つのか?
PHPerたちには.netやjavaよりQtの方が魅力的に映っているはず
Qtはマルチプラットフォームでありながら
ネイティブで動いてユーザーインターフェースに
HTML、CSS、JavaScriptを使うんだよな。
PHPというよりもウェブ系全体に魅力的。
>>349 各言語で具体的になにができたら「出来る」っていえるか教えてくれ
わからないことはわからないまま実行せずに、その都度マニュアルみたら覚える必要なくない?
むしろ「はぁあ!? なんでエラーやねん!ちゃんとやってるやろ糞機械が!バグってるわ」と喚く輩に対し
「プログラムは書いた通りにしか動かない。エラー文読めばいい」と返せるであろう俺らは喧嘩せずに解りあうべき
プログラミングで大切なことは癇癪起こさずマニュアル読む姿勢だと俺は思うんだが
C++だとエラー文読むのは憂鬱になってくる
358 :
デフォルトの名無しさん:2014/01/26(日) 07:55:18.71
>>356 プログラミング、しかもPHP程度で癇癪って発想がまずわけわからない・・・
お前はむいてないわ やめとけほんと
来る世界間違えてる
360 :
デフォルトの名無しさん:2014/01/26(日) 09:15:27.96
ペチパーの諸君よ とりあえずruby「も」やっとけよ
言語仕様1日かけて読めば、ペチパーってバカにされる理由が分かる
別にそれを知った上でPHP使うとかは止めないし、
ただ洗練された言語構文を知らないままに、全然何もシンタックスシュガーの入ってないPHPが
当たり前の状態だと思ってる状態が良くないんだ
>>360 rubyもpyも書けと言われたら書けるけど
rubyの方はend end endに耐えられなくなった
perlは出来んことはないと思うけど言語仕様もライブラリも全然知らんままw
>>361 end end end って、割と起きないと思うけどな
まあそもそも、それで耐えられん理由もよー分からんが
>>362 いや、実際黙って耐えるけどさw
}}}で済むのに面倒だなーと
>>363 環境によっては自動で補完されるよ、俺は自分で書く方が好きだけれども
まあ、LISP系のコーディング規約みたく、1行に閉じ括弧纏めたいって話なら流石に仕方ないが
>>360 >言語仕様1日かけて読めば、ペチパーってバカにされる理由が分かる
こういうふうに抽象的に煽るだけで具体例を書かない人は何erであってもエンジニアとしてバカにされます
>>353 慌ててネットで検索してクエリ式でLinq使ってるのみたんだろうけど、LinqとORMは関係ないから
Linq楽だけど遅いぞ
スクリプト言語ならともかくWindowsアプリ開発しようっていうC#であれは許容されるのか?
あっちの文化はよく分からんけど、性能が必要ならVC++使えって住み分けなのかね?
そもそもWindowsじゃアプリに性能とかあんま求められてないよ
何故かハードウェアのほうの性能あげればいい、ってのがまかり通っちゃう世界だし
というかWindows関係なくね?
それって、同じコストをかけるのであれば、開発時間を長くするか
性能が高いハードウェアを買うかって話でしょ?
極端に言えば、アセンブラで書くか高級言語で書くかって話。
ハードウェアの性能を上げれば、アプリのすべての部分の性能が上がる。
でもアプリの性能をあげようと思っても、局所的にしか上がらないし
結果もすぐには見えてこないよね?
370 :
デフォルトの名無しさん:2014/01/26(日) 16:00:39.22
死ねゴミゴミゴミゴミwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
>>360 「やっとく」って何?
何かつくれってこと?
Linqは遅延実行されるから多くの場合パフォーマンス的に有利
, ― ノ)
γ γ‾ \
| / 从从) ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ | | l l |〃 < さくら恥ずかしぃよぉ〜
`从ハ ‾ ーノ) \________
|ヽ ` \
| ペ ノ ノ\
| // /' )
( ノ ヾ / y /
‘ / / /
/ イ (
/ / | )
( / / /
‘uノ (__/∴∵
∵∴∵∴∵
∵∴∵
ー--- '‾ ー─--'‾
>>368 おまえが性能を求められるソフトウェアを書くような機会の与えられない三流以下なんだろ
>>360 なんでわざわざPHPを使ってるかぐらい考えろ。死ね屑。
376 :
デフォルトの名無しさん:2014/01/27(月) 14:37:24.39
考えるまでもなくPHPしか使えないからだ。死ね屑。
377 :
デフォルトの名無しさん:2014/01/27(月) 17:40:07.53
ペチパー発狂
PHPが駄目なのではない
PHPerが駄目なのだ
PHPを笑うものはPHPに泣く
スケーラブルに開発できる言語って実はPHPとcじゃないのか
PHPをHTMLテンプレート言語だと思ってるやつ、いまだに腐るほどいるしな
実際はすでにサーバーサイド言語入りしてる
>>381 結局、Webには変わらんから板違いなんだけどね
CLI操作できるんだしこっちだよ
結構スレが延びてて驚いたぞ
意外にも欠点がほとんど出てないな
LLの欠点のほうが多く出てるな
よくできたPHPerは他から叩かれる欠点を(それが偏見で欠点でなくても)よく理解した上で活用してるからな
Rubyに比べてよく訓練されてる
正規表現コンパイラに渡す文字列にデリミタが必要という不思議仕様
オプション付くし
何処で聞いていいかわかんないので, 取り敢えず聞いてみる
PHP の AST ってどっかに転がってないの?
どういう意味かよく分からんがコンパイラが吐く
symfony2とCakePHPって、どっちが使いやすいの?
多種多様なツールやフレームが依存してるsymfony2の方が御利益ありそうだけど、
CakePHPの方が素人にも分かりやすいように見えるのん
検索してバンバン情報出るのがCake
よく分かってないくせにバンバン情報載せる奴がいるのもCake
とりあえずphpフレームワーク触ってみたいだけならCake
392 :
391:2014/01/30(木) 03:32:11.32
でもマジレスしても、
stackoverflowの活発さとかCakePHP 3.0に向けた開発陣の熱意、英語ドキュメント群の整備の速さからしてもCakePHPになるような気がするな
SymfonyとCakePHPを比較したブログとかは大半情報古すぎなのであてにならん
symfonyはメモリ喰いまくる
drupal,laravel,behat,composerと大概はSymfony2に依存しているよね
PHP界隈って、何故にSymfonyが大好きなんだろう
phpでドヤ顔できるからじゃない?
いろんなサーバーで小回り効くのは間違いなくCake
設計思想の差でしょ
Cakeってまだ激遅のままなの?
普通に速いよ。ベンチマークしてみればわかると思うけど。
>>397 symfonyに比べればかなりマシになったよ
他のフレームワークや、遅いことで有名なRailsよりはまだ遅い
>>400 CakePHPはともかく、動的型付け言語のなかでは
PHPは上位に入っているような?
Railsってどれも平均して遅いんだな・・・
>>400 LLの中ではPHPは上位にくいんこんでるぞ
Cakeは問題外だけどな
zend phpはそんなに速くないと思うが。
最近はRubyもかなり高速化されてきてる
ruby自体は2.0で早くなったけど
railsはアプリケーションサーバの問題なのか
大して早くならなかったらしいね
CakePHPはパフォーマンス切り捨てて他のものを取ってるからな
生産性とか統一性とか
Railsと一緒やな
オフショアや受託向きといわれる所以
速さだけならflat phpやvanilla JS
CodeIgniterやFuelPHPって名前が悪いよね。案件が燃えそう
案件が増えそうって言ったげなよ
PHPがダメなところって
Rubyがダメなところと一緒で
他の言語の後継を名乗りたいのかDisりたいのか
他の言語の良いところをパクって作って設計の統一感を失ってるところだな
Rubyのほうが最初からフラフラしてるけどな
>>378 その通りだと思う
C,Php,Python,JavaScriptをしてきた自分にとってPHPが悪い言語だと思ったことはない
今は訳あってPHPではなくPythonの方を使うけれど、最初はPythonは異質で嫌いだった
言語の未完成さとか苛つき方ではJavaScriptが一番だな
今や多くの有志たちによって何とかなってるが
PHPはvar_dump()していけば何のストレスも悩む事もなく非常に使いやすくて簡単な言語だと思うけどな
PHPerのレベルが低いかもしれないのはしっかり教育を受けた人間が少ないからだろ
他の言語なら配列操作が簡潔に書けるとかぐらいで、ウェブページ作るのならどれも大差ない
>>413 > 言語の未完成さとか苛つき方ではJavaScriptが一番だな
何が未完成?
コア部分は結構小奇麗だと思うけど…
PHPもそんなにひどい言語とは思わないけど,
C, C++, Common Lisp, scheme, Haskell, Python, …
を先にやってて, 無理やり仕事で使わされた時には,
「なんでこんなキモい仕様になってるの???」
と, 思う所が結構あった
なんか直交性に欠ける感じなんだよね
俺はJavaだけは好きになれない
何だあの長ったらしい文は
Hello World書く前に勉強する気が失せる
JavaはIDEが優秀だからな
>>416 > 何だあの長ったらしい文は
少なくともコア言語としての直交性はあると思うよ
ここで言ってる直交性ってのは, 言語能力としての直交性
# 驚き再焼成の法則って言ってもいいかも知れない
>>417 Java使いは基本的に無知(IDE依存症の弊害)
IDEはVSがもっとも優秀
VSが優れてるからC#が優れてて、C#が優れてるからVSが優れてる
PHPはWebサイトに特化すれば言語中ナンバーワンだ
コレだけは間違いない
後は何でもかんでも標準関数で入ってるから、出来ないことはない
ただし、Cみたいに自分で何でも作れるような実力は付きにくい
Web特化言語が他の言語にWebで遅れ取ってたら価値がないからな
>>421 たしかに、アルゴリズムを気にするってのはあまりないね
PHPのIDEはLLの中で比較的優秀みたいだな
利用人口が多いのと、RubyやPerlみたいな黒魔術がほぼ使われないからか
それはあるな。PhpStormの補完は結構優秀
426 :
138:2014/02/06(木) 08:01:24.05
$GLOBALSを使わせてくれ!
cccccc
PHPerたちの戦いの土俵は、あくまでもビジネスだ
どんなものでも売れなければ意味がない。
430 :
デフォルトの名無しさん:2014/02/06(木) 14:43:21.26
PHPは売れても意味がない
安いシステムを中小零細企業が納入するから、
大手もIT周りを整備しないと競争に負けるよと煽っておけば、皆が幸せ
サーバーサイドはScalaとかあるし、レンダリングはJSだろ
もうPHPメリットないって
scala ww
ネタしかなくなってきたな
Perl→PHP→Rubyって行った人たちはこれからどこいくのだろう
JavaをRubyみたいにしたかったんだろうけど、JavaはJavaの良さを追求すべきだった
>>434 > Perl→PHP→Ruby
って, 本当にいるの?
仕事で無理やりやらされるまでは PHP には爪の先ですら障りなくなかったんだけど
>>436 > 仕事で無理やりやらされるまでは PHP には爪の先ですら障りなくなかったんだけど
こういう人ってよくいるよねw
変で価値の無いこだわり。
>>436 Rails使いの結構の人がその流れよ
PHPから入った人も多い
>>438 RubyとRailsからScalaとJavaにいったんだったな
>>439 その裏でFacebookはせっせとPHP
public static funciton foo() {
static::child_foo();
~~~~~~
}
意味は分かるけどどっちかっていうけどダイナミックだよね
何がダイナミックなんだ?
たとえば、スタティック変数と
スタティック型付け は同じスタティックでも
意味が違うぞ。
ダイナミック○○の○○部分がないと意味がわからんだろ?
staticメソッドをdynamicにバインドしているだけやろ。
この場当たり感がPHPだ!
ただのグローバル
遅延束縛超便利だけどな
traitとあわせてphpだと微妙にごちゃってたプラグインとかヘルパーがすっきりしつつある
ちなみにget_called_class()のほうならstatic以外も呼べるよ
staticに違和感が出るってことは、それだけ動的言語っぽくなってきたってこと
直感的にはselfとstaticが逆
言われてみればそうだな。
最初からselfが実行時クラスで__CLASS__が定義クラスだったらそんでよかったんだろうけど。
> 静的遅延束縛は直近の "非転送コール" のクラス名
とかいいつつクロージャの中にあるstatic::は、それを定義してるクラスになる件
オブジェクトの時はクロージャの中でも非転送コールのクラス名になるからバグだろうな
やってて気づいたけどインスタンスからアローでクラスメソッド呼べるじゃん
これは知らんかったわ
class A {
static function f() {}
}
$obj = new A;
$obj->f(); // A::f()と同じ
PHPは万事緩いんだよな
変なふうに書いてもとりあえず動く
それが良いケースもあるが
何を勘違いしているのかしらんけど、
PHPのstaticメソッドというのは、
C++のstaticメソッドに似せて作られているものだから。
>>449 Perlでも同じだよ。
クラス=パッケージだから
インスタンスからでもクラスメソッドが呼べる。
正確にはどちらでも呼べるが
アローを使った場合とそうでない場合で
メソッド側で(thisに相当する)$selfが違ってくる
Perlにはスタティックメソッドって言語機能がない
クラスメソッドとして使うことを想定されてるメソッドもあるというだけで
そもそも、パッケージをクラス代わりに、
そのパッケージとblessしたリファレンスを
インスタンス代わりにしてるだけだしなあ
458 :
デフォルトの名無しさん:2014/02/09(日) 18:11:14.41
>>622 PHPだとarray_mapのコールバックにnullを渡せばzipになるから簡単
PHPのstrposが全然覚えられません・・。
俺はプログラマーになれません。
毎回リファレンス見ればよろし
関数名覚えてても引数の順番いつも忘れる俺
何かをやる時にselfやthisを使わないで
すべて「引数」と「戻り値」でやるっていう旧世代のやり方だから
しっかしWordPressが進化しまくってPHPを1から書くことなんて無くなってね?
まだObjective-CやC♯真面目にやってたほうがまし
Objective-CやC♯も
1から書くことなんて無いだろ?
お前は1から書きたいのか?
無駄な努力だよ。
>>462,463
ゴミだろ
それって1の場所が変わっただけで
周りがみんなその場所から始めるならそこが1だよ
>>464 何言ってるかいみわからんwww
それにしてもまあ、一から書かなくていいメリットを
ディスるバカが居るなんてなぁw
俺は一から書くしかない言語が優れてると思ってるんだ!
ですか?www
ライブラリやフレームワークの意味が分かってない馬鹿が一人
なんで、haskellでwebアプリって作られないんだろ
金になりそうなのに
手間すぎるから
もうウェブサイトを一から作るって案件は減ってるのは確か
ウェブじゃなくて、モバイルのネイティブアプリで展開するケースが増えてる
ウェブもよほど凝ったサイト以外はWordPressで作った方が早い
>>469 なんかもう最近はCSS(というかCompass)書くのが一番だるい
HTMLもPHPも書かん
PHP書くのはCakeくらい
webアプリの案件も減っているの?
フリーでオープンを謳ってたヤツらの間で、ファイナンスが熱くなったらいいな
Compassはライブラリであって
書くものじゃないんだが?
事実言ってるのに、屁理屈というやつなんなんだろ?
479 :
デフォルトの名無しさん:2014/02/10(月) 22:41:14.52
低能ちゃんは突っかかるからなぁ
まともに働いてるやつはこんなスレ見にこないからなw
貧乏暇無しってヤツだね!
2ちゃんねるやってるから暇なし
怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ
マジレスすると
http://netyougo.com/wara/10154.html 「怒らないでマジレスしてほしいんだけど」とは、2chにおける有名なコピペである。
以下の様な書き込み。
怒らないでマジレスしてほしいんだけど
なんでこんな時間に書き込みできるわけ?
普通の人なら学校や会社があるはずなんだけど
このこと知った親は悲しむぞ?
現実見ようぜ
こんな時間に書き込んでいる人物について批判をしているが、この書き込みを行っているユーザーも同様ということに気がついていない、というもの。
487 :
デフォルトの名無しさん:2014/02/11(火) 13:52:31.09
489 :
デフォルトの名無しさん:2014/02/11(火) 15:18:42.23
>>486 ジャ・・ジャ・・ジャ・・ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwww
つーか今日祝日ってことも知らねーニートなの?
ニートだから祝日を知らないか、社会人だから祝日を知らないか、それが問題だ
492 :
デフォルトの名無しさん:2014/02/11(火) 16:40:32.40
c++やPythonよりHaskellの方が書く効率良さそうだよね
c++でポリモーフィズムやテンプレート使うと継承や仮想関数について理解する必要できるけど、
組込開発やUnix方面では殆どcで書くしかないから、cの作法について熟知してる方がマシだし
Pythonだと毎度ながら変数への代入を間違えて、つまらないデバッグに時間を取られてしまう
PHPの場合、Haskellが型チェックすることで効率が良くなるようなコードなんて書きそうにない
仕事でcとPHPを軸にして趣味でHaskell製アプリを書くと、とても幸せになれそう
>>493 うん、理屈ではそうなんだけど、
実際やってみると、開発時間的には大差ないよ。
>>495 開発時間が半分になる言語があったら
開発費用も半分になるんだ。
開発時間も開発費用も半分でいいですから
○○言語でやらせてください!
といえるかい?
>>496 その例えって、すごくバカで、開発者側からしか見てないよね?
競合がc++で書いて2倍の工数を掛けるなら、短納期で安い方に顧客が移るだろ
Haskell開発者は、CやPHPの開発者と単価同じで仕事してくれるの?
そもそも趣味だっつんだから論点ずれてねーか?
○○言語で書くから2倍の工数と賃金を下さいって、すごく間抜けな発言
>>497 > 短納期で安い方に顧客が移るだろ
それがPHPだったりするんですよね。
>>498 裁量労働か無料で仕事するんじゃないか?
競合がPHPで書いているとすると、それに対抗するなら
短い時間、安い金額で仕事をしないといけないわけで。
タダのWebアプリ、Webサイト作りならね
パーサー書いたりコード解析などの将来性まで含めたら、
どちらが費用対効果高いか分かるでしょ
一番重要なのは、ちょっとぐぐれば大抵のことはわかる言語かどうか
Yes な言語なら開発者はヘボでもいい
No な言語ならプロジェクト内で発生する課題一つ一つを自力で解決できるレベルの開発者が必要になる
この差はでかい
>>504 将来のことは分からないから無駄な投機はしない
ってかぶっちゃけパーサとかコード解析とかならHaskellよりOcamlの方が使いやすい
その程度の用途にHaskellはぶっ飛びすぎ
DelphiやVBより、Haskellの方が優れた選択肢になるじゃないか
>>506 Ocamlって、パッと見たときに型が分からないんだけど
これって、Objectが状態遷移を表現してるの?
はじめてのc、すごいH、パーフェクト3P
PHPゴリゴリ書いていたらいいんだよ
>>510 WEB のサーバー側しか書けないじゃん >PHP
# 組み込み門は無理
# バックエンドの計算主体系は無理
# 遅いし
# コンパイラ屑だし
512 :
デフォルトの名無しさん:2014/02/11(火) 20:32:47.71
PHPだと後からいくらでも不具合出るから保守費用でどっさり追加できるもんね
>>508 型推論で記述が省略されているか、.mliファイルに記述されている
515 :
デフォルトの名無しさん:2014/02/11(火) 23:08:28.49
PHPが駄目なのはわかるけど何の言語と比較して駄目なのか
同じ駄目さが他の多くの言語にもあるし、PHPがずば抜けて糞とは言えない
PHPユーザーにプログラミング初心者が多すぎて糞コードが量産されているから悪いイメージがあるだけだと思う
OOP十分理解していれば他のLL(特にruby,js,perl)より相当読みやすいコード書けるよ
C#もよく出来た言語の割に初心者コード量産してるよ。Unity関係でとち狂った説明してるサイトも良くぐぐった先で到達してもやもやする。「なんかstaticって付けたらすげー便利になった」みたいなレベルの解説ブログとか。
言語が良くできてるかどうかじゃないと思うよ
obj-cなんか起源からして建て増し住宅の末路な糞設計のくせしてちゃんと回ってるからな
ARCとかblocks拡張とか魔改造で振り回しくさって酷いもんだよ。Appleの改変の歴史知らずに古いコードをコピペしても、もはや謎のエラーしか出ない
一方、文法などが美しいのではと聞かれたら、八割がたの経験者が鼻で笑うだろう
あの変態さがクセになってる奴もいるのだけど。c/c++とsmalltalk同居させてARCの罠を掻い潜ってトールフリーな連携できたときの達成感といったらもうそれこそ黒魔術うっひょーだよほんと
脱線した
要するに、phpは世間がいうほど悪くない程度の糞
C#みたいなタイプセーフでブロックスコープな言語はどんなにメチャクチャに書こうとコンパイルが通る以上、最低限のクオリティは保証される
他人のコードをリファクタリングするのも容易
スクリプト言語とは決定的な差がある
最初から綺麗にコードを書けばいいだけの話。
じっくりと設計に時間をかけて、拡張性を持たせて、
仕様変更もないようにすれば
リファクタリングが必要になることはない。
無理だね
>>515 OOPに関してPHPが読みやすいということはないっしょ。そもそもPHPって満足にOOPできないし。OOPの機能は充実してるけど、基本的な値に対してOOPを使えないのが致命的。
str.lengthと書きたいのに、strlen($str)と書かないといけないし。(マルチバイト考慮するならmb_strlen($str)になるのがさらに糞)
OOPを理解していることで他のLLより読みやすいコード理屈はない。(良いプログラマが書くなら対してかわらん)
PHPの場合読みやすさ云々より、くそプログラマを呼び寄せやすいという体質が一番の問題。しかもそれはイメージではなく本当のこと。
>>516 Obj-CのARCとBlocksを引き合いに出すのはちがうとおもうぞ。
両方共必要だから追加された仕様なわけで。ARCはiOS用に、BlocksはGCDのために。(そもそもBlocksはObj-Cではなく、Cのコンパイラ仕様)
対してPHPの場合、例えばトレイトなんてなんのために追加されたのかわからない。
クラスさえ満足に扱えていないし、そもそもinterfaceがあるのにトレイトとか取って付けた感しかない。
>要するに、phpは世間がいうほど悪くない程度の糞
これは同意。ただ、ただクソプログラマの傍若無人さを助長してしまうのは何とかしてほしい。
逆じゃないかな
なんでPHPはインターフェイスや抽象クラス導入したんだろう
PerlやPythonやRubyは多重継承やミックスインが以前から出来た
スクリプト言語のくくりで言えば、もっと早くトレイトは導入すべきで、インターフェイスはなくても良かった
トレンド真似る順番間違えた、ってことじゃないの
5系初期はとりあえずJava真似ときました感があるし
524 :
デフォルトの名無しさん:2014/02/12(水) 01:11:46.35
>>520 rubyのObjectクラスみたいに元々あるクラスの設計が酷すぎて、それに依存するもの全てがキモくなるとかがあるからラッパー書いた方がまだ綺麗と思った
525 :
デフォルトの名無しさん:2014/02/12(水) 01:14:52.91
多重継承とミックスインなら、継承とインターフェースとトレイトの方が好き
前者はis aがすぐ崩れる
phpの大量の小汚い謎関数ゴリ押しも、ラッパー書けば足りることではあるな
まるっと非推奨にしてくれたら見た目の印象も綺麗になるのかな
でもexplodeって関数名なんかはある意味発明だと思うw
>>524 RubyのObjectがどう酷いのかよくわからんが、ラッパーだって設計が変われば新しいラッパーができて、じゃあどっち使えばいいんだよ!古い方の使ってたコードはそのまま放置?ってなるからたいして変わらないと思うけど。
>>521 > 例えばトレイトなんてなんのために追加されたのかわからない。
> クラスさえ満足に扱えていないし、
君のレベルはまだまだ低い。がんばろう。
いい感じの議論が起こってるなw
とりあえず現時点で一番糞なのは話題にものぼらなくなったPerlだと思う
なんだあいつ
なんだあいつってお前が荒らしてるんだろw
Perlの最新事情なんも知らないなー。随分世話になったのに
「学生時代にアイドルだったxxxちゃんって今どうしてるのかな……いや、別にどうでもいいけど」的な位置づけ
mixiで現役だっけ?
>>528 何のために追加されたかわからないという言い方は不適切だったな。
利点は分かるが、一度JavaのようなOOPスタイルにしたのに、トレイトを追加とか節操がないなと思った。
他の言語はもっと慎重だからさ。
特にPHPの開発者はついて行けないと思うんだよな。クラスも満足にってのはそういう意味ね
traitは一部でコードテストを後付けするのに使っとるくらいだわ
オブジェクトとしてクラス定義を操作できるようになるまでは、わざわざ使わないかなー
>>532 いや、お前がトレイトわかってないだけだよ。
トレイトと継承やインターフェースは全く別の概念。
ダイアログを継承して、ボタン付きダイアログを作るだろ?
この時、ボタン付きダイアログは、ダイアログの多く機能をそのまま備えており
ダイアログに+αしたもの。これが継承。
インターフェースというのはあるクラスが、どんなクラスとして使えるかって定めたもの
めちゃくちゃな例だが、ボタン付きダイアログにシューティングゲームの自機戦闘機インターフェースを
持たせれば、ボタン付きダイアログを自機戦闘機としても使える。
外部から見た時にあるクラスがどんな性質を持っているか、という時にインターフェースを使う。
そしてトレイトはたとえるならば装備だ。レーザーとかミサイルとかな。
自機戦闘機にレーザーを装備できる。だが自機戦闘機はレーザーを継承しているわけじゃないし
レーザーインターフェースを持ったわけじゃない。(別に外部からインターフェースを知りたいわけじゃない)
単に、自機戦闘機がレーザーを使いたいからそれを装備した。
これは継承ともインターフェースとも違う。
>>534 それは知ってる。
でもそれを理解して使い分けられる人は少ないよ。
PHPのトレイトは本来の意味を忠実に実装してる分、返って理解されにくいと思う。あと、型とトレイトが分かれてるのもかったるいし、説明しにくい。
それよりはinterfaceが実装を持てるぐらいの方が良かったなと思う。(Java8はこれを選んだけど)
536 :
デフォルトの名無しさん:2014/02/12(水) 05:08:02.37
いや、お前がトイレわかってないだけだよ。
トイレと便座や便器は全く別の概念。
トイレットペーパーを継承して、香り付きトイレットペーパーを作るだろ?
この時、香り付きトイレットペーパーは、トイレットペーパーの多く機能をそのまま備えており
トイレットペーパー+αしたもの。これが継承。
>>534 その説明だと、トレイトってよりは、コンポジットだな。
鳥(親クラス)にトレイト(飛べる)つけて、スズメ(具象クラス)とかみたいな例がいいかと。
さらに言うと、合成についても説明がいるが、端折ったのか?
朝の4時5時から詳細な説明を要求する人って・・・
トレイトと型(インターフェイス)が分かれているのって一見綺麗だけど、トレイトを型安全に書くには両方必要になって面倒(名前どうすればいいだろ…)
割り切って、トレイトオンリーってなら、Rubyのようにダックタイピングにするか、Scalaのように型としての機能も持たせればよかった。
だから、実用性がなんか微妙なんだよな。ある意味PHPらしくない
結局、インターフェイス入れたのが間違いな気がする。タイプヒントとか使ってるのあまり見たことないし
>>520 現場的に言えば、そういうのはコードの読みやすさと関係ないのでどっちでもいい
str.length と書いても strlen($str) と書いてもどちらでも理解できる
そういうところに拘るのは宗教
>>540 「oop理解してたら他のLLよりphpが読みやすい」とか言うから、文字列すらオブジェクトじゃないのに関係ないだろ、と返しただけで、メソッドと関数どっちが読みやすいなんて論じてないよ。
ま 、strlen他文字列関数には読みやすさ以外にダメな点たくさんあるけどね。
>>541 ああ、なるほど。
Perl, PHP, Python, Ruby の中だと OOP を意識した設計がなされているのは Ruby だけで他 3 言語はどっこいどっこい
という主張なら同意する
543 :
デフォルトの名無しさん:2014/02/12(水) 07:43:14.16
>>541 文字列だけに限らず、OOPの機能が一切存在しないといえなければ、関係ないとはいえないが…
perlとやubyをヘビーに使ってる人は読み易さの基準が一般人と違う印象があるな
彼らが読み易いと言うコードは読み難い
それは今だに闇属性が抜けきれてないPerlerやRubyist
>>544 一般人はソースコードなんて読めないんだが?
それが技術ってもんだろう?
どっちが読みやすいかは両方知っている人でないと
判断できない。
片方しか知らない人がいう「読みにくい」は
まさに一般人がソースコードを読めないのと同じこと。
技術力がついてから読みやすいかどうかの話題に参加してね。
噂をすれば闇プログラマ
反論できない、悔しい。
そうだ悪口を言おう、
お前は闇プログラマ。(よし勝った!) ←馬鹿じゃね?w
549 :
デフォルトの名無しさん:2014/02/12(水) 08:04:54.95
perlやrubyに限らず、闇属性(笑)は一定数いるよ
リファクタリングとパフォーマンスチューニングとコードゴルフの区別がつかない技術者が実際多すぎて、しかもそういう人間に限ってヲタク的な知識をひけらかしてチヤホヤされるから本当に闇
だからなんだよw
スレ上げてまで、なにお前の話してるんだよw
とある誰かにこてんぱんにされて、
ここでうっぷん晴らしてるんだろ?
こんな早朝から盛り上がりすぎwww
今日は休みなんで。
年中の間違いだろ
糞の役にも立たない日本語は廃止すべき。
perlのoopをまともにしたのがruby
この2言語、一人で書くにはかなり生産性高いグッド
人に読ませるには読みにくくてバッド
選民主義って言われるのもよくわかる
読みにくいと思ってる
>>556は
民として選ばれなかったんですね?
そんあことより賤民言語の極みの英語を何とかしたい
プログラミング技法の記事って、ほとんど英語で書かれてるわけで
日本語は盲目に生まれついたのと同じレベルの不幸
いやperlは読みにくいよ
Perlはブロックスコープで変数宣言必須なのがいい
>>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
今見たら読みにくかったので直しました。すんまそん。
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();
>>562 ワンライナーや個人的スクリプトでない限りそうするのがマナーだね
>>563 マニュアルではそのオブジェクトのクラスと同じになるって書いてあるから
仕様通りならClosureのクラスメソッドがコールされることになってしまうような
とまあ戯言はおいといて、5.4の方向性でいくとフツーのClosureはYに、
Static closureはスコープエラーか何かになるべきじゃないかな
つーかどんだけstatic使いまわすのかと
クロージャからstaticとか、なんか嫌な予感しかしない
>>563,566
クロージャはクラス内で使うと、暗黙にクラスのメンバのように扱われるようになったから
「クロージャが宣言されてるオブジェクトのクラスと同じ」になると解釈できる
staticなクロージャも$thisをuseしてないだけで同様じゃねーか?
かつ、クロージャはレキシカルであると期待されてるから、後で評価しても定義された
時点のクラスを返すのは不自然ではない
クロージャを基準に考えると遅延静的束縛の方が無意味
> クロージャはクラス内で使うと、暗黙にクラスのメンバのように扱われるようになったから
というか任意のインスタンスにバインドできる
ようはjsの関数だ
無名関数としてだけ使うこともできるし、クロージャとして使うこともできるし、
プロトタイプベースの関数オブジェクトのようにも使えるキメラ的な何か
クロージャの中でLSB使えないってのは分かったけど定義クラスからのメソッドコールとみなすのは無理筋すぎる…
PHPは言語定義が甘い
adaやc++ほど優れた言語仕様を作ったところで、そんなもの誰も読まないじゃないか
c++が優れてるなんてもちろん皮肉ですよね(棒)
優れた、の意図するところに依るかな
少なくともナイスだとかマーベラスとかではない
ありゃ標準化の奴らが現場の空気読まずコンプリートとかクリンリネスあたりで優れようとしてるからたち悪いんだと思う
言語仕様に賭ける情熱は高いと思うよ
最近Pythonばっか触ってたらPHPの書き方忘れた
PHPはWeb用のクライアント言語としてはナンバーワンだ
Pythonなんかめんどくさいの何のって
PHPは楽で本当に良い
ただし、問題は文字コード周り
コレのおかげでPython使わないといけなくなってる
mbstrじゃダメっすか
正確に覚える必要がある言語って、PHPとSQLみたいな仕事に直結するものだけだよね?
後は、趣味でHaskellでも叩いてるのが幸せ。
Haskellってほんと趣味って感じ
実用で使われてるプロジェクトとかあんのかな
580 :
デフォルトの名無しさん:2014/02/26(水) 10:08:56.31
PHPが悪いわけでなく、使うやつ次第だろ。
ベーシックやフォートランやコボルやアセンブラが得意な人はそれがいいわけで。
PHPが得意な人には良い言語で、苦手ならそうでないだけ。
どれでもそう。
Haskellは特定環境下での速度がCより速いから
証券の高速売買とかで使われてるよ
>>581 市販アプリケーションレベルでしか考えてない俺が無知でした
583 :
デフォルトの名無しさん:2014/02/26(水) 14:33:40.76
HaskellやC言語が早いのでなく、コンパイラが早いだけ。
JavaScriptでHaskellやC言語のインタプリタ作れば遅い。
M$の吐いたコードよりv8の方が速いからな
585 :
デフォルトの名無しさん:2014/03/05(水) 01:26:31.10
pyramidよりもbottleよりも生PHPが速いのならwebサイトにPythonを使うメリットを感じないのですが、なぜ移行する人が多いのでしょうか。
1.phpのフレームワークよりはpythonのフレームワークの方が速いから。
2.webでもpythonを使っていたい。
こんな理由を想像してみました。
実際の意見が知りたいです。
PHPの文字連結は「.」でやるという話を聞いてなんて複雑怪奇な言語なんだと思ったあの日
>>585 データマイニング用のツールを使いたい
PHPでサーバー側のプログラムを書きたくない
>>586 Gnuplotか何か別の言語でも、.を文字連結に使っていたよ
>>585 1はない
pythonのが堅牢だからでないか?
+でやるより文字列連結を明示できて良いと思う
>>591 "5" - 2 // 3
"5" + 2 // "52"
こんなJavaScriptは嫌いだ
>>595 他スレの一部を転載するな
ブルートフォースアタックに関しての話だろ、あってるよ
PHPerにジェネレーターを使えてる奴いるのかね?
>>596 元をはっきりさせた上で使うのは、引用っていうんやで
あのフレームワークが速い!爆速!とか煽り文句書いてるけど、
単にコンドームは薄い方が気持ち良いってだけ?
その理屈なら生最強だがそうはなってない
フレームワークというコンドームに求められるのは薄さより安心感的なものなんだろうな
俺俺フレームワークなんてまるで外出しテクを競う愚行というところか
__callが威力でかすぎて他の言語使える気がしない
今気付いたが強制ID始まったか、よかったよかった
ざーっと読んで見たけど、「上級者になるために知っておきたいこと」って題ならこんな入り口内容でもいいんじゃねーの
「これを読めばあなたも上級者!」なら同じ感想だけどさ
言及弱くて、よくて「そもそもSPLとかさー」、とかの談義が始まりゃマシ程度のレスだな
ミスリード狙いっぽく読めるのがなんかどうもな
>>603 結局ひねくれて見えるんだよな、この手の記事
>>603 そこのコラムのもう一人の執筆者の肩書きが
PHP技術者認定機構 理事長
Rails技術者認定試験運営委員会 委員長
同じ穴か
>>603 PythonやRubyを仕事で使うのを諦めた層は、そんな糞コラム読まないだろ
田舎零細企業でAccessやExcelを弄ってる40歳以上を想定してるはず
>>1 だって、作者自身がそう言ってたでしょ? 仕事やっつけのためだけに作ったって。
PHP最近勉強し始めたんだけどHTMLコードって<?PHP?>の外に書くべきか中に書くべきか迷う
視認しやすさは絶対外に書いたほうだと思うんだけどいろんなプログラムのソース見てると
$header = <<< HTML 〜みたいなことして最期にechoしてるのが結構あったので気になった
実際どっちがいいの?
マルチポスト乙
PHPが駄目言語であるかの様なデタラメを流布する
目的のスレがかえってPHPが優れている言語である
ことを証明してしまった。
糸冬
>>612 perl 死んでる
ruby, py ハハッ それどうすんのさ
php 最強
614 :
デフォルトの名無しさん:2014/04/20(日) 22:28:50.63 ID:6zjHScac
aptanaっていうIDE使ってるんだけど、
pearライブラリーのコードアシストを出すには何か設定が必要なんですか?
それともドキュメント見ながらメソッド打たなきゃいけないんですか?
OSはwin8です。
なんでphpだけ専用スレないの?
php板はあるのにな
PHPも嫌いじゃないけどCakeだけは勘弁して
618 :
デフォルトの名無しさん:2014/06/22(日) 23:28:23.75 ID:I40vD2Or
PHPでJava並にオブジェクト指向で書いたら、
すごく重いのですが、仕様ですか?
それにはまず、重いという証拠を
だしてください。
話はそれからです。
>>618 PHPがJAVAより遅いのは仕様です
PHPで単にオブジェクト思考にしたら遅くなったのだとしたら、あなたの能力の問題です
622 :
デフォルトの名無しさん:2014/06/25(水) 10:00:19.03 ID:uLaDf7W/
623 :
デフォルトの名無しさん:2014/06/25(水) 10:05:02.39 ID:uLaDf7W/
なお、Java は整数演算は C/C++ の 1/3 程度の速度を持っているが、
メモリ確保が入ってくるととたんに性能が落ちる。
経験的には、同じ容量を確保した場合、C/C++ の 100倍〜1000倍
程度メモリを食うらしい。
さらに、Garbage Collection が不定期に実行されるので
スクロール中にガタガタと止まったりする。
無駄に多くメモリを消費するのも、GC の頻度が高くなる最大の原因
になってもいる。
Javaアプリの起動が遅いのは、アプリの初期化時にメモリ確保を一気に行うときに時間がかかって
居ることが主な原因。
訂正:
>経験的には、同じ容量を確保した場合、C/C++ の 100倍〜1000倍
>程度メモリを食うらしい。
ここは嘘だった。実際は、Javaの参照(ポインタ)は、C/C++よりも
ずっと容量を食うらしく、参照によってリンクを張った構造を
作ると C/C++ のポインタで同様の事を行った場合に比べて、
100〜1000倍のメモリ容量を食う。
なぜJavaがメモリを大量消費するかについて、自分なりの見解を述べ
よう。
・参照の変数の内部表現に必要なバイト数がC/C++のポインタに比べて
大きい。ただし、大きいといっても、これだけで100〜1000倍にも
なる理由の説明にはなりそうにはない。
・C/C++ では、オブジェクトを構造体やクラスの中に参照やポインタ
を解さずにそのまま埋め込むことが出来たが、Javaでは必ず参照
となるため、必ずヒープ(ストア)領域から new する必要があり、
これが、複数のメンバを持つ一般的な構造体では意外と大量の
メモリを食ってしまう可能性。 これについても、C/C++の経験
では、「大した増加にはならない」と予想されるが・・・。
【追加】
・クラス・オブジェクトのサイズがとても大きい可能性。
例えば、intのメンバ変数1つだけを持つC/C++の構造体のサイズは4バイト
だが、Javaのクラスで同様のものを作ると、4バイト+100バイト程度に
なっているのかもしれない。追加された「100バイト」の原因として
考えられるのは、Java のあらゆるクラスのルート・クラスの「Object」
のサイズ + クラスの継承時に付く何らかのデータやパディング。
いつからアンチJAVAスレになった
PHPって配列変数のシンタックスシュガー付いたんだ
あとは文字列操作をメソッド化してほしい
見解とか妄想してないで知りたかったらソース読めよw
630 :
デフォルトの名無しさん:2014/07/02(水) 16:21:25.63 ID:fvFaAf5b
なるべく他の処理を止めないように、
今では、JavaのGCは一度にやらず、
10msごとに小刻みに行う
また、使うメモリの量が増えると、
GCにかかる時間も増える
>>631 経験的には、Javaは、C/C++ の 100〜1000倍のメモリを食う。
これは、Swingなどの動的ライブラリの大きさが大きいというだけではなく、
アプリ独自のデータに対しての話。C++なら300Kバイトもかかるかかからないか
のような場合でも、Javaでは、150MBくらい消費した。
つまり、500倍程度。
経験的()
いつからアンチJAVAスレになった
他の言語を叩くやつって何か抜けてる奴が多い
>>634 話の流れじゃん。
頭が固い人には創造的結果は出来ないよ。
636 :
デフォルトの名無しさん:2014/07/05(土) 16:58:20.65 ID:e1V2szvr
>>632 それは嘘だと思います。
実測データ出せますか?
>>637 うーん。絶対間違い無い、と確信できるほどの厳密な調査はして無い。
しかし、
・見た目の上では自作アプリは設計通りの動作をしていること。
今議題にあがっているデータは見た目でデータ構造が一目瞭然
になるような物で、間違っていれば分かると思えること。
・メモリ使用量を見ると(たしか)150MB 程度で、それが原因で GC
が高頻度で起きており、JVMのメモリ量を変更することで大幅な
GC頻度の減少が見られた事。
・もし、同じことを C/C++ でやれば、ほぼ 200KB 程度であると予測
出来るし、使用容量の見積もりはそれほど難しくないように思えた
事。もし多めに見積もっても、1MB は超えないであろうと思える。
メモリ使用って、どうやって調べてんの
タスクマネージャならなんの値をメモリって言ってる?
ランタイムが大きい分メモリを消費するのは当たり前なんだが
>>639 そのとき色々確認したが、大量のメモリを使っていることは確実に
思えた。
あと、本質的にはランタイムの大きさではなかった。
なぜなら、オブジェクトの作成を、画面で見えている部分だけに
限定するように修正してみたら大幅に使用量が改善したから。
もしC++だったら、そのような工夫をしなくても余裕だったのが、
プログラムの手間や複雑さが増大してしまったが。
嘘こけ
>>642 嘘をついているつもりは無い。
もしかして、試したこと無いで言ってる?
Javaで実際的なアプリを作った経験が有る人は少数派だろうけど、
自分はその「少数派」に当たるかも。
そもそもやってみたことが無い人が多い中で、自分はやってみた
結果で話しているよ。
Javaは仮装マシン動かすからな
+αが必要なだけで、
一つのオブジェクトあたりの
メモリ使用量は変わらないんだよな。
何でまだJavaの話してんの?
>>643 試したことなく適当こいてるのはお前だろ
>>649 いや、実際的なアプリ製作での実体験に基づいているよ。
まあいいや、信用できないと思うんなら、無視してもいいよ。
こんなんで訴訟なんて起こされても困るし。
>>651 平気で嘘を吐いても良心が痛まない人って居るよね
"思う""予想できる""多分"
VM上で動くんだからメモリ使用量が不利なのは当たり前
単に作りが悪くてメモリリークしてるとか、GCの効率を妨害してるとか、そういうことを検証しないで経験とかで言われてもね
> 考えられるのは、Java のあらゆるクラスのルート・クラスの「Object」
> のサイズ + クラスの継承時に付く何らかのデータやパディング。
Objectのサイズってなに?仮装関数テーブルとか?それがインスタンスごと複製されちゃうのか?
そもそも
> Javaで実際的なアプリを作った経験が有る人は少数派だろうけど、
> 自分はその「少数派」に当たるかも。
とか言ってる時点でお察し。
Javaで実用アプリ書くなんて珍しくもなんともないだろ。こいつの視野が狭いことが予想されるし、どうして150MBも食うのかもろくに分析してないんだろうな。
てかC++で書いて計測したわけじゃなくてC++の方は予測なんだろ?
もしかして、試したこと無いで言ってる?w
今時のパソコンのメモリ量で気にすることじゃないだろ
>>654 >Objectのサイズってなに?仮装関数テーブルとか?それがインスタンスごと複製されちゃうのか?
Java は、どんなクラスも、基本基底クラスなるものがあって、それが
「Object」クラス。例えば、自前で
class CMyData {
int x;
}
というクラスを作ったとしても、CMyData は、Object クラスを継承して
しまう。なので、少なくとも、
sizeof(CMyData) >= sizeof(Object) + sizeof(int)
となる。
>>655 まあ、一般プログラマの「予想」と、オイラの「予想」の予測精度の高さ
は違うんだけど、それは匿名掲示板では伝えることが出来ないから、
なんとでも言えてしまうよ。
>>656 intメンバだけを持つクラスでも、暗黙のHEADERの8バイトの他に、
Objectがnewされて、その参照が追加される。
しかも、boolean (1bit)には、8バイトアラインが付き、8バイトも消費
される。byteも4byteアラインが付く。
これだけでも、C++より遥かにメモリ容量を食っている事が分かる。
実際はもっと凄いことになっているよ。
>>654 >単に作りが悪くてメモリリークしてるとか、GCの効率を妨害してるとか、
>そういうことを検証しないで経験とかで言われてもね
オイラは、実際に、最高レベルのプログラマだと評価が有る。
めったなことでは間違わないよ。
JavaとC++じゃ利用シーンが違うだろ。
てかいい加減スレ違いだからやめろ。レベルな高いプログラマならこんなとこじゃ無くて、ブログにでも書けや
察してあげてください
最高レベルのプログラマは間違えないのです
節子それ人間やない機械や
100〜1000倍というのはひょっとしたら間違っているかも知れない事は
認めよう。しかし、数十倍であることは、まず間違いない。
ところで
>>622 のリンク先に一応突っ込んどくと、
gcc で -O3 付けたら、そもそも sumup は一度も呼ばれない。
sumup は副作用のない関数で戻り値が代入される result もローカル変数だろ。
その result は main の後の処理で使われないだろ。
だから gcc の最適化器は main 関数の中にある for 自体を丸ごと全部消す。
printf して終わるだけのバイナリができる。
>>661 最高レベルなら予想とかじゃなくてOpenJVM解析して正しい結果出してくれる?
というか、ミスをしないとか言っちゃってる地点でたいしたやつじゃないか
668 :
デフォルトの名無しさん:2014/07/06(日) 16:18:11.30 ID:dl4OC7T3
669 :
デフォルトの名無しさん:2014/07/06(日) 16:20:59.87 ID:JKxWpx0K
同じ物同士の比較である限りは
数十倍であることがまず間違いないのなら
100〜1000倍というのはまず間違っているということになるわけだが
数十倍と1000倍って凄い差ですね
ああ、「少なく見積もっても数十倍であることがまず間違いない」
の書き間違いだった。すまん。
そんなコロコロ発言が変わる人の言うことなんて信用できるわけがない
信用しない人は信用しなくてもいい。
じゃあ、Javaでも「C++ で必用な容量とほぼ同じ」と信じていてください。
一向に構いません。そう信じて損するのもあなた、得するのもあなたです
から。
流石に苦しい
JavaがC++に比べればかなりの容量を食うのは皆知ってるだろ
君が適当に出した100〜1000倍って数値とその後のレスの内容が怪しいと突っ込まれただけ
最初から数十倍ならここまで反応はなかったよ
>>674 >JavaがC++に比べればかなりの容量を食うのは皆知ってるだろ
それは発耳。
オイラがここで言わなかったら、ほとんど誰も知らなかったと思うが。
676 :
デフォルトの名無しさん:2014/07/06(日) 16:54:08.91 ID:khAlvNFC
容量ってメモリのことか?
5年くらい前のXNAの本で読んだ話だが、C#とC++を比較して、
CPU性能はC++の80%ほど、メモリは2倍消費するくらいを目処にするといいらしい
メモリは2倍消費するというより、仮想マシンはとりあえず2倍確保しておいて、
それをメモリプールとしてスタンバイさせておくのだろうね
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 バイト。
>>676 Java のメモリ消費量は、C++ の2倍程度などという生易しいものではない。
<PID> のところは ps でプロセス ID を調べて入力する。
動いているプロセスに attach してダンプを取る仕組みだから Thread.sleep で終わらせないようにしているわけ。
スマンが、今はテストするほど暇が無いので、おいらは何もしない。
即レスするほど張り付いてID赤色の暇人がなんか言ってるよ
考え事してる合間に投稿してる。
今は考える事こそが自分のやるべきことだから。
「下手の考え休むに似たり」とはこの事だなw
なんのこっちゃ。
>>675 さすがに知ってるわ
GCもないC++の方が総じてメモリとか速度は優れてるに決まってる
ところで、JavaはC#みたいに値型導入しないの?
>>686 メモリを数十倍も食うのをどこで知ったの?
WebPageがあるなら、URLをどうぞ:
当然のことだけど、クラスの使用バイト数だけを調べても駄目なのは
分かっているよね? さらに、参照の表面的なバイト数だけでも駄目。
参照が表面的に 4 バイトしか使ってない様に見えても、ユーザー
ランドでは見えない関連データが沢山存在している可能性が有る。
例えば、GCの「ウォーク」を行うためのリンクポインタなど。
また、new CMyData の場合、CMyData の内部表現のサイズが
分かっただけでは意味が無いことも分かってる?
このようなものを調査するには、ソースを見るより実験して、
OS標準のタスクマネージャーなどでメモリ使用量を見るのが最も
正確。Javaの付属ツールのようなものが表示するのが実メモリ使用量
だとは限らない。個々のオブジェクトのサイズなどを表示しても
余り意味は無い。JVM全体でどれだけ使用しているかが大事。
Javaのクラスライブラリの初期メモリ使用量 + オブジェクトの確保に
伴うメモリ使用量
となるので、オブジェクトを増やしたときの変化の様子を見ると良い。
> OS標準のタスクマネージャーなどでメモリ使用量を見るのが最も正確。
それがそうでもないんだよな。
たとえばアプリってのは小さいメモリ、1KB未満とかね。
そういったサイズを何個も生成する。
でも、その小さい単位毎にOSからメモリ要求したら
パフォーマンスが悪い。だからある程度固まったブロックで
メモリ要求をする。
つまりアプリで使用しているが、実際には空きであることがおおいんだよ。
でもアプリ内の空きメモリはOSからみれば使用中扱い。
だから実際に使用しているメモリとタスクマネージャのメモリをみても
正確なことはわからないんだよね。
だからJavaは専用のツールを用意している。
いい加減Javaの話はやめろ。プログラミング言語は読めても、日本語は理解できないのか?
せめてPHPのメモリの話をしろ
最高のプログラマさんは
GC制御したことないのだろうな
メモリ消費量が多いプログラムもしたことがないのだろうな
>>692 システムの負担からすると、OSから見てのメモリ使用量の方が大事。
>>692 例えば50MBしか使ってないのに、タスクマネージャーでは150MBと表示される
という事なの? じゃあ、残りの 100MB はいつ使ってくれるの?
メモリブロック間の「スキマ」の事だとしたら、そういう無駄をなくす
事が GC の役割じゃないの?
GC などない C++ だと 200KB で済むんだよ。
このスレ荒らしが住み着いてて機能してねーな
ならWebProgでやるかい?
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 ヽ;:::::::::::::::::::::::::::::::::::::::::::/ /
::::::::::::::::::::::::::::::! :|.\;::::::::::::::::::::::::::::::/ /
>>697 解放されたメモリはすぐOSにはかえさず、また確保があったときにそこから割り当てる
>メモリブロック間の「スキマ」事だとしたら、そういう無駄をなくす事が GC の役割じゃないの?
ちがう。GCの役割は無駄をなくすことではなくメモリ管理の手間を減らすこと
むしろメモリに余裕があれば重たい解放処理はあまり行われない
>GC などない C++ だと 200KB で済むんだよ。
管理の手間を代償に速度と低メモリを選択した言語なんだから少ないのは当たり前
そもそも200KBというのはなんの数値だ?
タスクマネージャのどの数値のことを言っているのかわからないとなにも言えん
PrivateBytesはメモ帳ですら数MBいっているのにそれよりシンプルなソフトなのか
class A {
public $i;
}
PHPでこれ一個newしたら400バイト以上使う
>>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バイトのようだ。
さてここで、疑問がある。
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個であっても、そこで使用しているバイト数の分確保しているのではなく、
ある程度のブロックで確保していると考えられる。
やってみたら、$i〜$pの8個の変数まで増やしても
260KBのままだった。
単純計算だが、
class A {
public $i;
}
だと1個あたり260バイトだが、実際にはパディング領域があるからで、
その内訳は多くても一つの変数あたり約32バイトだろう。
実際にはクラス定義にもう少しメモリをしようてい、
変数自体は1つ16バイトとかな?
念の為に言っておくが、メモリも断片化する。
たとえば1KBのメモリを100個確保して、
偶数個目のメモリを開放すると見事に
1KBごとに使用している・していないという形に断片化する。
OSからメモリを確保する時に、ある程度のブロック単位で
確保するのは、この断片化をなるべく起こらないようにするため。
メモリを確保する時に使用していない領域があるのが嫌だと思うかもしれないが
それはパフォーマンスを上げるために必要なことで、それはC言語のmallocでも
やっていることなんだよ。
メモリプールとか断片化という単語でググればわかるよ。
気軽にHackが使えたらいいんだけどな
>>706 そんな当たり前のことを説明しなきゃならないほど、レベルが低いんだ。
ここの人たちは。
>>708 多言語叩く人なんてそんなレベル
念の為ってついてるけどな
>>709 いや、Javaの正しい問題点を正しく述べてべている人のことを、
中途半端なレベルの人が叩いている。
>>711 そんなこと無い。
投稿の文書の美しさなどだけから、才能や能力を判断する無かれ。
いやスレ違いのことを延々と語ってる荒らしだろ
714 :
デフォルトの名無しさん:2014/07/08(火) 19:14:59.57 ID:F/+7QgrM
ネイティブ vs 仮想マシンGC付き言語一般のダメさ(PHP, Java, C#, etc...)になっとるな
サーブレットと比べて、PHPはCGI前提ゆえにアプリケーションスコープや
まともなstatic変数が存在しないからキャッシュを作れないところが糞だと思う
memcachedに出し入れして高速化ノウハウとか紹介されてるし
PHPは仮想マシンじゃなくてインタプリタだろ
C#はネイティブにもできるしな
>>716 ZendのPHPはな。あとインタプリタっても、実行の度にソースコード解析してるわけじゃないぞ。
あとあとFacebookのPHP実装(HHVM)は仮想マシンだぞ。
分かってるのかもしれないが、ここまで言わにゃあ勘違いされるぞ。
718 :
デフォルトの名無しさん:2014/07/08(火) 22:33:53.86 ID:F/+7QgrM
PHPは名前空間の\や$this->必須なのも糞いな。嫌がらせとしか思えんセンスだわ
>>718 macだからバックスラッシュはそんなに嫌ではない。
$thisは面倒ではある。アロー演算子なんで余計にな
>>718 > PHPは名前空間の\や$this->必須なのも糞いな。嫌がらせとしか思えんセンスだわ
C++を参考にしているからかな。
>>718 thisが必須でないJavaの方がキモいわ。
ローカル変数とメンバ変数の違いが判らんだろ
そのうち
>>723はテキストエディタの力に
頼ってる時点でダメとかいいそうだよな。
補完するな、全てを覚えろ。みたいなw
>>724 シンタックスハイライトなんて、ヘボエディタでもviでもEmacsでもサポートしてんじゃん。
メモ帳でプログラミングするのかよ、ダサ
シンタックスがだめならプリフィクスでも付けたら?
何とでもなるよ
プリフィクス一択
this.xxx = xxx;
より、
m_xxx = xxx;
の方が便利。
プレフィックスはださい。特にC++は
this. と m_ は、文字数が 5 対 2 で、後者のほうが記述効率が良い。
m_xxx をgrep検索すると、メンバ変数定義の部分まで表示できるのに対し、
this.xxx だと表示できない。
逆に xxx を検索すると local 変数まで検索されてしまう。
733 :
デフォルトの名無しさん:2014/07/09(水) 15:17:40.54 ID:6LMuMalC
$this->client->info = "名前:".$this->name.", "."E-mail:".$this->mail;
$this->client->info
こういう場合、$this->info を検索しても、メンバ変数は検索できない
んだね。
やはり、m_xxx の法が便利だ。
C#ならIDEで名前ではなく、ちゃんと構文解析して探してくれるので
>>735 自分の好きなエディタが使えないし、コードを書きかけの時は、
うまく働かないときもあるのでは。
あと、m_xxx で問題ないのに、敢えてMSのIDEにしかない機能を頼る事もない。
>>736 別のエディタつかいたいならm_も別にいいんじゃない?
そもそもC#を他のエディタで書こうとは思わんから、つけないけど
インテリセンスなしとかきついし
Roslynでブラウザ上でも参照検索とかできめるから、他のエディタでもm_とかいらない時代くるかも
739 :
デフォルトの名無しさん:2014/07/09(水) 15:57:48.84 ID:6LMuMalC
構文解析?
javaやc#は静的型付け言語だからIDEがメソッドや変数を探せるんだよ
Eclipse・VisualStudioといったIDEの種類による都合ではない
>>738 WzEditor だと、m_xxx タイプなら瞬間的にすぐ上のものを検索したり
出来るんだよ。IDE だときついと思うが。
>>739 ためにはちゃんとIDEが構文解析してメソッド名とかを取得するでしょ?
>>740 F9 キーでカーソル以後の単語を読み込んで、SHIFT+上 キーで
それより前の行にある単語を検索できる。IDEだとそこまで快適には
出来ない気がする。
744 :
デフォルトの名無しさん:2014/07/09(水) 16:21:28.55 ID:6LMuMalC
階層深いオブジェクトを全部プレフィックスつけてあらかじめ解体しておくのか?
どちらにしろ、それを突き詰めると静的型付け言語が良いねって話になるぞ
function __constractor($client){
$info = $client->info;
$this->m_name = $info->name;
$this->m_email= $info->email;
$this->m_password = $info->password;
}
こいつらPDTやPhpStorm使ったこと無いんだろうな
C++流にはだったら:
function __constractor($client){
$info = $client->m_info;
m_name = $info->m_name;
m_email = $info->m_email;
m_password = $info->m_password;
}
と書くけど。
>>739 静的型付けは型が決まってるから補完しやすいだけで、動的言語でも頑張ればできる。
PhpStormやPDTはかなりの精度だぞ
ID:t74qz3XV は最高のプログラマだろ。文体が慇懃無礼な感じですぐ分かる。自演バレバレで恥ずかしいな。
てか、「俺は能力がある。俺の言っていることは正しい。異論は認めない。が、俺の論理が正しいことの根拠は俺は忙しいので見せてやらない。」ということを言ったってだれも賛同してくれねーよ。
到底プログラマーとしてのろくな経験があると思えない素人さんだな。
749 :
デフォルトの名無しさん:2014/07/09(水) 16:39:26.17 ID:6LMuMalC
最高のプログラマってどっかのコテハンか何か?
てか ID:LA3y01hh も同一人物だろうな。
>>746とかconstructorの綴り間違えてたり、$つけ忘れてたりthisつけ忘れてたり、偉そうな書き込みする割には手落ちが多すぎる。
その上IDEの強力な構文解析がその辺のエディタのパターンマッチング&マクロで代替できると思ってる。
しかもIDEを否定する理由が方法も考えたこと無いのに「快適にはできない気がする」だしな。
他人の意見は一切聞くことができない、ドヤ顔で自分の意見だけを語りたい、人付き合いの殆ど無い頭の硬い嫌なオッサンなんだろうな。
相手してもしょうがないでしょ。
>>747 PDTってそんなに精度いいかな?今は亡きPHPEclipseとくらべて、PHPEclipseの方が良い感じだなあという印象だった。
具体的には一つのindex.phpからrequireされるアクションクラスとユーティリティクラスがあって、アクションクラスの方からユーティリティクラスをnewした後に
そのクラスのメソッドを補完できるかできないかという違いがあった。
そこまで不満になるほど精度悪い、という訳ではないけれども。
>>749 >>622あたりからJavaはC++に比べて同じオブジェクト作るのに10-100倍くらいメモリ消費するから糞だとかいうわけのわからん自説を展開してる人。
おかしなところに突っ込んでも理解してもらえずスルー
752 :
デフォルトの名無しさん:2014/07/09(水) 16:54:57.89 ID:6LMuMalC
>オイラは、実際に、最高レベルのプログラマだと評価が有る。
>めったなことでは間違わないよ。
こいつか。ワロタ。TRPGパラノイアかと思ったぜ
>>743 カーソルの下にある単語で検索をかけて、移動するってこと?
VisualStudioだと、単語としてならCtrl+Shift+F3
文脈読んでローカル変数とかフィールドとかを区別するときはCtrl+Shift+上でいける
しかも、他のクラスのメソッドとかと名前がかぶってもある程度区別してくれる
C#は文脈キーワードが多いからシンタックスハイライトもRoslynつかうかIDEじゃないと完全には無理だと思うよ
やっぱ天才は凡人には理解してもらえないのさ。
>>750 >他人の意見は一切聞くことができない
あはは。そりゃ、天才にとっては余りにも当たり前なことを凡人は証明
しないと納得できないからだよ。証明しろ、証明しろと言ってくる。
>>750 自分で言っててあれだけど、確かにPDTは言うほどではない。
俺はJava慣れてるから、EclipseのPDT使いやすいと思っただけかも。
>>755 証明を要求する人たちとコミュニケーションをとりたくないなら2chに書き込まないほうがいいよ、ブログに書いて天才同士で交流したほうが効率的だよ
PHP はだいたい emacs で書いてる。たまに vi
eclipseは重いらしいが、Javaで書かれていることが主な原因だろう。
特にメモリ周りが重いかも。
また最高のプログラマさんがなんか言ってるのかな
VisualStudioでC++書くときよりEclipseでC++書くときのほうが軽いわ。
>>760 eclipseは重いという話をネットで見かけたが。
らしい云々じゃ誰も納得せんのだから、試してからモノ言ってはどうか
試すヒマもないとかあると思うけど、知らねえなら黙ってろって言われてお終いでしょ
普段Android開発やりとりで使ってるけど確かに重いなと感じる事はあるんだけど、そもそも組み込みエディタのカスタマイズ性に苦痛がある
重さだけ見たら多分無視できるレベルだと思うわ。Atomなネットブックでやってるのでなけりゃ気にならん
カスタマイズが弱すぎるのが辛いなぁ
vimカスタムでやってきた派としては、このIDEとしての恩恵が無視できるレベルだと思うのだけど皆さんどうなんだろ
独自エディタプラグイン作れと?
>>762 そもそもバリバリにカスタマイズするのは、IDEのメインユーザに対して需要がない。
IDEってなんでも入ってるから、プログラムの大小に関わらず、インストールさえすればコーディング&実行できるってのが利点なんだわ。
vimやemacsは簡単なプログラムなら問題ないが、使いこなそうとすると覚えないといけないことが多すぎてめんどい。
>>760 そもそも、gcc は C++ のコンパイル速度が VC++ に比べてだいぶ遅い
んじゃない?
VC++でpch(pre compiled header)を使った場合は 30 倍程度、pch を使わない
場合でも、10倍弱程度の差が有ると思う。
>>763 >そもそもバリバリにカスタマイズするのは、IDEのメインユーザに対して需要がない。
>IDEってなんでも入ってるから、プログラムの大小に関わらず、インストールさえすればコーディング&実行できるってのが利点なんだわ。
でも VC++ のIDE は、好きなエディタと組み合わせて使えるし、カスタマイズ
も可能だし、バリバリのプログラマでも、IDE なしでは困るくらいの便利さは
持ってる。
>>762 >らしい云々じゃ誰も納得せんのだから、試してからモノ言ってはどうか
>試すヒマもないとかあると思うけど、知らねえなら黙ってろって言われてお終いでしょ
かなり試してから言っても同じ。
不都合な真実が書かれると、バッシングされて終わり。
767 :
デフォルトの名無しさん:2014/07/12(土) 12:25:00.24 ID:gJLYIyot
真実に目覚めよ(くわっ
起動が重いのかテキストエディタの反応が悪いのか
裏で走ってるコンパイラが重いのか
クソなプラグインが悪さしているのか
ム板民なら切り分けて当然
>>764-766 コンパイル速度についてはどういうプログラムをコンパイルした上で言ってるの?
自分がよくコンパイルするプログラム程度では10倍の差があるなんて感じたことはないな。
あとそもそもEclipseだからってgccに縛られるわけじゃないし、Eclipseでcl.exeを使うことだってできる。
というかgccを選ぶかcl.exeを選ぶかはIDEの選択によって決めるようなものじゃないだろ。比較対象がおかしい。
そしてEclipseだって別のエディタを起動できるし。
本当にVCと同程度の時間使ってみて、不満を自分なりに解消する努力をしてから言ってるのかな?
Javaは100-1000倍メモリ食うとかいう謎な妄想にとりつかれて、Eclipseはダメだって思い込みが激しすぎてほとんど使ってなくて想像でものを言ってるんじゃないの?
不都合な真実もなにも、こっちはVisual StudioもEclipseもXcodeも使わざるを得ない状況でそれぞれでC++を書いたときに
それぞれどういうところが使いづらいかある程度わかった上でものを言っている。
どれか一つのシンパとかいうことはないので不都合な真実なんかないわけ。
まあ、「自分は最高のプログラマだと評価を受けている。だから自分の言っていることは間違ってないんだ。批判をしてくる連中は不都合があるから言論を封殺してるんだ」と
思い込んでるような奴になにを言っても無駄だとは思うけど。
バッシングっていうか反論されたくないなら、ブログに書いて賛同してくれる人のコメント以外消すとかにしたほうがいいよ。ここは2chなんだから疑り深い他人に納得してもらうためには
そのための証拠が必要だ。
つーかこいつEclipse総合スレに行って質問してるw
979 名前:デフォルトの名無しさん[sage] 投稿日:2014/07/12(土) 08:29:44.87 ID:LaymN89h
以下のようなことをネットで見つけましたが、真実でしょうか?
真実だとしたらどの程度ですか?
・eclipse は重い
・eclipse は、よく「落ちる」。例えば一日に10回ほど落ちるか、
ハングアップする?
・eclipseはメモリを大量に消費するので、JVMのメモリオプションを
変更したり、起動中にGCを手動で行う必要が有る。
全然使ったこと無いで印象だけで批判してんのな。試したこともないでネット上で見つけた感想みたいなので持論を展開するのに「最高のプログラマ」って…
>>769 >コンパイル速度についてはどういうプログラムをコンパイルした上で言ってるの?
一つは、自分で書いた小さなプログラム。後は、OSSのプログラムをmakeした
時の経験。VC++6.0でも、昔のtccでも経験したことの無い程度の時間をgccは
コンパイルに必要とするように感じた。
>自分がよくコンパイルするプログラム程度では10倍の差があるなんて感じたことはないな。
自分はかなり古いCPU(Pen4, 3GHz)を使っているので差が目立つのかもしれ
ない。最近のCPUでは分からないだけかも。
>>769 >本当にVCと同程度の時間使ってみて、不満を自分なりに解消する努力をしてから言ってるのかな?
>Javaは100-1000倍メモリ食うとかいう謎な妄想にとりつかれて、Eclipseはダメだって思い込みが激しすぎてほとんど使ってなくて想像でものを言ってるんじゃないの?
eclipseは一度も使った事が無いが、Javaがメモリを馬鹿食いする実例
としてeclipseも該当するのではないか、と思えたので話しにあげてみた。
IDEというのはDOS時代からあって、その時代、メインに使えるのは
640KBだけだった。eclipseは、1GB (1500倍)も欲すると聞いた。
ユーザーのコード量は、その時代より1500倍 に増加した分けではない。
標準的なユーザー・コード量は余り変わって無いか、多くても10倍
程度までだ。そうすると、Javaは、DOS時代のIDEの150〜1500倍も
メモリを必要とすることになる。この結果は、自前のJavaコードの
実験結果と一致している。
>>771 > OSSのプログラムをmakeした
これは、もちろん同じプログラムをVCのコンパイラ・リンカを使ってビルドして時間を比較したうえで、gccの方がVCより10倍遅いって言ってるんだよね?
>>772 DOS時代のメチャクチャ貧弱なIDEと比較して何の意味があるわけ?
そしてEclipseを一回も使ったことがないのに他人からの伝聞だけでEclipseを評価するな。
ちなみに今VisualStudioでC++を書いてるが、メモリは400MBくらい使ってる。Eclipseの方は700MBくらいだ。
精々2倍。100-1000倍とかいうことはない。
とにかく、「プログラマ」を自称するつもりが今後もあるならば、伝聞、推測、妄想でものを言うなよ。少なくとも測定して具体的なデータが出てから言えよ。
測定方法に文句が出たときはその文句に対応しろよ。そうじゃなきゃ、なんにもわかってない初心者がワーワー喚いているのと同じ。いまのあんたの状態はそういう状態なんだよ。
いくらDOS時代からの趣味プログラミングの経験があろうともね。
つーかDOS時代だってEMSとかXMSとかあったし、本当に640kBのメインメモリだけでやりくりしてた時代ばかりじゃないだろ。
>>773 言ってない。
その意味では厳密性は欠く。
>>774 >DOS時代のメチャクチャ貧弱なIDEと比較し
デバッグ時にブレイクポイントも変数の表示は出来たはずで、
それほど貧弱でもない。
>ちなみに今VisualStudioでC++を書いてるが、メモリは400MBくらい使ってる。Eclipseの方は700MBくらいだ。
今見たところ、VC++ のIDE自体は、12MBしか使ってない。400MB や
700MBというのは、OSを含んだ恐らくシステム全体のメモリ量のこと
だと思うが、だとすると、eclipseは、VC++ よりも 300MB も多いこと
になり、312MB 食っている計算になる。ということは、312/12=26倍
もeclipseはVC++よりメモリを食っていることになる。
>とにかく、「プログラマ」を自称するつもりが今後もあるならば、
>伝聞、推測、妄想でものを言うなよ。少なくとも測定して具体的な
>データが出てから言えよ。
責任ある雑誌などで、最終結論を書くときはもちろんそうだが、
今は中間的な報告で、今は他の人の経験を聞いている段階。
あなたの意見も一つだが、それがすべてでは無いと思う。
スレ違いだ馬鹿共
>>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倍の差は出ないのが普通。
>>777 自分は、VC++6.0 だが、比較的大きなプロジェクト(ワークスペース)を
ロードした状態で、CTRL+ALT+DELの「Windows タスクマネージャー」で、
イメージ名:msdev.exe
メモリ使用量:12,536K(起動直後), 2,620K(数十秒後)
仮想メモリサイズ:10,512K
と表示される。
>>778 VC6とかいうサポートも終わったような10年以上前のIDEを基準にしてるオッサン乙
はいはい解散
一生VC6使ってろよw
>>778 だからなんのメモリを見てるんだよ
ワーキングセット?プライベート?
それにVC6はインテリセンスも不完全だし、機能的に劣ってるんだからメモリ使用量少ないに決まってるじゃん
DOSよりライブラリの容量も増加して、インテリセンスでデータベースだけで何百MBもあったりするし
OSのAPIのメモリ使用量自体がちがう
そもそも、メモリに余裕がある現代はメモリにキャッシュして高速化をはかってんだぞ?
当時は極力ディスクに追い出したんじゃないだろうか
メモリ使用量だけみて無駄遣いとしか判断できないのは重症
メモリ使用量 = プロセスの現在のワーキングセット
= 現在メモリに常駐しているページの数
仮想メモリサイズ = プロセスにコミットされた仮想メモリの量。
= アドレス空間の総量。
>>780 >そもそも、メモリに余裕がある現代はメモリにキャッシュして高速化をはかってんだぞ?
>当時は極力ディスクに追い出したんじゃないだろうか
>メモリ使用量だけみて無駄遣いとしか判断できないのは重症
はあ、その結果、重くてコンパイル待ち時間にコーヒー入れてくつろげる
ようにしたのが eclipse ですか。
高速化とは、コーヒーの待ち時間を作ることだったんだ。メモφ(・_・)
>>779 古いIDEを使っているから、間違ったことを言っていると決め付けるん
ですか。
最新のハード、最新のOS、最新のIDEを使っている人以外は正しい判断が
出来ないとでも?
>>784 誤爆
>>781 ワーキングセットは共有DLLとプライベートワーキングセットが含まれると思うんだけど
>782
VC6を、出た当時のマシンで使うと、コンパイルかけたらコーヒーブレイクどころか昼食いってもまだ終わらない、なんてこともあったが?
VC6の頃と今とじゃ、マシンのスペックは100倍じゃ効かないしなあ。
>>782 コンパイルとIDEにどんな関係があるの?
コンパイルが遅いのはコンパイラの問題では?
>783
少なくとも現在サポートの受けられるOS向けのターゲットアプリを作るのに適してない、古い環境持ってきても意味はないな。
>>782 そもそもEclipse使ったことがないのに妄想でコーヒーブレイクとか言ってんのか
差分だけとかじゃない限り、Cのコンパイルに時間がかかるのは昔からだろ
分割コンパイルしないと未だに長いもんな
>>783 少なくともVC6は最早主流ではないし、自分の経験や知識を一般化はできないほど少数派になってしまっているだろ。
そういう意味では、一般論を語るのには「正しい判断ができない」。
というか、「他の人の経験を聞いている段階」というのなら、VC6以外のことについては知らないのを自覚して勝手に想像して決め付けんなよ。
硬直というのはこういうことであるという見本
気をつけましょう
自分は柔軟であるという思い込みこそ怖い…
>>786 VC++6を出た当時から使ってるけど、VC++6のIDEは最初から十分高速だった。
コンパイルかけても昼食行っている暇などなかった。
VC++6の頃のマシンと今のマシンを比べると、SSEなどの並列化命令を
除けば、3.5倍程度高速になっただけ。これは、Superパイ・ベンチマーク
による結果。100倍は行ってない。
規模によって時間は変わるんだよ
あと、最適化とか当時よりだいぶ丁寧にやってるんじゃない?
規模によって変わるので、別にバージョンは関係ない。
ネタが多いな
本人気づいてないんだろうけど
あまりにも突っ込みどころが多いので、突っ込みたくなるところをちゃんと研究した上で計算された釣りなのかとちょっと思ってしまう。
>>798 だってあんた突っ込んでも「時間がないから証拠は出せない。凡人はすぐ証明しろと言う」とか、「新しい環境は使ってないのでわからない。推測しただけ」とか
結局ツッコミに対してちゃんと反論してないじゃん。結局、確たる論拠のない無責任な発言を繰り返してるだけだろ。
>>799 確かに厳密な証拠は今回は示して無い。
しかし、自分の人生経験でいつもそうだった事に基づいて省略した。
いつもそうだったこととは、少なくとも自分が一度確信したことは、
後で証明すれば必ず証明可能なことであった、という事。
ネタは読んでて飽きない
本人は気づいてないんだろうけど
>>800 じゃあ今回もC++の100-1000倍となるようなJavaのプログラムを例示して証明してよ。
俺らにはあんたの今までの人生なんか分からないからそんなのなんの証拠にもならないから。匿名掲示板で「今まで俺が言ったことは全て正しかった」なんて言ってくれても、
あんたを誰か特定する手立てがないのだからなんの意味もないことくらい論理的にすぐわかるだろ?
あんたの経歴が色々わかるような状況ならともかくさ。
1週間毎日書き込むくらいの余裕はあるんだから、その程度のサンプルコードをideoneなりgithubなりに挙げるのに必要な工数割けるだろ?
>>802 今はそのことに時間は割けないので、辛抱してほしい。
前にも行ったが、考え事の合間に(余り考えなく済むことを)書き込んでいる
だけだから。
>>800 >>697 で言っているワークセットが200KBのソフト、機能は適当でいいから作ってみて
OSに強制ロードされる共有DLLだけで200KB以上はあると思うが、できるんだろ?
>>804 200KB というのは、自分のプログラムでデータ用にアロケートしたメモリ
限定。Java だとこの部分だけで50MBは超えると推定している。
あら、さらに墓穴掘ったっぽい
>>806 もともとそういう意味だったんだけども。
タスクマネージャーとか言ってなかったけ?
いい加減やめろよおまえら。
どっちもスレ違い指摘されて無視してる時点で同レベルだよ。
消えろ
まだやっていたのか。
スレ違いだし、JavaがCより食っててもそりゃそうだという感想しかないし、
それでJavaの有用性が否定されるけでもないし、いったい何なんだ
>>808 タスクマネージャーで総量を測ることが基本だけど、
「演繹的」に自前でアロケートした量を「推定」してはいけないと
は言って無い。
Java専用のツールを使った場合、「偽者の値」を出してしまう可能性が
あるから、駄目だと言った。
「計算」は良い。嘘の値を出すようなツールは駄目、という事。
「計算」は良い、と言っても間違ってはいけないのは、構造体の理想的な
サイズを足して出すような計算は駄目だよ。
タスクマネージャーから測定した値Mを出発点として、自前のデータ数Nや
データの階層数Aを変えた時に、タスクマネージャーの値がどのように変動
するかを測定する。そして、そこから、物理学のように M=f(N,A) を
求める。すると、N の一次関数になったりすれば、N 一つ当たりのバイト数
が正確に判明する。
次スレはタイトル変えろやな
なんというか、物理学と同じ。
・あらゆる影響を合成した値が入ってくるが、間違いなくある物理量を正直に
測定できる測定器Aと、
・一見単独の値を測定しているように見えるが、実は中で勝手に信頼できない
方法で計算しているかもしれない測定器B
があった場合、B よりも A を使うべきということ。
A は、さまざまな影響が合成されているのでそのままでは目的の量を図ること
は出来ないが、演繹的に作った物理理論に基付いた数式を駆使することで非常
にさまざまな量を正確に「推定」することが出来る。
>>814 Aできちんと測ってくれ
まだ測れてないのは明確だぞ
Cの方は測ってないし、Javaもメモリ使用量をみただけで厳密な計算をしてないんだろ?
計算式があったところで使わずに適当なことを言ってるじゃん
しかも、メモリをまとめて確保したりするGCの前に、そんなに正確にわからないでしょ
>>802 のとおり例示してくれ
そういやYahooってPHPのビッグユーザだけど、HHVMに投資したりすることは無いのかね。
Zendのはマシになってるとはいえ、元がうんこだから捨てて欲しいんだけど
>>817 今のところないんじゃないか?
Zendがうんこだとしても、他のLLよりは性能いいしな
>>818 どこがだよ。トータルなら大差ないだろ
(Zendの)PHPって基本的な処理に使う関数がCの薄いラッパーになってるから速いだけ。Stringとかをクラス化して測ったら遅くなんじゃね?
>>819 かなり間違ってるけど
まぁいいんじゃ大差ないんだったら
>>820 間違ってるんなら語れよ
語れなきゃ俺の勝ちなwwwww
基本的な処理がCってのがまずよくわかんね
rubyやpythonは違うのかい。抽象化の度合いを語りたいの?速いだけ、って良いことだよな
基本的な処理つーても、オブジェクト処理の絡まないアプリの方が珍しいしなぁ
それが大差ないならそれでいいだろ
Stringをクラス化して云々は数字だしてから物言えば、って感じですな
何を訴えたいのかがよく分からんし、そもそも何の勝ち負けなの
動的型言語の実行速度なんて最適化しても限界があるから
例えばPythonのCythonみたいなアプローチのほうが
実際のアプリは速くなるよ
FacebookのHackがもっと広まって欲しい
>>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倍程度にしかならないので、
気付く人が少ないだけで。
>793
はい嘘確定。
VC6 は1998年の製品。当時のCPUだと辛うじてPentium II が 400MHz台で動作。
現在のCPUがマルチコアにHT付きで4GHzに達すること考えると、100倍はあるレベルだぞ。
あと、メモリ量も当時だと128MB積むのも厳しかったから、これも地味に100倍超える。
HDD のアクセススピードやメモリの動作クロックも桁違い。
>>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倍になったりするわけではない。
誤字訂正:
PennII ---> PenII
律則 ---> 律速
メモリやHDDが早くなってい ---> メモリやHDDが速くなっているのは、
ちなみに、Pen4 は、2000年かららしいが、
Visual C++ 6.0 のリリース 1998年
Visual C++.NET 2002 のリリース 2002年
らしいので、C++6.0の購入時期と、Pen4の購入時期が同じ人がいても
不思議ではない。
待って。自分の脳内の記憶と解釈だと、1Coreでは:
PentiumII は、クロック数が400MHzで、IPC=1 弱程度
Pentium4 は、クロック数が3.0GHzで、IPC=0.3 程度度
Corei5 は、クロック数が3.0GHz程度で、IPC=1 程度
位。「解釈」と書いたのは、正式なIPCは多分、公表されて無いと思ったから。
これを見ると分かるように、1Coreあたりでは、PenII から Corei5 でも、
8倍程度しか速度向上はしてない。
マルチコアになって、コンパイル速度は上がったのかな?
何度も申し訳ないが、PenII とPen4 の速度差は 2倍もなかったと記憶して
いる。なので、
>>829はどこかに間違いが有る。
正しくは、1Core 当たり:
PentiumII は、クロック数が400MHzで、IPC=1 弱程度
Pentium4 は、クロック数が3.0GHzで、IPC=0.2 程度
Corei5 は、クロック数が3.0GHz程度で、IPC=1 程度
位かと思われる。
ごめん。これだと、Pen4とCorei5 は5倍も速度差があることになってしまう。
実際は3.2倍程度。
なお、PenII の IPC は、1を超えていたとは思えない。
そして、PenII と Pen4 の速度差は2倍もなかった。
これらを全て満たすパズルの答えが必要です。(笑)
832 :
デフォルトの名無しさん:2014/07/15(火) 13:10:20.24 ID:1JPZTQiO
うわあんんん
んん
これは痛い
恥の上塗りはもうご馳走様
PHPを絶賛しているのは最高のプログラマーくらいの雑魚だけ
>>834 最高のプログラマーは、PHPを絶賛してるわけじゃないと思うが。
すっかり静かになったな。
ところでおまえら、空文字列のチェックはどうしてる?
俺は色々試したが、if(strlen($str)==0)に落ち着いたわ。empty使えなさすぎ
is_null()とかempty()とか似たようなのたくさんあって違いがわからん
if ($str === '') じゃダメなの?
empotyはシンボルテーブルにない変数や配列を参照しても黙って真を返すのがいいところ
(でもあり罠でもある)
それより何より empty('0') が true になるという摩訶不思議仕様。
>>841 そう、それがあるからブランク文字列のチェックに使えない
nullもブランクと同じ扱いにする場合、if (is_null($str) || $$str === '') だと冗長。
strlen($str)にnull渡すと0返すし、一番いいのかなと
空文字と区別しないならそもそもnull型を使う必要がないかな。
>>843 理想はそうなんだけど、""を期待してるのにnullを返してくる不躾なAPIや、DB(MySQL)なんかだと区別する場合もあるわけで。
そういったときは、エラーにするのではなく、空文字として処理した方が無難なんだよね。
モダンな言語ならOptionals(Nullable Type)で解決できるんだけど。
optionalsは動的型付けのPHPには無縁だった。(type hintingみたいにすればいいかもだけど)
PHPってJavaみたいにインスタンス作りまくると重いですか?
バージョン間の互換を捨て過ぎ
探せ!バグのすべてをそこに置いてきた!ことニューバージョンPHP5.6は月末リリースになります
>>846 それ凄い勉強になったよ。ありがとう。
===が安定だね。
ララベル使っとる。
853 :
デフォルトの名無しさん:2014/09/21(日) 07:11:47.00 ID:Rf9+oeun
PHPで仕事してる人に質問なんだけど
PHPは中規模
javaなら大規模開発ができる
PHPのWEBアプリケーションの仕事の応募が多いがあれをやって(PHPでもjavascriptやhtmlいろいろ覚えるんでしょうけど)
そのごjava Servletなんかに移行するのって相当難しかったり別分野だったりするんですか?
javaの言語は多少既に扱える状態の話
移った人いませんよね。募集もPHPjavaって多いし壁はないのかな
勉強コストが低い言語としては優秀だと思う
>>853 両方きちんと理解してれば壁というほどの問題はないと思うけど
逆にそれが仇となって
移行する意義をなおざりにして巨大なクソの山が出来るかも
まずは日本語だな
$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
>>855 最後がよく分からいですが
移行するのが面倒になるってことですか
PHPで書いててjavaで作ってよっていわれて作ることは
仕事上よくあるのかな
859 :
デフォルトの名無しさん:2014/09/21(日) 21:07:20.48 ID:TY3LPXLd
しかしPHPカンファレンス1か月切ってるのに未だにプログラム発表されないとか
運営なにやってんの?
AccessやらExcelで回してた業務をWeb化したいということで
PHPやJavaで作るということは多々あると思う。
ただPHPで動いてたものをJavaにリプレースしたいというのは、
よっぽどパフォーマンスが必要だとか、改修規模が膨れ上がりそう
ということでもない限り、ないんじゃないかな。
Java屋がPHP屋に移行するのは支障ないと思う。
逆にPHPしか経験がない人がJava屋に移行するのは結構苦労しそうな気が。
あと今どき Java Servlet なんて直接触らないから。
>>860 ありがとう。今ってjavaでどうやってWEBアプリつくってるんですか?
ありがとうございます。助かりました
PHPの本をよんでてXAMPPというのがありました
最初はこれでいいんでしょうけどどのくらいしたら
linuxのCUIで作るほうがいいんでしょう?
eclipseでjavaなんかを多少趣味レベルでいじってますが
保管コマンド?みたいな記述間違えを正すのがないと難しそう
XAMPPって単体のものをまとめてるだけだから
それぞれ個別にあつかえばいいだけだろ
保管コマンドって、セーブすんのかと思ったけど
よく考えたら補間のことかいな
別にプログラムは好きなので書いたらいいよ
設定ファイルはvi覚えときゃいいだけ
専門用語が多すぎてよくわからないけどありがとう
linuxはviを開いて閉じれる程度のCUI操作で
どうにかなるってことですか。
バーチャルマシンのCDROMのつくりかたもかいてある
linuxのCUIのいい本さがすしかないかな
「LinuxのCUIで作る」というのがどういう状況を指しているのかよくわからないけれど、
EclipseだってPDTというPHP開発用プラグインはあるし、ほかにも Netbeans でも
PHPStorm でも好きな IDE を使えばいいと思う。
>>867 実務でlinuxコマンドでの操作が多いみたいで学ぶわけです
865を「専門用語が多すぎて」と感じるレベルであれば、
悪いことは言わないから vi やら vim やらの単なる
テキストエディタではなくて、868の手元の Windows に
IDE を入れて開発する方向をお勧めする。
まさか本番Linux環境のPHPプログラムを直接いじって
直せとか、そういう要求をされているのではあるまいな。
PHPとlinuxセットでよくある求人だよ
内容は知らないです
>LAMP環境(Linux+Apache+MySQL+PHP)による開発
これです
うわぁ・・・
873 :
デフォルトの名無しさん:2014/09/23(火) 20:52:09.75 ID:DS8lLlTc
そんなことより10/11だってのにまだPHPカンファレンスの詳細発表ないよ ほんとにやるの?
要するに
>>853 は Java をかじったくらいのスキルしかなくて、LAMP 環境での
開発の求人に応募しようか悩んでいるのでアドバイスが欲しいってことなのか。
最初からそういえばいいのに。説明が小出しすぎて回りくどいぞ。
Linuxのコマンドを覚えたいという話なら、VirtualBoxなり何なり入れて
CentOSでも突っ込んで好きに触るといい。
XAMPPみたいなオールインワンパッケージに頼らず、自力で標準的な
LAMP環境を構築できるくらいのスキルは身につけておいた方が後々便利だ。
PHPのプログラムを実際に書くのは、Windows側でやればいい。
PHPのプログラムを組むこと自体は、Linuxのコマンドの知識はなくてもできる。
どうせ「LAMP環境で開発」と謳う求人だったら、Windows側で開発して
テスト環境なり本番環境にはFTPでアップロードみたいなレガシーなやり方しか
してないだろう。
同レベルじゃん
>>865-866 LAMP, XAMPP は仕事では常識
DB, Webサーバを知らなかったら、仕事はできない
Linux コマンド逆引き事典、2013
これを買って、ざっと読む
XAMPPが常識とか言っちゃう奴は地雷にしか見えない
XAMPPみたいなオールインワンパッケージは使わないのが「仕事では常識」だろ
>>877 仕事でXAMPPを使わないから
仕事してる人はXAMPPを知らないということにはならんだろ
XAMPPすら使えないなら、仕事にならないという意味でしょ
XAMPPなんて利用しなくても個別にApacheもPHPもPerlもMySQLも扱えばいいだけ。
今はなんでもやってくれる環境があるからいいけど、
ちょっと前のSolarisとかだとgccのビルドから始めてたぜ・・・
880 :
デフォルトの名無しさん:2014/09/24(水) 14:12:37.42 ID:Yuo4JRo7
ぺちぴーなんかいりませんよ(笑)
>>878 使う使わないじゃなくて……
「XAMPP を知っている事は仕事では常識」
と言い換えてみたところで、やっぱりそいつは地雷にしか見えないわけだが
新しく学ばせたくない言語だな
保守要員育成のために人材最低限にしたい言語
>>879 それらが個別で使える人がXAMPP使えないとは思えんが…
PHPで将棋つくれるらしいが
基礎本読んだ程度じゃ掲示板ぐらいしかつくれない
run()がのってないからか
javascript の方か
885 :
876:2014/09/25(木) 03:06:08.71 ID:9y3YUuB0
質問者が専門用語が難しいというから、
LAMP, XAMPP という言葉を知らない人は、
まずいないという意味
多くの本・アプリが、これらを前提としているので、
知らないことはあり得ない
むしろ個別にバージョンを変えると、
動かないアプリが続出するのでは?
他部署で保守されてる昔作られたphp製の大規模アプリがあるんたが
随分前に公表されたphpのセキュリティホールに対応しなければならないという話が出た。
スクリプトも使ってるphpも古すぎて互換の問題ですぐには上げられないとなって
改修のための予算要求で話が上に上にと行って
しまいにはその問題は無かったことにされてた。
他の会社ではどうやって対応してるんだ?
そりゃ、お金・人員などの資源は有限だから、
業務の優先順位に応じて、与えられる
経営判断では常に、何かが切り捨てられるので、
一社員が気にすることはない
意見を言って、経営陣がそれを採用しないのなら、仕方がない
一般的に、経営陣が切り捨てやすい案件は、
費用が高いわりに、効果が低いもの
わけのわからない研究開発など、
数年間はお金にならない事業は、よく切り捨てられる
基礎からのPHPっていう本を読みました
次何やったらいいでしょうか。
Linux コマンド逆引き事典、2013ってやつですか?
Linuxを0から教えるようなCUI操作の本も買ったほうがいい
気がしますが
889 :
876:2014/09/26(金) 05:41:25.71 ID:EeHYxFor
UNIX シェルスクリプト・コマンドブック 第2版
山下哲典、2012
シェルスクリプトも、一つのプログラミング言語で、
勉強するのに数十時間かかるので、本を買わずに、
わからなければその都度、ネットで調べた方がよい
WindowsのPowerShellも同じ
ls, cd など基本的なコマンドだけで十分
それら以外はその都度、ネットで調べる
Linux コマンド逆引き事典、2013
この本なら、数時間で読める。これで十分
PHPダメだとか...
俺はJavaScriptの方が酷いと思うが
Web関係で言えばPHP一択だと思うな
楽さが違う
ただ不満な点も多々あるけど
書き方が沢山あり過ぎて混乱することある
見た目が汚い
でもとにかく動かすことは簡単だよな
PHPは
var_dump()の存在も素晴らしいと思う
PHPは本当楽。楽だけどそれゆえの欠点もあるから使うかどうかはその人次第なんだよな。
CMSの一つWornPressもPHPだし学んでおいてもいいと思うんだ
892 :
デフォルトの名無しさん:2014/09/26(金) 14:47:14.73 ID:tSjIa31+
プログラマ歴18年
PHPにひさびさにさわってみたけど、だいぶ変わったんだね。
RESTのシステム作ってんだけど、最新のPHPについて学べる良書をさがしています。
誰か教えろください。
あとLaravelについての本も探しています。
>>890 PHP一択なんだから不満なんか言うなよ
不満と思う時点でお前の方が間違ってる
PHPの仕様は全てが正しいんだよ
>>894 お前は
>>841 を見てもまだそう思うのか
ところでPHPにマルチスレッドをまともに扱えるようになる日は来るんだろうか。
pthreads があるけど実用には程遠い。
Javaの java.util.concurrent レベルの仕組みがないと厳しい。
>>895 それぐらい受け入れるのがPHPユーザじゃないのか
一択と言ってるんだから、他の選択肢は存在しないんだろう
存在するわけねぇだろ
じゃぁ何使うんだ?
Perlめんどくさい
Pythonは良く使うがApacheとの連携超しんどい
Rubyは使った事ない
Java面倒くさい
ASP?論外
Node.js?ご冗談を
Web関係ではPHP一択
それ以外となると.....
そんなに一生懸命スキルの低さを力説されても、そのなんだ、困る
しかも全部の処理をサーバサイドでやる気のようだし
901 :
デフォルトの名無しさん:2014/09/29(月) 22:36:20.76 ID:20kfxFHi
javaのほうが楽
画像掲示板とコメントレス いいねぼたんのあるHPはPHPでつくれます
コピペするだけなので、簡単で実際には作ってませんが。
以前にC趣味でやってたので簡単でした。
応募対象
Linux、PHP、Apache/PostgreSQL/MySQL
みたいな求人がある場合次に何やるべでしょう。応募できるレベルには上がっては起きたいです
Linuxのコマンドを一通り勉強する。
PHPでSQLを使ってみる。
まあVMでもそこらの使ってないPCでもいいのでLinux入れて
apacheとMySQL/PostgreSQLとphp入れて動作環境作ってみては。
DBはインストールから管理方法まで違うけどSQL部分はどっちもあまり変わらんから
片方をまず覚える、でもいいが。
>>902個人的にデータベースからかな
PHPとデータベースの連携は必須だからquery叩いてSQL覚えるより実際にCLIで学習してからの方が効率いいと思う
Apacheは大切な概念だけどPHP学んでいくうえで覚えるから大丈夫
このスレのタイトルどおりのことができるようになればいいんじゃないか
>>902 CentOS, Apache, PostgreSQL, PHPで実際に本格的なものを作るべき
たぶん環境の問題でそのコピペは動かなかったりして簡単に作れないから
あと最初はローカル環境でもいいけどネットワークやセキュリティの知識を身に付けるために
AWSとかのインターネット環境でサーバー立ててみた方がいいかな
909 :
902:2014/10/01(水) 15:27:33.72 ID:VUkrEABO
ありがとうlinuxのバーチャルから調べないといけないかも
SQLは趣味でjavaの方でHP作成で使ったことあります
すみません、質問するスレが分らなかったのでここで質問レスさせていただきます
2つのテーブルにあるカラム同士が外部キー設定されているとき(例えばそれぞれのテーブルにidというカラムがありそれらは外部キーが設定されている)
idを中心に2つのテーブルからデータを持って来てjsonで返すというプログラムを作りたいのですが上手く行きません。
{
Id:
1つ目のテーブルの全てのデータ
[2つ目のテーブルの全てのデータ]
}
連想配列で1つ目のテーブルの全てのデータを持って来て、それに対応した2つ目のテーブルのデータを持って来るという考えなのですが・・・
なんで最近ここは相談スレと化してるんだ
912 :
デフォルトの名無しさん:2014/10/03(金) 14:12:56.03 ID:MolrNikG
>>910 おれも似たような仕事してるが、なにについて聞きたいのかよくわからん(´・ω・`)
DBのことについて聞きたいのか、jsonの組立かたについて聞きたいのか?(´・ω・`)
>>912 jsonの組み立てについて聞きたいです
[
id: {
idに対するテーブル1のデータ,
[idが一致するテーブル2の集合]
},
id: {
idに対するテーブル1のデータ,
[idが一致するテーブル2の集合]
},
...
...
]
このような構造でデータを返したいです
連想配列にしたテーブル1の全てのデータをforeachで回し、中でidに対応するテーブル2のデータをselectしてるという感じでやっています
916 :
デフォルトの名無しさん:2014/10/08(水) 00:03:44.61 ID:GuRadpxG
なんなのこのクソ言語?
型がいい加減すぎ。
==と===はどう違うんだよ。
なんでわざわざこんなわかりづらい仕組みにしてんの?
ところが、
いい加減に作って==が破綻したから===追加したんじゃないの
でも俺は==が好きだよ
>>916 この型がいい加減ってのもの 同じ様な勘違いだな。
PHPの変数の型は一意に決まっている。
==という比較演算子の仕様がアレなだけ。
>>921 いや、いい加減だよ。
なんなの戻り値mixedって?
何が返ってくるか見当もつかんわ。
戻り値の検討がつかないなら言語以前の問題だな
型がいい加減といういい加減さも頭が痛くなる話だがようはバカなんだろ?
>>923 いや、言語の問題だよ。
なぜなら他の型がしっかりしてる言語なら、戻り値の型は明確だからだ。
PHPと違ってな。
925 :
デフォルトの名無しさん:2014/10/22(水) 03:44:29.99 ID:NoApm9kp
>>922 型が不定なものが帰って来るわけでもあるまいにw
変数の型があいまいなのではなく、戻す値の型が固定してないだけじゃん。
ソレがいいかどうかはともかく、そういう仕様であることすら正確に把握できずあいまいだ何て言ってるレベルが
文句言ってるっていう毎度の構図じゃん。
>>925 そのサイトの
> > $arg = 'T';
> > $vehicle = ( ( $arg == 'B' ) ? 'bus' :
> > ( $arg == 'A' ) ? 'airplane' :
> > ( $arg == 'T' ) ? 'train' :
> > ( $arg == 'C' ) ? 'car' :
> > ( $arg == 'H' ) ? 'horse' :
> > 'feet' );
> > echo $vehicle;
>
> prints horse.
これは一体どう解釈されてんの?誰かカッコつけてくれないだろうか…
左結合だけど、カッコつけてもわかりにくいよ、要は
'train' ? 'horse' : 'feet'
になっちゃうってことだ
あー実際にはtrain以降が置き換わるけどね、最後の評価は'car'?ってことね
>>926 >戻す値の型が固定してない
うっわ最悪だわそれ。
完全に意味不明。
>>929 何故
>'train' ? 'horse' : 'feet'
になっちゃうんだ?
>>931 ちなみに今までどういうキャリア積んできたの?
>>934 いやもしかして本当にかわいそうな子なのかと思って
実行時に型が判定される言語なんてありふれてる時代なのに、腰みのに石斧持って藪から出てきた原始人みたいな物言いだからさ
複数の型を返しうるっていうのが受け入れられないぐらい頭固いんだろ。
複数の型返せるとか、型判別して処理分けるとか
おじさん共はそういう新しい概念とか嫌うからなぁ。
クラスを分からんから使うな言うおじさんと同じ。
>>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'
ということ
括弧つけるとこうだな
あんま見たことない選択式だけど
↓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';
>>935 C原人なら構造体をポインタで引き回してキャストするのと同じだとすぐ分かる
実際ZVALがそういうものだ
聞いた話最近のNewbieは泥アプリから入るから、API頼りで常識が通用しないらしい
ジャワ原人ならぬジャワ新人だ
941 :
939:2014/10/23(木) 15:57:06.80 ID:5KZv7nGW
失礼
馬が抜けていた
$arg != 'B' ? $arg != 'A' ? $arg != 'T' ? $arg != 'C' ? $arg != 'H' ?
'feet' : 'horse' : 'car' : 'train' : 'airplane' : 'bus';
構造体とか共用体とか懐かしい
$a = x;
$$a = y;
echo $x; //yが出力
最近こんなの見て笑ったわ
まあ、頭の固い奴にはメタプログラミングは笑うしか出来ないだろうね。
xとyコロンで囲めよ
:x:
::::x:::: ::::y::::
ちゃんと出来たな
偉いぞ
949 :
デフォルトの名無しさん:2014/12/09(火) 20:22:23.09 ID:/ijYo4+P
>>895 マルチスレッドが必要になるような処理はバックエンドに回せ
phpでそんな事をやろうとするな
って事だと思う
なるほど
ちょい腕組みして考え込んだけど、phpにはとっととリクエスト返して欲しい用途以外で使われても、なんか利点感じないな
マルチスレッドができたとして、何に使えばいいんだべ
いや、別にディスってんじゃないのだけども。nodb.jsなんかもそうだしな
処理受け付けるだけにして、裏で回して進捗書き込む…程度の用途なら別の言語使っちまうな
俺なら慣れたrubyかbashかな。別にjavaでもpythonでもc#でもいいわけだしなぁ
異論は認める。つかむしろ異論を聞きたい
>>949 ここでいう「バックエンド」って何を指してるの?
PHPってバックエンド用の言語だと思ってた
952 :
デフォルトの名無しさん:2014/12/09(火) 22:56:53.31 ID:1O4Jy1Lz
PHPはバックエンドもできるよ
urlに対する処理で見れば、apatchモジュールとしてフロントエンド?
一方リクエストに対して見ると入り口はルータだしphpはエンド寄り
フロントとエンドの区別は場合次第すぎて定義が無意味な気がする
今回はマルチスレッドの話が発端だったので、サーバサイドのアプリ上でスレッドっていうと、即時に結果を応答できない系の仕事なのかなと判断してた
バックエンドなphpよりさらにバックエンドな仕事をフォークするってことじゃないの
もちろん
>>952の言うようにcuiでphp走らせればそれも可能なんでややこしいけど
cuiのphpってなんか意味不明だねごめん
単なるコマンドで呼べばって意図でした
>>951 とりあえずphpはリクエスト返して他の言語で重い処理やるって程度の意味
分散やマルチスレッドが必要になった時とか
phpでできない事もないんだろうけど
DBにキュー用のテーブル用意してジョブは別プロセスで実行したほうがいいんじゃないかな
スケーリングも容易になるし
100ms以内に16スレッド使って何かを頑張って計算して返すとかだとスレッドが欲しくなるけど
山田祥寛(よしひろ)、翔泳社
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
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/
山田祥寛の本はクソ。
なぜか執拗に、山田祥寛を宣伝している人がいるだけ。
山田祥寛登場→ボロクソに叩かれる
というのがお決まりの流れになっている。
>>951 システム構成上の位置関係の話なので、どの言語がバックエンドという固定した概念はない。
>>959 地雷だよな。スゴイ簡単な話を、ムチャクチャ遠回しで不要な情報満載で説明するからな。
初心者が手にしたら絶対にプログラムがイヤになる。
枝葉末節余計な情報満載にして複雑化し、なんでもスパゲティソースにして混乱させる。
たまにマイナー系で、こいつしか本書いている奴がいないから
ないよりはマシ程度で買うけど、
個人のウェブサイトと同レベルの扱いだな。
読み捨てる本。
そんなやつだとしても結婚してる
それにくらべおまえr(ry
ということにしたい