スクリプト言語と開発効率について (136レス)
1-

1
(3): 2007/04/26(木)01:16 ID:Z/Rpkmiv(1) AAS
最近PHPをはじめました。

スクリプト言語は基本的に、変数の型を指定できないものが多いわけです。
で、これは本来、これら開発効率を売りにした言語の特徴だったはず。

でもちょっと待って下さい。
この仕様が間違いなく開発効率を下げている。
意図しない挙動をフォローするための機能実装がとても非効率的です。

皆さん、特にC系統の言語に精通されている方にお聞きします。
スクリプト言語での開発効率に関して、
普段意識的に実装されているロジックとかありますでしょうか。
37
(1): 2007/05/13(日)21:52 ID:??? AAS
>>35 は多分 error_reporting(E_ALL) を知らない。
いや、>>35は知ってるが、それを使わないのがPHPクオリティと言いたいのか。
それなら同意。

>>36 は俺にはよく分からないので詳しく。
・・・というか PHP の E_STRICT は多分ONではやってられない。
あまりに「非推奨」とか「廃止予定」とかが多すぎてPEARのライブラリすら使えない。
それもPHPクオリティ。
38: 2007/05/13(日)22:00 ID:??? AAS
>>37
いや>>35はE_NOTICE がONでも通るだろ。よく読め。(PHPクオリティ?)

だからといって全ての変数に型宣言が必要とか言うのは掲示板スクリプト等程度
においては正直効率的とも可読性が高いとも思えない。
(明示的なキャストしまくりとか勘弁して)

やっぱり規模(と開発体制・人手の分散度合い)によるケースバイケース
でいいんじゃないか? ←ここでループ
39: 2007/05/13(日)22:43 ID:??? AAS
型宣言というか、if ($obj->validData)みたいにオブジェクト指向を使えば、
実装のデータ型はカプセル化されるので問題ないと思うが、
しかしPHPのオブジェクト指向は書きづらいし、使いづらいよね。
40: 2007/05/13(日)22:45 ID:??? AAS
if ($obj->validData())だった
41: 2007/05/13(日)23:18 ID:??? AAS
if ($runtime->getStatus())
とかやって、もしクラスがgetStatusインタフェースを持って無かったとしても
使用してみないとエラーが出ないという恐さはあるか。
42: 2007/05/13(日)23:59 ID:??? AAS
>>35
言いたいことはわかるし、間違ってるとは言わないけど、その手のタイプミス
にかかわるバグが処理系で摘出できないケースは頻度は少ないが Java にだっ
てある。

もちろん頻度が少ないと言うのは重要で、だから大規模なソフトウェアに PHP
より Java が適していると言いたいんだろうけど、ごちゃごちゃ書かなくても
>>24 で充分だろ?
43
(1): 2007/05/14(月)05:18 ID:??? AAS
変数は補完入力かコピペ入力をするから、
>>35 のようなミスが起きた記憶はほぼないな。

今となっては、変数宣言はあってもよかったなと思うけど。
設定で、変数宣言の必要なモードをつけてもいいと思う。
44: 2007/05/14(月)08:36 ID:??? AAS
>>43
同意。
45: 2007/05/14(月)09:48 ID:??? AAS
PHPの問題は、間違った引数の型でもメソッドを呼べるということだよなぁ。
で、デバッグに勘が必要になる。
自分だけが書いたのコードなら自分の思考パターンは大体わかるからいいけどさ。

まぁそのへんの融通が効くから書き飛ばすのには向いているとも言える。
上にあるように、間違った呼びかたをしてたら呼び出された先をさっさと直しちまえば良い。
アプリ全体の構造が頭の中で把握できる範囲ならこれで大抵はうまくいく。
46
(1): 2007/05/14(月)12:09 ID:??? AAS
ケースバイケースって言っても、Perlでuse strictしないで書くなんて、それこそ10行未満の使い捨てのスクリプトだけだよ。
PHPを使うケースって10行未満のスクリプト限定になっちゃうけど。
47
(1): 2007/05/14(月)12:13 ID:??? AAS
例えば、
use strict;

sub foo {
my $arg = shift;
print "$arg\n";
}

sub bar {
print "$arg\n";
}

