静的型付け言語の潜在開発生産性は今の100倍 ×5

■ このスレッドは過去ログ倉庫に格納されています
2013/11/24(日) 15:06:08.63
int a = 1;
a = "a"; ← エラーになる。
型がない言語ではできない芸当です。(爆笑)


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

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

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

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

前スレ
静的型付け言語の潜在開発生産性は今の100倍 ×4
http://toro.2ch.net/test/read.cgi/tech/1383572174/
2013/12/01(日) 19:08:15.68
>>404
BookIndex型に整数代入したらエラーになるんじゃないの?
2013/12/01(日) 19:08:33.10
というわけで>>407はウソツキであることが確定w
2013/12/01(日) 19:09:36.58
>>411
動的言語ではエラーになりませんよね。

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

困りますよねw
2013/12/01(日) 19:10:15.71
>>410
それはお前が今勝手にそういう糞コードにしただけで、
具体的に「index」という変数名で「章番号」を保持していたというコードの実例を出してみろw
2013/12/01(日) 19:10:24.20
型があるとこういう、明らかにエラーになるべき所を
しっかり教えてくれるんだよね。
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)

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

コメントが無いコードを書きたいの? それとも理解しやすいコードを書きたいの?
2013/12/01(日) 19:11:44.25
>>413
バカだなあ。例外というものを知らないらしいw

ねえ、静的型プログラマって、みんな413みたいなキチガイ人間なの?バカなの?糞バグ製造機なの?
2013/12/01(日) 19:13:16.65
>>415
おまえが出した例はあまりにもアホすぎて
やはり静的型付言語はプログラミング初心者が使うものなんだな
ということをより強く確信しましたww
2013/12/01(日) 19:13:55.84
>>417
例外は発生させる分コストがかかるじゃん
2013/12/01(日) 19:13:57.19
>>416
お前さ、比較実験の原則しらねーの?

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

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

どっちが説明的かって?
上に決まってるじゃねーか。
2013/12/01(日) 19:14:51.71
>>419
(動的に発生する)例外は発生させる分コストがかかるじゃん

それがどうかしましたか?
2013/12/01(日) 19:15:11.92
そもそも無駄にコメント書くやつがアホ
関数の説明ぐらいでいいんだよ
2013/12/01(日) 19:18:00.23
>>422
変数全てに、それがどんな型で
どんな値が入るかをコメントで書くべきだ。

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

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

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

0ならわかると言っているならば、
0以外ならわからないとお前は認めてるのも同然なんだよ。
2013/12/01(日) 19:20:38.91
>>423
「型がない」なんて言ってる時点で、型に関する知識が初心者レベルなのが丸わかりw
静的型言語を使っているからバカになったのか、
それともバカだから静的型言語を使っているのか。
どっちにせよ、静的厨はバカw
2013/12/01(日) 19:21:20.90
>>425
しかし、具体的に出された例には「0」と書いてあって、
それを章番号かもしれないなんてキチガイ丸出しのバカがおまえ。
2013/12/01(日) 19:26:27.05
>>420
ちゃんと読む。下の二つでは大差があるのかと説いたわけで。
> var index = 0 // 0..(users.length -1)
> int index = 0; // 0..(users.length -1)

大差あるの?
2013/12/01(日) 19:28:39.41
>>426
変数に型がないのは間違ってないだろ?
2013/12/01(日) 19:29:10.53
>>427
へぇ、じゃあ、1って書いてあったら
どうすんの?
2013/12/01(日) 19:30:26.99
>>416
ローカル変数までコメント付けるなんて条件のほうが非現実的

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

