◎正当な理由による書き込みの削除について:      生島英之とみられる方へ:

静的型付け言語の潜在開発生産性は今の100倍 ×5->画像>6枚


動画、画像抽出 || この掲示板へ 類似スレ 掲示板一覧 人気スレ 動画人気順

このスレへの固定リンク: http://5chb.net/r/tech/1385273168/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

1デフォルトの名無しさん2013/11/24(日) 15:06:08.63
int a = 1;
a = "a"; ← エラーになる。
型がない言語ではできない芸当です。(爆笑)


人間がやっていたことを、コンピュータにやらせる。
これが生産性を上げる最大の方法。
コンピュータは間違わない、同じ事を何度も高速に行える。

その為に、コンピュータがコードの意味を正確に
認識できる方法が必要。実行しないとわからないことは
コンピュータは認識できない。

すなわち静的型付け言語であれば、実行しなくてもわかるので
コンピュータが理解できる。そうすれば様々な
コンピュータの高度な情報支援が得られる。

コンピュータのバックアップを受け、人間の生産性は
限りなく向上する。

前スレ
静的型付け言語の潜在開発生産性は今の100倍 ×4
http://toro.2ch.net/test/read.cgi/tech/1383572174/

2デフォルトの名無しさん2013/11/24(日) 15:09:38.06
静的厨は人間失格w

3デフォルトの名無しさん2013/11/24(日) 15:11:19.87
ちなみに動的言語でも変数に型とは別に不変条件を設定して、
不正な代入をエラーにする機能は実装可能だよ。

静的厨って空気を吸うように嘘をつくんだね。
静的厨って人間として最低のクズだねw

4デフォルトの名無しさん2013/11/24(日) 15:12:16.26
>>3
全く同じコードでないと
実装したとはみなしません。

5デフォルトの名無しさん2013/11/24(日) 15:16:56.54
静 的 型 付 け 言 語 = う そ つ き 言 語

6デフォルトの名無しさん2013/11/24(日) 15:17:15.03
動的言語ってJavascriptとかでしょ?
じゃあもう結論出てるっしょ。
変なとこクルックしたらおかしくなるページとか普通にあるし。
変なとこクルックするのが悪いとかいうけど、変なとこあったらクルックしたくなるよね。
普通だよね。

7デフォルトの名無しさん2013/11/24(日) 15:23:46.28
>>6
見たことねえよそんなページ、薄ぼんやりとした脳みそでデマ撒き散らしてんじゃねえぞ。
クッキークリッカーであらゆるものをクリックしまくった俺が言うんだから間違いない。

8デフォルトの名無しさん2013/11/24(日) 15:24:35.17
>>7
なんでクルックにツッコミ入れないの?
可愛そうだと思わない?

9デフォルトの名無しさん2013/11/24(日) 15:25:23.33
思いやりのない人なんじゃないの?

10デフォルトの名無しさん2013/11/24(日) 15:25:49.77
>>5
そうなるな。
NumOrStringの実装出せなかった時点で詐欺確定だわ。
生産性詐欺。

11デフォルトの名無しさん2013/11/24(日) 15:26:41.67
NumOrStringってなに?

12デフォルトの名無しさん2013/11/24(日) 15:28:09.65
>>8
そんなとこ指摘してたらきりがない、>>6の文章の瑕疵について指摘しようと思えば
13箇所指摘できる。俺は国語の先生やりたくてここにいるわけじゃない。静的言語厨の
悪辣な生産性詐欺を断罪するためにここにいるんだ。

13デフォルトの名無しさん2013/11/24(日) 15:28:16.78
数値と文字列の両方が格納できるクラス。
これを静的言語では実装できない。
根拠は実装出せなかったこと。

14デフォルトの名無しさん2013/11/24(日) 15:28:36.97
初心者ですよろしくおねがいします。

3 件の検索結果 時間指定なし 日本語のみ

NumOrString の検索結果が見つかりませんでした。
num or string の検索結果を表示しています。

検索ではわかりませんでした。

15デフォルトの名無しさん2013/11/24(日) 15:28:54.11
このあたりに hoge厨が逃げ込んだという目撃情報があります
若干姿を変えていますが挙動不審なため一目で分かりますので
市民の皆様は見かけても決して声をかけたりせず
近くの警察官へお知らせ下さい

16デフォルトの名無しさん2013/11/24(日) 15:29:09.75
> 数値と文字列の両方が格納できるクラス。

出来そうな気がするけど?
似たようなものに、C#のNullable型ってのがあるよ。
null+特定の型が格納できる型。

17デフォルトの名無しさん2013/11/24(日) 15:30:14.36
>>11
前スレの静的厨が考えた最強のクラス。
NumOrStringにはsetValueというメソッドがある。
値を代入するにはsetValueを使わなければならない。

18デフォルトの名無しさん2013/11/24(日) 15:30:38.46
つーか、varに相当するのは
何でも型じゃねーの?

VBでいえばVariant型でしょ?
Object型でもいいけど。

19デフォルトの名無しさん2013/11/24(日) 15:31:11.50
>>17
ほう。やっぱりできるんだ。

20デフォルトの名無しさん2013/11/24(日) 15:31:22.37
>>13
あらかじめ使う型がわかっていないのなら型消去の仕組みを使うのがいいだろね。
そうじゃなければ共用体に入れるとかだろね。

なんでそんなことで議論してるの?

21デフォルトの名無しさん2013/11/24(日) 15:32:08.55
文字列と数値を両方格納できる型を用意するのは簡単だろ

ただ、内部に状態持たせたら副作用が云々言い出すし、
それらのにhidingで書いたもケチつけるし、
何が言いたいのか分からんのが正直な所

22デフォルトの名無しさん2013/11/24(日) 15:32:41.38
>>20
一人のキチガイが
静的言語では、実現不可能だって言ってるだけ。

みてればわかるよ。まさにキチガイって感じだから。

23デフォルトの名無しさん2013/11/24(日) 15:33:10.88
>>16
じゃあやってみろよ。

24デフォルトの名無しさん2013/11/24(日) 15:33:29.28
状態を持たせるのは正しい設計だと思うけど、なんでダメなの?
魔術的なものを期待してるの?

25デフォルトの名無しさん2013/11/24(日) 15:34:47.55
コンストラクタで値を指定して、
インスタンスを作成した時から変えられないのなら
それは状態じゃないから問題ないんだよ。

26デフォルトの名無しさん2013/11/24(日) 15:35:15.36
>>19
前スレの奴は結局出せなかった。
NumOrStringを書けって言ったら「俺は興味ない」という
地獄のミサワの真似して逃亡した。

27デフォルトの名無しさん2013/11/24(日) 15:35:18.86
int a = 1;
a = "a"; ← エラーになる。
型がない言語ではできない芸当です。(爆笑)

28デフォルトの名無しさん2013/11/24(日) 15:35:24.90
わかった!お話がしたいだけで中身はそんなに関係ないんだ。

29デフォルトの名無しさん2013/11/24(日) 15:35:46.28
C++で演算子オーバーロードしてintでもStringでも扱えるVariant型ってのを作ったんだ。
そしたらたいして便利でもなく動的言語って意味ないと思った。

30デフォルトの名無しさん2013/11/24(日) 15:35:51.80
>>26
興味ないって何に対して?

31デフォルトの名無しさん2013/11/24(日) 15:37:03.09
>>30
キチガイに対してじゃね?

> だけど、ここまでヒント上げて気づかない奴に
> 俺は興味ないかな。じゃあね。

俺もキチガイに興味はないなw

32デフォルトの名無しさん2013/11/24(日) 15:37:19.66
>>24
じゃあ正しく設計したNumOrStringを書いてみろよ。

33デフォルトの名無しさん2013/11/24(日) 15:37:39.46
>>25
そういう時は素直にテンプレート使おうよ。

34デフォルトの名無しさん2013/11/24(日) 15:38:37.11
>>32
まず「正しい」の定義をしてくれ。

35デフォルトの名無しさん2013/11/24(日) 15:39:40.84
union NumOrString
{
  std::string str;
  int n;
};

36デフォルトの名無しさん2013/11/24(日) 15:39:40.80
その「正しい定義」って動的型では実装不可能なんだよな。

37デフォルトの名無しさん2013/11/24(日) 15:42:00.33
>>29
それわかるわ〜。
結局なんでも入れられるってめんどくさくなるだけなんだよねえ。
頑張って損した気分になる。

38デフォルトの名無しさん2013/11/24(日) 15:42:13.05
>>30
知らない。前スレの静的厨が言った言葉だ。
逃げ口上としてもっともらしいことを言おうとしただけで深い意味はないだろ。
彼女いない歴=年齢のやつが「俺女に興味ないから」と言ってるようなもの。
完全に防衛機制における合理化。Dの烙印を押された奴の断末魔。

39デフォルトの名無しさん2013/11/24(日) 15:44:17.87
>>34
>>24に聞けよw>>24は正しい設計だと思うって言ってんだから
その「正しい」の定義にしたがって実装していただければ幸いでございます。

40デフォルトの名無しさん2013/11/24(日) 15:46:27.28
NumOrStringってなんですか?

41デフォルトの名無しさん2013/11/24(日) 15:47:10.07
>>35
そりゃ単に同じメモリ領域にぶちこんでるだけじゃないか

"1"が1と同値になるような実装でないと認めません

42デフォルトの名無しさん2013/11/24(日) 15:47:24.40
>>13
type NumOrStr=
|Str of string
|Num of int

let s=Str "hoge"
let n=Num 100

n|>function
|Num v->数値処理
|Str v->文字処理

F#だとこんな感じか。
めんどいのでintに限定したけど他の数値型が入るようにも出来る。
上のnとかsを使うところで場合わけで処理分岐可能。上の例は直後で分岐してるので間抜けだけど。

43デフォルトの名無しさん2013/11/24(日) 15:48:03.29
静的厨は童貞。
静的を性的と脳内変換して悦楽に浸っている現実逃避の変態。
つまり、NumOrStringとは童貞が創りだした最高の女。
ゆえにそれを見せろと言ったら即座に逃亡をはかる。静的厨は卑劣極まりない。

44デフォルトの名無しさん2013/11/24(日) 15:48:59.31
何でも入れられるといいなと思う時の代表が構文解析とかだろね。
スタックに積む値に意味動作から返される値を含めて積めると便利だから。
次にスタックから取り出されて還元されるときは、それが何であるか
意味動作自体が知っているから値自体に状態が必要ないし。
僕は共用体を良く使うよ。
読み込むBNFに還元されるときの型を書いておくんだ。
頭いいでしょ?
まあ普通にこうするか。
別に頭良くないね。

45デフォルトの名無しさん2013/11/24(日) 15:50:39.73
>>37
頑張って損というのは、企業への忠誠と努力が無駄だったときくらいだな。

46デフォルトの名無しさん2013/11/24(日) 15:50:46.67
だからNumOrStringってなんだよ

47デフォルトの名無しさん2013/11/24(日) 15:51:43.05
>>46
共用体のことらしいよ。

48デフォルトの名無しさん2013/11/24(日) 15:52:42.13
>>46

943+1 :デフォルトの名無しさん [↓] :2013/11/24(日) 14:38:53.62
 >>942
 Javaで書くならこんな感じかねぇ。

 NumOrString a;
 a.setValue(1);
 a.setValue("a");

 setValueの実装はオーバーロードで。

49デフォルトの名無しさん2013/11/24(日) 15:53:11.04
>>37
頑張って損したとは思わない。
社長が女たらしで売上げの半分を社長が独占している会社で努力することだろ。

50デフォルトの名無しさん2013/11/24(日) 15:55:00.51
社名を出せないヘタレがそんなこと書いちゃダメ!

51デフォルトの名無しさん2013/11/24(日) 16:03:43.15
>>45
ジジイの介護みたいな会社で努力するなら、
ホンモノの高齢者の介護をした方がマダましなんじゃないかって

52デフォルトの名無しさん2013/11/24(日) 16:05:38.13
爺どもはあと10年でいなくなる、そしたら俺の天下だと思って頑張ってるけど、
そうでもないの?

53デフォルトの名無しさん2013/11/24(日) 16:06:09.56
動的型使ってる奴がみんな同レベルと思わないでくれ
NumOrStringなんて考えた奴が低能なだけ

54デフォルトの名無しさん2013/11/24(日) 16:08:27.45
>>52
重役の息子や孫がヘッドハンティングとか言ってコネで入ってきてスピード昇進なんてよくあること。

55デフォルトの名無しさん2013/11/24(日) 16:12:16.74
コネで入ってきたやつに負ける程度の実力なら、下についたほうがお得な気がするけど、
そうでもないの?

56デフォルトの名無しさん2013/11/24(日) 16:17:52.12
静的動的の違いより、DFAとNFAの差のほうが気になる。
DFAは実際ほとんど使われていないけど、今後はDFAじゃないとダメなんじゃないのかな?
いまDFAが使われる場所ってコンパイラとかデスクトップで完結してるような
NFAでもいいようなとこだと思うんだ。
NFAってネットワーク越しにやってくる指令の解析にさえ使われていてこれ凄く危険。
そう思わない?

57デフォルトの名無しさん2013/11/24(日) 16:19:43.29
>>55
日本社会において実力っていう物の5割はコネのことだからな。

58デフォルトの名無しさん2013/11/24(日) 16:22:19.48
Javaが画期的だったのはDFAであることが保障されてたことじゃないのかなあ。
あんまり話題にならないけど。

59デフォルトの名無しさん2013/11/24(日) 16:28:27.58
オートマトンなんかどうでもいいよ。そんなところがユーザーが気にすべきところならその言語はお粗末だ。

60デフォルトの名無しさん2013/11/24(日) 16:32:24.15
決定性がないってことは、外部からの入力に対して計算を実時間内に
終了できることを保証できないってことだよ。
事実上無限ループさせられるってことじゃないの?
30秒で打ち切るとかそういう場当たり的な対策でいいの?
記憶領域をいくらでも使わされるとか。
そんなんでいいの?
これは言語関係ありません。
たぶん。

61デフォルトの名無しさん2013/11/24(日) 16:34:45.46
58=チューリング完全の意味も知らないバカ

62デフォルトの名無しさん2013/11/24(日) 16:34:45.74
全然話が見えてないんだけど、DFAとNFAは等価ですよ?

63デフォルトの名無しさん2013/11/24(日) 16:36:28.47
>>41
> "1"が1と同値になるような実装でないと認めません

いきなり後出し追加要件笑たわ

64デフォルトの名無しさん2013/11/24(日) 16:37:51.06
静的型付け言語=平気で嘘をつく人格障害者向けの言語

65デフォルトの名無しさん2013/11/24(日) 16:39:32.26
>>41
そんな仕様の言語は動的型でもゴミの部類ですよ

66デフォルトの名無しさん2013/11/24(日) 16:41:15.20
>>58
これは恥ずかしい

67デフォルトの名無しさん2013/11/24(日) 16:46:45.41
さすがに自演だな
こんなバカが1日に2人も来るわけない

68デフォルトの名無しさん2013/11/24(日) 17:05:12.14
理解できませんでしたか。

69デフォルトの名無しさん2013/11/24(日) 17:07:57.68
1と"1"が同値かはともかく16と"16"だと基数は何なのよとか"0x10"は受け付けるのか
とか日本語対応で漢数字"十六"にも対応しようぜとかフランス語は16までは単語が
有るけれども17からは"10と7"の合成なんだぜとか生産性のさほど無い話に発展すれば
よいのに。

70デフォルトの名無しさん2013/11/24(日) 17:10:52.26
いやここ生産性のスレだから。

71デフォルトの名無しさん2013/11/24(日) 17:14:22.31
>>68
DFAで保証の人?
何を保証してるのか説明plz

72デフォルトの名無しさん2013/11/24(日) 17:17:20.32
ポアソン分布について話してるとこに足し算の説明求められても
そこは自分でってなるよ。
なるよ。
ならなかったっけ?

そんな感じであります!隊長!

73デフォルトの名無しさん2013/11/24(日) 17:26:07.95
うそです!
そんな感じじゃないです。
馬鹿にされたからひがんだだけっす!隊長!

74デフォルトの名無しさん2013/11/24(日) 17:30:53.28
この流れに吹いてしまった俺に一言

75デフォルトの名無しさん2013/11/24(日) 17:40:44.06
つまりJavaのJVMが行うgcの待ち行列はポアソン分布に従う

76デフォルトの名無しさん2013/11/24(日) 18:24:40.50
違う!全然違うよ!

77デフォルトの名無しさん2013/11/24(日) 18:24:51.91
まぁABC予想とともに解決する問題なんだけどね

78デフォルトの名無しさん2013/11/24(日) 18:52:15.68
JSerが出てこないとヒマだな。

79デフォルトの名無しさん2013/11/24(日) 18:54:53.09
呼んだ?

80デフォルトの名無しさん2013/11/24(日) 21:15:38.93
>>79
でてくんなボケ

81デフォルトの名無しさん2013/11/24(日) 21:33:56.48
じゃあ呼ぶなよ。
めんどくさい奴だな。

82デフォルトの名無しさん2013/11/24(日) 21:42:39.70
とにかくJSネタに我田引水して「ES7で解決している」と言ってみるとかネタは無くとも
とりあえず「Cの10倍速い」と言うのが訓練されたJSerであって、「呼んだ?」だけでは物足りない。

83デフォルトの名無しさん2013/11/24(日) 21:50:39.71
定価1万円くらいのJavaの本がブックオフで105円だったので買ってきました。
2011年初版です。
なんでこんなに安くなってたんだろ。
見たところ新品みたいなのに。
これ出した人一度も読んでないよね。
こういうの流行ってるのかな?

84デフォルトの名無しさん2013/11/24(日) 21:54:31.23
Javaの第二形態がJS。
もちろん進化した分Javaより強い。

85デフォルトの名無しさん2013/11/24(日) 22:03:24.72
俺JS使いだけど、
JavaScriptは
Cの100倍速いよ

86デフォルトの名無しさん2013/11/24(日) 22:06:23.81
100倍は無理でしょ。
常識で考えなよ。

87デフォルトの名無しさん2013/11/24(日) 22:09:11.37
空気戻ってきた。

88デフォルトの名無しさん2013/11/24(日) 22:57:48.80
>>86
それいったら10倍だって無理だしw

89デフォルトの名無しさん2013/11/24(日) 23:37:47.79
JavaScript は C の10倍 名前が長い

90デフォルトの名無しさん2013/11/24(日) 23:40:11.03
S(100);

/* C */
int S(int n){
 int i, sum;
 for( i = 1; i <= n; i++ ){
  sum += i;
 }
 return sum;
}

/* js */
function S(n){ return n * (n+1) / 2; }

そう、JavaScriptはCの100倍速い

91デフォルトの名無しさん2013/11/24(日) 23:41:01.36
ジャバスクリプトとシーなら4倍だ。10倍って大げさすぎたいしたことない。

92デフォルトの名無しさん2013/11/24(日) 23:41:34.27
くっそwミスったw

93デフォルトの名無しさん2013/11/24(日) 23:50:09.92
イーシーエムエースクリプトで6.5倍だ

94デフォルトの名無しさん2013/11/24(日) 23:51:56.76
>>90
それJavaScriptにおける最適化手法の進化について理解していない。

将来的にはn * (n+1) / 2という式から「あぁ、この人は1からnまでの総和を求めようと
しているんだな・・・」と自動的に解釈してループを使ったコードに書き直してくれる
ようになるらしい。

95デフォルトの名無しさん2013/11/25(月) 00:09:49.56
3倍なら可能!

96デフォルトの名無しさん2013/11/25(月) 00:11:41.64
JSはCの二倍速い。

97デフォルトの名無しさん2013/11/25(月) 00:14:59.65
>>94
いや、それって逆じゃないの…?

98デフォルトの名無しさん2013/11/25(月) 00:25:42.16
>>97
何のためにSIMD対応を進めているとおもっているのか。
ループに展開してGPUで並列計算するに決まっているじゃ無いか。

99デフォルトの名無しさん2013/11/25(月) 00:25:52.26
最終的には5050という数字を見つけると、1から100までたしたいんだなと解釈してループコードに書き換えてくれる

100デフォルトの名無しさん2013/11/25(月) 00:31:22.06
MAPが並列で速くなるのはわかるけど
REDUCEが並列で速くなる…?

101デフォルトの名無しさん2013/11/25(月) 00:35:55.81
>>100
もちろん、帰納的に100個のルーチンを展開してそれぞれ実行する

102デフォルトの名無しさん2013/11/25(月) 00:35:59.64
JSなら速くなる。
ES7で実装される予定。

103デフォルトの名無しさん2013/11/25(月) 00:44:37.69
>>100
隣接する偶数番目と奇数番目でペア作って並列で足し算するに決まっているでしょ。
100までの総和なら最初のイテレーションで50まで要素が減る。
100回ループ回さなくても5〜6回のイテレーションで計算できるぞ。

