トップページ⇒tech
1002コメント412KB

オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2015/12/15(火) 13:23:08.06ID:Rib62xXq
オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。
https://twitter.com/ProgrammingMono/status/665702678006140928

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

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

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

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

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

前スレ
オブジェクト指向は愚かな考え。この世は計算式
http://peace.2ch.net/test/read.cgi/tech/1447990379/
0002デフォルトの名無しさん2015/12/15(火) 13:23:59.26ID:Rib62xXq
前スレ
オブジェクト指向は愚かな考え。この世は計算式
http://peace.2ch.net/test/read.cgi/tech/1447990379/
0003デフォルトの名無しさん2015/12/15(火) 13:24:32.37ID:Rib62xXq
このスレ
オブジェクト指向は愚かな考え。この世は計算式 ★2
http://peace.2ch.net/test/read.cgi/tech/1450153388/
0004デフォルトの名無しさん2015/12/15(火) 13:24:54.73ID:Ln94sVRZ
>>1の参考
http://mysearch.ritlweb.com/search/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%AF%E6%84%9A%E3%81%8B%E3%81%AA%E8%80%83%E3%81%88
0005デフォルトの名無しさん2015/12/16(水) 01:25:36.21ID:017P2otv
結局、Smalltalkが最強という結論でFA?
0006デフォルトの名無しさん2015/12/16(水) 01:35:54.96ID:R3uzXom/
前スレ>>999

意味がないってことはないですよ。

動的遅延結合をモットーとするSmalltalkでは、コンパイル時間を短くするのはもちろん、
コンパイルが通らないエラーを含めてソフトウェアが動作しなくなる時間をできるだけ無くす必要があるので。

それに、エラーがでなくなるように修正するのと、スタブが生じないように修正するのとで
本質は変わらんでしょう。

あとSmalltalkはコンパイル処理も自身のプロセス内で動的に行なうしくみなので
「コンパイル時に」と「動的に」は矛盾しません。
0007デフォルトの名無しさん2015/12/16(水) 01:55:51.94ID:mFWCIMTJ
>>5
個人的には、Smalltalkerが度々ハッスルして他の人たちが辟易してる構図に見える
系譜としてのobj-cと成功例としてのiOSが引き合いに出されると、だいたい客観的な反論が出されてSmalltalkerが黙るという構図じゃなかったかな。
0008Objective-Cの人2015/12/16(水) 02:15:28.68ID:hnVuOn0r
? Objective-Cのメッセージングはsmalltalk由来というか
smalltalkそのまんまとは聞いてるが、俺はsmalltalk自体は
弄ったことないから知らんよ?
そもそも、Objective-Cの話に対してまともなレスは一個も返ってきてなくて
「だからマカーは!」だけしか言ってこないから(ああ、知らんのだ…)で流してるし。
0009Objective-Cの人2015/12/16(水) 02:34:00.21ID:hnVuOn0r
動的静的もなんも、そもそもObjective-Cはインスタンスの管理に
参照カウント形式(呼んだらインスタンス内のカウンタに+1終わったら-1、0になったら誰も使ってないから解放するシステム)
を使用してるから、コンパイル時に「ここで呼んで、ここで解放して」と
ひととおりオブジェクトの生成消滅を追跡してエラー探してエラーメッセージ吐くから
定期的に言い出してる「動的だとエラーがわかんねぇだろ!」って謎の思い込み発言の意味がわからんし。

動的だと単に動的にインスタンスが他でなんとかしてる可能性があるから
コンパイル時の「ここで呼んでも居ねぇんじゃね?」が静的だと致命的エラーになるところが単に
「ここで呼んでも居ない可能性あるよね?」ってワーニングになるだけだし
ワーニング読んでプログラマーが自分で内容判断するだけだろ。
0010デフォルトの名無しさん2015/12/16(水) 02:38:50.14ID:mFWCIMTJ
いやすまん。火種蒔きたい訳ではないのでその認識に訂正、謝罪の上で同調しておきます

