[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/30 02:18 / Filesize : 310 KB / Number-of Response : 1019
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

オブジェクト指向は愚かな考え。この世は計算式 ★2



1 名前:デフォルトの名無しさん [2015/12/15(火) 13:23:08.06 ID:Rib62xXq.net]
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928

研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。

生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。

これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。

今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。

興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
www.jst.go.jp/pr/announce/20151120-2/#YOUGO3

前スレ
オブジェクト指向は愚かな考え。この世は計算式
peace.2ch.net/test/read.cgi/tech/1447990379/

321 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:10:54.30 ID:hK9ny108.net]
>>312
> インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。

逆だろ
静的型ではほぼ完全にチェックできることしか書けないように、
本来ソフトウエアにできることに制限を設けてるだけ

322 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:11:34.10 ID:Ava23gur.net]
>>316
ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
なるほどね

323 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:22:25.74 ID:jqjYNF9z.net]
>>317
> 静的型ではほぼ完全にチェックできることしか書けないように、
> 本来ソフトウエアにできることに制限を設けてるだけ
プログラミングの進化に伴い、なんでもできるアセンブラから制限をかけることで、
より安全なコードが書けるように進化しているという事実をどう考えてるのか?

>>318
> ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
だからいったろ?

静的型のインターフェースのテストと同等レベルのテストを行うには
完璧なテスト(カバレッジ100%)が必要。だがテストが完璧だと保証する方法はない。
テストにバグがないことを保証する方法もない。

そしてカバレッジ100%を目指せというと、それはやめとけと言われる(笑)
もちろんカバレッジ100%では完璧ではない。特に動的型付けでは
コードパスによって引数は大胆に変わる可能性があるし、コード自体も変わる可能性がある。
あるコードを実行したら、オレオレパッチで関数のシグネチャが変わることさえも。

テストはどれだけやっても確実にはならない。ソースコードの単体テストに加えて
静的型付けのコンパイルチェックがあれば、単体テストだけよりもさらに完璧になる。
鬼に金棒ってやつだ。

所詮お前は、単体テストがあれば十分だって考えてる
あまちゃんってこと。

324 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:43:19.63 ID:GK0ijEpp.net]
>>319
つまり値に対するテストはロクにやらずに
本番でエラーが出ないことをガクブルしながら祈ってるわけね
なるほどね

325 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:44:12.09 ID:dp1zfJIT.net]
動的型付けに於いて、継承は不要

326 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 14:52:31.49 ID:hK9ny108.net]
>>319
> より安全なコードが書けるように進化しているという事実をどう考えてるのか?

抽象化=制限 じゃあない。

327 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 15:56:38.30 ID:+uShK3RK.net]
JavaScriptが最強のプログラミング言語。全ての言語はJavaScriptを模範として構成されるべきである。

328 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:28:07.52 ID:bx1tuSu0.net]
>>322
自動車にも自動ブレーキがつく時代だぞ
ファンヒーターやコンロも付けっぱなし防止機能が付いているし
電車なんかの制御も安全機能だらけだろ
初めから危ない動作はしないように制御されている
セーフティーは重要

お前らの書くプログラムも明らかに矛盾した入力は受け付けないようにしているだろ
ユーザーは何を入力するか分からんからな
普段そういう安全機能がついたものを使っておいて、また、作っておいて
どうしてそういう安全に関する考えを自分の

329 名前:使う言語にまで発展させて考えられないの?
頭硬いの?どうして安全装置が無いことでドヤ顔できるの?
[]
[ここ壊れてます]



330 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:31:01.73 ID:+uShK3RK.net]
競輪選手の自転車にはブレーキついてないよ。

331 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:38:13.00 ID:bx1tuSu0.net]
あれはレース用だろ
そういう意味ではメガデモをアセンブリで作るような場合は安全は関係ないだろう

仕事で使うもの、あまたある業務用装置に
安全装置がついてないとでも言うか?
なまじ危ないことをするから安全装置だらけだぞ
ただし業務用装置にはコストの関係もあるから付いてない場合もあるが
それは劣っているというだけで、コストかけられるなら安全装置はついていたほうが良いのは当たり前
安全装置がついていないことをドヤ顔する人はいない