foo('hello');
省1
48
(3): 2007/05/14(月)12:15 ID:??? AAS
で、PHPはどうかというと、

<?
error_reporting(E_ALL);

function foo($arg) {
print "$arg\n";
}

function bar() {
print "$arg";
}

foo("hello");
省1
49
(1): 2007/05/14(月)12:40 ID:??? AAS
>>48
それ、PHPじゃなくてもPythonやRubyでもおんなじことだよ。
コード読み込んだ時点ではエラーが出ず、その箇所が実行されてはじめてエラーが分かる。
でもunit testを書いていれば、error_reporting(E_ALL) のレベルで十分、特に困らない。
PHPもRubyもPythonもみんなそれで問題なく開発できてる。
もしuse strictサイコー、他のスクリプト言語ダメダメというなら48の勝手だけど、use strictしたところでJavaやC#からみれば
> アッザース
だな。目くそ、鼻くそを笑うとはまさにこのこと。
50: 2007/05/14(月)20:02 ID:??? AAS
>>49
だな。>>47のも

use strict;
my $arg;

(以下略)

で通るし。だからケースバ(ry
51: 2007/05/14(月)21:47 ID:??? AAS
>>46
> PHPを使うケースって10行未満のスクリプト限定になっちゃうけど。

君は、それでいいんじゃね。

俺はももう少したくさん書けるけどね。
52: 2007/05/14(月)22:04 ID:??? AAS
PHPの最大の問題はブロックによるスコープの切り替えがないことなんだよな。
無名関数がないから他の言語だったらインラインでも書けることを、どうしても一時変数を使わないといけない。
で、その変数は関数全体で有効になるから、大事な変数と使い捨ての変数がごっちゃになってしまう。
↑と変数の宣言が出来ないこととあいまって、熟練者が書いてもあまり綺麗にならないし、初学者が書くと恐ろしく汚いコードになる。
53
(1): 2007/05/14(月)22:08 ID:??? AAS
PHPは要するにインスタントラーメンなんだよな。
システム開発産業としてみた場合のPHPのメリットは大きい。
メリットがあるからこそこれだけ流行してる。証明されてる。
確かにお湯かけるだけで作れて、少なくとも不味くて食えないってことはない。
しかし、インスタントラーメンばっかり作ってて、料理人とはいえないよね。
54: 2007/05/14(月)22:31 ID:??? AAS
>>53
ってぇとPHP用フレームワークは有名店コラボのカップ麺?
55: 2007/05/14(月)22:33 ID:??? AAS
実際の日常生活でも料理人が求められることってないだろ
普通は自炊なり家庭料理なりだ
インスタントラーメンで用が済むのに料理人が出張ってきたら困る
しかも料金高いし
56: 2007/05/14(月)23:06 ID:??? AAS
インスタントラーメンだけ作ってても、客が来て儲かってれば
料理人だろ。

○○の言語じゃなきゃ駄目とか言ってる方が素人ぽくみえるぞ。
57: 2007/05/14(月)23:45 ID:??? AAS
そうだな、言語が開発効率と無関係なら
アセンブラでウェブアプリ造れるよな
58
(1): 2007/05/15(火)00:52 ID:2gvjM0as(1) AAS
結論:Javaでメジャーなフレームワーク使うのが一番。
59: 2007/05/16(水)09:16 ID:??? AAS
>>58
なんでそうなるんだw
60: 2007/05/16(水)11:53 ID:??? AAS
徹底してルーチンやクラスを分けて
変数のスコープを数十行程度にする
そういう当たり前の事が簡単にできる
スクリプト言語がいいね。RubyとかPythonとか。
61
(3): 2007/05/16(水)22:05 ID:??? AAS
ここまでの流れに加えるなら、Web用途ならやはり文字列の扱い重要。
スクリプト言語の有利な点は、全て文字列の扱いと配列(およびリスト)や
連想配列のデフォルト実装だと思う今日この頃。

正直、perlやPHP、rubyから入った人間はCやJavaの文字列、配列の
扱いは気が狂うほどのパラダイムシフトじゃないか?マイナス方向への。

int i;
for(i=0; i<ar.length(); i++){
ar[i] にほげほげ
}
は正直foreachやeachに慣れた人間には耐えられないんじゃないかな。
62: 61 2007/05/16(水)22:09 ID:??? AAS
ふつうのCやJavaだと
> ar.length()

ar.size()
なのかなと思う今日この頃。不勉強すんません。
63: 2007/05/16(水)23:22 ID:??? AAS
Perlって実はかなり厳格なプログラミングを要求されるんだよね。スクリプト言語の中では。
Perl6ではよりその傾向が強まる。
64: 2007/05/16(水)23:59 ID:??? AAS
以前のPerlがテキトー万歳だったんだよ
それだからこそ受け入れられてきたんだがそれゆえ5で崩壊した
use strictとかがある時点で変態
65: 2007/05/17(木)00:57 ID:??? AAS
>>61
俺はまさにPHPでプログラム始めた人間だが、最近Cを使ってその辺は耐えられなかったことはないが、
「だからPHPとかPerlができたのか」とスゴく納得した。
66: 2007/05/17(木)02:00 ID:??? AAS
Javaは冗長だけど注意深く使用すれば誰が読んでも内容が理解しやすい
コードを書きやすいので、一概に悪いとは思わないな。
67: 2007/05/17(木)09:24 ID:??? AAS
そんなこと言ったらたいていの言語は読みやすいように書くことはできるよ
無限の時間とリソースが使えればな

それを極力圧縮するできるがどうかが「便利」の要だろ
68: 2007/05/17(木)09:46 ID:??? AAS
Rubyも読みやすい書きやすいっていうけど、リフレクションを多用すると
恐ろしいことになるからなぁ。

リフレクションみたいに、静的な型なんてクソクラエみたいな書き方は、
なかなか強力で、使いどころを間違えなければたしかに書くときの効率はかなり上がるけど、
一方乱発するとメンテの効率をいちじるしく落とすね。
69
(2): 2007/05/17(木)23:17 ID:kV8X1K3f(1) AAS
型付けの弱い言語はバグの温床
70: 2007/05/17(木)23:33 ID:??? AAS
>>69 型付けが弱い云々というよりは文化じゃないのかなと。

PHPならそれ3日でできますよ。フレームワークなんていりませんよ。て
べたべたべたべた書いて動いちゃう、それでいいやって仕事が多く、そんな
ソースを槍玉にあげてもなぁ、という気もする。そりゃ手を加えるほどに
バグも入るさ。安さ速さ最優先なんだから。

PHPの問題は言語仕様そのものというよりその使われ方だろう。
またそういう書き方でやってきた人間が、ある程度以上でかいもしくは
業務処理系のものまで上記の延長でPHPで作ろうとするから、言語の(糞)
仕様まで問題になるんだと思う。

perl, ruby, python なんかはまだツールとしての用途があるから違う文化が
省3
71: 2007/05/17(木)23:41 ID:??? AAS
PHPにはちいたんがある
72: 2007/05/17(木)23:44 ID:??? AAS
なんのためにプログラムがあるのか勘違いしてないか?おまえら
73: 2007/05/18(金)00:42 ID:??? AAS
プログラミング言語はプログラム作成のために存在しておりますよ
思想体現の手段ではありませぬ
74: 2007/05/18(金)00:55 ID:??? AAS
人間の思考つまり、思想に近いプログラム、
読みやすく書きやすいプログラムとも言えるな。
75: 2007/05/18(金)02:14 ID:??? AAS
結果がよければあとは何でもいいじゃん。
自分の得意なもので結果だせればそれでいいでしょ。
批判ばっかりしてて神経質じゃねえのかプログラマーって
76: 2007/05/18(金)09:27 ID:??? AAS
君の世界に客というものはいないのか
あるいは他の開発者でもいい
未来にそのプログラムを改修する自分でもいい
誰か他者は介在してないのか
77: 2007/05/18(金)22:31 ID:??? AAS
ヒント:ニートの耳年増
78
(7): 2007/05/18(金)23:23 ID:??? AAS
>>69
php で色々組んでるけど、型関係でバグったことは使い初めの頃の
勘違いしかない。

処理系に型の間違いのチェックアウト能力がないのは確かだけど、
そもそもそんな間違いをぼろぼろやるプログラマは他のところでも
バグってる可能性が高い。
79: 2007/05/18(金)23:46 ID:??? AAS
さー、自称天才PHPプログラマーが登場しましたよ
80: 2007/05/18(金)23:48 ID:??? AAS
>>78
>バグってる可能性が高い。
まぁ、そうだな。69みたいな知ったかな書き方する奴はたいていどの言語でもバグ出す。
81
(1): 2007/05/19(土)00:37 ID:Scwv46iZ(1) AAS
そのさー、バグを出す/出さないをプログラマの能力依存にしないための方策の一つが、
強い型付けなんだが…。
82: 2007/05/19(土)00:50 ID:??? AAS
ならバグを出さなけりゃ型の概念要らないって事だね
83: 2007/05/19(土)01:15 ID:??? AAS
バリアント!バリアント!
84
(1): 2007/05/19(土)02:34 ID:??? AAS
コンパイラーが型チェックしてくれるので、単純なバグはそれだけでつぶせる。単純なミスをまったくしないプログラマーには不要な機能かもしれないが。
85
(1): 2007/05/19(土)10:22 ID:??? AAS
バグをださないように慎重に行うプログラミング、
バグが出てからバグを潰していくプログラミング、
どっちが効率がいいかってどこかで見たな
86: 78 2007/05/19(土)10:28 ID:??? AAS
>>81 >>84
いや、型のチェックアウトができることによるバグ検出能力にケチつける気はないけど、
強い型付けによる不便さもあるわけだから、トレードオフでしょ?
87: 2007/05/19(土)10:30 ID:??? AAS
>>85

それきいてFreeBSDとWindowが頭にうかんできた
88
(2): 2007/05/19(土)13:24 ID:??? AAS
コンパイラによる型チェックが不便とか言ってるのは素人だけだろ?
後はMCでない、ぬるい仕事しかした事のない歳だけ食った自称ベテラン。
89
(1): 2007/05/19(土)14:17 ID:??? AAS
>>88
ゆとりまっしぐらな俺でも「変数の宣言いらないよ!」「型が柔軟だよ!」な謳い文句に気持ち悪さしか感じない
使い捨ての変数をバカみたいに量産する糞スクリプトしか書けないのか?って思う
90
(1): 78 2007/05/19(土)15:52 ID:??? AAS
>>88-89
また、適材適所を知らないアフォが沸いてきたよ。(w
91
(1): 2007/05/19(土)16:13 ID:??? AAS
>>90
バカの一つ覚え乙
92: 78 2007/05/19(土)19:13 ID:??? AAS
その一つすら覚えられないの? (w
93: 2007/05/19(土)23:03 ID:??? AAS
>>91
いや、それが全てだろ。だから何回で(ry

まあそれぞれの適所を(実際に使わずに)理解するためには、こういうスレは
いいと思うがな。
94
(1): 2007/05/20(日)01:13 ID:??? AAS
適す範囲が著しく狭い物や、どこにも適さない物もあるでしょう
ホント思考が極端だな
95
(1): 78 2007/05/20(日)09:01 ID:??? AAS
そりゃあるだろうけど、このスレと何の関係があるんだ?

具体的に指摘できないなら、自分の日記帳にでも書いたほうがいいよ。
96: 2007/05/20(日)11:08 ID:??? AAS
>>94
> どこにも適さない物もあるでしょう

つまり存在意義のかけらもない言語?これは言い切る自信はないなぁ。
(強いて言うならMSのJ#みたいな?)
97
(2): 2007/05/20(日)14:53 ID:??? AAS
動的な型と静的な型の長所短所はあるけど、(もっともRubyの松本なんかは動的な型で決まりって言ってるけど)、
動的な型付けでかつ変数の宣言ミスをコンパイラーがチェックしてくれるPerlはかなり理想的だな。
PHPの場合、型が動的なのに加えて、ブロックによるスコープのコントロールが利かないこと、
変数が1種類しかないこと(Perlでいうところの@arrや%hashがなく、$arr/$hash)、
名前空間がないこと(まあ、パッケージ変数の代わりにクラス変数を使うんだけど、パッケージがないので今度はクラスの管理が難しくなる)
これらが組み合わさって、汚いコードを書くことを強制されるというか。ゆえにバグを誘発する。
98
(1): 2007/05/20(日)15:01 ID:??? AAS
>>95
具体的に指摘できていないのは適材適所適材適所言ってる奴も同じだろ
99: 2007/05/20(日)15:18 ID:??? AAS
>>97>>48と同一人物
Perlのオナニーは自分のブログでやれ
じゃないと>>48とおなじようにやり返されて恥かくだけ
100: 2007/05/20(日)16:45 ID:??? AAS
PHPの有利なとこは、mod_phpが簡単にインストールできてそこそこ速いこと。
すぐに覚えられるので、人員の確保がしやすいこと。
これ以外の、言語仕様で優れてるところがあるなら教えて欲しいんだけど。
101: 2007/05/20(日)16:52 ID:??? AAS
ちなみにRubyの松本はいろんな記事で型チェックの有用性は認めている。動的な型つけと型チェックは別問題だからね。
102: 2007/05/20(日)16:57 ID:??? AAS
型は指定しなくてもいいが、指定すればチェックが働くようなのがいいんじゃない。
ActionScriptがそんな感じで、うまくやってるような気がするが。
103: 78 2007/05/20(日)18:04 ID:??? AAS
>>98
例えば >>61 のようにいくつか書かれてた思うけど、理解できてないと言うことですか?

>>101-101
そうだね。

・変数の型が 静的 / 動的
・型のチェックが コンパイル (もしくは実行開始) 時 / 実行時
・変数宣言の 要 / 不要
・変数のチェックが コンパイル時 / 実行時

は別物。(もちろん、動的な型を持つ言語はコンパイル時に完全に型チェックができない
と言うような制限はある。)
省2
104: 2007/05/21(月)09:54 ID:??? AAS
動的型付け言語のプログラムを読んでて肩が凝るのは、
関数の動きを理解するのにコンテクストの理解を要求するんだよなぁ。
出入口がしっかり定義されていないから、関数が独立せず外部の知識前提で書かれてることが多い。

で、言語やフレームワークごとの流儀とか、書いた人間のクセなどを読む勘みたいなものが
必要になってくる。
これは難しいものではまったく無いけど、C育ちなどではリハビリがいることもある。
Rubyで自前型チェックを"精神安定のために"って言いつつ全公開メソッドに追加してる奴を見たことがあるよ。
105: 2007/05/21(月)19:30 ID:??? AAS
>>48>>97の素性が判明しました
外部リンク[html]:blog.livedoor.jp
106: 78 2007/05/21(月)22:21 ID:??? AAS
> 出入口がしっかり定義されていないから

動的型付けと何の関係もないと思うが...。
107: 2007/05/22(火)00:17 ID:??? AAS
タイプヒンティングのことだろ。
108: 2007/05/22(火)22:45 ID:??? AAS
ああそういうことか。

でも、だからと言って

> 関数が独立せず外部の知識前提で書かれてることが多い。

と言うのは、単なる偏見かと。
109: 2007/05/27(日)16:21 ID:??? AAS
スプリプト言語自体も、スクリプト言語で大規模サイト作ってる香具師も馬鹿だとよくわかるスレ。
パールでサイトつくちゃったミクシとかゴミだよな。

本当に正しい動きするかより、エラー出ずに動けばおkレベルだろ?
110: 2007/05/27(日)17:58 ID:??? AAS
これはまた、まずそうな釣り餌だな。
111
(1): 2007/06/03(日)00:36 ID:??? AAS
まあスクリプト言語じゃ大規模サイトは無理なのは事実。
112: 2007/06/03(日)02:40 ID:??? AAS
ユニットテストをやればイインダヨー
113: 2007/06/03(日)23:52 ID:??? AAS
>>111
Amazonやlivedoorは大規模とはいわんのかな。
校正するなら、
誤)まあスクリプト言語じゃ大規模サイトは無理なのは事実。
正)まあスクリプト言語「だけ」じゃ大規模サイトは無理なのは事実。
くらいか。だから適材適所と何回言えば(ry
114
(1): 2007/06/09(土)09:01 ID:??? AAS
>Amazonやlivedoorは大規模とはいわんのかな。

DocomoのCiRCUS位でないと大規模とは言わないな…。
115: 2007/06/09(土)12:10 ID:??? AAS
Circusでググってもエロゲしかヒットしない件
116: 2007/06/13(水)00:19 ID:??? AAS
DoCoMo CIRCUSでググれば一発だな。
117: 2007/06/15(金)02:53 ID:??? AAS
ユニットテストだけでバグが無くなると思ったら大間違い。
とコードコンプリートに書いてあったのの受け売り。
118: 2007/06/16(土)18:53 ID:??? AAS
糞PGが一人でもまぎれこんでいればバグがある。
早く国家資格持ってない香具師はプログラム組めないようにしてしまえと思う。
トラフグ調理免許とかジャンボジェット運転許可証とかみたいに。
119: 2007/06/30(土)01:36 ID:??? AAS
>>114
ものすごい亀だが、それってインフラじゃないのか?
120
(1): 2007/07/06(金)04:22 ID:??? AAS
スクリプト言語に文句いってるレベルのやつはスクリプト言語でできないプロジェクトにはめぐりあえないだろうな、レベル低すぎて。
121: 2007/07/11(水)18:34 ID:??? AAS
そらそうだ。単なる利用者だし。

低レベル層の開発関わってる人も上澄み扱うプロジェクトには関わりにくい訳で。
122: 2007/08/20(月)21:38 ID:??? AAS
>>120
同感

動的型付けの「お気楽さ」が心地よいよ〜
123: r545 2008/07/08(火)00:08 ID:ywt4R5D2(1/2) AAS
すいません。。質問させてください。

webアプリ作成において、スクリプト言語が使われる理由って何ですか?

詳しく教えてください。。機械誤変換がなく、比較的簡単に作成出来るって
ことまでしかしらないので。。よろしくお願いします。
124: 2008/07/08(火)00:52 ID:??? AAS
・Web だと、通常あまり厳しい性能を求められない
・文字列処理が多い
・仕様変更が多い

ぐらいかな。
125: r545 2008/07/08(火)01:14 ID:ywt4R5D2(2/2) AAS
nobodyさん>

Web だと、通常あまり厳しい性能を求められない っていうのは、たいしたアプリは
作れないってことですか??大規模な、システムはやはりJavaですか。

・文字列処理が多い
・仕様変更が多い
っていうのはつまり??初心者ですいません。。
126: 2008/07/08(火)07:00 ID:??? AAS
お前にゃプログラミングは3年早いよ
127: 2009/01/01(木)16:45 ID:??? AAS
・・・
128: 2009/02/22(日)22:43 ID://7Dlz4Z(1) AAS
ソフトウェア開発には、しばしば交わっているがたいていは分かれている、
5つの世界がある。

その5つとは:

1.パッケージ
2.インターナル
3.組み込み
4.ゲーム
5.使い捨て

スクリプト言語の得意分野は、5.
129: 2009/03/05(木)18:54 ID:??? AAS
しょっちゅうバグまみれでシステム落ちても文句言えない用途でしか使えないしなあ。
セキュリティ上もスクリプト言語は改変し易いので不利。
130: 2009/05/25(月)06:47 ID:??? AAS
すげぇな。まだ動的言語にあれこれ文句言ってる奴居るのかwww
131: 2009/05/26(火)07:32 ID:??? AAS
アセンブラが改変出来なくて最強。
132: 2010/03/21(日)23:07 ID:RnhG2Ana(1) AAS
AA省
133: 忍法帖【Lv=40,xxxPT】(1+0:8) 【15.9m】 電脳プリオン ◆3YKmpu7JR7Ic 2012/11/23(金)19:55 ID:??? AAS
スクリプト言語あまり使わない
134: 2015/11/06(金)18:09 ID:tDSzu+Xy(1) AAS
転職時の注意事項。
下記の条件が全て当てはまる会社にご注意下さい。

・IT系 in Tokyo
・転職会議で2.5点
・転職会議の「その他>2ch情報」の欄で過去の労基2chスレが表示される
135: 2017/12/30(土)14:17 ID:YhlYw6jg(1) AAS
誰でも簡単にネットで稼げる方法など
参考までに、
⇒ 『半藤のブブイウイウレレ』 というサイトで見ることができます。

グーグル検索⇒『半藤のブブイウイウレレ』

0ZCR1RPKZW
136: 2023/06/13(火)07:04 ID:??? AAS
肩にハエいるよ。
1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.329s*