104デフォルトの名無しさん2013/11/25(月) 00:45:47.45
アホプログラマは5歳のガウス少年よりアホってことが良く分かりますね

105デフォルトの名無しさん2013/11/25(月) 00:48:33.97
なあに、才能と計算リソースは無駄遣いされるものと相場が決まっている。

106デフォルトの名無しさん2013/11/25(月) 00:52:26.29
ラズパイにUbuntu入れてJSでソフトを作りました。
結果、オープンハードで2倍、オープンOSで2倍、オープン言語で2倍、合わせて
100倍速くなりました。
これを32台つなげたクラスタは京より少しだけ速くなりました。
次は64台つなげてみたいです。

107デフォルトの名無しさん2013/11/25(月) 00:57:18.39
おまえら元気だよな。ネカマとJSerになりきるのはよう続かんわ。

108デフォルトの名無しさん2013/11/25(月) 00:57:32.82
総和ならこれくらいのことはやって欲しい。;p

{Color red. Color green. Color blue} sum "=> Color white "

109デフォルトの名無しさん2013/11/25(月) 01:00:12.87
ネタ扱いされてるけど、JSがCの二倍速いのはほんとだよ。
やってみた人だけが知ってること。
やってもいないくせにネタ扱いするのやめてくんない?
迷惑。

110デフォルトの名無しさん2013/11/25(月) 01:05:01.46
>>108
CMYKへの対応はどうするんだとか言うツッコミはともかくHTMLとかのカラーコード表
を取り込めばさっくり実装できそうな気もする。

111デフォルトの名無しさん2013/11/25(月) 01:21:52.31
ねぇ、動的型つき言語でのテスト方法教えて。

まずさ、クラスAがあるでしょ?
そのクラスAが内部で使ってるクラスBがあるでしょ?

クラスBの単体テストは簡単だよね。
クラスAの単体テストをする時、クラスBの代わりにモックを使うよね?

つまり、クラスA+偽クラスBでテストをしているわけさ。
この時、クラスBの仕様が変わるとするよね?
でも偽クラスBはクラスBのモックというだけで、クラスBとは無関係だよね?
動的型付き言語の場合。

クラスBの仕様が変わってるのに、クラスAはテストに通ってしまう。
こういう場合どうするの?

静的型付け言語ならコンパイルエラーで見つけられるけどさ。

112デフォルトの名無しさん2013/11/25(月) 01:27:58.30
クラスBの要件についてのテストを書いておけば
テスト通らなくなるだろ

113デフォルトの名無しさん2013/11/25(月) 01:33:38.72
>>110
メソッド sum の実装はコンテナ(コレクション)クラスに属してて、
{1. 2. 3} sum でも同じメソッドをコールし、演算可能ところがミソかな。
Haskell や Scalaの型クラスとかだと可能なのだろうか?

114デフォルトの名無しさん2013/11/25(月) 01:35:19.64
>>112
そりゃクラスBの要件のテストを書いておけば、
そのテストは通らなくなるよ。

でも今の問題は、クラスAのテストなんだよね。
クラスBを修正してもクラスBのモックは変わらない。
クラスBのモックを修正することを忘れれば
クラスAはテストに通ってしまう。

115デフォルトの名無しさん2013/11/25(月) 01:37:37.15
>>114
忘れたお前の責任

116デフォルトの名無しさん2013/11/25(月) 01:40:28.72
>>114
>そのテストは通らなくなるよ。
>でも今の問題は、クラスAのテストなんだよね。
要件のテスト通らないって事は変更できないってことだ
まさかテストを書き換えるなんて馬鹿なことはしないよな?

117デフォルトの名無しさん2013/11/25(月) 01:42:13.57
1、テスト志向を徹底するためには、まずデバッガを捨て去らねばならない

118デフォルトの名無しさん2013/11/25(月) 01:42:43.12
つまりダックタイピングの限界ってことだね。
本物とモックで同じインターフェースを使っていないから
インターフェースが変わっても気づかない。

119デフォルトの名無しさん2013/11/25(月) 01:43:38.49
余程のばかじゃない限り気付くだろ

120デフォルトの名無しさん2013/11/25(月) 01:44:21.22
>>116
いやさ、変更するのはクラスBだよ?

クラスAと(変更前の)クラスBのモックは
変更する必要ないじゃん?

テストを書き換えるなんて馬鹿なことはしないんだからさ。

121デフォルトの名無しさん2013/11/25(月) 01:45:06.75
>>119
納期が迫っているときは、その馬鹿でも
しないようなことをしてしまうんだよ。
人間はミスをするという前提にたとうぜ?

122デフォルトの名無しさん2013/11/25(月) 01:45:08.03
Bの要件を満たさないBを作る事がダメだと言ってるんだが
伝わってるか?

123デフォルトの名無しさん2013/11/25(月) 01:46:07.78
>>120
なら問題ないだろ
変更しても要件のテストに通らなければそれはクラスBではない

124デフォルトの名無しさん2013/11/25(月) 01:46:40.20
>>122
クラスBとクラスBのモックは
別のものだってわかってる?
今はクラスBの話はしてないの。

クラスAの単体テストの話。
クラスAから使うのはクラスBのモックであり
クラスBはでてこない。

125デフォルトの名無しさん2013/11/25(月) 01:47:48.10
>>124
クラスBのモックは当然クラスBの要件を満たしているんだろ?
何の問題があるんだよ

126デフォルトの名無しさん2013/11/25(月) 01:50:23.40
クラスAのテストは通る
クラスBのテストも通る。

だけど、組み合わせた場合
動かないってことがあるわけだよね。

組み合わせた時インターフェースが
一致していないことを
どうやって知ればいいの?

127デフォルトの名無しさん2013/11/25(月) 01:51:08.32
何を言ってるんだか理解できないんだが・・

128デフォルトの名無しさん2013/11/25(月) 01:54:39.05
>>125
え? まさか、
クラスBのモックを作ったら、
クラスBのモックもテスト書くの?

いや多分逆だな。
クラスBのテストを書いて、
そのテストを通るようにクラスBのモックを
作るんだね?

クラスBがないからクラスBのモックを書くのに、
クラスAのテストをするために、クラスBのテストを書くんだ。
で、テストを通るようにクラスBのモックを実装するんだ。


動的言語ってすごい二度手間・・・

129デフォルトの名無しさん2013/11/25(月) 01:54:44.66
まあ静的型でも変更を検出出来るのはメソッドのシグネチャの変更程度であって振る舞いの
変更はやはりモックを見つけ出して振る舞いを書き換える必要はあるかな。

130デフォルトの名無しさん2013/11/25(月) 02:00:38.57
>>127

>>129のようにわかってる人がいるから十分だよ。
わからない人は脱落してね。

>>129
その通りなんだけどつまりこういうことでしょ?

シグネチャの変更  静的:わかる   動的:分からない
振る舞いの変更   静的:分からない 動的:分からない

明らかにメリットがあるよね。
さらに静的ならコードの参照箇所の追尾もしやすいし。

131デフォルトの名無しさん2013/11/25(月) 02:00:43.17
>>128
そりゃモックオブジェクトだろうが
クラスBというインターフェースを満たさないなら契約違反だろ
何言ってんだ?

132デフォルトの名無しさん2013/11/25(月) 02:02:24.81
よくテストがあれば大丈夫というが
テストがあってもダメな例があるということさ

テストに完璧は存在しない。
モアベターなのはなにか?で
考えるべきだ。

133デフォルトの名無しさん2013/11/25(月) 02:03:51.92
そりゃ型注釈がそのテストの代替だろ
もったいぶってないで最初からそう言えよ

134デフォルトの名無しさん2013/11/25(月) 02:08:28.63
型注釈ってようするに
静的型のことだから

135デフォルトの名無しさん2013/11/25(月) 02:09:58.40
動的型でも分かるシグニチャの変更と言ったら、
関数/メソッド名、引数の数、キーワード引数のキーワード、くらいかな?

136デフォルトの名無しさん2013/11/25(月) 02:11:53.91
テストに完璧は存在しない。
いやあるかも知れないが、それは途方もなく大変なものだ。
テストで重要なのはいかに質を保ったまま
テストの量を減らせるか。
その第一歩が静的型なんだ。

137デフォルトの名無しさん2013/11/25(月) 02:12:32.36
>>134
だからその静的型の事を言ってんだよ

138デフォルトの名無しさん2013/11/25(月) 02:15:01.69
JSerはCerの10倍速いから大丈夫

139デフォルトの名無しさん2013/11/25(月) 02:16:24.81
erつけりゃいいと思ってやがる。日本人ならJS屋、C屋だろが。

140デフォルトの名無しさん2013/11/25(月) 02:18:50.99
JSドカタ

141デフォルトの名無しさん2013/11/25(月) 02:22:33.02
それ労働基準法違反だろ

142デフォルトの名無しさん2013/11/25(月) 02:23:39.69
JSianはCianの10倍速いから大丈夫

143デフォルトの名無しさん2013/11/25(月) 02:28:54.59
JSの大事な部分に静的ないたずらを

144デフォルトの名無しさん2013/11/25(月) 02:32:48.69
結局動的でテスト志向に徹するのが最良って結論だったな
いつもこの結論なのに何度も議論する意味あるのか?
無限ループに陥ってる可能性があるな
スレもテストするべきだな

145デフォルトの名無しさん2013/11/25(月) 02:53:43.18
JSはCの2倍速いこともあるが
まあ、ここは10倍速いといっておこう

146デフォルトの名無しさん2013/11/25(月) 02:54:18.88
>>144
お前が必死なのがよくわかった。

147デフォルトの名無しさん2013/11/25(月) 02:57:02.26
>>144
反論してた方がむしろ静的厨というオチだけどな

148デフォルトの名無しさん2013/11/25(月) 02:58:03.82
(^q^)アウアウアー

149デフォルトの名無しさん2013/11/25(月) 02:58:05.28
結局テストのことを考えたら静的のほうがいいべ
動的や面倒でたまらん。
そのくせ効果が少ない。

150デフォルトの名無しさん2013/11/25(月) 03:00:27.73
動的言語だと実装は仕様変更に強いがテストは仕様変更に弱い?

というかテストまで仕様変更に寛容だとテストとしての目的を果たさないと言うことか。

151デフォルトの名無しさん2013/11/25(月) 03:02:59.94
静的と動的の間の言語が最強

152デフォルトの名無しさん2013/11/25(月) 03:09:41.81
モックにテストを書こうと思うのですが
どうやって書けばいいのでしょうか?

153デフォルトの名無しさん2013/11/25(月) 03:10:41.98
動的言語が仕様変更に強いというのは
幻想だと思うよ。

154デフォルトの名無しさん2013/11/25(月) 03:10:42.26
>>151
オプショナルな型付けで場面に応じて静的型検証を強制できる言語が最強ということだな。

なんだGroovyじゃないか。

155デフォルトの名無しさん2013/11/25(月) 03:14:18.05
>>152
モックを使ったテストの意味を理解してないなら依存性バリバリでも
愚直にテストコード書いた方がまし

使い方という意味ならいくらでもドキュメント出てくるでしょう

156デフォルトの名無しさん2013/11/25(月) 03:14:43.77
テスト志向の徹底
これがすべて
まずデバッガを排除するべし
デバッガを見つけたら廃棄
それがソフトであってもハードであっても人間であっても
デバッガと名のつくものはすべて廃棄

157デフォルトの名無しさん2013/11/25(月) 03:15:45.63
そしてGDBに戦いを挑む>>156だった。

最終話 デバッガには勝てなかったよ

158デフォルトの名無しさん2013/11/25(月) 03:17:17.14
>>152
モックに対してテストを書くと、

モックのテストと
実物のテストの二つに分かれてしまう。
それは避けないといけない。

だからテストコードにはクラス名を渡せるように作る。

159デフォルトの名無しさん2013/11/25(月) 03:17:35.61
インド系アメリカ人のデバッガさんはどうしましょう

160デフォルトの名無しさん2013/11/25(月) 03:18:40.27
第一話 GNU帝国の進撃の巨人

161デフォルトの名無しさん2013/11/25(月) 03:18:58.41
モックを使ったテストでは
テスト対象コードとそのテストの他に
モックのテストが必要になる。

162デフォルトの名無しさん2013/11/25(月) 03:19:40.14
>>159
当然廃棄
透明ゴミ袋でお願いします
生ごみだから

163デフォルトの名無しさん2013/11/25(月) 03:21:14.69
テストはバグを見つけるためのものであり
デバッガとは見つけたバグを修正するもの。

この違いがわかっているのなら、
テストはデバッガの代わりにならないというのもわかるはず。

164デフォルトの名無しさん2013/11/25(月) 03:22:00.08
やべえ
眠くならない
まじやべえ
月曜日寝ないと一週間眠れないパターンに入る
これはやべえ

165デフォルトの名無しさん2013/11/25(月) 03:24:19.34
俺は深夜メンテナンスがあるから
逆に起きてないといかんのだよ。
寝れないなら俺に付き合えw

166デフォルトの名無しさん2013/11/25(月) 03:38:09.75
ウホ?

167デフォルトの名無しさん2013/11/25(月) 15:10:38.86
動的言語勢としてもJSerは隔離したほうがいいと思った
やつら純粋に頭が悪すぎる

168デフォルトの名無しさん2013/11/25(月) 15:17:41.51
>>144
> 結局動的でテスト志向に徹するのが最良

どうせテストを書くのなら、最初からコードに一部埋め込んでおけば漏れもないし確実だろうが。
動的言語信者の言い分をつきつめると、結局静的言語に戻ってくる
やつら計算機科学の成果とかまるっきり無視してるからなw

ま、確かにこれからは動的言語だって時代はあったよな。このグラフの2005年くらいまでか?
静的型付け言語の潜在開発生産性は今の100倍 ×5->画像>6枚
特に阿呆なJSerども、俺らイケてるって調子に乗ってな。

でも今は最早そんなトレンドではないのでは明らか。揺り戻しが発生してるでしょ。





失敗したんだよお前ら。

169デフォルトの名無しさん2013/11/25(月) 19:52:59.61
型は自転車でいえば補助輪のようなもの
プログラム初心者は型がないとプログラムを書けない
一度、型なしでプログラムを書けるようになったら
もう型なんて必要ない

170デフォルトの名無しさん2013/11/25(月) 20:06:10.43
保育園児VS小学生 ktkr

171デフォルトの名無しさん2013/11/25(月) 20:34:02.76
>>169
あほ。
型付け制限はどうみても人間以外の機械側の都合。

172デフォルトの名無しさん2013/11/25(月) 20:37:57.99
171だが。
>>1をいま読んだが。
静的型付け言語でなくともオプション指定で、代入で型が変更された時に警告やエラーを出すようにしたら発見可能だろ。
これは、静的型付け言語かどうかとは関係ないな。

173デフォルトの名無しさん2013/11/25(月) 20:38:03.76
型はヘルメットとも言い換えられる
自称上級者が「鬱陶しいから」という理由で装備せずに重大な事故を引き起こす

174デフォルトの名無しさん2013/11/25(月) 21:19:15.41
>>172
int a = 1;
a = foo(); // fooの戻り値は文字列

この場合に警告出してくれる動的型言語を紹介してください

175デフォルトの名無しさん2013/11/25(月) 21:21:18.17
強い静的型付け

176デフォルトの名無しさん2013/11/25(月) 22:10:18.58
動的がーとか言ってるやつとブレーキのない俺かっけーと言ってるピスト野郎とかぶるんだが気のせい?

177デフォルトの名無しさん2013/11/25(月) 22:23:59.92
入学したら補助輪を外すのは世界の常識。
いつまでも補助輪つけてたらみっともないですよ?
ゆうくんも今日からお兄ちゃんなんだから補助輪外さないとね!

178デフォルトの名無しさん2013/11/25(月) 22:54:04.02
>>172
> 静的型付け言語でなくともオプション指定で、代入で型が変更された時に警告やエラーを出すようにしたら発見可能だろ。

エラーだらけになるだろ、バカすぎ。

179デフォルトの名無しさん2013/11/25(月) 23:09:15.01
デバッガを使う無能が一向に減らないのは静的のせいだったのか。
なるほどなるほど。

180デフォルトの名無しさん2013/11/25(月) 23:16:35.47
なんでデバッガを嫌うの?

コボラーと同じ臭がするね。

181デフォルトの名無しさん2013/11/25(月) 23:20:16.00
テストは予防接種
デバッガは応急措置

182デフォルトの名無しさん2013/11/25(月) 23:22:19.96
インタプリタしか使ったことがなければデバッガが無意味に思えても仕方ない

183デフォルトの名無しさん2013/11/25(月) 23:25:19.98
>>181
なるほど!

デバッガを嫌っている人は
デバッガを勘違いしているということがわかった。

デバッガはその名の通り、バグを修正するもの。
テストで見つかったバグ。そのバグを直すまでに使う道具だ。

184デフォルトの名無しさん2013/11/25(月) 23:28:43.02
デバッガで応急処置をするとかよくわからんわw
応急処置をするにしても、テキストエディタでコード書くことで
応急処置するんだろ。デバッガで応急処置?どうやって?w

185デフォルトの名無しさん2013/11/25(月) 23:35:33.58
予防接種の方はよくわかるのかよw

186デフォルトの名無しさん2013/11/25(月) 23:57:58.45
ごく小規模なプログラム、個人での開発、保守不要の作り捨てのプログラムの場合は動的な方がよい

187デフォルトの名無しさん2013/11/26(火) 00:03:17.45
ネットワーク分散処理、アジャイル、ハイパフォーマンスの場合は動的のほうが良い。
初心者の学習用途は静的のほうが簡単。

188デフォルトの名無しさん2013/11/26(火) 00:06:01.55
>>187のレスには突込みどころがいくつもあるけど突っ込みません

189デフォルトの名無しさん2013/11/26(火) 00:24:24.78
突っ込みどころが多すぎて突っ込ませない手法は教祖がよくつかう手法。

190デフォルトの名無しさん2013/11/26(火) 00:44:53.86
突っ込んでくれないならもう書き込みません!

191デフォルトの名無しさん2013/11/26(火) 00:57:59.17
>>187
JSはCの10倍速くて初心者にも優しいよ

192デフォルトの名無しさん2013/11/26(火) 01:05:19.80
さすがに10倍はない。
大きすぎてネタとばれるレベルw

193デフォルトの名無しさん2013/11/26(火) 01:46:37.38
【動的言語の薦め】

Perlが最初MBAの学生によって作られたことはよく知られています。
欧米の金融工学の教科書には問題をPerlで検証しなさいと良く書かれています。
実際、マンハッタンエリートの机には必ずPerlのパッケージが置いてあります。
金融、経営、経済といった分野ではPerlが必要不可欠な個人ツールとなっているのです。

最適化分析ツールとして容易でありながら絶大な威力を持つソルバー、
計算結果を視覚化するグラフツール、これらの操作を簡単に記録して再利用する
マクロの記録など必要なものはすべてそろっています。

彼らはマンハッタンのエリートたちはプログラミングの専門家ではありません。
はたして、静的言語でこのようなことが可能だったでしょうか?
ひとえに動的言語のパウアーによるものだったのです。

194デフォルトの名無しさん2013/11/26(火) 01:53:31.35
Perlの重要な機能であるウェブクエリも忘れてはいけません。
これは、定期的に更新されるウェブページの表から動的に情報を取得する
容易な方法です。
実際にウェブページを閲覧しながら必要な表を選択するだけで情報を
取り込めるのです。
Perlのシートを開くたびに更新された情報を取得することも可能です。
もちろん、取得した情報の分析や資格化はPerlの得意とするところです。
マンハッタンのエリートたちはこういったツールを使いこなし、経営に
役立てているのです。

繰り返しになりますが、静的言語でこのようなことが実現したでしょうか?

195デフォルトの名無しさん2013/11/26(火) 01:57:38.03
>>194
俺はjavaでやってるぞw

196デフォルトの名無しさん2013/11/26(火) 02:08:50.96
日本でも投資顧問会社が「弊社では20世紀より伝わる信頼と実績のPerl
プログラムによってお客様の利益を保証します」ってやってるね。

197デフォルトの名無しさん2013/11/26(火) 04:26:43.22
そういう特定分野で使われている言語はその分野の実績のあるソフトウェアスタックが揃っていて
ユーザが多くノウハウも蓄積しているから使われているのであって動的静的は案外関係ないと思う。

今仕事でやってるデータインテンシィブな分散処理の分野ではJava強いけど別にこれを「動的言語
でこのようなことが実現したでしょうか? 」とか言う気にはあまりならん。
基本的にはHadoopやLuceneがJavaで書かれているから、その上に乗っかるシステムも素直にJavaで
書かれているという事情が大きい。でも現実問題としてこの点は言語が動的静的云々の差などより
よほど大きいわけで。