332 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:41:55.89 ID:+uShK3RK.net]
プロの使うコンロには安全装置ついてないよ。

333 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:46:14.53 ID:0rzi2y0b.net]
今後も0か1かの議論に固執するなら、他者の立場を理解することなんて永久にできないよ。
まあ、する気もないんだろうけど。

動的遅延結合性を大事にする人間は別に型は否定してない。
たまたま今の型システムは不自由だから、次善の策として動的型を使っているだけだ。

334 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:51:13.35 ID:bx1tuSu0.net]
お前らが普段作っている業務ソフトetcには安全装置がついてないのか?
誤った入力が有ってもそのまま実行するのか?
それか初めから誤った入力は出来ないように
無効なボタンは灰色表示にして押せないようにしているんじゃないのか?
当たり前だよな?

普段そういうものを作っておいて、作らされておいて
どうして自分の使っている言語に安全装置が足りてないことに気づかないの?

335 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:55:40.40 ID:+uShK3RK.net]
別に死ぬわけじゃないんで、プログラムに安全装置いらない人でも綱渡りするときは命綱は付けるでしょ。

336 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 17:27:57.19 ID:9YX+2XWA.net]
完璧を求めるなら依存型言語とか証明駆動開発をやってみるといいんでないか。まだ未開拓部分が多いんで人が増えると面白い。

正直、smalltalkはlispやprologと同じくらい極北なイメージがある。
Cのマクロしか知らずにマクロを批判してたらLisperに囲まれてボコボコにされるのと同じように、
Javaのオブジェクト指向しか知らずにOOPを批判してたらSmalltalkerにボコボコにされる雰囲気がある。

そして誰か、「この世は計算式」ってどういう意味なのか教えてください。
それがオブジェクト指向とどう対立するのかも分からん。

337 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 17:48:36.25 ID:m7Ghdsbn.net]
>>328
"型がわかんねぇから食えないもの食って死ぬ"ってぇなら
「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って
答えるようにすればいいだけだよなー

338 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 17:54:30.03 ID:m7Ghdsbn.net]
>>331
>そして誰か、「この世は計算式」ってどういう意味なのか教えてください。
建てた奴はオブジェクト指向vs関数型にしてやろうと思ってたけど
C#ジハードおじさんが来て「俺がいるところこそが唯一絶対の真理である!」って
やってるから皆でテキトーにそれつついて遊んでんじゃないの。

339 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 18:17:46.11 ID:noY3begs.net]
>>326
安全装置はついていれば便利なことも多いけど、必ずしもよいことばかりではないよ。
不完全な安全装置や安易な判断で設置された安全装置は、人の命を奪うことすらある。
もちろん程度問題で、すべてが悪と言う気はないよ。たぶん、それで助かる人は困る人より
はるかに多いだろうし。でも、それでいいと思う人ばかりじゃないことは理解をしないと。

現状の静的型が目的以外の使用を許さないところは、車に例えれば、安全装置のせいで
セルモーターを使った踏み切り脱出ができなくなったと嘆く教習所の教官の言葉を思い起こさせる。



340 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 18:22:06.62 ID:rV5TNjST.net]
あなたはだんだんずれていく...

341 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 19:19:03.42 ID:+uShK3RK.net]
安全装置のついた人生なんて何も面白くないからな。人生を危険に晒せだよな。

342 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 19:37:44.93 ID:Ava23gur.net]
Javaドカタはヌルポ例外を見過ぎたせいで
例外を必要以上に危険視する傾向があるという

343 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 19:39:46.66 ID:+uShK3RK.net]
素人が扱うM4ライフルとかよりMP5的なサブマシンガンのほうが殺傷率高いって事だろうな。

344 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 20:02:45.31 ID:IBlQGaN+.net]
>>304
>>なんでもそうだが、静的言語の「動的」にできるは、
>>動的言語でできることの「一部」ですらないまがいもん。
一部ですらって、何ができないの?
大方の動的言語に近いことはできるとおもってるんだけど・・・

345 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 20:32:36.37 ID:jqjYNF9z.net]
>>332
> 「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って
> 答えるようにすればいいだけだよなー

型に聞く必要があるのなら、なおのこと、
型があったほうがいいんじゃないの?w

346 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 20:52:12.77 ID:hK9ny108.net]
静的型でも構造的部分型とかならだいぶマシなんだけどね。