個人的には、ゴールのない議論になっちゃってるのを最優先な問題、課題として提示したいw

前スレの流れだと、「ruby派ぶっ倒してやったわ」とか「ほら関数型が最強だろボケが」とか個々人が全く別種の達成感を感じているのではなかろうか。
0011Objective-Cの人2015/12/16(水) 02:44:48.13ID:hnVuOn0r
もひとつ、考え方が違うなーと思ったのはむかし分野違いのプログラマーと話してて

え?Objective-Cのインスタンスに定義されてないメッセージ(メソッド)が送られた時?
単純にインスタンスは"そんな命令は知りません"ってただ無視してふつうに動作続けるよ?

って言ったらそれじゃバグが見つからない!とか謎の発言をして固まってたこと。
いや、やれ!って命令して反応返らないんだからすぐわかるだろうそれ。
0012デフォルトの名無しさん2015/12/16(水) 02:53:40.58ID:UIvh2pdg
>ただ無視してふつうに動作続けるよ?
この説明だとダメだろ
0013Objective-Cの人2015/12/16(水) 02:54:06.15ID:hnVuOn0r
>>10
だいたい途中からわざと議論にならない妙なこと書いてスレ伸ばしてる子がいるから
そういう期間は眺めてる。動的静的の理解がおかしいしあれは絡みようがない。
0014uy ◆Qawu9.2l1E 2015/12/16(水) 03:55:57.26ID:1rtzXOsl
またrubyが勝ってしまったわけね

そうだと思った
0015デフォルトの名無しさん2015/12/16(水) 04:26:33.21ID:SEae+C8u
>>11
> いや、やれ!って命令して反応返らないんだからすぐわかるだろうそれ。

え? 「やれ!って命令して反応返らなかったら」わかると思ってるの?
反応が返るかどうかを、誰が調べてるんだよ?

命令が正しく実行されたか調べるコードを書かないと
行けないってことで、それ面倒なだけだし、それを忘れると
バグの元になるじゃん。
0016デフォルトの名無しさん2015/12/16(水) 04:27:05.13ID:SEae+C8u
それに副作用を持つ関数は、戻り値voidだったりするしさ。
>>11はちょっと想像力が足りないみたい。
0017デフォルトの名無しさん2015/12/16(水) 06:03:16.00ID:dzfkExTj
>>7
だーかーらー、
おまえはまず自分の無知を自覚しろってw
0018uy ◆Qawu9.2l1E 2015/12/16(水) 06:55:38.58ID:L2apS2Qu
vim scriptもメソッド見つからない時って強引に走らせ続けるんだっけ?
0019デフォルトの名無しさん2015/12/16(水) 08:12:16.73ID:FTfTBK6H
オブジェクト指向は愚かな考え。
0020デフォルトの名無しさん2015/12/16(水) 08:29:39.35ID:7uqbUkJH
Objective-cの記述量ほんと嫌い
0021デフォルトの名無しさん2015/12/16(水) 08:41:12.56ID:fgV80IeN
>>15
まぁ普通はそうおもうわな
んで、Obj-Cの人としては「どうすれば良いのか知ってる」からそれが分かるといってるようだから
まずはそれ書いたらいいんじゃねーかな
たぶん、例外ははけるけど基本はそれはcatchするのではなくfinally的なレベルではけるよってだけ
だと思うけど
0022デフォルトの名無しさん2015/12/16(水) 08:43:16.65ID:fgV80IeN
まぁでも「呼び出したのに呼ばれてないけどその後も続行する」なんてインタプリタ言語以外で
そんな動きされんの迷惑だわ
0023デフォルトの名無しさん2015/12/16(水) 08:56:33.85ID:SEae+C8u
例外が出てるのにそれを握りつぶすのは悪いやり方だけど、
メソッドがなくても動くのは、、例外が出てるのにそれを
例外を握りつぶすのと同じ。

