静的型付け言語の潜在開発生産性は今の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/11/25(月) 01:44:21.22
>>116
いやさ、変更するのはクラスBだよ?

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

テストを書き換えるなんて馬鹿なことはしないんだからさ。
2013/11/25(月) 01:45:06.75
>>119
納期が迫っているときは、その馬鹿でも
しないようなことをしてしまうんだよ。
人間はミスをするという前提にたとうぜ?
2013/11/25(月) 01:45:08.03
Bの要件を満たさないBを作る事がダメだと言ってるんだが
伝わってるか?
2013/11/25(月) 01:46:07.78
>>120
なら問題ないだろ
変更しても要件のテストに通らなければそれはクラスBではない
2013/11/25(月) 01:46:40.20
>>122
クラスBとクラスBのモックは
別のものだってわかってる?
今はクラスBの話はしてないの。

クラスAの単体テストの話。
クラスAから使うのはクラスBのモックであり
クラスBはでてこない。
2013/11/25(月) 01:47:48.10
>>124
クラスBのモックは当然クラスBの要件を満たしているんだろ?
何の問題があるんだよ
2013/11/25(月) 01:50:23.40
クラスAのテストは通る
クラスBのテストも通る。

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

組み合わせた時インターフェースが
一致していないことを
どうやって知ればいいの?
2013/11/25(月) 01:51:08.32
何を言ってるんだか理解できないんだが・・
2013/11/25(月) 01:54:39.05
>>125
え? まさか、
クラスBのモックを作ったら、
クラスBのモックもテスト書くの?

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

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


動的言語ってすごい二度手間・・・
2013/11/25(月) 01:54:44.66
まあ静的型でも変更を検出出来るのはメソッドのシグネチャの変更程度であって振る舞いの
変更はやはりモックを見つけ出して振る舞いを書き換える必要はあるかな。
2013/11/25(月) 02:00:38.57
>>127

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

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

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

明らかにメリットがあるよね。
さらに静的ならコードの参照箇所の追尾もしやすいし。
2013/11/25(月) 02:00:43.17
>>128
そりゃモックオブジェクトだろうが
クラスBというインターフェースを満たさないなら契約違反だろ
何言ってんだ?
2013/11/25(月) 02:02:24.81
よくテストがあれば大丈夫というが
テストがあってもダメな例があるということさ

テストに完璧は存在しない。
モアベターなのはなにか?で
考えるべきだ。
2013/11/25(月) 02:03:51.92
そりゃ型注釈がそのテストの代替だろ
もったいぶってないで最初からそう言えよ
2013/11/25(月) 02:08:28.63
型注釈ってようするに
静的型のことだから
2013/11/25(月) 02:09:58.40
動的型でも分かるシグニチャの変更と言ったら、
関数/メソッド名、引数の数、キーワード引数のキーワード、くらいかな?
2013/11/25(月) 02:11:53.91
テストに完璧は存在しない。
いやあるかも知れないが、それは途方もなく大変なものだ。
テストで重要なのはいかに質を保ったまま
テストの量を減らせるか。
その第一歩が静的型なんだ。
2013/11/25(月) 02:12:32.36
>>134
だからその静的型の事を言ってんだよ
2013/11/25(月) 02:15:01.69
JSerはCerの10倍速いから大丈夫
139デフォルトの名無しさん
垢版 |
2013/11/25(月) 02:16:24.81
erつけりゃいいと思ってやがる。日本人ならJS屋、C屋だろが。
2013/11/25(月) 02:18:50.99
JSドカタ
2013/11/25(月) 02:22:33.02
それ労働基準法違反だろ
2013/11/25(月) 02:23:39.69
JSianはCianの10倍速いから大丈夫
2013/11/25(月) 02:28:54.59
JSの大事な部分に静的ないたずらを
2013/11/25(月) 02:32:48.69
結局動的でテスト志向に徹するのが最良って結論だったな
いつもこの結論なのに何度も議論する意味あるのか?
無限ループに陥ってる可能性があるな
スレもテストするべきだな
2013/11/25(月) 02:53:43.18
JSはCの2倍速いこともあるが
まあ、ここは10倍速いといっておこう
2013/11/25(月) 02:54:18.88
>>144
お前が必死なのがよくわかった。
2013/11/25(月) 02:57:02.26
>>144
反論してた方がむしろ静的厨というオチだけどな
2013/11/25(月) 02:58:03.82
(^q^)アウアウアー
2013/11/25(月) 02:58:05.28
結局テストのことを考えたら静的のほうがいいべ
動的や面倒でたまらん。
そのくせ効果が少ない。
2013/11/25(月) 03:00:27.73
動的言語だと実装は仕様変更に強いがテストは仕様変更に弱い?

というかテストまで仕様変更に寛容だとテストとしての目的を果たさないと言うことか。
2013/11/25(月) 03:02:59.94
静的と動的の間の言語が最強
2013/11/25(月) 03:09:41.81
モックにテストを書こうと思うのですが
どうやって書けばいいのでしょうか?
2013/11/25(月) 03:10:41.98
動的言語が仕様変更に強いというのは
幻想だと思うよ。
2013/11/25(月) 03:10:42.26
>>151
オプショナルな型付けで場面に応じて静的型検証を強制できる言語が最強ということだな。