347 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:01:07.39 ID:ILSUiSxT.net]
>>301
>なんでもそうだが、動的言語のできるは、
>静的言語でできることの「一部」しかできない。

逆。原理的に静的型言語は動的言語の「一部」しかできない。
ばか?

348 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:05:03.98 ID:ILSUiSxT.net]
>>319
おまえは本当にばかだなあ。
静的型言語は型検査を通らないと型安全を確保できないが、
動的型言語は型検査などなくても型安全を確保できているんだよ。

349 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:11:05.33 ID:IBlQGaN+.net]
>>342
C#、VB.NETだと必要なところにだけ動的型を導入できる
TypeScriptではjavascriptに合わせて動的型にする場面も多い
Javaでもバイトコードでは対応したみたいだから、将来的に導入されるかも?
C/C++ではそんな不自然な機能には対応しない



350 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:12:53.77 ID:HeaJTNm+.net]
型が重要な箇所があるなら、その部分で型チェックすればいいじゃない

351 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:34:01.48 ID:+uShK3RK.net]
クッキーじゃないんだから型々いうなよ。日本人なら餅を食え。

352 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:37:01.46 ID:eaGEBgum.net]
煎餅食う

353 名前:デフォルトの名無しさん [2015/12/20(日) 21:59:10.73 ID:ywvYIxL3.net]
C/C++でもポインタをフルに使ったら動的と同じ処理を出来なくもないけどな

354 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 22:09:54.59 ID:akw4ximt.net]
そりゃそうだ。オブジェクト指向も関数型もアセンブラでできるんだよ!なんだから。

355 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 22:13:03.00 ID:hK9ny108.net]
チューリングの泥沼に注意せよ。それは何事も可能であり、何事も容易に非ず

356 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 22:15:16.86 ID:l3TBRkh9.net]
クッキーの型で煎餅を焼くことも出来るわけですね!

357 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:15:04.42 ID:3zlmhSVS.net]
テストのコストとかビジネスライクなこと言うなよな

358 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:24:35.18 ID:JMy37Egb.net]
このリストがマストだ

359 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:46:56.43 ID:akw4ximt.net]
エビデンスを示したまえ



360 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:05:30.65 ID:K9YQZ40/.net]
319 みたいな馬鹿のいるプロジェクトは大変だろうな。。
ことあるごとに 100% じゃねーからとか言い訳してテストしなさそうだ。

361 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:20:21.16 ID:wKrNpYiO.net]
>>342
> 逆。原理的に静的型言語は動的言語の「一部」しかできない。
> ばか?

話の流れがわかってないw

原理的に動的言語は静的型言語でわかることの「一部」しか「静的に」判断できないできない。

静的型言語はなんでもできる動的言語の危険性を抑えるために
実行時にできることが制限されている。それが安全性につながる。

362 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:21:30.20 ID:wKrNpYiO.net]
>>343
> 動的型言語は型検査などなくても型安全を確保できているんだよ。

じゃあ、TypeAしか入れられない型にTypeBを入れて
それでどうやって静的に(実行せずに)型安全性を確保しているか教えて。

実行して落ちるのは型安全じゃないからねw

363 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:23:07.92 ID:wKrNpYiO.net]
>>345
> 型が重要な箇所があるなら、その部分で型チェックすればいいじゃない

それだと、どんな型を渡しても正しく扱えることはまず無いから、
殆どの部分で型チェックが必要になるぞw

特定の型固有のメソッドを呼んだ時点で、落ちてしまう。

364 名前:デフォルトの名無しさん [2015/12/21(月) 00:48 ]
[ここ壊れてます]

365 名前::12.97 ID:wV5Rx1o6.net mailto: >>337
そのヌルポに大した危険はなくても偉い人がヌルポだと騒ぎ出すから、結局なんかしなきゃいけない。
[]
[ここ壊れてます]

366 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:59:07.29 ID:qoXEI4gu.net]
静的型のチェックの「完全さ」が本当なら、このコンパイルが通る理由が分からん

import java.util.*;

class Hoge {
 public static void main (String[] args) {
  Collection<Number> nums = new ArrayList<Number>();
  nums.add(new Integer(1));
  nums.add(new Long(1));
  Integer[] ints = nums.toArray(new Integer[nums.size()]);
  for (Integer integer : ints) {
   System.out.println(integer);
  }
 }
}