プログラムは書いたとおりに動くが、
書いた通りに動くことが、正解じゃない。

仕様通りに動くことが正解であり、動いているからって
仕様通りの動きでなければ、それはバグ。
言っとくけど、仕様っていうのは言語仕様じゃないぞ。
アプリの仕様だ。
0024デフォルトの名無しさん2015/12/16(水) 09:05:12.96ID:fgV80IeN
>>23
せやね
0025デフォルトの名無しさん2015/12/16(水) 09:28:12.04ID:AqyIi4A0
ソースコードが仕様書で、それが停止せずに動くなら
バグなんて存在しないって立場だろ
Obj-Cで素人アプリ作ってる奴ならそれでも良いじゃん
0026デフォルトの名無しさん2015/12/16(水) 11:03:03.62ID:Ulco0f/2
仕様以外の動きはバグ?
すごいよな
そうなるとOS仕様+アプリ仕様を精査しなければ
0027デフォルトの名無しさん2015/12/16(水) 11:17:18.63ID:eqSTcsSB
レールから外れて脱線するかもしれないが、そのままどこかへ走り去る心配はない列車と、
どこ行くかわからない自動車の違いみたいなものかと想像していたよ。
0028unrecognized selector to instance2015/12/16(水) 11:42:30.84ID:etXhzojx
>>11
Objective-Cは、存在しないメソッド呼んだら落ちるがな。
いったいどんな環境の話だよ。
0029デフォルトの名無しさん2015/12/16(水) 11:43:49.25ID:v8L8DVNA
人間に飛べと命令すると地球が爆発する言語
0030デフォルトの名無しさん2015/12/16(水) 12:09:43.96ID:SEae+C8u
>>29
それ何のたとえ?w
センスが無いね
0031デフォルトの名無しさん2015/12/16(水) 14:50:10.61ID:nvDs2EAX
オブジェクト指向って肥大化すると
あるインスタンスのメソッドを使う際に、
そのインスタンスのプロパティのプロパティのプロパティのプロパティのプロパティが影響したりしてデバッグが大変だったりするよね。
0032デフォルトの名無しさん2015/12/16(水) 14:53:17.28ID:eqSTcsSB
ひでぶ
0033デフォルトの名無しさん2015/12/16(水) 14:56:01.55ID:etXhzojx
>>31
そうならないように作る必要があるね。
その例だと、そのプロパティのオブジェクトに外からは直接さわれないようにするとか、
1階層で断ち切る必要がある。
0034デフォルトの名無しさん2015/12/16(水) 21:06:02.90ID:uNQnNzO9
>>28
Obj-Cの動作だと存在しないのを呼んだから落ちるんじゃなくて
存在しないメソッドを呼んでも応答しないから
返り値がnullで"呼んだクラスが"処理できなくて落ちてるんだろう
0035デフォルトの名無しさん2015/12/16(水) 21:43:54.69ID:u9Ia4Qec
Obj-Cは良いところはCの上位互換なところで、
悪いところはSmalltalkに影響を受けてるところ
0036デフォルトの名無しさん2015/12/16(水) 22:06:58.45ID:6HcXJhed
それが本当ならSwiftを「Objective-c without c」と喧伝してたApple最悪やな
0037デフォルトの名無しさん2015/12/16(水) 22:47:07.63ID:DoMVf2Rv
Smalltalkerには皆こっぴどく虐められてんだな…
0038デフォルトの名無しさん2015/12/16(水) 23:01:47.94ID:etXhzojx
>>34
メッセージの送信側オブジェクトには処理は戻らない。
ランタイムが例外投げてcatchされなければ終了。
0039デフォルトの名無しさん2015/12/16(水) 23:14:18.71ID:zYgiBPWI
「静的型付け」言語しか知らない奴に、「動的型付け」言語の話をしたって分かるはずがないじゃん