なんだGroovyじゃないか。
2013/11/25(月) 03:14:18.05
>>152
モックを使ったテストの意味を理解してないなら依存性バリバリでも
愚直にテストコード書いた方がまし

使い方という意味ならいくらでもドキュメント出てくるでしょう
2013/11/25(月) 03:14:43.77
テスト志向の徹底
これがすべて
まずデバッガを排除するべし
デバッガを見つけたら廃棄
それがソフトであってもハードであっても人間であっても
デバッガと名のつくものはすべて廃棄
2013/11/25(月) 03:15:45.63
そしてGDBに戦いを挑む>>156だった。

最終話 デバッガには勝てなかったよ
2013/11/25(月) 03:17:17.14
>>152
モックに対してテストを書くと、

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

だからテストコードにはクラス名を渡せるように作る。
2013/11/25(月) 03:17:35.61
インド系アメリカ人のデバッガさんはどうしましょう
2013/11/25(月) 03:18:40.27
第一話 GNU帝国の進撃の巨人
2013/11/25(月) 03:18:58.41
モックを使ったテストでは
テスト対象コードとそのテストの他に
モックのテストが必要になる。
2013/11/25(月) 03:19:40.14
>>159
当然廃棄
透明ゴミ袋でお願いします
生ごみだから
163デフォルトの名無しさん
垢版 |
2013/11/25(月) 03:21:14.69
テストはバグを見つけるためのものであり
デバッガとは見つけたバグを修正するもの。

この違いがわかっているのなら、
テストはデバッガの代わりにならないというのもわかるはず。
2013/11/25(月) 03:22:00.08
やべえ
眠くならない
まじやべえ
月曜日寝ないと一週間眠れないパターンに入る
これはやべえ
2013/11/25(月) 03:24:19.34
俺は深夜メンテナンスがあるから
逆に起きてないといかんのだよ。
寝れないなら俺に付き合えw
2013/11/25(月) 03:38:09.75
ウホ?
2013/11/25(月) 15:10:38.86
動的言語勢としてもJSerは隔離したほうがいいと思った
やつら純粋に頭が悪すぎる
2013/11/25(月) 15:17:41.51
>>144
> 結局動的でテスト志向に徹するのが最良

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

ま、確かにこれからは動的言語だって時代はあったよな。このグラフの2005年くらいまでか?
http://www.tiobe.com/content/paperinfo/tpci/images/history_paradigm_type%20system.png
特に阿呆なJSerども、俺らイケてるって調子に乗ってな。

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





失敗したんだよお前ら。
2013/11/25(月) 19:52:59.61
型は自転車でいえば補助輪のようなもの
プログラム初心者は型がないとプログラムを書けない
一度、型なしでプログラムを書けるようになったら
もう型なんて必要ない
2013/11/25(月) 20:06:10.43
保育園児VS小学生 ktkr
2013/11/25(月) 20:34:02.76
>>169
あほ。
型付け制限はどうみても人間以外の機械側の都合。
2013/11/25(月) 20:37:57.99
171だが。
>>1をいま読んだが。
静的型付け言語でなくともオプション指定で、代入で型が変更された時に警告やエラーを出すようにしたら発見可能だろ。
これは、静的型付け言語かどうかとは関係ないな。
2013/11/25(月) 20:38:03.76
型はヘルメットとも言い換えられる
自称上級者が「鬱陶しいから」という理由で装備せずに重大な事故を引き起こす
2013/11/25(月) 21:19:15.41
>>172
int a = 1;
a = foo(); // fooの戻り値は文字列

この場合に警告出してくれる動的型言語を紹介してください
2013/11/25(月) 21:21:18.17
強い静的型付け
176デフォルトの名無しさん
垢版 |
2013/11/25(月) 22:10:18.58
動的がーとか言ってるやつとブレーキのない俺かっけーと言ってるピスト野郎とかぶるんだが気のせい?
177デフォルトの名無しさん
垢版 |
2013/11/25(月) 22:23:59.92
入学したら補助輪を外すのは世界の常識。
いつまでも補助輪つけてたらみっともないですよ?
ゆうくんも今日からお兄ちゃんなんだから補助輪外さないとね!
2013/11/25(月) 22:54:04.02
>>172
> 静的型付け言語でなくともオプション指定で、代入で型が変更された時に警告やエラーを出すようにしたら発見可能だろ。

エラーだらけになるだろ、バカすぎ。
179デフォルトの名無しさん
垢版 |
2013/11/25(月) 23:09:15.01
デバッガを使う無能が一向に減らないのは静的のせいだったのか。
なるほどなるほど。
2013/11/25(月) 23:16:35.47
なんでデバッガを嫌うの?

コボラーと同じ臭がするね。
2013/11/25(月) 23:20:16.00
テストは予防接種
デバッガは応急措置
2013/11/25(月) 23:22:19.96
インタプリタしか使ったことがなければデバッガが無意味に思えても仕方ない
2013/11/25(月) 23:25:19.98
>>181
なるほど!

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