「小規模なプログラム、個人での開発、保守不要の作り捨てのプログラムの場合は動的な方がよい」
ということでは無くて、単に効率考えずに言語第一で選択できる場面なんてその程度しか無いだけ。

198デフォルトの名無しさん2013/11/26(火) 06:09:57.00
>>196
金融商品取引法は、損失負担の約束や利益保証を禁止しており、これらを伴う勧誘も当然に禁止しています。

199デフォルトの名無しさん2013/11/26(火) 06:19:09.85
>>176
君、よく周囲の人達から「きみ、頭悪いね」と言われてるだろ。

200デフォルトの名無しさん2013/11/26(火) 06:20:59.47
>>195
劣化コピーでドヤるのって楽しい?

201デフォルトの名無しさん2013/11/26(火) 06:56:30.22
>>196
これはひどい

202デフォルトの名無しさん2013/11/26(火) 07:06:42.04
>>196
その利益保証しているという投資顧問の社名を教えてくれ

203デフォルトの名無しさん2013/11/26(火) 08:51:33.31
ちなみに>>193は全部つくり話ですw

204デフォルトの名無しさん2013/11/26(火) 09:40:40.95
>>199
具体的な反論なくただ堕とすだけの奴は無能だってじっちゃが言ってた(´・ω・`)

205デフォルトの名無しさん2013/11/26(火) 10:39:11.85
>>204 つまり、おまえは無能ってことだなw

206デフォルトの名無しさん2013/11/26(火) 10:50:15.40
>>205
ウンウン、そういう風に具体的なこと言えないで堕とすだけなんだねー。わかります(´・ω・`)

207デフォルトの名無しさん2013/11/26(火) 11:31:18.48
>>206
205は204に対する具体的な反論になっていることも理解できないのか
なんて可哀想なバカなんだろうw

208デフォルトの名無しさん2013/11/26(火) 11:32:29.63
>>204
そんな風に、具体的な反論もできずにじっちゃが言ってたとかほざいている
無能な孫をみて、さぞやじっちゃは悲しんでいるだろうよ

どうしてこんなバカな孫ができてしまったのかってねw

209デフォルトの名無しさん2013/11/26(火) 12:03:36.79
>>207-208
妄想が止まらないJSerか?涙拭けよwww

210デフォルトの名無しさん2013/11/26(火) 16:23:19.76
>>209 あいかわらず妄想の塊だなw お大事に。ww

211デフォルトの名無しさん2013/11/26(火) 19:05:03.75
>>203
作り話じゃありません。
ExcelをPerlに変えてみただけです。

212デフォルトの名無しさん2013/11/26(火) 19:31:05.12
>>210
いやいや妄想力の強さではJSerにはかないませんよw

213デフォルトの名無しさん2013/11/26(火) 20:33:15.36
負けを認めた瞬間から君は負け犬になったのです。
一生JSにかなわないのです。

214デフォルトの名無しさん2013/11/26(火) 20:42:13.76
ま、負けましたブヒー

215デフォルトの名無しさん2013/11/26(火) 21:51:26.20
板住民の総意としてJS最強を認めたいと思います
チャンピオン JSer には地球代表として銀河系遠征へ旅立っていただく予定です

216デフォルトの名無しさん2013/11/26(火) 23:04:58.95
>>215
おまえがJSのアンチだってことは
皆気づいていると思うよ。
いくら言い訳してもね。

217デフォルトの名無しさん2013/11/26(火) 23:45:45.86
>>215
あんちだったん?
Cの二倍速いのになんで?

218デフォルトの名無しさん2013/11/26(火) 23:50:25.33
宇宙人からメッセージが一件とどいてます。

(^q^)アウアウアー

219デフォルトの名無しさん2013/11/27(水) 00:02:23.10
>>217
2倍速いっていうのはデマだよ。
ごくごく一部の例外的事象を
大げさに言ってるだけ。

220デフォルトの名無しさん2013/11/27(水) 00:09:42.19
デマじゃないよ。
ほんとに速いよ。
やってみたらすぐわかるのになんでやらないの?

221デフォルトの名無しさん2013/11/27(水) 00:11:36.30
いや、簡単なサンプル作ったけど
速くならなかった。

速くなるというサンプルを書いてみてくれ。
速くなるという証拠がないんだ。
どうしようもないじゃないか?w

222デフォルトの名無しさん2013/11/27(水) 00:11:50.78
JSの良いところは速度だけではありません。
その高度に統合された美しい理論体系が優れているのです。
神のデザインとすら言われています。

223デフォルトの名無しさん2013/11/27(水) 00:17:02.57
そういうのは要らん
速くなるサンプルをくれ

224デフォルトの名無しさん2013/11/27(水) 00:32:54.01
早いのは単にcのコードが悪くて、
jsの最適化の方が優れてただけだろ?
ブラウザ戦争の産物だな
clangみたいに最適化が進めば差はたいしてなくなる

225デフォルトの名無しさん2013/11/27(水) 00:36:33.30
JSが美しいとか言うやつの美的感覚ってw
それにJSがCより早いって(爆笑)比較コードさらしてね
まともなコードで比較したらそんなことあり得ないから

226デフォルトの名無しさん2013/11/27(水) 00:36:36.13
ただの誤訳だって

227デフォルトの名無しさん2013/11/27(水) 01:53:09.78
【最も美しい言語 - 01スクリプト言語】

・0と1、二つの文字だけで書くことができる新しい種類の言語です
・現在の実装はトランスレータです
・コンパイラ、実行環境はお好きなものを選べます

【現在の実装】
・0と1だけから成り立つ入力文字列より8バイト消費し、それぞれ0のビット
 1のビットとして一バイトにおさめます
・選択されたコンパイラや実行環境の入力としてバイトを送ります
・文字列の終端に達していない場合、最初のステップに戻り、それ以外の場合
 終了します

228デフォルトの名無しさん2013/11/27(水) 07:00:45.74
wとWで書けるのもあるしな

229デフォルトの名無しさん2013/11/27(水) 07:04:02.82
(^q^)アウウウアウアアアウアウウア-

230デフォルトの名無しさん2013/11/27(水) 09:25:08.74
↓美しい言語家

231デフォルトの名無しさん2013/11/27(水) 10:59:28.39
>>220
そんな素晴らしいものでなんで全てのプラットホームで使えるようになってないのよ。お前ら信者の布教具合がたるんでるんじゃねえの?

232デフォルトの名無しさん2013/11/27(水) 11:10:22.91
JavaScriptの関数読んだけど難しすぎてわけがわからん。
誰かこの関数の使い方を教えてくれないか?
どういう返り値を期待してどういう引数を渡せばいいのか。
https://github.com/jquery/jquery/blob/1.8-stable/src/core.js#L772

233デフォルトの名無しさん2013/11/27(水) 11:24:57.45
>>232
糞JSerが頑なに正解だと言っていたbulkの再代入が直してあるな
まあ当然だよなあ

234デフォルトの名無しさん2013/11/27(水) 11:57:12.38
型システムの起源って何の言語?

235デフォルトの名無しさん2013/11/27(水) 12:08:11.75
型システムの定義によって答えは変わる

236デフォルトの名無しさん2013/11/27(水) 15:37:11.26
だが静的脳の達人は質問者の追加入力を待ってノロノロ答えを計算するなどということはない

237デフォルトの名無しさん2013/11/27(水) 15:42:48.31
>>234
データ型という概念そのものは、高級言語の登場に伴って自然発生的に生まれた
たとえば Fortran には整数型/実数型といった単純型や配列という複合型がある
また PL/I ではレコードやポインタといったデータ型が追加され、
Pascal でデータ型の体系が整理された後、モジュールや抽象データ型を経て
現在のオブジェクト指向が主流な現在に到る
したがって、型システムの起源として言語を特定する事に意味は無い

この自然発生的な型システムに遅れて、形式的な型システムが誕生した
そしてこれが最初に実装された言語が、ある定理証明器の記述言語として設計された ML になる
MLはその後、汎用的なプログラミング言語として開発が世界中で活発化し、
Standard ML(SML) と Objective-Caml(OCaml) に分かれて現在に到る
また ML は純粋関数型言語である Miranda にも強い影響与え、その後継が現在の Haskell
言い換えると、形式的な型システムの起源は ML と言える
ML については、Wikipedia にも簡単な解説があるので、そちらも参照のこと

238デフォルトの名無しさん2013/11/27(水) 16:01:41.85
このスレ勉強になるわ

239デフォルトの名無しさん2013/11/27(水) 16:16:31.63
見事だ

240デフォルトの名無しさん2013/11/27(水) 16:46:05.27
自演臭すぎる

241デフォルトの名無しさん2013/11/27(水) 18:36:30.31
JSはCの二倍速い。

242デフォルトの名無しさん2013/11/27(水) 19:40:41.78
そんなわけあるか。CのがJSの二倍遅い。

243デフォルトの名無しさん2013/11/27(水) 19:59:49.13
JSも速いけど今の流行はPOMですよ。

244デフォルトの名無しさん2013/11/28(木) 01:36:51.13
でもさ、やっぱりさ、Java書いた後、PHPでコード書くと
この糞言語って思わない??
少なくともこの比較だったらやっぱりJavaの方が色々楽だよね?

よく使うので言うとMapあるし、型エラー、メソッド有る無しのエラー、
変数定義のエラーなどなどEclipseの恩恵含めていいとこあるし
テストもクラス内の特定メソッド指定して実行できるし、
カバレッジ出るのも早いし、メトリクス測定も早いし

PHPでも出来るもの、代用品はもちろんあるけど面倒いし遅いし
曖昧な関数多いし

PHPでやるメリットってお遊びアプリ作る程度に
留めないと無いような気もしてくる

245デフォルトの名無しさん2013/11/28(木) 04:24:55.41
JavsScriptで関連クラスやユーティリティ群を束ねたモジュールを書く必要があるので
昨今はどういう体裁で書くのがよいのか調べるも、AMDとかCommonJSとか色々書き方の
流儀があるみたいで唖然とした。ベストな書き方はいったい何なの。

246デフォルトの名無しさん2013/11/28(木) 04:34:28.76
ベストな書き方は、自分の作ったライブラリ部分と
AMDなどの書き方をするべき所を明確に分離することだ。
そうすれば、簡単なプロキシコードでどのようなものにも対応できる。

247デフォルトの名無しさん2013/11/28(木) 05:13:04.47
モジュール一つ書くのに色々書き方がある上に要プロキシコードとか生産性以前の問題。
きっとその「簡単なプロキシコードでどのようなものにも対応できる」自分の作った
ライブラリ部分の書き方も色々あるんでしょ。
単純にメンテナンス性が悪くなる。

248デフォルトの名無しさん2013/11/28(木) 09:14:39.14
>>247
プロキシコードでどんな用も対応できるというのは、
結局のところ、特定の書き方に依存しないってことだ。

特定の書き方に依存させるなというだけの話。
特定の書き方を考慮せずに普通に書けばいい。

だからメンテナンス性は高くなる。

249デフォルトの名無しさん2013/11/28(木) 16:24:33.10
プロキシーコードが必要な時点で変だと疑わないと。

250デフォルトの名無しさん2013/11/28(木) 17:36:38.45
プロキシじゃなくてアダプターじゃね?

251デフォルトの名無しさん2013/11/28(木) 20:17:17.12
JSはどんな書き方してもCの二倍速いよ。