例えるなら、野球の試合をサッカーのルールで解説するようなもんだ
0040デフォルトの名無しさん2015/12/17(木) 00:44:59.09ID:gwKZvSId
>>38
それはC++やJavaやRubyを含めた
オブジェクト指向言語の一般的な動きだ。

Objective-C特有の話をしなさいよ
0041デフォルトの名無しさん2015/12/17(木) 00:45:32.82ID:Kcx2I8yF
>>40
同じだっつうのw
0042デフォルトの名無しさん2015/12/17(木) 00:46:15.76ID:gwKZvSId
>>39
> 「静的型付け」言語しか知らない奴に、「動的型付け」言語の話をしたって分かるはずがないじゃん

なるほど。動的型付け言語の話しか知らない奴に
静的型付けの話をしてもわからないっていいたいわけだなw
0043デフォルトの名無しさん2015/12/17(木) 00:46:47.66ID:gwKZvSId
>>41
Objective-Cは他のオブジェクト指向言語よりも凄いって話じゃなかったのか?
0044デフォルトの名無しさん2015/12/17(木) 00:47:42.76ID:Kcx2I8yF
>>43
誰が凄いって言ったんだ?
0045デフォルトの名無しさん2015/12/17(木) 01:01:08.15ID:9iUNReL+
>>33
プロパティとなっているオブジェクトの状態の数だけテストしないとならないのは辛い
0046デフォルトの名無しさん2015/12/17(木) 01:03:31.69ID:Kcx2I8yF
>>45
オブジェクトごとにテストすれば良くね?
0047デフォルトの名無しさん2015/12/17(木) 01:04:21.44ID:Z0rIjNHq
「動的型付け」言語を使ってる人は大概「静的型付け」言語をつかったことがあるだろ。
その逆は真ならざるが
0048デフォルトの名無しさん2015/12/17(木) 01:04:26.64ID:gwKZvSId
>>45
関数型であっても、データはデータベースに保存するし、
そのデータ=オブジェクトの状態なので結局テストが大変なのは同じ。
0049デフォルトの名無しさん2015/12/17(木) 01:07:33.17ID:9iUNReL+
>>35-36
1986年
ブラッド・コックスとトム・ラブがObjective-Cを作り、「この言語はCのメモリ安全性とSmalltalkの高速性を合わせたものだ」と宣言する。
現代の歴史家は2人が失読症ではないかと疑っている。

Smalltalkが人気なさすぎたのでCのライブラリを使えるようにしたんだろうな。
0050デフォルトの名無しさん2015/12/17(木) 01:10:40.77ID:9iUNReL+
>>43
Cのライブラリを使えるようにした代償としてCの悪い部分も取り込んでしまった。
Mac使ってるプログラマも増えたことだしCを切り捨て理想型に戻りましょうという事だろうね。
0051デフォルトの名無しさん2015/12/17(木) 01:11:22.61ID:9iUNReL+
>>48
確かに
0052デフォルトの名無しさん2015/12/17(木) 01:19:27.22ID:sxT+KKiu
>>50
Smalltalk成分のほうが微塵も残ってない件
0053デフォルトの名無しさん2015/12/17(木) 01:27:57.55ID:aNh2v0Tb
>>49
ネタ文章を説明なく貼るのよそうぜw
0054デフォルトの名無しさん2015/12/17(木) 01:44:31.81ID:9iUNReL+
>>52
メソッド名の長さは残ってるだろ
0055デフォルトの名無しさん2015/12/17(木) 02:30:11.56ID:FyqR5n97
>>53
>>49は「不完全にしておよそ正しくないプログラミング言語小史」でググりゃ全文みつかると思うけど
プログラマーなら誰でもわかる微妙に間違った説明をしてクスリとさせるのが目的のプログラマージョーク…
…っぽいナニカ(の一部)なんだよな。