367 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 01:48:05.01 ID:B3EXamn3.net]
正直に白状するが、Javaは静的型付け言語としては貧弱で、たぶんSmallTalkerから見たらOOPの機能も貧弱。
nullはあるわisInstanceOfはあるわ後方互換性のせいで汚いメソッドがあるわで、潔癖な人にはおすすめできん。
現在に至るまでの資産が無ければ触りたくもならんです。

自分はML系の型システムでようやく静的型付けの有り難みが分かるようになった。

368 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 02:47:46.56 ID:wKrNpYiO.net]
>>360
IntegerとLongは共にNumberを継承しているから

369 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 04:14:30.72 ID:7dJZ8TPE.net]
>>357
本物のバカ?
まともな動的型言語なら、そもそもTypeAしかいれられない型なんて存在しないから。
メソッドが見つからなければ言語仕様通りに「正しく」例外を投げる。
例外ハンドラが設定されていなければ終了する。
静的型言語で例外を投げた時にハンドラがなければ終了するのと同じだ。
言語仕様通りに動作しているのだから、型安全は確保できている。

もし「実行したらメソッドが見つからないだけで落ちた」のは型安全じゃないというのなら、
https://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#.E5.AE.89.E5.85.A8.E6.80.A7
でも読んでろバカ。

わかりまちたか、おばかちゃん?
静的厨はほんと型システムに関する知識が薄いね。だからバカなんじゃないかなあ。



370 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 04:52:19.75 ID:wKrNpYiO.net]
> メソッドが見つからなければ言語仕様通りに「正しく」例外を投げる。

言語仕様通りに「正しく」例外を投げる。
だけど、これはアプリの仕様からしたらバグだ。

話の前提わかってる?
言語を作る側の話じゃなくて
言語を使ってアプリを作る側の話をしてる。

371 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 05:10:51.36 ID:ouS7hqFY.net]
イライラジャップw

372 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 05:36:24.60 ID:7dJZ8TPE.net]
>>364
例外を捕捉しないのはアプリのバグであって言語のバグじゃないよw
自分のバカさを動的型のせいにするなってww
話の前提どうこう以前に、まずは自分のバカさを自覚しろw

373 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 05:39:43.68 ID:wKrNpYiO.net]
>>366
あんたは動的言語では例外が出るといった。
実行されるまでわからないということだ。

静的言語だと静的にメソッドが無いことを調べられる。
だからアプリのバグを減らすことができる。
少なくとも実行しなくてもわかるから、
早くバグを修正できる。アプリ開発のコストが下がる。

374 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 05:45:26.20 ID:YADl95dr.net]
なんだかすげえなw

375 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:16:48.64 ID:7dJZ8TPE.net]
>>367
そうでちゅね、静的型言語ではアプリをテストせずに開発できちゃうんでちゅね、すごいでちゅねwww


バカ丸出しw

376 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:19:38.14 ID:7dJZ8TPE.net]
こういうバカな静的厨に限って、
普通にレコード定義すればいいところでMap型を使って
アプリがキーエラーで落ちるw

377 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:39:28.24 ID:G65zLFaz.net]
>>362
すげーな。
コンパイルが通るってことは、このコード、ランタイムエラー吐かずに正しく動くんだな?

378 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:50:22.82 ID:7dJZ8TPE.net]
>>367
>少なくとも実行しなくてもわかるから、
>早くバグを修正できる。アプリ開発のコストが下がる。

HM型検査を実行するのと、ほんの数個の単体テストを実行するのと、
どちらが早くバグを修正できるでしょうかね?

ばーかw

379 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:01:32.16 ID:wKrNpYiO.net]
静的言語のテストは、単体テスト+静的解析からなる。
単体テストだけの動的よりも信頼性が高い。



380 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:02:38.27 ID:wKrNpYiO.net]
単体テストは完璧ではない。全てをテストするわけではない。
単体テストでテストできなかった部分も静的解析でテストできる。
鬼に金棒

381 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:03:44.31 ID:wKrNpYiO.net]
>>371
すげーな。単体テストさえあれば、バグは一個もない。
他にテストは要らないと思ってるのかw