ごく一般的なプログラムのコメント濃度だと静的型のほうが説明的になるのは間違いない
432デフォルトの名無しさん
垢版 |
2013/12/01(日) 19:33:02.41
つまり、コメントを書かないですむということは、その程度の手続きの羅列
ってことなのですよ。
ほとんどのアルゴリズムは本一冊で足りないくらいの説明が必要ですからね。
つまり、馬鹿が講釈たれてる図式なんですよ。
手続きの羅列で満足なら自分の中で満足するべきで、「手続きの羅列以外
認めてはならない」みたいな変な啓蒙しちゃいけないんですよ。
2013/12/01(日) 19:35:08.96
静的型だって型が文脈的に自明なところは型推論で型宣言をすっ飛ばす流れだから似たようなもの。
動的型だってまずは文脈的にわかりにくかったり特に大事な部分からコメントをつける。
434デフォルトの名無しさん
垢版 |
2013/12/01(日) 19:38:32.31
つまりですね、JS以外はみんな糞言語ってことです。
動的とか静的なんて関係ないんです。
2013/12/01(日) 19:49:24.64
JSはともかく動的静的関係ないのはそうかな。
どちらでも配慮すれば理解しやすいコードは書けるし手間も大差ない。
手間に差があるとしても型付け以外の要素が大きい気がする。
436デフォルトの名無しさん
垢版 |
2013/12/01(日) 19:51:51.32
コメントを書くなと言ってた馬鹿は静的がその点で優れていると
述べてましたよね?
2013/12/01(日) 20:11:30.16
>>432
>ほとんどのアルゴリズムは本一冊で足りないくらいの説明が必要ですからね。
完全にアホバカだな。
ほとんどのアルゴリズムは1〜2ページだろ。
438デフォルトの名無しさん
垢版 |
2013/12/01(日) 20:16:12.93
>>432はバカでわからず屋だから本一冊の説明が必要なのかもしれんね。
2013/12/01(日) 20:41:00.79
>>417
例外発生させてそのあとどうするの?
バグってるので、アップデートしてね ってか? (w
2013/12/01(日) 20:52:20.05
>>436
> コメントを書くなと言ってた

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

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

ムキーッって

自分でかってに苛ついてるだろ。
馬鹿じゃん?
2013/12/01(日) 20:54:09.77
コメントがなくても読みやすいコードを書け

↓こういう話を

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

↑こういう風に解釈するバカが居るんですよね。
2013/12/01(日) 21:07:53.21
どうせ初心者にありがちな
一行ごとにコメント書くようなやつなんだろ。
変数の定義のたびに、何とかを入れた変数とか
書いてるんだぜ。
2013/12/01(日) 21:18:38.26
自然言語でまともに会話できない醜態をさらしつつ
コメントについて議論のような何かをするスレ
2013/12/01(日) 21:19:25.55
誰もコメントを否定してないのに
なんか勘違いして一人で熱くなってるんだろw
2013/12/01(日) 22:11:37.78
>>433
静的ならIDEが型を解決できるから補完したりマウスのせて型見たりできるし
446デフォルトの名無しさん
垢版 |
2013/12/01(日) 22:34:03.86
>>437
手続きの羅列をアルゴリズムと呼ぶのは、小学生までです。
2013/12/01(日) 22:38:14.16
普通のソフトウェア開発の場合、
アルゴリズムが全体の8割以上を占める。

○か×か
2013/12/01(日) 22:38:56.16
アルゴリズムってのは普通ライブラリ化するだろ?
2013/12/01(日) 22:40:07.48
手続きの羅列程度のものに
コメントが必要な時点で
おかしいんだよな。
2013/12/01(日) 22:47:40.04
人間は計算が苦手だったから徹底的に最適化しないと計算できなかったが
コンピュータは小学生並みの最適化でも計算できてしまうことが多い
2013/12/01(日) 22:55:05.79
型推論っていうのは、
動的型付けの型なし変数と違う。

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

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

これは動的型付けに比べて明らかなメリット。
2013/12/01(日) 23:00:01.30
Haskellが <T> を書かなくていいのは書かなくても補完できるからなんだよな
逆に <T> を書かされる言語は、補完できてないから書かされている
2013/12/01(日) 23:01:05.70
そんな当たり前のことを今さら説明して何がしたいん?
2013/12/01(日) 23:09:14.99
>>452の間違い訂正

Haskellが <T> を書かなくていいのは書かなくても推論できるからなんだよな
逆に <T> を書かされる言語は、推論できてないから書かされている
2013/12/01(日) 23:10:09.36
Haskellが優れているのは分かるんだけど、
仕事で実際に使うというのは現実的には難しい

一方、選びやすいJavaやC#は冗長すぎてゴミなので
RubyやPythonの方がマシってことになる
難しいもんだね
2013/12/01(日) 23:10:40.93
別に冗長過ぎないと思うが?
457デフォルトの名無しさん
垢版 |
2013/12/01(日) 23:11:49.65
コメントを書かずに済むのは手続きの羅列だから。
2013/12/01(日) 23:13:17.58
型推論とテンプレート(ジェネリック)は別なんじゃ…
2013/12/01(日) 23:13:37.81
JavaやC#が冗長といっても
開発時間に影響するほどのもんでもないしな。

100行未満の小さいプログラムでなら
簡単に作れるかもしれないけど、
大規模アプリになると、そんな些細な冗長性は
その他の本質なコードによって相対的に見えなくなる。
460デフォルトの名無しさん
垢版 |
2013/12/01(日) 23:15:24.24
「コメントを書かなくていいようなコードを書きなさい」

手続きの羅列に限定しなさいって意味。
まじマシンの下僕。
スカイネットに寝返った人類の敵。
しかもなんか偉そうに述べてくるのがまじわからん。
2013/12/01(日) 23:15:32.38
>>457
お前、何回同じアルゴリズムを
再発明してるんだ?w

一度書いたアルゴリズムは、もう二度と書かなくていいように
ライブラリにしないとダメだよ。
2013/12/01(日) 23:17:00.28
聞いた話だが、
コボラーとか同じマッチング処理(アルゴリズム)を
何回も再発明しているらしい。

普通に考えれば、リスト1とリスト2を
与えれば、結果を出す関数を作ればいいだけなのにね。
463デフォルトの名無しさん
垢版 |
2013/12/01(日) 23:21:13.26
型があればコメントを書かなくていいとか言ってなかったっけ?
2013/12/01(日) 23:21:51.46
複雑なものを書くのが俺の仕事だみたいな感じなんだろうね。
それを効率化して簡単に読みやすくかけるようにしたら、
それの仕事を取るなって怒るのだろう。
まあ老害ってやつだね。
2013/12/01(日) 23:24:13.66
>>463
スレに記録残ってるんだから、
そのリンクを示せばいいだけだろ。
見つかんないから、そうやってとぼけてるんだってわかるけどねw

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

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

まさか、これを見て、コメント書かなくていいなんて
思わないよね?
2013/12/01(日) 23:26:03.52
きっと、コメントに型情報だけを書いていた人なのだろう。
だから型情報をコメントに書かなくていいと言ったら
コメントに書く情報がなくなるじゃないかって思う。
2013/12/01(日) 23:29:38.68
文字列しか型のないtcl最強だな
2013/12/01(日) 23:32:02.97
動的型付けのメリットってなんかあるの?
2013/12/01(日) 23:32:59.02
短いプログラムに限って
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
コメントがなくてもわかるような
コードを書けってきかない?
2013/12/02(月) 00:15:37.24
コードで説明できないからコメントで説明するんだろうね
プログラマとはプロのグラマーだよね?
プロと名乗る以上はコードできちんと説明できないといけないね
コメントを書いていいのはアマチュアまで
2013/12/02(月) 00:21:24.45
「コメント」の指す意味が交錯してる

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

前者を省くのはプロでも不可能
2013/12/02(月) 00:26:00.91
コメントは核と同程度の危険性を持つ
出来るだけ書かないほうがいい
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
つまり、手続きの羅列以外書かないことが重要なのです。
2013/12/02(月) 03:15:34.36
>>460
何をやっているのか関数名として書くだけ。
2013/12/02(月) 06:57:20.60
コメントに似てる方が負けというルールなら
宣言を書くよりテストを書く方が勝つんだろうな
2013/12/02(月) 06:59:56.61
コメント無くてもわかるようなコードにコメント付記するのが最強。
2013/12/02(月) 07:18:17.44
冗長でも元気イッパイなのはよいことだ。
2013/12/02(月) 09:56:46.84
失業しますた
485デフォルトの名無しさん
垢版 |
2013/12/02(月) 13:40:47.97
JSerなら引く手数多だから大丈夫でしょう
486デフォルトの名無しさん
垢版 |
2013/12/02(月) 18:06:44.57
コメントがなくてもわかるような
コードを書けってきかない?
コメント書くのは素人
2013/12/02(月) 18:08:29.61
ドキュメンテーションコメントは書きますし
普通のコメントはたまにしか書かないけど
2013/12/02(月) 18:12:13.92
初心者はコメント書いても仕方ないんじゃないかな?
2013/12/02(月) 18:14:09.37
そうか、静的型付言語なんか使っていると
動的型付言語には型がないなんて
バカ丸出しのキチガイ発言をしてしまうほど
頭が悪くなってしまうんだな…かわいそうに…
2013/12/02(月) 18:19:55.08
補助輪説何度見ても吹くわ〜
491デフォルトの名無しさん
垢版 |
2013/12/02(月) 18:26:03.51
コメントを有料化すればコード品質が上がるかもしれんね
コメントを書いたら一行当たり1万円の罰金とかね
2013/12/02(月) 18:27:26.91
コメントのない保守不能なプログラムができるだけだと思う
493デフォルトの名無しさん
垢版 |
2013/12/02(月) 19:05:57.10
ネーミングマジックで何とかならないの?
保守不能というとイメージ悪いから、コードダンジョン〜魔界の迷宮III〜
とか名づければかっこよく見えるでしょ。
2013/12/02(月) 19:16:36.18
スパゲティパーソン〜人と家族の物語〜
495デフォルトの名無しさん
垢版 |
2013/12/02(月) 19:29:48.61
ネーミングマジックの効果って結構あると思うんだよ。
例えば帰宅して「今日はコードダンジョンやっつけてきたよ」っていうでしょ。
すると「お疲れ様、楽しかった?」ってなるでしょ。
意図せず余裕のある大人を演出できてるコレ。

これが「保守不能と格闘してきた↓」だと、奥さんもかわいそうだよね。
2013/12/02(月) 20:25:57.33
地下牢をかっこいいと思うのは中二マジックでしょ
ネガティブな名前がかっこいい
2013/12/02(月) 20:59:08.77
どうでも良い。
2013/12/02(月) 22:02:06.71
怠惰は美徳だとかいうアイデアは
100倍じゃなくて-1倍にする習慣がないと思いつかない
2013/12/03(火) 09:27:16.52
JavaとかC#で馬鹿みたいに長い関数名付けてる事があるけど、
あれなら関数名を短くしてコメント書いた方がマシでしょ
2013/12/03(火) 09:51:15.71
関数名が長かろうが短かろうが公開メンバのコメントはつける
2013/12/03(火) 12:08:55.73
>>499
問題はそういうことじゃない
そう思う人と思わない人が混在してごちゃごちゃになること
動的言語ではそういう事態が起きやすい
502デフォルトの名無しさん
垢版 |
2013/12/03(火) 12:12:26.48
俺は俺のためにコメントつけてるぞ。
幾ら短い綺麗なコード書いたって何処かしらでどうしてこういうコードにしたかっていうのを書いときたいのがある。
コメントじゃなくて別ドキュメントでも構わんけど。
2013/12/03(火) 12:27:08.83
グローバル関数名が長いのはどの言語でも同じ
問題はローカル関数が良いと思う人と思わない人が混在すること
2013/12/03(火) 19:15:55.38
動的言語で50文字超える関数名とか見たことないけどな
2013/12/03(火) 19:21:05.37
静的でも50文字越えなんて見たことない
2013/12/03(火) 19:26:56.24
http://www.pushing-pixels.org/2007/11/07/and-the-longest-jre-class-name-is.html
2013/12/03(火) 19:29:30.15
20文字でも長すぎる
2013/12/03(火) 19:39:15.72
>>506
InternalFrameInternalFrameTitlePaneInternalFrameTitlePaneMaximizeButtonWindowNotFocusedState

これもう静的言語だから長くなるとかそういう問題じゃないだろ
2013/12/03(火) 19:51:56.88
InternalFrameが何回あるんだ?
2013/12/03(火) 20:11:50.28
これに匹敵する長さの関数名を
標準ライブラリに含む
動的言語ってあるの?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況