1983 – ビョーン・ストラウストラップが耳にしたことのあるあらゆるものをCに詰め込んでC++を作る。
出来上がった言語はあまりに複雑であったため、プログラムは未来に送って人工知能Skynetでコンパイルする必要があった。
莫大なビルド時間を要したのである。Skynetがそのようなサービスを行っている動機は明らかでないが、
未来のスポークスパーソンは、「そんなこと気にしなくていいぜ、ベイビー」と、オーストリア訛りのある単調な口調で答えている。
Skynetは体裁を装ったバッファオーバーランに過ぎないのではないかと予想する向きもある。

とか、どー反応すりゃいいのかわからんレベルの中から抜き出して>>49張られても、アンサイクロペディアを
ソースにしてコピペしてくる奴みてるみたいなもんで…
0056デフォルトの名無しさん2015/12/17(木) 03:26:39.43ID:ICf+3Sgs
どの方法がいいか試作し研究する視点を与えてくれる(C++系の)オブジェクト指向は素晴らしい
スモールトーク系のオブジェクト指向はゴミ
0057デフォルトの名無しさん2015/12/17(木) 07:11:27.89ID:zm+NMMJN
「C++の設計と進化」を知ろうとしない人にはC++はクソ機能満載言語にしか見えないし
http://www.amazon.co.jp/dp/4797328541

「Smalltalkの底を流れる設計思想」がわからんうちはSmalltalkもクソ引き籠もり環境にしか見えない
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
0058デフォルトの名無しさん2015/12/17(木) 08:11:57.67ID:z5VUeQHx
>>42
よく気がついたな
その通りだ

>>47
君は、>>42と違って、ちょっと程度が低いようだね
0059デフォルトの名無しさん2015/12/17(木) 12:01:03.95ID:BgKGnUH4
>>55
だいたいあってるじゃん
0060デフォルトの名無しさん2015/12/17(木) 12:02:01.19ID:xmtXrbaY
>>58
ぼくちゃん、ようちでちゅね
0061デフォルトの名無しさん2015/12/17(木) 14:14:39.01ID:Gw5Yeqz+
>>58
よかったでちゅね〜
0062デフォルトの名無しさん2015/12/17(木) 14:54:32.35ID:BhqjqAUv
それで、具体的にどうやるのか書かないの?これ
反応が返らないって画面眺めてりゃわかんの?


11 名前:Objective-Cの人 [sage] :2015/12/16(水) 02:44:48.13 ID:hnVuOn0r
もひとつ、考え方が違うなーと思ったのはむかし分野違いのプログラマーと話してて

え?Objective-Cのインスタンスに定義されてないメッセージ(メソッド)が送られた時?
単純にインスタンスは"そんな命令は知りません"ってただ無視してふつうに動作続けるよ?

って言ったらそれじゃバグが見つからない!とか謎の発言をして固まってたこと。
いや、やれ!って命令して反応返らないんだからすぐわかるだろうそれ。
0063デフォルトの名無しさん2015/12/17(木) 14:56:10.94ID:BhqjqAUv
もしかして、これ?

9 名前:Objective-Cの人 [sage] :2015/12/16(水) 02:34:00.21 ID:hnVuOn0r
動的静的もなんも、そもそもObjective-Cはインスタンスの管理に
参照カウント形式(呼んだらインスタンス内のカウンタに+1終わったら-1、0になったら誰も使ってないから解放するシステム)
を使用してるから、コンパイル時に「ここで呼んで、ここで解放して」と
ひととおりオブジェクトの生成消滅を追跡してエラー探してエラーメッセージ吐くから
定期的に言い出してる「動的だとエラーがわかんねぇだろ!」って謎の思い込み発言の意味がわからんし。

動的だと単に動的にインスタンスが他でなんとかしてる可能性があるから
コンパイル時の「ここで呼んでも居ねぇんじゃね?」が静的だと致命的エラーになるところが単に
「ここで呼んでも居ない可能性あるよね?」ってワーニングになるだけだし
ワーニング読んでプログラマーが自分で内容判断するだけだろ。
0064デフォルトの名無しさん2015/12/17(木) 15:06:11.33ID:Kcx2I8yF
>>62
だから、>>11は間違ってるの。ランタイムが例外を投げます。
あとObj-Cは、受信側のインスタンスが無い場合(nil)は、何も起きない事が保証されてる。
0065デフォルトの名無しさん2015/12/17(木) 16:01:30.96ID:jTZkH1z9
それ便利なこともあるけど、JavaやCならセグフォで気づけるバグも気付けなかったりするよね
かといって毎回ifでチェックするか?っていう
やっぱりMaybeが至高
0066デフォルトの名無しさん2015/12/17(木) 16:09:57.39ID:uUwsUuhV
>>64
あぁ、なんだ
やっぱ例外になるんか、分かったありがと
0067デフォルトの名無しさん2015/12/17(木) 16:11:43.69ID:s5+Nn1UK
ポインターがnullptrのときとそれ以外のときってことのことを難しく言ってるだけだよな。
0068デフォルトの名無しさん2015/12/17(木) 21:02:07.06ID:TfrmoFMM
>>63
> コンパイル時の「ここで呼んでも居ねぇんじゃね?」が静的だと致命的エラーになるところが単に
> 「ここで呼んでも居ない可能性あるよね?」ってワーニングになるだけだし
> ワーニング読んでプログラマーが自分で内容判断するだけだろ。

え? 静的にエラーになる(動的でもエラーになる)場所が
実機で稼働させたとき、ワーニングが出て
リリース後に、プログラマが飛んでいって修正するの?

なんで静的に見つけられなかったのさ?w
0069デフォルトの名無しさん2015/12/17(木) 23:39:08.84ID:LWfeKYVc
動的だろうと、静的だろうと、エラーはエラーだろ
0070デフォルトの名無しさん2015/12/18(金) 00:08:54.65ID:OvzannQF
開発中のコンパイル段階でエラーが見つかるのと
本番稼働中にエラーが見つかるのでは
影響の大きさが違いすぎるだろ?
0071デフォルトの名無しさん2015/12/18(金) 00:13:02.71ID:k38RLsj8
>>70
ん?
コンパイルが通ったら本番稼働中にエラーは出ないのか?
ずいぶんお気楽な開発してるなぁ...
0072デフォルトの名無しさん2015/12/18(金) 00:17:03.49ID:OvzannQF
>>71
誰もそんな事は言っていないので、
そう読めてしまうなら小学校から国語をやり直すことを勧める
0073デフォルトの名無しさん2015/12/18(金) 00:38:27.47ID:k38RLsj8
>>72
> 開発中のコンパイル段階でエラーが見つかるのと
> 本番稼働中にエラーが見つかるのでは
> 影響の大きさが違いすぎるだろ?

どこに、コンパイル後の事が書いてるんだ?
そのまま、テストせずに本番稼働させているようにしか読めないのだが?

まさか、エスパーモードで、コンパイルの後はテストだろって事なのか?
テストするのは、動的言語でも静的言語でもやることだし、それ以前に、どこまで行っても、エラーはエラーだ
0074デフォルトの名無しさん2015/12/18(金) 01:00:19.51ID:4xDk7IkO
え?
ビルドしたら自動でテスト走るだろ?
0075デフォルトの名無しさん2015/12/18(金) 01:15:10.90ID:7Erpdy7Z
>>70
そのとおりだな。

>>71
> コンパイルが通ったら本番稼働中にエラーは出ないのか?
今話しているのは、他のエラーのことじゃない。
型が違うことで発生するエラーの話。

>>74
> ビルドしたら自動でテスト走るだろ?
テストっていうのはプログラマが書くんだぞ。
小人さんが勝手にテストを書いてくれるわけじゃない。

そりゃ完璧なテストがあれば、バグは一つもでることはないだろうよw