382 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:18:53.80 ID:7dJZ8TPE.net]
バカだなあ…
メソッドがあるかないかぐらい単体テストでC0カバレッジで十分わかることじゃないかw
本物のバカだなw

383 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:19:42.76 ID:7dJZ8TPE.net]
ねえ、静的厨ってみんなこんなバカなの?

384 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:22:03.68 ID:wKrNpYiO.net]
> メソッドがあるかないかぐらい単体テストでC0カバレッジで十分わかることじゃないかw
カバレッジ100なのかい?

d.hatena.ne.jp/ku-ma-me/20110526/p1

> ■ コードカバレッジ 100 % の難しさ
> マイクロソフトの面接試験とかいう噂の問題。のバリエーション。
>
> 水槽に 100 匹の魚がいます。98 % はグッピーです。
> では水槽にいる魚の 99 % をグッピーにするには、何匹のグッピーを水槽に足せばいいでしょう?
> 知らない人は一瞬だけ考えてみてください。
>
>
>
>
>
> 答えは「100 匹」です。直感より多いですよね?
>
> これは、コードカバレッジ 100 % の難しさに似ています。グッピーがテストされた行で、
> パーセントがその割合 (カバレッジ) だと考えてください。カバレッジが 98 % のプロジェクトがあれば、99 % にするにはおよそ倍の労力が必要なわけです。
>
> 自分でテストを書かない人は、したり顔で「C0 カバレッジは 100 % で当然 (キリッ)」などと
> 言うのですが、世の中そんなに甘くないんですよね。

385 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:24:23.17 ID:wKrNpYiO.net]
C0カバレッジを100%にしてもバグは0にはならない。

これぐらい常識だろう?

386 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:41:17.41 ID:wZBXbgJl.net]
バグがゼロになるっていう話だっけ…

387 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 08:30:07.58 ID:dc09zofZ.net]
値エラー以外でテストするのはめんどくさいな。
メソッドがあるかないかで動的に条件分岐するところのテストなんてやりたくない。

388 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 08:36:09.75 ID:dc09zofZ.net]
型エラーの「可能性」まで事前に検知したいのか、
型エラーの「発生」をその時に検知できればいい、
というスタンスの違いってことか。なら理解できる。

389 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:01:27.79 ID:7dJZ8TPE.net]
>>379
メソッドがみつからない問題はC0カバレッジ100%で解決できるよ。
実際にはメソッドを叩いてる箇所のみが問題だから、厳密にはC0カバレッジ100%いかなくても網羅できるよ。

そんなことも知らずにテスト手法を叩いてたの?ばか?



390 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:03:29.84 ID:7dJZ8TPE.net]
>>382
正確には、コンパイラによる静的型検査では「事前に」検知できないよ。
型検査という一種の証明手続きの「実行」によってしか検知できない。
にもかかわらずバカな静的型厨は「実行前」「実行前」とバカのように連呼する。
バカだから仕方ないけど、バカ丸出し。

391 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:08:42.38 ID:G+qBG4+k.net]
 
ゴキブリ韓国(ゴキ韓) 日本は国交断絶せよ

   民主主義は無理  世界一民度低い国

        goo.gl/cchGqh

 

392 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:10:23.98 ID:dc09zofZ.net]
>>384
>型検査という一種の証明手続きの「実行」

それは一般的に言うところの「コンパイル」もしくは「リンク」に相当するもの?

393 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:22:48.80 ID:+DYxsHCL.net]
動的型付けでオブジェクトを作ったら使用者がそのオブジェクトのクラスを覚えていたら手動の静的型付けなんだよね。だから忘れなければいけない。
次にそのオブジェクトを使おうとするとき、それが何か忘れてるから、そのオブジェクトがどういうメソッドを持っているかなどの
チェックをするから絶対間違えることはない。すなわち動的型付けが悪いという批判の全ては実は
手動静的型付けという名の静的型付けが悪いということだったんだね。

394 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:26:23.10 ID:K9YQZ40/.net]
>単体テストは完璧ではない。全てをテストするわけではない。
>単体テストでテストできなかった部分も静的解析でテストできる。
>鬼に金棒

正しいこと言ってるけれど、こいつは絶対テスト書いてないと思わせるところが凄いw