デバッガはその名の通り、バグを修正するもの。
テストで見つかったバグ。そのバグを直すまでに使う道具だ。
2013/11/25(月) 23:28:43.02
デバッガで応急処置をするとかよくわからんわw
応急処置をするにしても、テキストエディタでコード書くことで
応急処置するんだろ。デバッガで応急処置?どうやって?w
2013/11/25(月) 23:35:33.58
予防接種の方はよくわかるのかよw
2013/11/25(月) 23:57:58.45
ごく小規模なプログラム、個人での開発、保守不要の作り捨てのプログラムの場合は動的な方がよい
187デフォルトの名無しさん
垢版 |
2013/11/26(火) 00:03:17.45
ネットワーク分散処理、アジャイル、ハイパフォーマンスの場合は動的のほうが良い。
初心者の学習用途は静的のほうが簡単。
2013/11/26(火) 00:06:01.55
>>187のレスには突込みどころがいくつもあるけど突っ込みません
2013/11/26(火) 00:24:24.78
突っ込みどころが多すぎて突っ込ませない手法は教祖がよくつかう手法。
190デフォルトの名無しさん
垢版 |
2013/11/26(火) 00:44:53.86
突っ込んでくれないならもう書き込みません!
2013/11/26(火) 00:57:59.17
>>187
JSはCの10倍速くて初心者にも優しいよ
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の得意とするところです。
マンハッタンのエリートたちはこういったツールを使いこなし、経営に
役立てているのです。

繰り返しになりますが、静的言語でこのようなことが実現したでしょうか?
2013/11/26(火) 01:57:38.03
>>194
俺はjavaでやってるぞw
196デフォルトの名無しさん
垢版 |
2013/11/26(火) 02:08:50.96
日本でも投資顧問会社が「弊社では20世紀より伝わる信頼と実績のPerl
プログラムによってお客様の利益を保証します」ってやってるね。
2013/11/26(火) 04:26:43.22
そういう特定分野で使われている言語はその分野の実績のあるソフトウェアスタックが揃っていて
ユーザが多くノウハウも蓄積しているから使われているのであって動的静的は案外関係ないと思う。

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

「小規模なプログラム、個人での開発、保守不要の作り捨てのプログラムの場合は動的な方がよい」
ということでは無くて、単に効率考えずに言語第一で選択できる場面なんてその程度しか無いだけ。
2013/11/26(火) 06:09:57.00
>>196
金融商品取引法は、損失負担の約束や利益保証を禁止しており、これらを伴う勧誘も当然に禁止しています。
2013/11/26(火) 06:19:09.85
>>176
君、よく周囲の人達から「きみ、頭悪いね」と言われてるだろ。
2013/11/26(火) 06:20:59.47
>>195
劣化コピーでドヤるのって楽しい?
2013/11/26(火) 06:56:30.22
>>196
これはひどい
2013/11/26(火) 07:06:42.04
>>196
その利益保証しているという投資顧問の社名を教えてくれ
2013/11/26(火) 08:51:33.31
ちなみに>>193は全部つくり話ですw
204デフォルトの名無しさん
垢版 |
2013/11/26(火) 09:40:40.95
>>199
具体的な反論なくただ堕とすだけの奴は無能だってじっちゃが言ってた(´・ω・`)
2013/11/26(火) 10:39:11.85
>>204 つまり、おまえは無能ってことだなw
206デフォルトの名無しさん
垢版 |
2013/11/26(火) 10:50:15.40
>>205
ウンウン、そういう風に具体的なこと言えないで堕とすだけなんだねー。わかります(´・ω・`)
2013/11/26(火) 11:31:18.48
>>206
205は204に対する具体的な反論になっていることも理解できないのか
なんて可哀想なバカなんだろうw
2013/11/26(火) 11:32:29.63
>>204
そんな風に、具体的な反論もできずにじっちゃが言ってたとかほざいている
無能な孫をみて、さぞやじっちゃは悲しんでいるだろうよ

どうしてこんなバカな孫ができてしまったのかってねw
209デフォルトの名無しさん
垢版 |
2013/11/26(火) 12:03:36.79
>>207-208
妄想が止まらないJSerか?涙拭けよwww
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にかなわないのです。
2013/11/26(火) 20:42:13.76
ま、負けましたブヒー
2013/11/26(火) 21:51:26.20
板住民の総意としてJS最強を認めたいと思います
チャンピオン JSer には地球代表として銀河系遠征へ旅立っていただく予定です
2013/11/26(火) 23:04:58.95
>>215
おまえがJSのアンチだってことは
皆気づいていると思うよ。
いくら言い訳してもね。
217デフォルトの名無しさん
垢版 |
2013/11/26(火) 23:45:45.86
>>215
あんちだったん?
Cの二倍速いのになんで?
2013/11/26(火) 23:50:25.33
宇宙人からメッセージが一件とどいてます。

(^q^)アウアウアー
2013/11/27(水) 00:02:23.10
>>217
2倍速いっていうのはデマだよ。
ごくごく一部の例外的事象を
大げさに言ってるだけ。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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