動的言語は特に、実行時に型が判断されるので、
実行するまでバグがわからない。
0076デフォルトの名無しさん2015/12/18(金) 01:24:34.58ID:7Erpdy7Z
>>73
> テストするのは、動的言語でも静的言語でもやることだし、

確かにテストするのは、動的言語でも静的言語でもやることだが、完璧なテストっていうのはない。
テストが足りずにバグが入り込んでしまうミスをしてしまうことは有るわけで
安全策は二重、三重とある方がいい。


そもそも、他の型を入れた時にエラーになるか?っていうテストなんて書いているか?
書いていないだろう? それはテストしてないってことだよ。
引数に想定以外の型が入ることがありえないテストも書いてるわけないな。
ソフトウェアの全部の部分を調べて、引数すべてが正しいことを調べる方法がない。

やってるのは、ある引数や変数に想定通りの型を入れた時に想定通りの動きをする。
というテストだけだろう? 不正な型がはいることがないことを保証するテストは書けないんだよ。
0077デフォルトの名無しさん2015/12/18(金) 01:40:18.80ID:VJfWDduP
>>75
> テストっていうのはプログラマが書くんだぞ。
> 小人さんが勝手にテストを書いてくれるわけじゃない。

前時代的なやり方に囚われているお前が>>74におちょくられてるだけだよwww
0078デフォルトの名無しさん2015/12/18(金) 01:42:15.57ID:7Erpdy7Z
>>77
? 何か反論を期待したのだが、
それで何が前時代的なのかの説明すらないのか?
少しは内容があることを言えよw
0079デフォルトの名無しさん2015/12/18(金) 02:36:11.32ID:7Erpdy7Z
やっぱりだんまりかw

ついでだからもう一回重要な点を言っておくか。

変数に想定した型のみが入るようにすることはできる。
変数ごとに、この型以外が入ってきたらエラーにすればいいだけ。
それを動的型でやるのはナンセンスだよなw

で、もっと重要なのは、変数に想定した型以外を入れようとする行為(バグ)
例えば、関数の引数に(バグ)で不正な型を入れて呼び出すコード。
これを書いてしまうことをテストで検出することは出来ない。

ややこしいだろうから簡潔に言うと

・不正な型が入ってきたらエラーにする・・・可能
・不正な型を入れようとする・・・動的では検出不可能

動的型では入ってきた後にエラーにすることはできるが、入れようとすることを防ぐことは出来ない。
そしてこれをテストで検出することも出来ない。別の言い方をすると前者は単体テストの範疇だが、
後者は結合テストの範疇だからだ。結合テストの一部を型システムはテストできる。
0080デフォルトの名無しさん2015/12/18(金) 02:51:26.86ID:M9A20KwY
全部が全部、引数の型が限定されてるわけでも無いしな。
汎用型を使うものもある。要はvoid*だ。
0081デフォルトの名無しさん2015/12/18(金) 03:08:35.75ID:Y0b/Op+d
>>78
システムを修正するたびに手作業でテストしてんの?ビルド時に自動テストしろよwww
0082デフォルトの名無しさん2015/12/18(金) 03:13:52.32ID:7Erpdy7Z
>>81
え? 誰が自動テストしてないって言ってるんだ?

ん〜?もしかして自動テストのテスト内容っていうのは
プログラマが書いているって言うことの意味がわかってないの?

そう考えると辻褄が合うからそうなんだろうな。
0083uy ◆Qawu9.2l1E 2015/12/18(金) 04:10:27.24ID:LS3OaJlp
ジャップイライラw
0084デフォルトの名無しさん2015/12/18(金) 05:19:05.90ID:tbWYHKuT
>>79
おまえは本当にバカだなあw
静的型だろうが動的型だろうが、テストは「入ってきた後に」検出するものだw

この業界から足洗ったほうがいいんじゃないの?周囲が迷惑してるよ?
0085デフォルトの名無しさん2015/12/18(金) 05:20:50.65ID:tbWYHKuT
>>76
>そもそも、他の型を入れた時にエラーになるか?っていうテストなんて書いているか?