395 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:04:08.74 ID:XjOZdx5G.net]
動的言語でもテストすれば問題はないだろうけど、入力するときにメソッド名を確実に補完してくれたほうが書くときもテスト作る時も快適
その程度の違い
javascriptでブラウザのコンソールで補完使いながら書いてると実感する

あんまり触れられてないけど、スクリプトと比べて静的に型を解決してコンパイルする言語のほうが速度面で圧倒有利というのもでかいと思う

396 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:29:34.55 ID:7dJZ8TPE.net]
>>387
ポエムはお花畑板でどうぞ。

397 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 10:36:36.12 ID:vg4j58Ti.net]
ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

398 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:42:30.54 ID:atu8DMrc.net]
>>375
静的型付けでコンパイル通っても「型に関する」バグも有り得るって言われてるの分かってる?
馬鹿だから分かってないんだろうなぁ

399 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:51:13.05 ID:x6st9rMu.net]
動的でも問題ないって言っている人たちは
最近の動的型言語がどんどん静的型の型チェックの機能を取り入れているのは
どう考えているんだろうね
メリットがないなら導入する意味ないよね
でもどんどん導入されていっているよね
あのRubyですら3.0で静的型を導入したいと言っているよね
この事実をどうするの?



400 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:52:41.41 ID:+DYxsHCL.net]
ruby3以外に例を挙げてみろよ

401 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:05:22.17 ID:x6st9rMu.net]
qiita.com/t2y/items/f11032f98d57bc7fc5da
動的型言語の型システムしょぼー

>Python 3 の型アノテーション構文の組み合わせが Python における型付けの標準になると宣言されました。
>正直なところ、多くの理由でこれはまったく良い決断ではないと私は考えています。
>その最大の理由は Python は優れた型システムをまさに持っていないことに苦しんでいるからです。
>静的型付けが意味をなすには、型システムが良いものである必要があります。

こういったショボい使いものにならない静的型システムは
なまじ有るだけ使わないと行儀が悪いような気がするが
使いまくるとジェネリックも何もないので汎用性が落ちてCレベルのコーディングになって苦しい
使えば使うほどそういう矛盾が浮き彫りになって、もやもやしてくるだろう
この型システムしょべーって
なまじ有るから使わないと行儀が悪いような気がするってのもポイントだな
プログラムを書いてる本人が気持ち悪くなってきて、動的型言語宗教から改心する
きっかけになるのであれば、中途半端な静的型を導入することにも意味があるっちゃ意味がある

402 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:08:23.42 ID:x6st9rMu.net]
>>394
hrnabi.com/2015/05/12/7035/
>一方、最近出てきた言語であるScalaやDart、Goといったプログラミング言語は静的型付け言語に分類される。
>そして、Rubyとは色々な面で似た言語と言えるPythonでアノテーションを付ける文法の導入が検討されているなど、
>動的言語でも静的型付けの良さを取り入れる動きがあるという。

gihyo.jp/news/report/01/rubykaigi2014/0002
>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>使い方をされながらも静的な型を持っています。
>このことについて,まつもとさんは「悔しいからRubyに静的な型を導入してみようか」

ほらよ

403 名前:デフォルトの名無しさん [2015/12/21(月) 11:09:20.16 ID:wV5Rx1o6.net]
>>392
ないよ。マヌケ。
なぜなら、コンパイラによりタイプセーフを保証されているから。
まず、例を出せよ??

静的でもリフレクションとか動的機能使えるからそれ使った時だよね。
でもそれは、動的のバグだよね。

404 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:10:39.25 ID:+DYxsHCL.net]
インターネットの日本語の記事ばっか観てると馬鹿になるよ。英語の記事の誤植とか意訳ばかりだからな。最近日本語読んだのはこのスレくらいかな。

405 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:10:46.95 ID:atu8DMrc.net]
>>395
pythonの型は動的型の中では出来損ないの部類だが、そいつにはジェネリックくらいある
無知が批判するとポイントがボヤけるからやめれ

https://docs.python.org/3/library/typing.html

406 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:11:54.59 ID:atu8DMrc.net]
>>397
>>360