252デフォルトの名無しさん2013/11/28(木) 20:58:35.53
>>251
わーすごいですねー(´・_・`)

253デフォルトの名無しさん2013/11/28(木) 21:10:24.35
>>252さんが仰るようにJSはすごいんですよ。

254デフォルトの名無しさん2013/11/28(木) 21:14:09.66
>>252も認めるJSの実力】

剃り残しなし!

255デフォルトの名無しさん2013/11/28(木) 21:51:50.58
あの、馬鹿にするのやめてもらえますか?
C言語はちゃんと速度出ますよ
JSが速すぎるだけなんです

256デフォルトの名無しさん2013/11/28(木) 21:54:32.51
確かにCはJavaの100倍速いです。

257デフォルトの名無しさん2013/11/28(木) 21:59:35.69
ところでApacheってなんであんなに遅いの?

258デフォルトの名無しさん2013/11/28(木) 22:59:41.26
>>257
遅くねえよ
ちょっと個々の設定ファイルの解析と適用に時間かかったり
アクセス元のホストを逆引きしたり
CGIを丁寧に毎回forkしたりしてるだけだよ

259デフォルトの名無しさん2013/11/29(金) 01:04:13.53
ApacheはCの100倍遅い。

260デフォルトの名無しさん2013/11/29(金) 01:33:37.30
JSerがそこらじゅうに転移してるな。まるでヘルペスウイルスだ。

261デフォルトの名無しさん2013/11/29(金) 08:15:31.77
JavaScriptは用途が広がる一方で仕様拡張が追いついていない印象だな。
モジュールのインポート云々が好例。JSerは手作りできるから言語仕様としては不要と
強弁するけど、普通の開発者は単に当初の想定外の用途故の機能不足と解釈するよな。

262デフォルトの名無しさん2013/11/29(金) 10:19:17.30
>>1
"人間がやっていたことを、コンピュータにやらせる。"

人間がやらずに済んでいたことをわざわざコンビュータにやらせる。

263デフォルトの名無しさん2013/11/29(金) 16:23:48.03
やらずに済むと錯覚するのは単に未熟だからです

264自故レス2013/11/29(金) 17:10:11.89
>>263
誰が偽りの説教をしろと?

265デフォルトの名無しさん2013/11/29(金) 23:51:28.82
zapzapzap

266デフォルトの名無しさん2013/11/30(土) 00:29:00.03
>>261
もうすぐES6が出るじゃん

267デフォルトの名無しさん2013/11/30(土) 01:36:44.94
>>266
ES6でインポート関連機能がサポートされるかよく知らないのだが、IE 含めて普通に
その機能を使えるようになるのっていつ頃?

268デフォルトの名無しさん2013/11/30(土) 08:34:02.73
>>267
IEは関係ないだろ
バカかこいつ

269デフォルトの名無しさん2013/11/30(土) 08:57:00.55
実行環境として普通に関係あるでしょ。
Androidの分断化問題と一緒。いくら規格が進んだところでランタイムの更新がある程度
進まないとプロダクションに投入できない。

270デフォルトの名無しさん2013/11/30(土) 09:16:25.39
>>268
流石にこの発言ないわー

271デフォルトの名無しさん2013/11/30(土) 09:30:11.13
>>269-270
なんで商用が前提になってんの?

272デフォルトの名無しさん2013/11/30(土) 09:39:42.32
つまり商用の人はお断りですよと。

商用だろうが非営利だろうが趣味だろうが、ブラウザ上でいろいろな人に使ってもらうので
あればブラウザの対応見込みは気にすると思うけど。

273デフォルトの名無しさん2013/11/30(土) 09:51:12.92
>>271
趣味の発言前提にしてんの?

274デフォルトの名無しさん2013/11/30(土) 09:54:10.84
>>272
なんでWebアプリ前提なの?

>>273
「商用では互換性が重要」って知らんがな。

「Javaで互換性重要だから7, 8の機能使いません」

知らんがな

これと同じ

275デフォルトの名無しさん2013/11/30(土) 10:20:06.04
>>274
>なんでWebアプリ前提なの?

Webアプリを開発したい、する必要があるからだけど?
Webアプリ開発はJavaScriptの利用目的の中でも大きな分野だと思うけど、違うの?

JavaScriptは手段であって目的では無いのだが。
いくら新しい規格が出たところで目的の用途に使えなければ意味ないよ。

276デフォルトの名無しさん2013/11/30(土) 10:20:52.88
「PerlはCGIで使うものだ」ってのと同じ臭いがする

277デフォルトの名無しさん2013/11/30(土) 10:36:44.84
CGIをつくることを目的にしている人とっては使いたい機能がPerlにあったところで
CGIで使えなければ意味が無いだろうね。

・・・で使うものだ、という話じゃないよ。
・・・をしたいのだが、どうよ、という話。目的が主。言語は従。

クライアントサイドのUI開発にES6を使うとして、どうよ。いつになったら使えるの?

278デフォルトの名無しさん2013/11/30(土) 11:06:25.56
ていうか、ブラウザで動くという最大のメリットを除けば
JSなんて他言語に対して何のアドバンテージも無い

279デフォルトの名無しさん2013/11/30(土) 11:08:04.25
>>278
スレタイ読めますか?
ブラウザで動くという以外の部分で静的型付け言語を上回ってるという話ですが

280デフォルトの名無しさん2013/11/30(土) 11:13:08.21
どこが?
低能なプログラマの人数?

281デフォルトの名無しさん2013/11/30(土) 11:48:20.17
使う人の妄想力でしょ。
JSは世界一だ。それを使う俺も世界一だって感じ?

282デフォルトの名無しさん2013/11/30(土) 11:58:58.78
>>1
「コンピュータは間違わない」と言ったのはコンピュータではない

なぜ、コンピュータが言ってないことを人間が言うのか?

人間が言った方が早いからでしょ
本当は人間の方が効率が良いって知ってるんだろ

283デフォルトの名無しさん2013/11/30(土) 12:13:24.26
>>282
意味不明。馬鹿なの?

284デフォルトの名無しさん2013/11/30(土) 12:28:21.89
「神の見えざる手は間違わない」と言ったのは神ではない。
神が言ってないことを、人間が言う。

285デフォルトの名無しさん2013/11/30(土) 12:32:37.94
>>282 みたいな意味不明な出力は
残念ながら静的型言語をもってしても除去することはできない

286デフォルトの名無しさん2013/11/30(土) 12:39:25.07
意味不明って偉そうに言う事じゃないでしょ
なんで意味分かってない奴が意味分かってる奴より偉そうなの?反知性主義なの?

287デフォルトの名無しさん2013/11/30(土) 12:52:43.23
>>282
むしろコンピューターがいったことってなんだよ

288デフォルトの名無しさん2013/11/30(土) 13:21:04.09

289デフォルトの名無しさん2013/11/30(土) 13:21:50.67
このように自分の誤りに対して寛容すぎる人々によって好まれるのが動的言語です

290デフォルトの名無しさん2013/11/30(土) 13:25:00.32
>>282
コンピュータは間違わないと人間言った。

うん、そう人間が言ったんだよ。

コンピュータは間違わないで人間よりも早く
同じことを何度もやれる。

と人間が言ったけど

これ間違いじゃないけど、君、反論してないよね?

291デフォルトの名無しさん2013/11/30(土) 13:26:16.35
>>284
むしろ「神の見えざる手は間違わない」と
神が言ったなんて誰が言ったんだ?

お前馬鹿じゃないのか?

292デフォルトの名無しさん2013/11/30(土) 13:41:07.23
神が言ったから「神の見えざる手」なんだろ

293 ◆QZaw55cn4c 2013/11/30(土) 13:47:52.09
アダム・スミスがいったんじゃなかったっけ

294デフォルトの名無しさん2013/11/30(土) 13:48:58.00
アダム・スミスが「神の見えざる手」といったのは明らかなのにw
それを聞いて、神が言ったと勘違いするマヌケw

295デフォルトの名無しさん2013/11/30(土) 14:03:00.52
「見えざる手」の持ち主は明記されていない

296デフォルトの名無しさん2013/11/30(土) 15:20:58.06
持ち主オブステルスハンド

297デフォルトの名無しさん2013/11/30(土) 16:17:54.67
静的型付け関数型言語を使ってみたけど
型検査が強力すぎて馴染めなかった

298デフォルトの名無しさん2013/11/30(土) 16:36:05.43
型検査が強力で嫌な理由って何?

299デフォルトの名無しさん2013/11/30(土) 17:16:11.20
小ミスで全体が死にしかもどこでコケてるかわからない状態
とエスパーしてみる

300デフォルトの名無しさん2013/11/30(土) 17:26:24.03
あぁ、型がないとそうだろうね
実行するまで問題に気づかない。

301デフォルトの名無しさん2013/11/30(土) 17:34:49.02
一行に含まれる情報が多すぎるとむつかしいんよ

302デフォルトの名無しさん2013/11/30(土) 18:03:21.03
>>298
型検査が強力でも動的言語のインタプリタを実装できるしコンパイルできる
コンパイラは文句を言わない

でも動的言語はだめだと人間が言う
コンパイラが文句を言わなくても人間に認められないとだめだって人間が言うんだよ
誰もコンピュータを信じてない
コンピュータは間違えないなんて言うけど、誰も信じてないんだよ

303デフォルトの名無しさん2013/11/30(土) 18:06:52.77
>>302
お前の妄想垂れ流すのやめたら?
意味ないしキモいだけだよ。

304デフォルトの名無しさん2013/11/30(土) 18:36:16.04
>>298
型とか細けぇ事はいいから結果が早く欲しい時くらいかな

305デフォルトの名無しさん2013/11/30(土) 18:38:41.67
静的言語のメリットとして入力補完などIDEの支援が受けやすいとは昔こそよく言われた
けれども今時のIDEだとその点のメリットは動的言語を扱う場合でも大差ないと思う。
今は動的言語であってもIDEが積極的にコード解析して、レキシカルに特定できる範囲で
正しいプロパティを色分けしたり型コメントを勝手につけたりする。
逆にこういうコード解析が出来ず色分け等されなかった部分は実際大抵ミスっている。

そうしたミスを直して、全体がコード解析されて色とりどりにデコレーションされた
書き上がったコードを見て一人満足するけれども、逆にあれ、こんなふうにコードの
大半が静的に解析してある程度検証できてしまうような場合、動的言語の出番って
何だろうね? とも思ってしまう。適当に型をつければそのまま静的言語でも動くような。

実際書かれているコードの多くは静的でも動的でもあまり大差ないのでは無いのか。
違いは言語の記法や機能、あとは関数型と手続き型というパラダイムの違いであって、
動的静的といった型付けの違いは案外些末なことでごく特定の場面でしか効いてこない
印象。

306デフォルトの名無しさん2013/11/30(土) 19:01:29.81
> けれども今時のIDEだとその点のメリットは動的言語を扱う場合でも大差ないと思う。

いや、思うじゃなくて、実際に使ってみろって。
動的言語では、その仕組み的に不可能なんだよ。

実行するまで(補完するための情報が)わからない言語で
どうやっって補完するっていうんだ?

307デフォルトの名無しさん2013/11/30(土) 19:42:36.36
分からない部分も在るが、分かる部分もある
で、意外と分かる部分が多い

308デフォルトの名無しさん2013/11/30(土) 19:48:19.35
分かる部分=近くのコード
わからない部分=遠くのコード

これが逆ならいいんだけどねぇ。
どれだけ影響範囲が広いか調べる必要があるのに
その遠くのコードがわからないんじゃ意味ないよ。

309デフォルトの名無しさん2013/11/30(土) 19:52:11.11
影響範囲を調べる必要が生じた時点で動的型を捨てよ

310デフォルトの名無しさん2013/11/30(土) 19:54:16.61
引数にどんな型が渡されるかわからない言語とか怖くて使えない
C#やJavaで言えば常にObject型の引数が来てリフレクションでメソッド呼び出すようなもんでしょ

311デフォルトの名無しさん2013/11/30(土) 20:00:26.55
>>308
全然違うよ、馬鹿すぎる

312デフォルトの名無しさん2013/11/30(土) 20:02:13.99
ぜんぜん違うよ!

(じゃあ何が違うのだろう・・・)

ぜ、ぜんぜん違うんだよ!

(あぁ、答えられないのね)

313デフォルトの名無しさん2013/11/30(土) 20:14:59.40
型が推論できるかとコードの近さとは関係ないよ
静的型付関数型言語で、遠い場所のコードは推論できないとか聞いた事ある?

314デフォルトの名無しさん2013/11/30(土) 20:20:38.49
遠い場所のコードの型が推論できないのは
動的型付け言語の話でしょ。
静的なら当然遠くの場所でも型わかるさ。

315デフォルトの名無しさん2013/11/30(土) 20:22:52.62
動的な機能を使えば遠くても推論できない
使わなければ遠くても推論できる

結論:近さは関係ない

316デフォルトの名無しさん2013/11/30(土) 20:23:56.27
> 動的な機能を使えば遠くても推論できない

動的な機能を使えば近くても推論できない、の間違い

317デフォルトの名無しさん2013/11/30(土) 20:24:13.56
> 静的型付関数型言語で、遠い場所のコードは推論できないとか聞いた事ある?

遠い場所が発生しないように、クラスのパブリックメソッドには
きちんと型を書かないといけないって話なら聞いたことあるな。
推論できるのは近くの場所だけだからね。

318デフォルトの名無しさん2013/11/30(土) 20:24:45.89
A<B> x = y.foo(z.bar());

型情報で候補を絞り込むのは foo と bar だけ
A と B と y と z は型情報を使わずに補完
x は補完できない

319デフォルトの名無しさん2013/11/30(土) 20:26:08.49
>>317
それってSMLとかOCamlとかHaskellにも当てはまるの?

320デフォルトの名無しさん2013/11/30(土) 20:26:18.94
型推論って、静的型付け言語ならでわの
機能だって知ってるかな?

型がない言語では、推論したくても推論できない。
推論できるのは、そもそも型が存在するから。

321デフォルトの名無しさん2013/11/30(土) 20:28:39.63
>>319
> それってSMLとかOCamlとかHaskellにも当てはまるの?
当てはまるんじゃね?

その言語の汎用ライブラリでも調べればわかるでしょ?
使い方を限定することが出来ないライブラリだと
そのシグネチャに型を書いていないと当然推論さえも出来ない。

322デフォルトの名無しさん2013/11/30(土) 20:29:21.51
今書いた関数をその場で自分で呼び出すなら型は無くても良いよ。
ワンライナーとか掻き捨ての小さなスクリプトとかは断然動的型の方が書きやすい。

ただ他の人も使うものとか、あと今日はともかく明日の自分は他人と思っておいた
方が無難だから、今後再利用する可能性のあるものに関してははドキュメントを
書くし、それには引数の期待する型の情報も含まれるよね。となると、

/**
* @param str {String} an input
* @returns {Number} a nice output
**/
function func(str){ ... }



/**
* @param str an input
* @returns a nice output
**/
int func(String str){ ... }

にどれほどの違いがあるのかと。
逆にどうしても型情報を「つけたくない」(つけるのが面倒、では無く)場面というのは
案外限られるし、そういう場面では静的型でもJavaのObject渡しでリフレクションとか
Cで生ポインタ渡しでキャストとかそれなりに回避策もある。

だから結論としては静的には動的にも書けるGroovyは節操なくて便利だと。

323デフォルトの名無しさん2013/11/30(土) 20:30:22.11
>>321
残念、当てはまりません

324デフォルトの名無しさん2013/11/30(土) 20:31:16.84
>>322
いや、動的型付けは小さいものじゃないと
使いものにならないという言い方をしてくれよ。

小さいもので作りやすいとか言われても興味ないんだよね。
小さいものなら適当でも全体見渡せるからいいよ。

でも大きい物はどうなのさ?
こっちのほうが何倍も大変だ。

325デフォルトの名無しさん2013/11/30(土) 20:31:48.99
>>323
そうか

で、説明はないんだね。

(やっぱりな苦笑)

326デフォルトの名無しさん2013/11/30(土) 20:32:36.69
動的型で、コードの場所が遠いという理由で推論できない例をあげてみてよ

327デフォルトの名無しさん2013/11/30(土) 20:33:32.31
>>326
JavaScriptでいえば、

function foo(a) {
  aが持ってるメソッドは? 型推論できない。
}

328デフォルトの名無しさん2013/11/30(土) 20:34:55.44
>>325
OCamlはシグニチャ付けてコンパイル通るコードは、
シグニチャ無しでも型推論でコンパイル通るって話だよ

329デフォルトの名無しさん2013/11/30(土) 20:35:58.32
>>328
それはシグニチャなしでも通るだけ。
型推論はしていない。型を捨ててるだけ。

330デフォルトの名無しさん2013/11/30(土) 20:36:20.71
>>327
そのfooを呼び出してる側のコードも読み込んで
解析するのが普通なので、fooを使ってる側のコードも必要

331デフォルトの名無しさん2013/11/30(土) 20:36:51.82
>>329
知らないのに絡むヤツだなぁ
OCamlが型捨てる訳ないだろ

332デフォルトの名無しさん2013/11/30(土) 20:39:39.32
>>330
> fooを使ってる側のコードも必要
ほらな。遠くになったからわからなくなった。
近くじゃないとわからないから
その情報をほしいわけだろ。

333デフォルトの名無しさん2013/11/30(土) 20:40:02.31
>>324
いや、だからちゃんと結論を読んでくださいって。
結局静的動的関係なく単にGroovy節操なくて良いよと言いたいだけなんでw

という冗談はともかく、結局動的でもメンテナンス可能な大きなものを書くには
型とか含めてゴリゴリドキュメントを書くし、トータルな手間としては結局静的
言語と大差なくなってくる。小さなもの相手には出来た手抜きは通用しない。

ただ動的言語でもきっちり手間をかけて書かれた大きなプロダクトはいくらでも
あると思う。

334デフォルトの名無しさん2013/11/30(土) 20:40:41.97
>>330
> そのfooを呼び出してる側のコードも読み込んで
> 解析するのが普通なので、fooを使ってる側のコードも必要

fooを使っているかどうかは、
静的型付け言語ならコンピュータが判断してくれるよ?

動的型付けではできないよね。

335デフォルトの名無しさん2013/11/30(土) 20:42:23.74
>>332
> ほらな。遠くになったからわからなくなった。

なんで遠くにあるコードも解析に使うって話からこの結論になるの?

336デフォルトの名無しさん2013/11/30(土) 20:43:49.21
>>334
動的型だと、出来る場合と出来ない場合がある

337デフォルトの名無しさん2013/11/30(土) 20:48:30.69
>>327
Javascriptって、次のような関数がある場合でも

function bar() { foo(1); }

fooの中でaのメソッドを補完できないほど
しょぼいIDEしか無いの?

338デフォルトの名無しさん2013/11/30(土) 20:54:53.89
>>337
それに加えてfoo("hoge")みたいな呼び出しもあったらどう補完されるの?

339デフォルトの名無しさん2013/11/30(土) 20:56:40.84
遠くにあるコードを解析する言語は、全体が完成するまで解析できない

つまり、全体が完成する前に実行できる言語があれば
静的に解析するより早い時期にデバッグできるんだよ

340デフォルトの名無しさん2013/11/30(土) 21:02:09.63
静的な型付けの言語は別に型の推測に遠くのコードを解析する必要なんて無いけど。
そのコードを書いた時点で型が確定しているのだから当然。

341デフォルトの名無しさん2013/11/30(土) 21:02:55.68
>>338
両方が共通に持ってるメソッドだけ補完するか、
どちらか一方が持ってるメソッドを補完するか、
好きな方を設定で選ぶ

342デフォルトの名無しさん2013/11/30(土) 21:08:55.09
>>341
JSでそういう上等な補完を行ってくれるIDEってあれば知りたい。

動的言語のIDEの補完は影響範囲がローカルでレキシカルに型を特定できたり
ドキュメントに型情報がある場合はその型を、そうでない場合は諦めモードで
基本クラスやDOMやjQuery等のメジャーなAPIをずらずら並べるのが多い気がする。

343デフォルトの名無しさん2013/11/30(土) 21:11:09.53
>>339
Haskell等でも、未完成の関数をundefinedにしておいて
未完成の状態で実行したりするらしいよ

344デフォルトの名無しさん2013/11/30(土) 21:24:41.50
JSとLispの差にくらべてJavaとHaskellの差が大きすぎる
静的型付け言語は多様性が100倍

345デフォルトの名無しさん2013/11/30(土) 21:30:53.47
JavaとHaskellの差は手続き型か純粋関数型かの違いだと思うけど。
動的静的、関係なくない?

346デフォルトの名無しさん2013/11/30(土) 21:48:34.09
Javaはオブジェクト指向です

347デフォルトの名無しさん2013/12/01(日) 00:13:53.45
>>343
するかボケ
評価の順序試す時ぐらいだろ

348デフォルトの名無しさん2013/12/01(日) 01:11:10.71
>>322みたいにドキュメントを用意して引数の型を丁寧に書くなら型を動的にするメリットがない
じゃあドキュメントを用意しない場合はどうか。

function func(attr){ ... }

int func(File.Attributes attr){ ... }

こんな関数があったら前者は怖くて使えないよね。
何を渡していいのかわからない。何が渡されるのかわからない。
後者なら型情報が全てを物語ってる

349デフォルトの名無しさん2013/12/01(日) 01:13:33.60
>>348
実装見たらええやん。3行程度だし。

350デフォルトの名無しさん2013/12/01(日) 01:19:41.54
>>349
補完そのものを全否定かい

351デフォルトの名無しさん2013/12/01(日) 01:19:44.84
>>349
実装見ても理解できる気がしない
https://github.com/jquery/jquery/blob/1.8-stable/src/core.js#L772

352デフォルトの名無しさん2013/12/01(日) 01:24:07.19
動的型付け言語を好む動的人間と静的型付け言語を好む静的人間とが居るかもしれない。

353デフォルトの名無しさん2013/12/01(日) 01:25:22.24
>>349
実装見ようとしたのですがファイル名末尾がmin.jsでファイルの中身をのぞいても
全部一行にかたまっていて何が何だがよくわかりません。

354デフォルトの名無しさん2013/12/01(日) 01:31:46.41
>>352
まあでもどちらも比較的変種で普通種は動的言語も静的言語も両方使うと思う。

355デフォルトの名無しさん2013/12/01(日) 01:47:08.21
>>348
全くそのとおりだな。

型というのは、コンパイラと人間の両方が
理解して処理可能なコメントだと思えばいい。

短いコードならコメントなしでもいいが
規模が大きくなるにつれて、コメントがあるといいよ。
しかもそれが、早くて正確なコンパイラが理解可能なコメントなら
矛盾を指摘してくれたり、コメントをもとに適切な
アドバイスをしてくれるんだよ。

356デフォルトの名無しさん2013/12/01(日) 02:05:12.90
型とコメントは別のものだと思うんですよね。

357デフォルトの名無しさん2013/12/01(日) 02:12:47.43
型に関してもコメントを残すなら書く手間は動的も静的もそう変わらんということ。

358デフォルトの名無しさん2013/12/01(日) 02:15:02.72
別のものだと思うんですよね。

359デフォルトの名無しさん2013/12/01(日) 02:18:36.37
別なんじゃない。
静的型付け言語の型情報にはコメント的な御利益もあるというだけであって。

360デフォルトの名無しさん2013/12/01(日) 02:19:35.15
>>356
コメントがなくてもわかるような
コードを書けってきかない?

型を含めたコード全てが
コメントのように分かりやすくあるべきなんだよ。

コードに必要な情報を埋め込められる言語
ようするに型もその情報の一つなわけだけど、
そういう言語だとコードが分かりやすくなるんだよ。

(コンパイラが理解できない)コメントは
コードに情報を埋められない言語の逃げでしかない。

361デフォルトの名無しさん2013/12/01(日) 02:22:12.37
コメントにはなぜそうしたのか?という理由を書く
コードにはそうなっているという事実を書く。

型は、そうした理由ではなく事実。
この変数・引数には○○型を採用しているという事実。
事実だからコードで書く。

○○型を採用した理由を書く必要があるならば
それをコメントに書く。

362デフォルトの名無しさん2013/12/01(日) 02:55:44.19
他の動的言語はともかくJSerはツンデレだからね。

変数スコープがウンコと言われてそんなことないもん! と強がる一方でletを導入したり
辞書型はオブジェクトリテラルで十分なんだからねっ! と言いながらMapを準備したり
functionぐらい面倒くさがらずに書きなさいよ! となじる一方で密かにアロー記号用意したり
型情報なんか必要だなんて思っていないんだからっ! と表向きは突き放しつつ陰ではいそいそ
JSDocに型情報を書いてみたりガードが使えるようになる未来を夢想してこっそりデれたり。
で、そのことを指摘しても「ガードは・・・そういうのとは違うのよっ」と否定してみたり。

363デフォルトの名無しさん2013/12/01(日) 03:14:17.32
JS利用者が導入したわけじゃないしね。
必要ないのに勝手に誰かが導入しただけだしね。

364デフォルトの名無しさん2013/12/01(日) 03:22:20.17
>>360
たいていのアルゴリズムはコメントどころか書籍程度の説明が必要。
書籍一冊で理解させるのが困難な場合も多く、直接的な指導が必要な場合も多い。

コメントを書かなくても理解させられるコードというのは、単に手続きを
羅列したものであり、そのような手続きの羅列を強要させられることこそが
糞言語のあかしなのである。
コメントを書く必要がないのではなく、コメントを書かなくていいような
手続きの羅列を書かされている。
こういった認識を持てないのは、糞言語に調教された証左である。
つまり、君は我々人類と対等に話せる場所に既に居ない。
機械に調教された悲しき奴隷、それが今の君の姿なのである。

365デフォルトの名無しさん2013/12/01(日) 03:25:46.68
コメントを書こう、メモを残そう、テストを完璧に行おう、デバッガを捨てよう。

366デフォルトの名無しさん2013/12/01(日) 05:11:23.08
>>364
'コメントを書かなくても理解させられるコードというのは、単に手続きを
羅列したものであり、そのような手続きの羅列を強要させられることこそが
糞言語のあかしなのである。'
という宣言が論理式に変換されればよいというだけの話ではないか。
>>364の言っていることは。

3673662013/12/01(日) 05:12:17.82
>>360の言っていることは。だね。

368デフォルトの名無しさん2013/12/01(日) 06:02:23.28
>>364
くだらね。極端な例はいらん。

369デフォルトの名無しさん2013/12/01(日) 06:03:00.15
> 'コメントを書かなくても理解させられるコードというのは、単に手続きを
> 羅列したものであり

間違い。

370デフォルトの名無しさん2013/12/01(日) 06:52:56.51
間違いもそうだが、そもそもレスが論理的におかしい

自分で「コメントを書かずとも理解させるコード」と、
コメントが理解の助けになる前提で語ってる時点で
最良はコメントのように書いてあるコードしかないだろうに

371デフォルトの名無しさん2013/12/01(日) 06:54:50.42
そもそも、型情報は
コメントとして書くものではなく
コードで書くものだという話。

372デフォルトの名無しさん2013/12/01(日) 06:55:33.92
というか>>349実装見たら良いとか>>360コメントいらずのコードとか謎。

使う人が知る必要があるのは仕様。ドキュメントやコメントに書いてあるのは
そういうこと。
コードに書いてあるのは実装。読んで理解すれば時には役にはたつがはじめから
使う人間に実装の中身の理解を求めるのは普通に変。

自動車運転する人にオットーサイクルの理解を求めるの?

373デフォルトの名無しさん2013/12/01(日) 07:03:35.70
>>372
エンジンを使って何かをつくろうとしてる人なら
理解していたほうが良いだろうね

374デフォルトの名無しさん2013/12/01(日) 07:19:25.63
>>373
自動車運転する人の話を聞いているんだけど。
GoogleやFBが提供するAPIを使って何かを作る人はそのバックエンド処理の仕組みを知る
必要があるの?
gzipを使う人はgzipのコードを読んでからで無いとダメ?
HTMLにマイクロフォーマットを埋め込む人はRDF Semanticsの仕様を読んで理解してから?
String.indexOfを使う人はそれがどのアルゴリズムで書かれているか知ってからでないと
使っちゃダメかな?

理解「した方がよい」のと使うのにまずコード読んで中身の理解を求めるのは全く別。

375デフォルトの名無しさん2013/12/01(日) 07:19:29.74
>>372
お前は自分でコード書かないのかよw
関数の中身を書く人、修正する人の話だろ。
プログラム板なんだから。

376デフォルトの名無しさん2013/12/01(日) 07:30:28.94
>>375
コードは書くし他の人が読んで理解しやすいように書くけどコードを提供する側としては
自分が書いたコードを使うならまず読んで理解しろとは全く考えないね。

自分で書いたコードをいろいろな人に使ってもらった経験って、ある?

377デフォルトの名無しさん2013/12/01(日) 08:13:20.34

378デフォルトの名無しさん2013/12/01(日) 11:42:22.02
型を宣言してもコメントはなくならないし、テストもなくならない
グローバルスタンダードになるつもりは最初からない
ガラパゴスの多様性を擁護する側の勢力がどんな戦い方をするのかという実験なんだよ

379デフォルトの名無しさん2013/12/01(日) 12:32:35.07
>>374
駄目と入ってないが、どれも知っていたほうが理解が早い
特にWen関連APIなんてそのベンダーの仕様知ってると相当に早い
それにマイクロコードなんてSEO考えてるならまず仕様から入るし
gzやindexOfの実装にしたって
パラメタ指定が速度に関わる系なら知ってて損はない

概要すらいらないなんて考えはさすがに同意しかねるよ

380デフォルトの名無しさん2013/12/01(日) 13:06:30.06
>>379
知っていた方が理解が早い
で、実装の詳細を知るために要する時間はドキュメントのコメントを読むのに要する時間よりも遥かに長い

# だから経験者の即戦力が求められるってことでもあるんだけどね

381デフォルトの名無しさん2013/12/01(日) 13:09:32.04
>>376
> 自分が書いたコードを使うならまず読んで理解しろとは全く考えないね。

やっぱりお前アホだ。

誰も「コードを使うならまず読んで理解しろ」なんて一言も言ってない。

お前日本語読めないだろ。

382デフォルトの名無しさん2013/12/01(日) 13:20:35.67
あれでしょ?なんだかんだ言って
関数を自分で作ったことがない人なんでしょ。
使うだけの人。

プログラマなら普通、自分が書いているコードの
中身の話をするもんだけどねぇ

383デフォルトの名無しさん2013/12/01(日) 15:44:13.87
コメントやドキュメントに書いてある事だけ知っていれば良かったらどんなに楽だろうか

384デフォルトの名無しさん2013/12/01(日) 15:45:54.12
>>383
コメントやドキュメントが整備されていれば実装まで調べる必要ないけど

385デフォルトの名無しさん2013/12/01(日) 15:50:08.51
>>348
それ型が解るだけで結局何する関数なのかさっぱり解らないと思うんだが
その型情報で何を想像するかは人よって見解が分かれそう

386デフォルトの名無しさん2013/12/01(日) 16:08:55.34
ドキュメントに具体例がないと苦労する
具体例とは、仕様書でもソースコードでもない

387デフォルトの名無しさん2013/12/01(日) 16:18:54.90
>>386
たしかに例が載ってると助かるよね

388デフォルトの名無しさん2013/12/01(日) 17:19:30.39
ここでD使いが参上

「Dならunittestのコードを直に埋め込めるし
 ドキュメントに使用例として吐出されるよ」

シュタッミ

389デフォルトの名無しさん2013/12/01(日) 17:56:08.53
>>384
なんでまだ、使う人の話してるの?

使うコードを書だろ?
そのコードの話をしてるんだが。

コメント見なくてもわかりやく書けよ。
誰もコメントなくなと入ってねーよ。

390デフォルトの名無しさん2013/12/01(日) 18:02:55.11
>>382
誰かと一緒に作業したり他の人にコードを提供するプログラマなら中身同様にドキュメント
等を含めたコードの外面をとことん気にすると思うけれども、違うの?
ドキュメンテーションをちゃんと行うなら静的も動的も記述量はたいしたことが無いんじゃ
ないのという例を挙げたのは自分だけど、そこからドキュメントを用意しない場合という話
が出てきて実装読めば良いとかコメント無くてもわかるコードという話になったので「謎」
と言ったわけ。

いやそこ頑張るとこじゃ無いというか、頑張っても良いけどまずメソッドのシグネチャや
付随するコメントが十分に説明的になってからでないと単に効率悪いだけだから。
function func(attr)もint func(File.Attributes attr)も中身の書き方云々する前にまず
コメントから書こうよw メソッド名も書き直す。

391デフォルトの名無しさん2013/12/01(日) 18:13:51.40
>>389
>なんでまだ、使う人の話してるの?

使われるコードを書く人の話をしています。

392デフォルトの名無しさん2013/12/01(日) 18:23:17.12
>>391
勝手に話をすり替えないように。

393デフォルトの名無しさん2013/12/01(日) 18:23:48.97
話を戻そうね

360 名前:デフォルトの名無しさん[sage] 投稿日:2013/12/01(日) 02:19:35.15
>>356
コメントがなくてもわかるような
コードを書けってきかない?

型を含めたコード全てが
コメントのように分かりやすくあるべきなんだよ。

コードに必要な情報を埋め込められる言語
ようするに型もその情報の一つなわけだけど、
そういう言語だとコードが分かりやすくなるんだよ。

(コンパイラが理解できない)コメントは
コードに情報を埋められない言語の逃げでしかない。

394デフォルトの名無しさん2013/12/01(日) 18:28:50.95
使うだけにしても実装を追うにしてもコメントのあるなしで大分違うからまずコメント書けってのには同意だけど
コメントが書いてあれば実装を追わなくても理解できる、とか言われると「はぁ?」って感じ

395デフォルトの名無しさん2013/12/01(日) 18:32:04.04
経験上、コメントがないとわかりづらい部分とコメントを書きづらい部分というのがかぶっているわけで

396デフォルトの名無しさん2013/12/01(日) 18:45:11.41
同じ手間でコードでかけることならば、コードで書いていれば良い。
引数の型とかそういうのはコードで書くべき情報。

397デフォルトの名無しさん2013/12/01(日) 18:49:35.92
服着てる現代人と裸の原始人とどっちが優秀かって問題だと思う。
原始人は体が鍛えられてて個体としては優秀だが、狩猟ができず食える草が生えてない東京で絶望することだろう。

398デフォルトの名無しさん2013/12/01(日) 18:50:28.76
>>393
自分が好都合なリビジョンに話をロールバックするなw
エラー発生時点まできっちり巻き戻そう。

>>348
>function func(attr){ ... }
>int func(File.Attributes attr){ ... }
>こんな関数があったら前者は怖くて使えないよね。

後者だって怖くて使えね〜w
要するに、そういうことだよ。型が合った方が良いという例としてはイマイチ無茶。

仮に実装の中身にしても同様。

int i = 0;
var index = 0 // 0..(users.length -1)

どっちが説明的?

int index = 0; // 0..(users.length -1)

と大差ある?

「コメント無くてもわかるようなコード」というのは型情報だけでは無くメソッド
名や変数名にも配慮して初めて書けるもの。型情報なんてその中の一つに過ぎない。
で、その程度は少しのコメントで補えるもの。この点で動的型が不利とは思わない。

さらに言えば「コメント無くてもわかるようなコード」の書きやすさではJava等
よりもPythonなどを押すかな。これは静的型動的型の違いと言うよりもコード中の
ノイズの多さの違い。

399デフォルトの名無しさん2013/12/01(日) 18:56:38.16
>>394
コメントが書いてあれば実装を追わなくても理解できる、とまではさすがに求めない。
まずは実装を追わなくても使えるべきで、そのためにコメントやドキュメントは必要と
言っているだけ。

ドキュメントを書いたのにドキュメントだけでは使い方がわからなかったとか言われた
場合はそれなりに悔しいw

400デフォルトの名無しさん2013/12/01(日) 18:56:46.51
> 後者だって怖くて使えね〜w
> 要するに、そういうことだよ。

どういうこと?(笑)

ほらね、理由を全く言ってない。
これなんだよ。卑怯な人はね。

> var index = 0 // 0..(users.length -1)
>
> どっちが説明的?
>
> int index = 0; // 0..(users.length -1)

下じゃねーの?

上に書いてあるint i = 0; がなんのことだかわからんけど、
誤記入だろう? 型がない言語でにはint iなんて物は存在しないからね。

401デフォルトの名無しさん2013/12/01(日) 18:57:58.20
比べるなら

> var index = 0;
> int index = 0;

この二つで比べるべき話だね。
>>398は変な人だね。

402デフォルトの名無しさん2013/12/01(日) 18:58:58.72
>>348
型がないとコードを読めない初心者さん、おつかれ。
早く補助輪なしで自転車に乗れるようになれたらいいね。

403デフォルトの名無しさん2013/12/01(日) 19:01:00.31
>>401
この二つは明らかに下のほうがわかりやすいね。

上はindexって書いているけど、これが何型かわからない。
もしかしたら本の索引って意味かもしれんし。
その場合は、1.1 (一章一節)なんて数値が入るかもしれない。

後者だと整数であることが明確である。

404デフォルトの名無しさん2013/12/01(日) 19:02:51.27
もっと具体的な型だったら
さらに意味がわかりやすいよね。

BookIndex index = 0;

405デフォルトの名無しさん2013/12/01(日) 19:03:29.40
>>401
でもHaskellのコードとか、
関数がポイントフリーになっていて引数名すら存在しない、
その関数の引数の型ぐらいしかヒントがない、
なんてことがあるし。

傾向として
静的型プログラマは型に頼って変数名はテキトー、
動的型プログラマは変数名に拘るのが多いんじゃね?

406デフォルトの名無しさん2013/12/01(日) 19:04:19.46
>>403
おまえは本を0章から書き始めるのか?
RMSみたいな奴だなw

407デフォルトの名無しさん2013/12/01(日) 19:04:48.65
> 静的型プログラマは型に頼って変数名はテキトー、
> 動的型プログラマは変数名に拘るのが多いんじゃね?

全然違うし。変数名が適当であるという根拠は何一つ出てない。


静的型プログラマは型も変数名にもこだわってる。
動的型プログラマは変数名に拘るが型は適当。

これが事実だろ。

408デフォルトの名無しさん2013/12/01(日) 19:05:57.33
コメントは基本ドキュメンテーションコメントだけでいいんだよ

409デフォルトの名無しさん2013/12/01(日) 19:07:28.59
>>407
ハスケラとか1文字変数平気で使うし、
ポイントフリーで0文字なんてのもザラだし、
それどころか0文字変数名を推奨してるしw

Javaのコードだって大抵は変数名はクラス名より短いしw

410デフォルトの名無しさん2013/12/01(日) 19:07:47.65
>>406
0というのは、どこも指していないって意味ですよw
ほらね。型がないとこういうことになる。

>>407
だな。静的言語のほうが変数名は長くて具体的な傾向がある。

動的言語の場合は、適当に短い名前をつける。
で、これで許されるのは、結局プログラムの規模が小さいから。
プログラムの規模が小さいから、適当な名前でもどうにかなる。

だから大規模になると動的言語は破綻する。
ずっと前から出てる結論じゃないか。

411デフォルトの名無しさん2013/12/01(日) 19:08:15.68
>>404
BookIndex型に整数代入したらエラーになるんじゃないの?

412デフォルトの名無しさん2013/12/01(日) 19:08:33.10
というわけで>>407はウソツキであることが確定w

413デフォルトの名無しさん2013/12/01(日) 19:09:36.58
>>411
動的言語ではエラーになりませんよね。

BookIndexを入れるべき所に0を入れても
変数に型がないのでエラーになりません。

困りますよねw

414デフォルトの名無しさん2013/12/01(日) 19:10:15.71
>>410
それはお前が今勝手にそういう糞コードにしただけで、
具体的に「index」という変数名で「章番号」を保持していたというコードの実例を出してみろw

415デフォルトの名無しさん2013/12/01(日) 19:10:24.20
型があるとこういう、明らかにエラーになるべき所を
しっかり教えてくれるんだよね。

416デフォルトの名無しさん2013/12/01(日) 19:11:25.19
>>400
下の二つのどちらが説明的なのかと
(前者は静的型で変数名に無頓着な例。
 後者は動的型で説明的な変数名にコメントを付記した例)
int i = 0;
var index = 0 // 0..(users.length -1)

下の二つでは大差があるのかと説いたわけで。
var index = 0 // 0..(users.length -1)
int index = 0; // 0..(users.length -1)

要するに動的型でも適切にコメントを付記すれば十分に説明的になる以上、コメント
禁止なんて非現実的な縛りでも無い限り動的型は理解しやすいコードの書きやすさの
点で不利にはならないということ。

コメントが無いコードを書きたいの? それとも理解しやすいコードを書きたいの?

417デフォルトの名無しさん2013/12/01(日) 19:11:44.25
>>413
バカだなあ。例外というものを知らないらしいw

ねえ、静的型プログラマって、みんな413みたいなキチガイ人間なの?バカなの?糞バグ製造機なの?

418デフォルトの名無しさん2013/12/01(日) 19:13:16.65
>>415
おまえが出した例はあまりにもアホすぎて
やはり静的型付言語はプログラミング初心者が使うものなんだな
ということをより強く確信しましたww

419デフォルトの名無しさん2013/12/01(日) 19:13:55.84
>>417
例外は発生させる分コストがかかるじゃん

420デフォルトの名無しさん2013/12/01(日) 19:13:57.19
>>416
お前さ、比較実験の原則しらねーの?

今比べるべきところは型だろ。
ならば型以外の条件は同じにするのが
原則だ。

int i = 0 // 0..(users.length -1)
var index = 0 // 0..(users.length -1)

どっちが説明的かって?
上に決まってるじゃねーか。

421デフォルトの名無しさん2013/12/01(日) 19:14:51.71
>>419
(動的に発生する)例外は発生させる分コストがかかるじゃん

それがどうかしましたか?

422デフォルトの名無しさん2013/12/01(日) 19:15:11.92
そもそも無駄にコメント書くやつがアホ
関数の説明ぐらいでいいんだよ

423デフォルトの名無しさん2013/12/01(日) 19:18:00.23
>>422
変数全てに、それがどんな型で
どんな値が入るかをコメントで書くべきだ。

型がない言語を使っている人が、
そう言ってるのがわかりませんか?

424デフォルトの名無しさん2013/12/01(日) 19:18:00.87
>>403
「0」って整数リテラルがかいてあるのに
> もしかしたら本の索引って意味かもしれんし。
> その場合は、1.1 (一章一節)なんて数値が入るかもしれない。
なんてキチガイじみたこと言うなんて、
やっぱり静的型プログラマはバカなんだね。

425デフォルトの名無しさん2013/12/01(日) 19:19:10.19
>>424
発想力のないやつだね。

0が書いてあればということは、
じゃあ0が書いていなければどうなるのさ?

もしこの値が1だったらどうなる?

0ならわかると言っているならば、
0以外ならわからないとお前は認めてるのも同然なんだよ。

426デフォルトの名無しさん2013/12/01(日) 19:20:38.91
>>423
「型がない」なんて言ってる時点で、型に関する知識が初心者レベルなのが丸わかりw
静的型言語を使っているからバカになったのか、
それともバカだから静的型言語を使っているのか。
どっちにせよ、静的厨はバカw

427デフォルトの名無しさん2013/12/01(日) 19:21:20.90
>>425
しかし、具体的に出された例には「0」と書いてあって、
それを章番号かもしれないなんてキチガイ丸出しのバカがおまえ。

428デフォルトの名無しさん2013/12/01(日) 19:26:27.05
>>420
ちゃんと読む。下の二つでは大差があるのかと説いたわけで。
> var index = 0 // 0..(users.length -1)
> int index = 0; // 0..(users.length -1)

大差あるの?

429デフォルトの名無しさん2013/12/01(日) 19:28:39.41
>>426
変数に型がないのは間違ってないだろ?

430デフォルトの名無しさん2013/12/01(日) 19:29:10.53
>>427
へぇ、じゃあ、1って書いてあったら
どうすんの?

431デフォルトの名無しさん2013/12/01(日) 19:30:26.99
>>416
ローカル変数までコメント付けるなんて条件のほうが非現実的

がんばって全部文章でこと細かな説明つければそりゃどんな言語だって分かりやすくなるわw
普通はそんな手間かかることしないよね

ごく一般的なプログラムのコメント濃度だと静的型のほうが説明的になるのは間違いない

432デフォルトの名無しさん2013/12/01(日) 19:33:02.41
つまり、コメントを書かないですむということは、その程度の手続きの羅列
ってことなのですよ。
ほとんどのアルゴリズムは本一冊で足りないくらいの説明が必要ですからね。
つまり、馬鹿が講釈たれてる図式なんですよ。
手続きの羅列で満足なら自分の中で満足するべきで、「手続きの羅列以外
認めてはならない」みたいな変な啓蒙しちゃいけないんですよ。

433デフォルトの名無しさん2013/12/01(日) 19:35:08.96
静的型だって型が文脈的に自明なところは型推論で型宣言をすっ飛ばす流れだから似たようなもの。
動的型だってまずは文脈的にわかりにくかったり特に大事な部分からコメントをつける。

434デフォルトの名無しさん2013/12/01(日) 19:38:32.31
つまりですね、JS以外はみんな糞言語ってことです。
動的とか静的なんて関係ないんです。

435デフォルトの名無しさん2013/12/01(日) 19:49:24.64
JSはともかく動的静的関係ないのはそうかな。
どちらでも配慮すれば理解しやすいコードは書けるし手間も大差ない。
手間に差があるとしても型付け以外の要素が大きい気がする。

436デフォルトの名無しさん2013/12/01(日) 19:51:51.32
コメントを書くなと言ってた馬鹿は静的がその点で優れていると
述べてましたよね?

437デフォルトの名無しさん2013/12/01(日) 20:11:30.16
>>432
>ほとんどのアルゴリズムは本一冊で足りないくらいの説明が必要ですからね。
完全にアホバカだな。
ほとんどのアルゴリズムは1〜2ページだろ。

438デフォルトの名無しさん2013/12/01(日) 20:16:12.93
>>432はバカでわからず屋だから本一冊の説明が必要なのかもしれんね。

439デフォルトの名無しさん2013/12/01(日) 20:41:00.79
>>417
例外発生させてそのあとどうするの?
バグってるので、アップデートしてね ってか? (w

440デフォルトの名無しさん2013/12/01(日) 20:52:20.05
>>436
> コメントを書くなと言ってた

誰の話?
お前、脳内で仮想敵作りすぎだ。

ああいったに違いない。
こういったに違いない。
ああいった。
こういった。

ムキーッって

自分でかってに苛ついてるだろ。
馬鹿じゃん?

441デフォルトの名無しさん2013/12/01(日) 20:54:09.77
コメントがなくても読みやすいコードを書け

↓こういう話を

それはコメント書くなって意味だろ!

↑こういう風に解釈するバカが居るんですよね。

442デフォルトの名無しさん2013/12/01(日) 21:07:53.21
どうせ初心者にありがちな
一行ごとにコメント書くようなやつなんだろ。
変数の定義のたびに、何とかを入れた変数とか
書いてるんだぜ。

443デフォルトの名無しさん2013/12/01(日) 21:18:38.26
自然言語でまともに会話できない醜態をさらしつつ
コメントについて議論のような何かをするスレ

444デフォルトの名無しさん2013/12/01(日) 21:19:25.55
誰もコメントを否定してないのに
なんか勘違いして一人で熱くなってるんだろw

445デフォルトの名無しさん2013/12/01(日) 22:11:37.78
>>433
静的ならIDEが型を解決できるから補完したりマウスのせて型見たりできるし

446デフォルトの名無しさん2013/12/01(日) 22:34:03.86
>>437
手続きの羅列をアルゴリズムと呼ぶのは、小学生までです。

447デフォルトの名無しさん2013/12/01(日) 22:38:14.16
普通のソフトウェア開発の場合、
アルゴリズムが全体の8割以上を占める。

○か×か

448デフォルトの名無しさん2013/12/01(日) 22:38:56.16
アルゴリズムってのは普通ライブラリ化するだろ?

449デフォルトの名無しさん2013/12/01(日) 22:40:07.48
手続きの羅列程度のものに
コメントが必要な時点で
おかしいんだよな。

450デフォルトの名無しさん2013/12/01(日) 22:47:40.04
人間は計算が苦手だったから徹底的に最適化しないと計算できなかったが
コンピュータは小学生並みの最適化でも計算できてしまうことが多い

451デフォルトの名無しさん2013/12/01(日) 22:55:05.79
型推論っていうのは、
動的型付けの型なし変数と違う。

一見同じように見えるが、型推論のほうが
高度な機能を有している。

型推論というのは、静的に型を推論するから
その型に矛盾が生じた時に実行を待たなくとも検出できるし
コード補完も正確に行える。

これは動的型付けに比べて明らかなメリット。

452デフォルトの名無しさん2013/12/01(日) 23:00:01.30
Haskellが <T> を書かなくていいのは書かなくても補完できるからなんだよな
逆に <T> を書かされる言語は、補完できてないから書かされている

453デフォルトの名無しさん2013/12/01(日) 23:01:05.70
そんな当たり前のことを今さら説明して何がしたいん?

454デフォルトの名無しさん2013/12/01(日) 23:09:14.99
>>452の間違い訂正

Haskellが <T> を書かなくていいのは書かなくても推論できるからなんだよな
逆に <T> を書かされる言語は、推論できてないから書かされている

455デフォルトの名無しさん2013/12/01(日) 23:10:09.36
Haskellが優れているのは分かるんだけど、
仕事で実際に使うというのは現実的には難しい

一方、選びやすいJavaやC#は冗長すぎてゴミなので
RubyやPythonの方がマシってことになる
難しいもんだね

456デフォルトの名無しさん2013/12/01(日) 23:10:40.93
別に冗長過ぎないと思うが?

457デフォルトの名無しさん2013/12/01(日) 23:11:49.65
コメントを書かずに済むのは手続きの羅列だから。

458デフォルトの名無しさん2013/12/01(日) 23:13:17.58
型推論とテンプレート(ジェネリック)は別なんじゃ…

459デフォルトの名無しさん2013/12/01(日) 23:13:37.81
JavaやC#が冗長といっても
開発時間に影響するほどのもんでもないしな。

100行未満の小さいプログラムでなら
簡単に作れるかもしれないけど、
大規模アプリになると、そんな些細な冗長性は
その他の本質なコードによって相対的に見えなくなる。

460デフォルトの名無しさん2013/12/01(日) 23:15:24.24
「コメントを書かなくていいようなコードを書きなさい」

手続きの羅列に限定しなさいって意味。
まじマシンの下僕。
スカイネットに寝返った人類の敵。
しかもなんか偉そうに述べてくるのがまじわからん。

461デフォルトの名無しさん2013/12/01(日) 23:15:32.38
>>457
お前、何回同じアルゴリズムを
再発明してるんだ?w

一度書いたアルゴリズムは、もう二度と書かなくていいように
ライブラリにしないとダメだよ。

462デフォルトの名無しさん2013/12/01(日) 23:17:00.28
聞いた話だが、
コボラーとか同じマッチング処理(アルゴリズム)を
何回も再発明しているらしい。

普通に考えれば、リスト1とリスト2を
与えれば、結果を出す関数を作ればいいだけなのにね。

463デフォルトの名無しさん2013/12/01(日) 23:21:13.26
型があればコメントを書かなくていいとか言ってなかったっけ?

464デフォルトの名無しさん2013/12/01(日) 23:21:51.46
複雑なものを書くのが俺の仕事だみたいな感じなんだろうね。
それを効率化して簡単に読みやすくかけるようにしたら、
それの仕事を取るなって怒るのだろう。
まあ老害ってやつだね。

465デフォルトの名無しさん2013/12/01(日) 23:24:13.66
>>463
スレに記録残ってるんだから、
そのリンクを示せばいいだけだろ。
見つかんないから、そうやってとぼけてるんだってわかるけどねw

ちなみに、お前の質問の答はNOだ。
誰もコメント書かなくていいなんて言っていない。

型情報はコードで書けばいいのだから
コメントに型情報を書く必要がないと言ってるだけ。

まさか、これを見て、コメント書かなくていいなんて
思わないよね?

466デフォルトの名無しさん2013/12/01(日) 23:26:03.52
きっと、コメントに型情報だけを書いていた人なのだろう。
だから型情報をコメントに書かなくていいと言ったら
コメントに書く情報がなくなるじゃないかって思う。

467デフォルトの名無しさん2013/12/01(日) 23:29:38.68
文字列しか型のないtcl最強だな

468デフォルトの名無しさん2013/12/01(日) 23:32:02.97
動的型付けのメリットってなんかあるの?

469デフォルトの名無しさん2013/12/01(日) 23:32:59.02
短いプログラムに限って

470デフォルトの名無しさん2013/12/01(日) 23:35:10.62
>>458
むしろ型推論はジェネリックの方がデフォルト
型を特定できた場合以外はすべてジェネリック型になる

471デフォルトの名無しさん2013/12/01(日) 23:36:09.04
変数宣言が楽
型推論使えば意味ないか
最近は動的でもIDEで予測変換出てきて便利です
静的の方が進化してる感じはあるけど

472デフォルトの名無しさん2013/12/02(月) 00:10:15.31
コメントがなくてもわかるような
コードを書けってきかない?

473デフォルトの名無しさん2013/12/02(月) 00:15:37.24
コードで説明できないからコメントで説明するんだろうね
プログラマとはプロのグラマーだよね?
プロと名乗る以上はコードできちんと説明できないといけないね
コメントを書いていいのはアマチュアまで

474デフォルトの名無しさん2013/12/02(月) 00:21:24.45
「コメント」の指す意味が交錯してる

ドキュメントの関数定義に付与されるドキュメンテーションコメントと、
コード中に必要に応じて書かれるコメント

前者を省くのはプロでも不可能

475デフォルトの名無しさん2013/12/02(月) 00:26:00.91
コメントは核と同程度の危険性を持つ
出来るだけ書かないほうがいい

476デフォルトの名無しさん2013/12/02(月) 00:55:46.15
Skydrive

477デフォルトの名無しさん2013/12/02(月) 01:32:34.11
1年後に自分のコードを見たときわけわからんということが無い程度にはコメント書いとけ。

478デフォルトの名無しさん2013/12/02(月) 02:02:36.99
コメントがなくてもわかるような
コードを書けってきかない?

479デフォルトの名無しさん2013/12/02(月) 02:04:01.23
つまり、手続きの羅列以外書かないことが重要なのです。

480デフォルトの名無しさん2013/12/02(月) 03:15:34.36
>>460
何をやっているのか関数名として書くだけ。

481デフォルトの名無しさん2013/12/02(月) 06:57:20.60
コメントに似てる方が負けというルールなら
宣言を書くよりテストを書く方が勝つんだろうな

482デフォルトの名無しさん2013/12/02(月) 06:59:56.61
コメント無くてもわかるようなコードにコメント付記するのが最強。

483デフォルトの名無しさん2013/12/02(月) 07:18:17.44
冗長でも元気イッパイなのはよいことだ。

484デフォルトの名無しさん2013/12/02(月) 09:56:46.84
失業しますた

485デフォルトの名無しさん2013/12/02(月) 13:40:47.97
JSerなら引く手数多だから大丈夫でしょう

486デフォルトの名無しさん2013/12/02(月) 18:06:44.57
コメントがなくてもわかるような
コードを書けってきかない?
コメント書くのは素人

487デフォルトの名無しさん2013/12/02(月) 18:08:29.61
ドキュメンテーションコメントは書きますし
普通のコメントはたまにしか書かないけど

488デフォルトの名無しさん2013/12/02(月) 18:12:13.92
初心者はコメント書いても仕方ないんじゃないかな?

489デフォルトの名無しさん2013/12/02(月) 18:14:09.37
そうか、静的型付言語なんか使っていると
動的型付言語には型がないなんて
バカ丸出しのキチガイ発言をしてしまうほど
頭が悪くなってしまうんだな…かわいそうに…

490デフォルトの名無しさん2013/12/02(月) 18:19:55.08
補助輪説何度見ても吹くわ〜

491デフォルトの名無しさん2013/12/02(月) 18:26:03.51
コメントを有料化すればコード品質が上がるかもしれんね
コメントを書いたら一行当たり1万円の罰金とかね

492デフォルトの名無しさん2013/12/02(月) 18:27:26.91
コメントのない保守不能なプログラムができるだけだと思う

493デフォルトの名無しさん2013/12/02(月) 19:05:57.10
ネーミングマジックで何とかならないの?
保守不能というとイメージ悪いから、コードダンジョン〜魔界の迷宮III〜
とか名づければかっこよく見えるでしょ。

494デフォルトの名無しさん2013/12/02(月) 19:16:36.18
スパゲティパーソン〜人と家族の物語〜

495デフォルトの名無しさん2013/12/02(月) 19:29:48.61
ネーミングマジックの効果って結構あると思うんだよ。
例えば帰宅して「今日はコードダンジョンやっつけてきたよ」っていうでしょ。
すると「お疲れ様、楽しかった?」ってなるでしょ。
意図せず余裕のある大人を演出できてるコレ。

これが「保守不能と格闘してきた↓」だと、奥さんもかわいそうだよね。

496デフォルトの名無しさん2013/12/02(月) 20:25:57.33
地下牢をかっこいいと思うのは中二マジックでしょ
ネガティブな名前がかっこいい

497デフォルトの名無しさん2013/12/02(月) 20:59:08.77
どうでも良い。

498デフォルトの名無しさん2013/12/02(月) 22:02:06.71
怠惰は美徳だとかいうアイデアは
100倍じゃなくて-1倍にする習慣がないと思いつかない

499デフォルトの名無しさん2013/12/03(火) 09:27:16.52
JavaとかC#で馬鹿みたいに長い関数名付けてる事があるけど、
あれなら関数名を短くしてコメント書いた方がマシでしょ

500デフォルトの名無しさん2013/12/03(火) 09:51:15.71
関数名が長かろうが短かろうが公開メンバのコメントはつける

501デフォルトの名無しさん2013/12/03(火) 12:08:55.73
>>499
問題はそういうことじゃない
そう思う人と思わない人が混在してごちゃごちゃになること
動的言語ではそういう事態が起きやすい

502デフォルトの名無しさん2013/12/03(火) 12:12:26.48
俺は俺のためにコメントつけてるぞ。
幾ら短い綺麗なコード書いたって何処かしらでどうしてこういうコードにしたかっていうのを書いときたいのがある。
コメントじゃなくて別ドキュメントでも構わんけど。

503デフォルトの名無しさん2013/12/03(火) 12:27:08.83
グローバル関数名が長いのはどの言語でも同じ
問題はローカル関数が良いと思う人と思わない人が混在すること

504デフォルトの名無しさん2013/12/03(火) 19:15:55.38
動的言語で50文字超える関数名とか見たことないけどな

505デフォルトの名無しさん2013/12/03(火) 19:21:05.37
静的でも50文字越えなんて見たことない

506デフォルトの名無しさん2013/12/03(火) 19:26:56.24

507デフォルトの名無しさん2013/12/03(火) 19:29:30.15
20文字でも長すぎる

508デフォルトの名無しさん2013/12/03(火) 19:39:15.72
>>506
InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState

これもう静的言語だから長くなるとかそういう問題じゃないだろ

509デフォルトの名無しさん2013/12/03(火) 19:51:56.88
InternalFrameが何回あるんだ?

510デフォルトの名無しさん2013/12/03(火) 20:11:50.28
これに匹敵する長さの関数名を
標準ライブラリに含む
動的言語ってあるの?

511デフォルトの名無しさん2013/12/03(火) 20:23:37.17
コメントがなくてもわかるような
コードを書けってきかない?

コメント書くのは雑魚

512デフォルトの名無しさん2013/12/03(火) 20:23:46.89
静的型言語はバカ救済言語だから
そういうバカな名前をつけるバカが一定数混ざってくる

513デフォルトの名無しさん2013/12/03(火) 20:32:47.76
一定数というわりに
例外でしかないようだけど?

514デフォルトの名無しさん2013/12/03(火) 21:03:52.92
コメントがなくてもわかるようなコードを書けってきかない?
コメントはコードに情報を埋められない言語の逃げでしかない。

515デフォルトの名無しさん2013/12/03(火) 21:09:38.60
標準ライブラリではないが・・・
http://nojiriko.asia/prolog/p_odai_173.html

516デフォルトの名無しさん2013/12/03(火) 21:23:58.92
XMLコメント書くなって言われたら困る

517デフォルトの名無しさん2013/12/03(火) 21:37:15.41

518デフォルトの名無しさん2013/12/03(火) 21:50:34.11
WSSecurity10WSTrustFebruary2005WSSecureConversationFebruary2005WSSecurityPolicy11BasicSecurityProfile10プロパティ
そういや.NETって動的も使えたよね

519デフォルトの名無しさん2013/12/03(火) 21:51:08.40
型チェックが甘くならないように細かく分類すると
型名が長くなる
静的型のために継承したクラスとオブジェクト指向のために継承したクラスが混在する

520デフォルトの名無しさん2013/12/03(火) 22:19:55.14
ドカタは長い名前を好むよね

521デフォルトの名無しさん2013/12/03(火) 22:20:47.64
JSで無名関数が良いのです。

522デフォルトの名無しさん2013/12/03(火) 22:41:26.76
>>520
山田グレネード・エクストラ・マリリンヌ花子三世とかね。

523デフォルトの名無しさん2013/12/03(火) 23:11:29.22
>>520
ドカタの逆は短い名前を好むよね。

Perlなんか、$aとか$bが特殊な用途に使われてるし。
他にも$_とか@_とか。名前なんて適当でいいんだよ。

524デフォルトの名無しさん2013/12/03(火) 23:29:35.07
でも$つけるのめんどくさい
その点Pythonは優れてる
Perlも結構いいと思うけどね

525デフォルトの名無しさん2013/12/03(火) 23:47:56.07
Perlに至っては$_が省略されることすらあるしな
もはや変数を書かないという

526デフォルトの名無しさん2013/12/04(水) 09:42:35.75
>>512
俺は事故起こさねーよって言って飲酒運転する馬鹿みたいだな

527デフォルトの名無しさん2013/12/04(水) 10:54:11.03
安全厨は酒が危険だと言わず自動車が危険だと言う
それは自動車の方がシステマティックだからだ
そもそも実用品ではない酒はシステマティックに説明できない
説明できない存在を認めると、人間の才能がシステムを上回る可能性も否定できなくなる

528デフォルトの名無しさん2013/12/04(水) 11:44:15.82
>>513
静的言語しか書けないバカは例外なくバカだけど?

529デフォルトの名無しさん2013/12/04(水) 11:46:32.61
などと1bit脳をさらけ出す発言を繰り返しており

530デフォルトの名無しさん2013/12/04(水) 11:48:18.11
>>528
そんな奴見たことない

531デフォルトの名無しさん2013/12/04(水) 12:28:05.26
俺は事故起こさねーよって言って追突されてあぼんする馬鹿みたいだな

532デフォルトの名無しさん2013/12/04(水) 12:46:48.85
>>531
その馬鹿はどうするべきだったのかね
ポジティブ思考をやめるべきだったのか
思考はやめなくていいけど宣言するのをやめるべきだったのか

533デフォルトの名無しさん2013/12/04(水) 13:21:24.10
そんなあなたの不安を解消する三井ダイレクト

534デフォルトの名無しさん2013/12/04(水) 13:46:58.34
C#でプログラミングしていて凄い発見をした。すべてstaticメソッドにするとアホみたいに捗る。
http://engawa.2ch.net/test/read.cgi/poverty/1386083303/

535デフォルトの名無しさん2013/12/04(水) 13:49:15.46
>>534
今起きたのか?

536デフォルトの名無しさん2013/12/04(水) 13:53:53.35
いや、ギャラの契約更改に少し時間を取られた

537デフォルトの名無しさん2013/12/04(水) 13:54:56.91
そうだな。よく見たら1時までしかレスしてないから今起きたってことはないか。

538デフォルトの名無しさん2013/12/04(水) 14:04:02.95
話は戻るけど

悪名高きコメントの更新漏れは
コード(英語)とコメント(日本語)のコンテキスト切替の
負担が大きすぎるせいで見落としが生じるのではないか

コメントを英語でかこう

539デフォルトの名無しさん2013/12/04(水) 14:05:21.18
日本人相手だと細かいニュアンスが伝わりにくくなるだけだしコメントの用を成さなくなるだけ

540デフォルトの名無しさん2013/12/04(水) 15:07:23.66
Well, we should use Himawari and write both codes and comments in Japanese.

541デフォルトの名無しさん2013/12/04(水) 15:33:14.81
o・ko・to・wa・ri

542デフォルトの名無しさん2013/12/04(水) 18:49:23.16
コメントは英語で書くべき。

543デフォルトの名無しさん2013/12/04(水) 18:53:26.46
Konkansuuhakasanwookonaimasu.

544デフォルトの名無しさん2013/12/04(水) 19:34:26.71
>>542
ロックの歌詞は英語であるべきかという論争を思い出す。

545デフォルトの名無しさん2013/12/04(水) 22:32:39.95
残念ながら英語は書けない。
書けるのは英語もどきだけだ。

さて、間違いだらけの英語と
日本語。どっちで書いた方がいい?

546デフォルトの名無しさん2013/12/04(水) 22:51:05.24
>>545
英語もどきでいい、コードが補完してくれる、ハングルで書かれた日には途方にくれる

547デフォルトの名無しさん2013/12/04(水) 23:25:38.85
>>546
その理屈で言うと、間違ってる日本語でもいいってことになるよ

548デフォルトの名無しさん2013/12/04(水) 23:29:05.02
すべて絵にしてリンクを書いておけ

549デフォルトの名無しさん2013/12/04(水) 23:50:11.15
英語もどきを翻訳して正しく訳せることはない。
一体誰が読めるコメントなのだろうか。

550デフォルトの名無しさん2013/12/05(木) 00:08:21.99
自分も同じ間違いをしたことがあれば読める
間違ったことがない奴は何も読めない

551デフォルトの名無しさん2013/12/05(木) 06:44:30.35
英語でコミュニケーションできない奴にプログラマの資格なし。

552デフォルトの名無しさん2013/12/05(木) 13:43:22.23
No, you aren't.

553デフォルトの名無しさん2013/12/05(木) 21:41:04.23
音楽でも資格のない者が演奏することは禁止されてるっぽいからね
そういう風潮なんだな

554デフォルトの名無しさん2013/12/06(金) 09:39:40.23
動的型言語でプログラムを書く資格のないものが
仕方なく静的型言語を使う

555デフォルトの名無しさん2013/12/06(金) 09:46:06.78
最近はマスを描くにも資格がいるそうだ。

556デフォルトの名無しさん2013/12/06(金) 10:40:38.25
マスかき1級

557デフォルトの名無しさん2013/12/06(金) 13:43:13.42
ね、猫く....
か、描く....

558デフォルトの名無しさん2013/12/06(金) 14:06:47.25
>>554
ピスト野郎と同じこと言ってんな

559デフォルトの名無しさん2013/12/06(金) 18:14:08.57
Javaのような静的言語に比べてJSやPHPのような動的言語は習得コストが高い。
しかし、習得後の生産性は動的言語のほうがはるかに高い。
また製品の速度や品質も非常に高い。
つまり、一般的に動的言語を使うべき。
しかし頭が悪い人は習得が難しいので静的言語で我慢するしかない。

560デフォルトの名無しさん2013/12/06(金) 18:21:38.46
だから技術的には合法だって
コンパイラのお墨付きをもらうのは簡単
難しいのは、コンパイラと無関係なやつらが口を出してくること

561デフォルトの名無しさん2013/12/06(金) 18:29:04.60
>>559
などとチグハグで噛み合わない内容を並べて平気なプログラマもどきに愛される動的言語をどうぞよろしくお願いします

562デフォルトの名無しさん2013/12/06(金) 18:45:22.68
静的言語は初心者用。

563デフォルトの名無しさん2013/12/06(金) 18:46:15.87
静的言語は悪くないよ
機械に仕事を任せたものの不安になって結局人間がああだこうだ言ってる状況が悪い

564デフォルトの名無しさん2013/12/06(金) 18:54:40.37
何言ってんだかわかんないんだけど?
静的言語が社会悪だってことは学問的に証明されてるでそ。

565デフォルトの名無しさん2013/12/06(金) 18:55:49.02
学問的www

「学術的」だろ高卒クンw

566デフォルトの名無しさん2013/12/06(金) 18:56:57.36
中卒に高卒というのはちょっと‥

567デフォルトの名無しさん2013/12/06(金) 18:57:35.84
まあ一般論としては動的はよりライトな応用分野の方が多いような。
大規模処理やミッションクリティカルな分野にはなかなか食い込めていないのも事実。

568デフォルトの名無しさん2013/12/06(金) 18:58:37.03
rev.2.

何言ってんだかわかんないんだけど?
静的言語が社会悪だってことは学術的に証明されてるでそ。

569デフォルトの名無しさん2013/12/06(金) 18:59:39.77
スパコンに投入するジョブはJSが増えてるけどね。

570デフォルトの名無しさん2013/12/06(金) 19:34:32.59
rev.3.

I don't see what you argue.
It's been scholarly manifested that static-typed languages are social evils,
hasn't it?

571デフォルトの名無しさん2013/12/06(金) 19:37:15.81
オープンソースじゃないのでやめてください!
著作隣接権を主張します!

572デフォルトの名無しさん2013/12/06(金) 19:39:12.69
まあTIOBEをみれば歴然だがな

573デフォルトの名無しさん2013/12/06(金) 19:52:58.02
JSの圧勝だった。

574デフォルトの名無しさん2013/12/06(金) 19:55:42.88
hoge たたきの次は JS ステマか

575デフォルトの名無しさん2013/12/06(金) 20:11:37.37
ステマというよりはヨタだけどw

576デフォルトの名無しさん2013/12/06(金) 20:13:44.40
JSは実行時に最適化するので速いのです。
Cの約二倍速い。

577デフォルトの名無しさん2013/12/06(金) 22:47:21.50
実行前に最適化したほうが速いよ。
実行時の最適化は毎回やるしね。

578デフォルトの名無しさん2013/12/06(金) 23:14:03.00
>>577
ネタだろwマジメに答えんなってw
さて、動的押してるフリしてる釣り師諸君に問題です!
V8, Rhino, SpiderMonkyはどの言語で実装されているでしょう?!
perl, rubyはどの言語で実装されているでしょう?
どんな答えがかえってくるかオラわくわくしてきたぞ!

579デフォルトの名無しさん2013/12/06(金) 23:15:49.37
>>578
Perl 6はHaskellで実装されたね

580デフォルトの名無しさん2013/12/06(金) 23:22:41.88
>>578
Smalltalk は Smalltalk で実装されてたね

581デフォルトの名無しさん2013/12/06(金) 23:45:41.21
まあ、javascriptは後方互換性を捨てた方がいいよね

582デフォルトの名無しさん2013/12/07(土) 01:58:09.04
後方互換性を捨てることで
得られるものを具体的に述べよ。
それをお前は欲しいと思っているはずなんだよね?

583デフォルトの名無しさん2013/12/07(土) 01:58:50.21
> 後方互換性を捨てることで
> 得られるものを具体的に述べよ。

訂正

後方互換性を捨てないと
得られないものを具体的に述べよ。

584デフォルトの名無しさん2013/12/07(土) 10:01:09.81
世間の混乱

585デフォルトの名無しさん2013/12/07(土) 11:52:20.82
無駄なコストを捨てようとしたら
コストとは何かが客観的にわからないということがわかった

586デフォルトの名無しさん2013/12/07(土) 16:46:56.72
静的型=コスト

ここ大事ですよ。テストに出ます。

587デフォルトの名無しさん2013/12/07(土) 19:55:54.02
どうせES6以降のコードはES5の実行環境では動かないのだから、use "ES6"とか
オプションつけたら変数スコープも常識的なブロックスコープになる機能が欲しい。

let導入で二種類の変数スコープが併存とか無意味すぎ。
もう今のvar相当はobsoluteで使ったらログに警告吐くぐらいの勢いで良い。

588デフォルトの名無しさん2013/12/07(土) 20:16:20.87
JSは互換性にも配慮されているので問題ありません。

589デフォルトの名無しさん2013/12/08(日) 15:40:27.33
低級言語の仕様を変えさせないという目的もある
高級言語を気が済むまで改変させることで低級言語が守られている

590デフォルトの名無しさん2013/12/08(日) 16:01:49.94

591デフォルトの名無しさん2013/12/08(日) 16:07:17.43
>>587
移行というのは前のをバッサリ切り捨てるやり方じゃダメなんだよ。
いきなり全てを変えるなんて出来やしない

両方共存出来る状態を作って少しずつ変化させていく。
こうやらないとだめ。

> どうせES6以降のコードはES5の実行環境では動かないのだから、
動く。Polyfill系なんかがそう。
動かないのはletなどを使ったES6専用のコードだけ(コンパイルエラーになる)

こうやって、部分的にES6対応コードに置き換えていく。
varに関してもletに単純に置き換えれるように
コードを整理することは可能。これでES6でもES5でも動くコードになる。

これはES6に早い段階から対応していくという方針のやり方。
逆に将来ES6が十分に普及してしまった後にレガシーなES5を移行する。というような場合でも
varとletの両方が使えるならば、徐々にES6コードに置き換えるていくことが可能になる。

592デフォルトの名無しさん2013/12/08(日) 16:16:41.68
まるでpythonみたい

593デフォルトの名無しさん2013/12/08(日) 17:28:22.91
昔のことを覚えていなければ、いま新しいことをしているのかどうか分からない

594デフォルトの名無しさん2013/12/08(日) 17:32:10.28
letは別に新しくともなんともなく単に普通なのであって、varも古い云々以前に単に変なだけ。
特に覚えておく必要も無い。

なのでuse strictの強化版のようなばっさり切り捨てる機能があって良い。

595デフォルトの名無しさん2013/12/08(日) 19:25:18.31
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
http://engawa.2ch.net/test/read.cgi/poverty/1386476617/

596デフォルトの名無しさん2013/12/12(木) 22:08:17.68
最強のPythonが動的型言語なので
動的型言語の方が生産性が高い

597デフォルトの名無しさん2013/12/14(土) 00:49:28.23
普通は文字列は一次元で絵は二次元だけど
「実行しないとわからない」なら時間軸を追加して次元がひとつ増える

三次元は正確に認識できないことがあるので生産性が低い
それは時間軸が原因だともいえるし、絵が原因だともいえる

598デフォルトの名無しさん2013/12/17(火) 20:07:17.91
オメーらあんまりgdgd言ってっと型に嵌めちまうぞッ

599デフォルトの名無しさん2013/12/18(水) 02:34:16.63
Pythonも微妙になってきたな。
CG方面でなぜかデファクトだから仕方なく使う感じだ。

600デフォルトの名無しさん2013/12/18(水) 02:38:51.00
>>591
> 移行というのは前のをバッサリ切り捨てるやり方じゃダメなんだよ。
> いきなり全てを変えるなんて出来やしない

そうとは限らん。そういう場合もあるというだけだ。
破壊的変更と非破壊変更は相互補完の関係にあって、どっちを偏重してもいかんのだよ。
現にMozillaも新言語Rustを作ってるしな。

つかどう見てもES4のときに一度ばっさり互換を切るべきだった。
あれがWeb Platform最大の失敗だったことは、無数のaltJS乱立によって証明済み。

601デフォルトの名無しさん2013/12/18(水) 03:31:57.85
altJSって、2007年頃のLLブームに乗っかり、
いんぽqのに騙されたバカな魔法少女たちぐらいしか使わないんじゃねーの?

602デフォルトの名無しさん2013/12/18(水) 07:27:49.18
低能にはJSのウンコさが理解できない

603デフォルトの名無しさん2013/12/18(水) 17:45:29.98
>>600
> 現にMozillaも新言語Rustを作ってるしな。
Rustへの移行が成功してから言えよw

現時点では前(JavaScript?)のをバッサリ切り捨てて
Rustを作ったが、ほれみろやっぱり移行していないではないか。
という実例になってるぞw

604デフォルトの名無しさん2013/12/18(水) 17:47:42.68
> つかどう見てもES4のときに一度ばっさり互換を切るべきだった。

ECMAScript 4は互換を切ったよ。
だから仕様もまとまらなかったんだが。

それもまた、互換性をバッサリ切り捨てるやり方は
失敗するという、お前がいいたいのと正反対の実例だな。

605デフォルトの名無しさん2013/12/18(水) 20:09:07.21
JSは土管なんだから
後方互換性は何よりも大事だよ

606デフォルトの名無しさん2013/12/18(水) 20:28:41.19
処理系間の互換性が崩壊してる言語で後方互換性がどんな意味を持つんだろうか

607デフォルトの名無しさん2013/12/18(水) 21:11:41.22
ESがバッサリ互換切り捨てたらバージョン間互換すら出来なくなるよね

608デフォルトの名無しさん2013/12/18(水) 22:07:24.13
コメントがなくてもわかるような
コードを書けってきかない?
コメント書くのは素人

609デフォルトの名無しさん2013/12/18(水) 22:13:07.62
>>608
よっぽどのその言葉気に入ったみたいだなw

610デフォルトの名無しさん2013/12/18(水) 22:20:56.13
コメントの9割は無駄!〜アンチプラクティスから学ぶ洗練されたコメントの書き方〜 #code #コード
https://codeiq.jp/magazine/2013/12/3700/

番外編 プログラムのコメントは少なければ少ないほど良い?
http://www.appresso.com/now/column/2010/09/0009-1.html

先日、日経ソフトウェアで「プログラムのソースコードは20%を切ることが望ましい」
という記事を書きました。また、8月のMIJSでのディスカッションでも議論の中で
同じように「詳細設計書やプログラムのコメントは多い方が良いか、少ない方が良いか」という議論がありました。

この話は、私が大学時代に教官から「以前は、コメント率(ソースコード中のコメントの割合)は
50%を超えていないと品質が低いとされた」という話を聞いて衝撃を受けたことが発端となっています。
私自身は、詳細設計書やコメントは少なければ少ないほど良いと思っていたのに、
「コメント率は50%を超えなければいけない」と言われ、驚いたわけです。その頃は、
自分はプログラムは小学生の頃から趣味で色々と書いていたとはいえ、まだプロとしての
経験がないので理解できていないだけかとも思ったものですが、大学を卒業してプロとしての
プログラマーの経験を10年強積んだ今、以前にも増して「ソースコードのコメント率は
低ければ低いほど良い」という考えが強まっています。


ソースコード中のコメントは多いほうがよいのか、少ないほうがよいのか?
http://d.hatena.ne.jp/eel3/20130815/1376529541

611デフォルトの名無しさん2013/12/19(木) 00:03:28.61
コメント率50%とか正気の沙汰ではないな
ソースコードに詳細設計書をそのまま書いてるようなもんじゃん

612デフォルトの名無しさん2013/12/19(木) 00:11:34.43
コメントを読む必要があるのはソースを読めないから。
つまり初心者。

613デフォルトの名無しさん2013/12/19(木) 00:16:27.16
テストを徹底すればコメントは必要ない

614デフォルトの名無しさん2013/12/19(木) 00:17:19.70
テストを徹底するのは不可能
まずこういう前提がある。

615デフォルトの名無しさん2013/12/19(木) 00:22:10.53
コメントを書く暇があったらコードを書こう

616デフォルトの名無しさん2013/12/19(木) 00:23:23.85
なぜテストを徹底するのが不可能かというと
その数が極めて膨大になるから。

例えば条件分岐が16個あるとする。
その組み合わせは2の16乗で65536になる。
条件分岐が32個であれば4294967296
1つ1ミリ秒で実行できたとしても50日かかる計算になる。
この全ての組み合わせをテストするのは不可能。

一つのアプリで条件分岐はいくつあるだろうか?
普通は32個よりはるかに大きな数であろう。

だからテストを徹底するのは不可能という結論になる。
テストはその一部しか出来ないのは当然の話。
だからその一部で十分とみなせるようにしないといけない。
そのためにはアプリの作り方と静的なチェックが重要になる。

617デフォルトの名無しさん2013/12/19(木) 00:26:43.45
Linuxならすべての組み合わせをチェックできる

618デフォルトの名無しさん2013/12/19(木) 00:53:24.75
>>616
ホワイトボックステストとブラックボックステストの違いくらい知っておこう
基礎知識がない人に限って断定口調で話す傾向があるね

619デフォルトの名無しさん2013/12/19(木) 00:58:38.89
>>618
ホワイトボックスとブラックボックスの違いを知らないと
思った理由は?

なんでさ、知らないと断定するの?

それに、ホワイトボックス(またはブラックボックス)
だったらなんなのさ?


知らないだろうといっただけで、
お前は意見を何も述べてなよ。

620デフォルトの名無しさん2013/12/19(木) 01:02:43.76
>>619
雑魚は素直にハイと言っておけば良い

621デフォルトの名無しさん2013/12/19(木) 01:03:35.09
>>619
テストにはホワイトボックステストとブラックボックステストの二種類がある。
>>616のレスはホワイトボックステストにしか当てはまらないが、
それなのにテスト全体について総括した意見を述べてしまっている。

よってブラックボックステストのことを知らないのだろうと判断できる。

622デフォルトの名無しさん2013/12/19(木) 01:10:49.95
>>621
ブラックボックステストにも当てはまるぞ。

条件分岐を、チェックボックスと置き換えればいい。
32個のチェックボックスが存在する検索フォーム

例えばこんなのな
http://www.chintai.net/tokyo/search/en_101001/

テストを徹底するというならば全ての組み合わせを実行しないといけない。
特定の組み合わせでのみエラーが起きるというのは普通に存在する。

623デフォルトの名無しさん2013/12/19(木) 01:11:50.88
Linuxならすべての組み合わせをテストできます

624デフォルトの名無しさん2013/12/19(木) 01:26:57.51
>>610
文芸的プログラミングが推奨された時代の話じゃねーの?
てか、サイレントボブみたいにコールグラフ描くツールの使い方おしえろよ

625デフォルトの名無しさん2013/12/19(木) 02:17:02.59
コメントがなくてもわかるような
コードを書けってきかない?
コメントは
コードに情報を埋められない言語の逃げでしかない。

626デフォルトの名無しさん2013/12/19(木) 07:49:00.61
名前を変に省略形にしたり、変数がアルファベット1文字だったり、tmpだったり、
さらにそれを同じメソッド内で別用途に使いまわしたり、
1つのメソッドor関数で多くの機能を入れ込んで、さらに上流と下流のコードが混在していて、
どのブロックが上流の下流のどの工程なのか熟読しないと分からないとか、

まあ、「リーダブルコード」を読め、ってことだ。

627デフォルトの名無しさん2013/12/19(木) 08:00:32.37
まあ業務系は客観的に見て暇な仕事だからコメントをウダウダ書いて暇つぶしする余裕があるww
余裕がないとか言っている奴は隣人や就職希望の奴の仕事を奪って忙しがってる小山の大将(バカ)

628デフォルトの名無しさん2013/12/19(木) 10:44:02.91
>>616
テスト専門企業のHP見れば判るけど、今はテストケースをどうやって減らすかがノウハウだよ。

629デフォルトの名無しさん2013/12/19(木) 11:55:30.20
統合環境にはチェックボックスが32個ぐらいあるんだな
シェルだったらコマンドが32個あっても組み合わせた場合の責任はユーザーに転嫁される

630デフォルトの名無しさん2013/12/19(木) 12:29:13.88
そもそもCPUもディスクもメモリもOSもデバイスドライバもランタイムライブラリもそこまでの品質に達していないからPCごと窓から投げ捨てろ

631デフォルトの名無しさん2013/12/19(木) 22:37:22.96
LinuxのようなOSSは品質が高い

632デフォルトの名無しさん2013/12/28(土) 01:17:06.39
Linuxの品質は高いが、OSSは総じて品質が低い
なぜだ?

633デフォルトの名無しさん2013/12/28(土) 13:55:07.64
ソースを公開する動機は品質向上というより、古いソフトの寿命を延ばすことだから

634デフォルトの名無しさん2013/12/28(土) 14:02:15.19
数の問題

635デフォルトの名無しさん2013/12/28(土) 16:50:28.30
おびただしいゴミの山から一握りの大成功だけをもってOSSと呼んでいる

流行に乗って何度もクソを取り上げてもてはやした過去は都合よく忘れている

636デフォルトの名無しさん2013/12/28(土) 16:55:58.94
業務アプリとかの方がクソっぷりは上だけどねー
いやホントに

637デフォルトの名無しさん2013/12/29(日) 00:06:12.98
いやいや捨てられて都合よく記憶からも消去されてしまうクソにはおよびませぬ

638デフォルトの名無しさん2014/01/01(水) 10:16:24.21
今年はC++の1.5倍速いJSが馬のように勝つでしょう(^.^v)

639デフォルトの名無しさん2014/01/01(水) 10:18:04.91
1.5倍遅いの間違いです

640デフォルトの名無しさん2014/01/01(水) 10:23:30.46
Smalltalkも遅いしな。
動的言語が速い云々は特定ユースケースに絞った口先ばかりの話ばかりだ。

641デフォルトの名無しさん2014/01/01(水) 10:39:54.92
まあC#よりは速いんだからJSの速度は認めるしかないわな。

642デフォルトの名無しさん2014/01/01(水) 11:35:39.56
実際C#と同等に動いてくれるならわざわざネイティブで作らんでもいいんだけどねぇ(´・ω・`)

643デフォルトの名無しさん2014/01/01(水) 11:40:42.35
ちょっと話変わるけどC#とJSって近いよな
例えばUnityのJSはC#バインディングだし
同じ臭いがする

644デフォルトの名無しさん2014/01/01(水) 11:49:45.70
>>631-632
バイドゥのIME Shimejiってオープンソースじゃなかったっけ?(w

そして、GoogleはIMEをオープンソースにしていない。

645デフォルトの名無しさん2014/01/01(水) 13:47:35.88
Googleは情報を集めることを公言してるし、
何と言っても検索で情報を提供してる
またWidevineみたいな情報を閉ざす方にも力を入れてる
Googleは情報の管理人として最も相応しい存在として世界中で認められているので
Baiduの件に比べて問題が少ない

646デフォルトの名無しさん2014/01/01(水) 14:05:46.10
×問題が少ない
○問題が大きすぎて思考停止している

647デフォルトの名無しさん2014/01/01(水) 14:19:42.56
自動車の事故と同じ
多大なメリットを提供してくれるGoogle様にはさからえない

648デフォルトの名無しさん2014/01/01(水) 15:36:11.87
>>641
ネイティブ吐けるC#ってあったっけ?
CLR上でC#を超えるようなJS実装ってあったっけ?
比較対象がおかしいよ

649デフォルトの名無しさん2014/01/01(水) 16:19:33.35
C#もJSも最終的に機械語になって実行されるんだから何も変わらん

650デフォルトの名無しさん2014/01/02(木) 01:23:22.20
>>648
あるっちゃいっちゃあるけどな

651デフォルトの名無しさん2014/01/06(月) 07:35:27.64
静的言語はキャストがめんどうなんだよな。
あんなもの苦痛でしかない。

652デフォルトの名無しさん2014/01/06(月) 07:58:24.06
>>650
MS社内にあるだけで門外不出なんだろ?

653デフォルトの名無しさん2014/01/06(月) 08:47:28.73
>>652
いやググれば出てくるでしょ
MonoはC#をネイティブ出力できるよ

654デフォルトの名無しさん2014/01/06(月) 11:02:24.41
この世はC#を無条件でWindows+.NET+Formsへと脳内変換する視野狭窄なドカタで満ち満ちている
ネイティブなどとほざいても絵空事にしかならない

655デフォルトの名無しさん2014/01/06(月) 11:12:59.89
>>651
関数型がデフォルトイミュータブルなのと一緒でそれを不自由と見るか保証と見るかはあなた次第。

656デフォルトの名無しさん2014/01/06(月) 11:52:50.24
わけわからん暗黙変換の方がウザイ

657デフォルトの名無しさん2014/01/19(日) 01:28:02.63
>>1のコードだと、指摘したい内容に対して微妙に噛み合ってないような
実行前に(変数の)型が決まっているかどうかと
変数に型を持たせられるかどうかは、厳密には別の話だよね

大抵の動的言語は変数に型がないから、端的に示すには十分なんだろうけど

658デフォルトの名無しさん2014/01/19(日) 15:30:04.45
>>657
「型体系(type system)」と「型付け(typing)」の違いだね
これらはの概念は組合せ(直積)で考える必要がある

型体系(type system):
・単一型(型無し、とも言う)
 ・ただ一つの型しか存在しない、言い換えると型を区別しない
 例:Tcl や Shell --> 文字列型のみで、1 と "1" はどちらも文字列
・素朴な型体系
 ・複数の原始型と僅かな複合型
 例:Lisp、Prolog、JavaScript --> 数値や記号といった原始型(=アトム)と
   リスト(Lispの場合)または項(Prologの場合)から構成される
・複雑な型体系
 ・複数の原始型と複合型
 例:Pascal や C といった多くの手続き型言語、および
   ML族のような初期の静的型付け関数型言語 -->
   以下の3種類の基本構造から構成される
   ・直積:タプル、レコード(=構造体)
   ・直和:列挙型、合併型(=共用体)、代数型
   ・列:配列、リスト
・複雑で階層的な型体系
 例:C++/Java/Smalltalk/Ruby といったクラスベースのオブジェクト指向言語、
   および Haskell や Scala のようなアドホック型多相を基礎とする関数型言語など

型付け(typing):
・静的型付け:Pascal/C/C++/Java/C#/OCaml/SML/Haskell/Scala
・動的型付け:Lisp/Prolog/JavaScript/Smalltalk/Ruby/Python
・ハイブリッド:Objective-C

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

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

660デフォルトの名無しさん2014/03/28(金) 02:09:27.84ID:NM8p3urQ
メインで使う言語が Ruby から入って今は専ら Java だけど、
Rubyに戻りたくないな
やっぱ静的型付けは曖昧さがないから安心感が高くていいよ
オーバーロードも出来るし
開発環境もいろいろサポートしてくれるし

まぁでも Ruby はそれなりに良い言語ではるけどね
クロージャが書きやすいし(Javaでも書けるけど)
ミックスインも強力だし……そういえば Java8 でインターフェースのデフォルト実装来るのだろうか?
クラスがオブジェクトとして扱えて、クラスメソッドでポリモーフィズムが使えたり
うーん、懐かしいわ

661デフォルトの名無しさん2014/09/02(火) 15:20:17.74ID:gs4puFO8
NumOrString で何がやりたいの? Genericで型を作る事(IntやDouble とStringだけに制限かけるとか)でもできるし 何もしないでAnyでも良いだろ
Swift で Int を取りだす例

func getInt(v: Any)->Int{
  if v is String {
    return (v as String).toInt() ?? 0
  } else if v is Int {
    return v as Int
  }
  return 0
}

var numOrStr: Any = "100" // 文字列代入
println( getInt( numOrStr )+2 ) //102

numOrStr = 200 // 整数代入
println( getInt( numOrStr )+2 ) //202

662デフォルトの名無しさん2014/09/02(火) 17:12:02.99ID:bBMTqV7b
動的型言語が急激にオワコン化しつつある
まだどっちにもメリット・デメリットがあるだの中立を気取る穏健派気取りも多いが
明らかにそんな段階超えてるっしょ。英語圏でもこんな記事が人気だ。

The abject failure of weak typing(弱い型の惨めな失敗)
http://techblog.realestate.com.au/the-abject-failure-of-weak-typing/

あと、静的型の連中はテスト書かんのか的勘違いしてる動的派たまにいるけどさー
型チェックして、静的解析して、その上でさらにCIもするに決まってるだろw
バグを減らすためのあらゆる手段を各段階に投入するんだよ。

それから、動的型の方が気楽に書けるだの速く書けるだのは妄言というほかない。
コードを実行するよりも前に、テストを走らせるよりも前に一定のバグチェックが働いたほうが
明らかにイテレーションが高速だろうが。常識で考えろ。
プロジェクトの規模が膨らむほど顕著になる。
つかせいぜい数千行で明らかに静的型の方が採算が良くなる。

リファクタリング一つ取ってもどうするつもりなのか。
静的型言語だとガチャガチャ数百行一気に組み換えて
コンパイルエラー何十個か潰して実行したら何の問題もなく動作するというようなことがままあるわけだが
RubyだのJavaScriptだのがメインの連中、そういう快感を知らないし想像もできないのだろう。

静的型で優れたIDEの恩恵をきちんと受ければどれほどの高速コーディングができるかも知るまい。

まして、プログラマは怠惰であるべきだから動的型マンセーwだの
Twitterでアホがツイートしてるのを見たときには
馬鹿じゃねえのかと思ったよ。本気で。

663デフォルトの名無しさん2014/09/02(火) 18:57:07.42ID:O0bHgitW
>>662
weak typing?
技術用語の使い方も間違えてるバカのいうことなんか放っておけばいいw

664デフォルトの名無しさん2014/09/02(火) 22:03:49.35ID:f704CnQ2
「静的型言語」と言ってる時点ですでに穏健派の思う壺だよね
不特定多数の言語を指してるから
一つに絞り込む必要性が全く感じられない
複数選択可なら動的型言語も選んでみたくなる

665デフォルトの名無しさん2014/09/03(水) 17:26:16.99ID:Nxe4ujmI
>>662
Javaって素晴らしいねw

666デフォルトの名無しさん2014/09/03(水) 18:06:54.24ID:SBztsgaC
動的言語が楽なのは環境作る手間だけであったな

667デフォルトの名無しさん2014/09/03(水) 21:35:51.41ID:rgaFaXry
TypeScriptみたいに、動的型言語なんだけど、
オプションで型を書いて静的型検査する言語は
どうなんだろう?

668デフォルトの名無しさん2014/09/04(木) 12:45:33.60ID:Azi8pMDh
言語について静的と言っているのか、型付けについて静的と言っているのか、曖昧な表現を使うな。
「静的言語」か「静的型付き言語」の、どっちかにしろ。

669デフォルトの名無しさん2014/09/04(木) 14:11:59.28ID:JrHf8QHD
>>667 何を言ってるんだよ TypeScriptは単なるプリプロセッサ。
出てきたJavaScriptが動的言語と言うだけの事

そんな事を言ったら色んな言語がそうできる
C++他からJavaScriptとか(Emscripten)

或は各種動的プログラミング言語のコンパイル版 例えば Python のPypiとか

670デフォルトの名無しさん2014/09/04(木) 19:50:15.73ID:pCjEdN1j
機械語レベルにまで変換したら、
すべての言語は型情報を持たない。

671デフォルトの名無しさん2014/09/04(木) 21:10:42.37ID:LeaFrZaO
>>668
スレタイ読めよ

>>670
ハードで型チェックするマシンも(過去には)あったよ
http://ja.m.wikipedia.org/wiki/LISP%E3%83%9E%E3%82%B7%E3%83%B3

672デフォルトの名無しさん2014/09/05(金) 07:01:12.38ID:vJ702ivD
>>670
byte単位、word単位、dword単位のインストラクションを持つCPUを使う限り
機械語にも型情報がある。

673デフォルトの名無しさん2014/09/05(金) 07:18:25.88ID:BiMZcw/Q
>>672
データの話だぞ

674デフォルトの名無しさん2014/09/05(金) 09:11:47.35ID:kEmuiZox
>>672
それは型じゃないな。
ただのビットサイズ

675デフォルトの名無しさん2014/09/05(金) 20:07:48.66ID:vJ702ivD
>>674
符号の有無もあるぞ。十分にデータ型の条件を満たしているが。

676デフォルトの名無しさん2014/09/05(金) 21:35:01.68ID:kEmuiZox
符号がついててもビット情報にすぎない。

677デフォルトの名無しさん2014/09/05(金) 22:22:52.52ID:vJ702ivD
メモリ上のオブジェクトのビット幅と符号等のエンコーディングだけでは型じゃないというなら、
じゃあC言語の型は型じゃないのかよw

678デフォルトの名無しさん2014/09/05(金) 22:40:11.75ID:F0C2JJRO
BCD はとうの昔に忘れ去られたんだね‥あの系のフラグの上げ下げ、一生わからないだろーなー‥

679デフォルトの名無しさん2014/09/05(金) 22:44:42.07ID:w1Ux2akp
(どうしよう「ノイマン型コンピュータの最大の弱点はデータとオペランドが
同じメモリ空間に等しく並んでいることだ」なんて基礎中の基礎の議論を
一度も見たことがないような人間がビットはデータだ型だ言っててゲロ吐きそうw)

680デフォルトの名無しさん2014/09/05(金) 23:01:28.17ID:BiMZcw/Q
>>675
メモリーのビット列見ただけで符号なのかわかるのか?

681デフォルトの名無しさん2014/09/06(土) 14:00:13.41ID:ASRhmvFn
>>672>>677
同じバイト並びがメモリにあっても、それを読む命令次第でどうとでもなるよ。知っていると思うけど。
だからC言語の型、例えば * (掛ける)を使ったコードがあったら、掛ける数の型に合わせて機械語の命令選ばないと答え無茶苦茶になっちゃうじゃん。

682デフォルトの名無しさん2014/09/06(土) 19:12:57.93ID:2eQ4pr9G
>>681
で、C言語の型はキャスト次第でどうとでもなるわけだが、
C言語の型は型ではないのかね?

683デフォルトの名無しさん2014/10/29(水) 15:25:06.29ID:jBixlkaY
ダブルディスパッチなら型そのものに振る舞いを記述する必要はない

684デフォルトの名無しさん2015/08/16(日) 17:31:30.16ID:i0k+NpdZ
ここ最近の「型」って言葉、人によって指してるものが違うよね
言葉だけひとり歩きしてしまった感じ
このスレで言われているような「型」の認識だと、旧世代的な言語を想像してしまいがちだけど
Haskellの型クラスやScalaのトレイトみたいな、アドホック多相が表現可能な静的型付けのことでしょ
今いろんな人が注目してる「型」ってのはさ

685デフォルトの名無しさん2015/08/30(日) 06:16:25.67ID:4622E1Z6
ユニバーサル多相からアドホック多相に退化して何がうれしいの?

686デフォルトの名無しさん2015/12/19(土) 13:37:57.71ID:a/6r0NiU
       r、_Lヽ___
      /       \
     /          \
    |  __    l___    l
.    |   /^-⌒ヽ、r-、/-|
    |   ヽ         |
   / ̄ヽ /  ___ヽ  r .|
  ヽ -v | l         ̄|j
   ヽ--、、ヽ    / ̄ヽ_)
       ̄ー- __/.三l  ミl
        | ⊥イ _三l   ミl
        |_ ヘ/ lヽー ァ'
        /     l  ̄
       |     /
       ヽ     、
        |  |ヽ )
        /_|/___(_
       ゝ  ヽ ___っ二l
       '┴┴┴'

687デフォルトの名無しさん2015/12/24(木) 11:22:02.41ID:oyBoIX3w
JSがCより早いとか言ってる奴はキチガイ
インタプリタがネイティブコードに勝てると思ってるの?

688uy ◆Qawu9.2l1E 2015/12/24(木) 15:41:39.04ID:CtNlYBZF
>>687
頭わるそう

689デフォルトの名無しさん2016/02/26(金) 04:19:03.89ID:lISTNpjd
このスレアホみたいに勢いあったのにあいつらどこ行ったの?

690デフォルトの名無しさん2016/02/27(土) 03:21:21.06ID:cL+mZeVp
おごれる者も久しからず
ですな

691デフォルトの名無しさん2016/02/27(土) 07:26:13.09ID:zwwRZ2hM
>681
機械語の命令は変わらないだろ?
量的な扱いが変わるだけで。

692デフォルトの名無しさん2016/05/01(日) 13:36:46.89ID:tKi6j9CT
匿名通信(Tor、i2p等)ができるファイル共有ソフトBitComet(ビットコメット)みたいな、
BitTorrentがオープンソースで開発されています

言語は何でも大丈夫だそうなので、P2P書きたい!って人居ませんか?

Covenantの作者(Lyrise)がそういう人と話したいそうなので、よろしければツイートお願いします
https://twitter.com/Lyrise_al

ちなみにオイラはCovenantの完成が待ち遠しいプログラミングできないアスペルガーw


The Covenant Project
概要

Covenantは、純粋P2Pのファイル共有ソフトです

目的

インターネットにおける権力による抑圧を排除することが最終的な目標です。 そのためにCovenantでは、中央に依存しない、高効率で検索能力の高いファイル共有の機能をユーザーに提供します

特徴

Covenant = Bittorrent + Abstract Network + DHT + (Search = WoT + PoW)

接続は抽象化されているので、I2P, Tor, TCP, Proxy, その他を利用可能です
DHTにはKademlia + コネクションプールを使用します
UPnPによってポートを解放することができますが、Port0でも利用可能です(接続数は少なくなります)
検索リクエスト、アップロード、ダウンロードなどのすべての通信はDHT的に分散され、特定のサーバーに依存しません

693デフォルトの名無しさん2016/06/02(木) 22:20:49.43ID:4UxwCTlG
廃墟になっててワロタ

694デフォルトの名無しさん2016/06/24(金) 10:36:21.01ID:QDx4C0nH
まとをえる

695デフォルトの名無しさん2016/06/27(月) 13:29:19.01ID:FW1ESxka
機械語にも型はあるに一票
特にC/C++のポインタ型なんかは、単なるビット列を、どう見なして
どう解釈するか、という側面がある
だから同じビット列であっても、キャストでどう見なすか、によって
違った演算が行われる
C/C++の型を型と認めるなら、機械語にも型はある
ただし、型の情報はオペコードに埋め込まれている
単なるビット列を何に見なして演算するかという型

696デフォルトの名無しさん2016/06/27(月) 14:11:41.06ID:FW1ESxka
で、なんでこんな変な流れになってるかちょっと考えたんだけど
型はデータが持っているものだと決めつけている人がいるんじゃないかと
動的型言語であればそうかもしれないが、静的型言語は必ずしもそうではない

かのC言語は、構造体であろうが何であろうが、実行時型情報など持ち合わせていない
C言語の型は、ビット列、メモリブロックをどう見なして解釈するかというだけであり
データ自体にそれが何であるか示す細工はない
このシンプルさが今でも使われている理由(メモリレイアウトがシンプル)
また、Javaであっても基本型のインスタンスは型情報を保持していない

ここが分かってないから、「ただのビット列だろ?型なんか無い」などと変なことを言うのではないかね

697デフォルトの名無しさん2016/09/02(金) 07:29:22.78ID:D4RF+Hn1
オブジェクトとオブジェクトを足すと何になるんだ?

698デフォルトの名無しさん2016/09/10(土) 22:17:07.13ID:vL431mpn
何型がきても動くようにしておけばいいのか

699デフォルトの名無しさん2016/11/12(土) 04:22:45.90ID:MkVBZpV9
急激に過疎ったスレとして資料価値がある
一番勢いあったのがIDなかった時代だというのが興味深い

700デフォルトの名無しさん2016/11/12(土) 12:30:37.24ID:v5MvkRT2
必死で会話続けようとしてるが誰もついてこないが滑稽
時代に取り残されたものとはこういう人のことを指すのだろう

701デフォルトの名無しさん2016/11/12(土) 21:53:02.89ID:6wPviZ3t
えええ、そういう意味なの? webサーバー=httpサーバーってことなの
「WEBサーバー」って、いろんな機能が入ったサーバーの総称かと思っていた。
メールサーバーは「メールができるだけだろう」くらいにはわかっていたが、webサーバー
ってのはメールもhttpもsmtpもできるんだろうと思ってた。

702デフォルトの名無しさん2016/11/14(月) 13:27:58.23ID:TocDLuy0
Win32APIスレに>>699をコピペしてんじゃねえぞ
わかってんだよザコ

703デフォルトの名無しさん2016/11/16(水) 12:53:15.06ID:Io8tNnmj
>>697
コレクション

704デフォルトの名無しさん2016/12/16(金) 23:05:19.41ID:sTWK9lm6
不具合が1件でもでたら、終身刑がまっている状況に耐える
プログラムをするならば、動的とかありえんよ。
出したあと修正が不要状態を維持でない世代にはわからんだろうけど。

昔の組み込みなどは一度だしたものは、ROM修正などできない。
不具合がでたら倒産する企業だってあったわけだ

705デフォルトの名無しさん2016/12/17(土) 04:46:44.16ID:+uiZTdOO
不具合を言語のせいにする会社は潰れるだろうねえ・・・
南無阿弥陀仏、南無阿弥陀仏

ちなみに昔の組み込みは静的型言語なんて使ってなかったぞ、素人さんw

706デフォルトの名無しさん2016/12/17(土) 12:32:04.41ID:s55gxQDX
>>705
> ちなみに昔の組み込みは静的型言語なんて使ってなかったぞ、素人さんw
で、何を使ってたと言うんだ? w
一応念のために言っとくけどアセンブリ言語とかの臭い答えはやめてくれよな

707デフォルトの名無しさん2016/12/17(土) 17:00:27.24ID:a9hyyPvt
Erlangは息長いな

708デフォルトの名無しさん2016/12/18(日) 02:47:05.16ID:Z1pdDHrb
ムカシハ静的デ〜もなんも実行プログラムの一部をRAMに置いて
そこをダイレクトに書き換えて、動作変えたりしてたっつーのに
なんだこのCから始めたようなにわかは。ダッセェ

709デフォルトの名無しさん2016/12/18(日) 17:39:52.33ID:r2eD1RnL
そうそう、LD命令のオペランドを変数領域に使ったりしてたな。

710デフォルトの名無しさん2016/12/18(日) 21:44:26.37ID:CFuzcgv7
得意気に自己書き換えコードを語る前にスレタイ読めよ...

711デフォルトの名無しさん2016/12/18(日) 23:39:13.31ID:Z1pdDHrb
静的言語を導入すると一個も"完成"しないからゼロは何倍してもゼロという話だろうか

712デフォルトの名無しさん2016/12/19(月) 06:44:34.57ID:s4WNerU2
「静的型付け言語」を「静的言語」とか言う奴は漏れなく論点を理解できてないバカだと思う

713デフォルトの名無しさん2016/12/19(月) 10:01:16.68ID:d4eWK33/
だが自分では何も貢献しない、それが静的厨

714デフォルトの名無しさん2016/12/19(月) 12:19:31.44ID:z9XVuDpo
コードセグメント書き換え禁止

715デフォルトの名無しさん2016/12/19(月) 12:59:27.17ID:s4WNerU2
あたかも自分は貢献しまくり
と妄想してるだけの >>713 であった...

716デフォルトの名無しさん2016/12/22(木) 09:57:27.90ID:i/pZa1E8

717デフォルトの名無しさん2017/02/28(火) 18:59:47.70ID:dw6YdHUr
ここで醜態晒してた奴らはいま次世代言語スレにいる

718デフォルトの名無しさん2017/04/15(土) 23:37:25.97ID:Af1/s0zG
http://gihyo.jp/news/report/01/rubykaigi2016/0001
本当に往生際が悪いというかなんというか、いったい何の意味があるのか
一方ロシアは鉛筆を使ったって感じ
「負けたんだよ」って誰か言ってあげて

719デフォルトの名無しさん2017/04/18(火) 11:51:46.64ID:Uw8XacGP
自分が欲しいものを作っただけなのに
いつのまにか予算獲得が目的に変わってしまって・・・

720デフォルトの名無しさん2017/04/18(火) 12:45:44.41ID:iAEcPWue
>>718
もう勝手にやってれば〜
って感じだよな...

721デフォルトの名無しさん2017/09/16(土) 18:00:37.78ID:3R6WSf4d
option explecit な感じに仕上げてくれるんなら型があってもいいな
動的言語の綴りミスはちょっと排除できそうにないからな…


lud20180121131648
このスレへの固定リンク: http://5chb.net/r/tech/1385273168/
ヒント:5chスレのurlに http://xxxx.5chb.net/xxxx のようにbを入れるだけでここでスレ保存、閲覧できます。

TOPへ TOPへ  

このエントリをはてなブックマークに追加現在登録者数177 ブックマークへ


全掲示板一覧 この掲示板へ 人気スレ | Youtube 動画 >50 >100 >200 >300 >500 >1000枚 新着画像

 ↓「静的型付け言語の潜在開発生産性は今の100倍 ×5->画像>6枚 」を見た人も見ています:
韓国が半導体の生産性を100倍高める装備を開発、「日本を超える世界最高の技術」と自信
【頑張れ】韓国が半導体の生産性を100倍高める装備を開発、「日本を超える世界最高の技術」と自信 [新種のホケモン★]
言語の違いによる生産性はほとんどない
生産性、効率性を重視した開発環境
【生産性直結】 開発用PCのスペックどれくらい?
【革新】 また日本がやりやがった!炭素繊維の生産性、一挙に10倍 新技術の開発に成功
裁量労働性でんでん て今話題の中心だけどさ そもそもなんで日本の生産性だけが低いのか考えようよ、ガキじゃねえんだからさあ!
【インフレ】 日銀「今年も、来年も物価上がらねぇよ!クソがっ!!」 生産性向上により、18年度、19年度の物価見通し引下げ
【杉田水脈】LGBTは「生産性ない」は「やまゆり園犯人と同じ」 障害者団体や難病団体が組織結成し抗議へ 今週会見(衆比中国ブ自民)★14
【杉田水脈】LGBTは「生産性ない」は「やまゆり園犯人と同じ」 障害者団体や難病団体が組織結成し抗議へ 今週会見(衆比中国ブ自民)★13
【言語】相手の口を見る赤ちゃんほど音声を模倣することを発見 −言語発達の新たな支援法の開発にむけて 京大[04/15] 
最強の静的型付け言語は何?
リファクタリングがしやすいのは、静的型付け言語 2
C言語の開発環境どんなのが良いの?
なんでもC言語で開発する奴アンチスレ
スクリプト言語と開発効率について
大規模多人数開発でも耐えられる言語に必須の機能
C++11が動的言語よりも開発効率が良くなってる…
【超高速】C/C++に代わる低級言語を開発したい 8
訃報: C 言語の開発者、デニス・リッチー氏が死去
【悲報】Pascal言語の開発者はパスカルじゃなかった
日本の女は生産性が極端に低くナマケモノていると判明 男を賃金100 アメリカ女83 日本女53
なぜプログラマの生産性は100倍も差がでるのか?
【悲報】Ada言語の開発者はエイダじゃなかった (27)
金沢大学「シェルスクリプト言語論」は偽開発技術 (187)
表計算ソフトは人類の生産性を大きく下げている
なぜ日本の労働生産性は低いのか 平均以下・G7で最下位続く
【時計】「時計」の登場によって人類の生産性は大きく向上した
【コラム】労働時間は最長、生産性は最下位=韓国[10/20]
【社会】通勤時間というムダをなくせば、ニッポンの生産性は劇的に向上する
麻生「テレワークで間違いなく生産性は上がる、コロナでウハウハな企業もある」
女性「子供を産まなければ生産性がないと言われ、産んだら入試で差別される。女性はどうしたらいいの?
経済評論家「日本は後進国になったというより元々後進国。生産性は昔から恐ろしく低く、変化してない」
日本の生産性は韓国並 つまり人口減少で日本は韓国と同じ実力に落ちる 移民反対派は反日売国奴
日本の生産性は韓国の生産性より低いんだって。これつまり韓国人は日本人より優秀ってことでいいよな????
自分中2だけど、今から言語勉強すれば稼げるかな
任天堂「今後C++は捨てJavaScriptで開発していく」 (887)
D言語 Part35
C言語なら俺に聞け 159
C言語なら俺に聞け 157
C言語なら俺に聞け 156
C言語なら俺に聞け 153
C言語なら俺に聞け 152
【MT4/MT5】 EA開発研究スレ Part89【自動売買】
次世代言語議論スレ[Go Rust Scala Haskell]第5世代
次世代言語15 Go Rust Bosque Kotlin TypeScript
次世代言語25 TypeScript Swift Go Kotlin Rust Nim
【静的型付け】Clover2 【LLVM,補完付きREPL】
D言語 Part34
言語デザイン
個人開発者の雑談スレ
C言語をやりたいんですが
糞言語が天下を取る理由
C言語なら俺に聞け 164
C言語なら俺に聞け 148
貴方のオススメの言語
C言語なら俺に聞け 143
C言語なら俺に聞け 147
C言語なら俺に聞け 142
C言語なら俺に聞け 146
Windows 10 UWPアプリ開発
スマホアプリ開発についての質問!
【言語仕様】重要語左端説
【TDD】テスト駆動開発【TestFirst】
16:27:23 up 19 days, 7:49, 0 users, load average: 44.15, 30.40, 25.74

in 0.067348957061768 sec @[email protected] on 111106