書かないバカはお前だけだw
0086デフォルトの名無しさん2015/12/18(金) 05:28:11.93ID:7Erpdy7Z
> 静的型だろうが動的型だろうが、テストは「入ってきた後に」検出するものだw

だからいくらテストをやった所で、
入ってくる前のテストにはならんってことなんだが?

静的型だと、そもそも入らなくしてくれる。
0087デフォルトの名無しさん2015/12/18(金) 05:29:44.45ID:7Erpdy7Z
>>85
> 書かないバカはお前だけだw

じゃあオープンソースのコードで、他の型を入れた時に
エラーになるかをテストしているものを簡単に探しだせそうだね。

証拠として見せてみてよ。
早くお願いねーw
0088デフォルトの名無しさん2015/12/18(金) 05:49:57.26ID:7Erpdy7Z
またトンズラかなw
0089デフォルトの名無しさん2015/12/18(金) 07:48:33.02ID:i13cEfwD
テストの自動化ってテストの「実行」だけのことなのか。つまんねえ話だな。
0090デフォルトの名無しさん2015/12/18(金) 07:51:24.94ID:HeX3slfp
>>84
79の言いたいことは、静的な型ならコンパイルエラーになる、だよ。
0091デフォルトの名無しさん2015/12/18(金) 08:09:44.92ID:i13cEfwD
コンパイルエラーは尊い
0092デフォルトの名無しさん2015/12/18(金) 08:13:50.45ID:k38RLsj8
動的な型付けの利点は、型によらず全ての処理を等しく実行出来ること
0093デフォルトの名無しさん2015/12/18(金) 08:37:24.37ID:jlCbbYEY
>>92
すまん、テンプレートでよくね?
0094デフォルトの名無しさん2015/12/18(金) 08:51:10.88ID:5/sh8mBQ
動的ならあたりまえにできることをテンプレートとか始めたんで
それは流れ逆じゃね?
0095デフォルトの名無しさん2015/12/18(金) 08:51:52.19ID:gk961EIG
お前らってホントにお前らだな。
0096デフォルトの名無しさん2015/12/18(金) 09:24:29.93ID:P6kUmH+Q
どっちでもいいよ。
なんか自分が糞なコードしか書けないのを言語のせいにしてるだけにしか思えんが。
糞コードが発生する理由は動的とか静的とかそんな理由ではないことにいい加減気づいて欲しい。
0097デフォルトの名無しさん2015/12/18(金) 09:59:10.68ID:SRTwlmwS
静的型言語なら、最近はIDEが偉いから
型をミスっていたり、メソッド名をtypoしていたりしたら
コンパイルするまでもなく、打ち込んだ段階でIDEが教えてくれるよ
0098デフォルトの名無しさん2015/12/18(金) 10:37:33.92ID:i13cEfwD
>>96
というより動的だと良コードを書いてもテストの負担が小さくならないと想像しているのでは?
それが正しいかどうかは知らん。
0099デフォルトの名無しさん2015/12/18(金) 10:42:44.66ID:Lwsmy/pl
>>96
一人でやってんならそれでいいんでない
チームでやるなら言語選定は重要だろ
0100デフォルトの名無しさん2015/12/18(金) 10:42:51.99ID:tbWYHKuT
>>96
>糞コードが発生する理由は動的とか静的とかそんな理由ではないことにいい加減気づいて欲しい。

ほんとそれ。マトモな奴は両方できる。
静的型言語エバンジェリストでもちゃんとした人は動的言語の経験があるし
動的言語エバンジェリストでもちゃんとした人は静的型言語の経験がある。
0101デフォルトの名無しさん2015/12/18(金) 11:08:16.14ID:c5QtSCUZ
マトモじゃない奴がいる環境ではどうすればいいですか?
■ このスレッドは過去ログ倉庫に格納されています