407 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:14:11.40 ID:x6st9rMu.net]
新しく言語を作るとき、静的型システムをどういう風に発展させていくかというのが一つの大きな見どころであり
一番手間のかかる部分だ
今は最低でも型推論とジェネリックが当たり前で、これからもっと発展していくかもしれない
タイプセーフでありながら柔軟性も持たせ、記述量も減らす方向へね
安全性と柔軟性を両立させるという、ある種矛盾しているかのような命題へのチャレンジだ

動的型言語はそれを放棄してしまっているのだから、全く面白みがないね

408 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:27:11.60 ID:+DYxsHCL.net]
日本語が不自由なようで

409 名前:デフォルトの名無しさん [2015/12/21(月) 11:27:25.95 ID:wV5Rx1o6.net]
>>400
ごめんjavaはクソだから使ってねーんだわ。
やめてくれよ、そんな欠陥言語持ち出してくるの。
c#以外の言語は静的と呼ぶほど完成度高くねーんだわ。



410 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:30:16.62 ID:dc09zofZ.net]
動的言語使うなら受け取る側で型チェックはしないなー。
型による分岐はそれが直接目的に適うならばあり。

411 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:32:36.19 ID:dc09zofZ.net]
静的言語ならC++でいいじゃんか

412 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 14:09:45.86 ID:7dJZ8TPE.net]
>>396
>>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>>使い方をされながらも

Scalaをスクリプト言語に分類するような記事を信じるバカですか?

413 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 14:29:58.27 ID:2nRQSJGH.net]
Matzが静的型の導入を〜
って、あれ10年くらい前から言ってる事が二転三転してる戯言だからスルーしたほうが良いよ

浅い信者はMatzの寝言と本音が見極められないようで

414 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 14:41:43.33 ID:E4VHpoC/.net]
実際この手の問題は多数決のようなもので未来が確定してしまう類のものでは?
動的言語が勝つなら、世界が「動的言語で作られたもので満足」するように作り替えられていく

例えば電子機器のすべてを
プログラムにバグがあろうと後から無線で修正可能なようにすればいいんだよ


動的言語は静的言語以上にバグが入ることは確実だ
しかし「バグっても問題にならない状況作り」が出来るのであればそれで良い

415 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 16:46:29.69 ID:FpThLLao.net]
>>403
> javaはクソだから

具体的に

416 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 16:56:57.21 ID:+DYxsHCL.net]
基本的に企業が作り出した言語はJavascriptを除いてすべて糞。

417 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 17:20:52.96 ID:XjOZdx5G.net]
javaは実行環境というか、バイトコードに手を加えずにジェネリックを実装したせいで、パフォーマンスやら型安全を失ってる
静的型言語とかではなく、互換性重視から生まれた言語の欠陥

418 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 17:33:12.08 ID:atu8DMrc.net]
>>403
一緒や!c#も!

ideone.com/yFcW0Y

419 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 17:40:24.04 ID:qIaAVv7y.net]
しかしホントーに"静的言語なら〜"って言ってる奴って
『プログラムは自分の身内で組んだもので完結する』前提なのな。
おれらの決めた内々の決まりを組む奴が徹底すれば問題は生じないはず!(キリッ)って…
オブジェクト指向はsmalltalkのむかしから
多くのコンピュータプログラムが相互の通信する未来ではそんなことはできないと看破して
オブジェクトが自分の属性を答える機能とかを基底クラスに組み込んでるってのに
偽オブジェクト指向たちは最初から間違ったところより始めてるせいで
いつまで経っても偽のオブジェクト指向から抜け出せない。



420 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 18:43:03.63 ID:mofV3EhK.net]
> しかしホントーに"静的言語なら〜"って言ってる奴って
> 『プログラムは自分の身内で組んだもので完結する』前提なのな。

そんな前提に立てるものを教えてほしいぐらいなんだが(笑)

他人が使るものを使うからこそ、決められたインターフェースを守り
それらを動的に書き換えないようにするんだよ。
勝手にクラスとか書き換えたら動作保証ないからな。
バージョンアップしたらすぐに動かなくなる。

自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから
動的である必要はない。

421 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 19:24:39.60 ID:qIaAVv7y.net]
>自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから
メンテ地獄は楽しいか。
つべがflvやめてhtml5にしたり通信先が小変更する度に
システムフル再コンパイルしてそうだなおまえら。






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<310KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef