[表示 : 全て 最新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/

237 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 05:20:10.46 ID:ysM2oFx/.net]
変数もだけど、それ以上に重要なのは
関数の引数の型。

238 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 06:11:42.29 ID:uwvw3g3I.net]
>>232
一方、静的型付言語でも、型が矛盾しないからといって、正しく動くわけでもないw

239 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 06:13:31.81 ID:uwvw3g3I.net]
>>231
静的型付関数型言語で型エラーの本当の原因を探すよりも
Smalltalkで実行時エラーの本当の原因を探すほうが遥かに簡単で間違えにくい。

240 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 07:30:05.05 ID:TW2fFhuS.net]
そもそも静的型付けのヒトは、コンパイルが通れば
型の不整合によるエラーはぜったい起こらないという前提なの?
そんなちゃんとした型システムの言語、あんたら使ったことないだろ

241 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 07:51:26.41 ID:ysM2oFx/.net]
>>237
1か0じゃない。出来る限りコンパイル時に解決してくれれば
動的に解決する問題が減る。

静的型で型の不整合が起きるコードなんて限られてるんだから、
その影響範囲を小さくすることで、動的なものを静的に
解決できるように設計するんだよ。

静的に解決するのと動的に解決するのとの差は大きく、
動的だとすべての実行パスを、実際に実行しないと信頼出来ないが
静的だと実行する必要が無いから、すべての実行パスを実行するコストが0になる。

242 名前:デフォルトの名無しさん [2015/12/19(土) 09:07:04.58 ID:P/E9W26M.net]
>>210
俺もJedi-vim使ってるけどこれってどうやって配列の中身に補完かけんの?
何回やっても出来なくてPythonゴミだと思ってた

243 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:33:28.96 ID:TW2fFhuS.net]
>>238
> 1か0じゃない。

あんたらの言ってることは1か0かでしかないよ。w
ここでもすでに2つもやってる

> すべての実行パス

> コストが0

244 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:33:42.26 ID:QugsHy5+.net]
typo、typo言ってる奴が何を言ってるのか分かってきた
オブジェクト指向とか、関数型とかいう前に、構造化プログラミングが出来てないからtypoで困るのか

245 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:34:15.15 ID:u/d4wrI0.net]
>203
こいつまじでテスト書かないんだろうな。。
適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
型があってなけりゃ大概まともになんて動かんわ。

>そもそも、完璧なテストは書けるのか?って話もある。
テストでもプログラムでも「完璧な」なんてありえないんだよ。
確率や効率をいかにあげるかって話だ。

>テストを書く=時間がかかる だ。
当たり前だ。それなりの精度のもの作るならそうなる。
プロトで作るくらいの規模のもので型エラーでほとんど動かんもの作る奴なんてどっちにしろ
まともなものなんて作れんわ。



246 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:35:02.37 ID:ysM2oFx/.net]
なんで構造化プログラミングとtypoが関係有るんだ?
無関係なものを結びつけたがるよなw

まるで、そういう印象をあたえるのが目的かのようだwww

247 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:36:58.29 ID:ysM2oFx/.net]
>>242
> 適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
> 型があってなけりゃ大概まともになんて動かんわ。

わかってないねw

適当にその型のオブジェクト生成して突っ込むというテストコードを書いたからといって、
そのテストコード以外の部分には、当てはまらないんだよ。

テストコードだけがうまく動作するwww


> 型があってなけりゃ大概まともになんて動かんわ。
問題はそこからだな。まともに動かない。原因は何か?
デバッグ大変だぁw

248 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:38:45.80 ID:ysM2oFx/.net]
引数が違うっていうのは、呼び出し元と呼び出し先の
インターフェースの問題なのだから
単体テストでは見つけることが出来ないんだよ。
これは結合テストの範疇。

249 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:41:53.19 ID:TW2fFhuS.net]
結局、静的型付けのヒトの主張は

- 動的型付けで静的型付けのような完全なチェックは不可能
- 完全なチェックを妨げる言語機能は自分達には無価値
- 静的型付きはすばらしい。だからおまえ等が使わない理由が分からない。バカなの?

ただこれだけのこと

250 名前:デフォルトの名無しさん [2015/12/19(土) 09:45:53.67 ID:P/E9W26M.net]
あと補完が素晴らしい

251 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:47:41.17 ID:8SzZHE5V.net]
動的型はダックタイピングを期待して故意に複数の型を許すこともある
だから、仕組み的に静的型付けより正確な補完ができることはありえない

>>216
戻り値にShowとかCloseとかのよくあるメソッド呼ぶだけだとどうしても補完は不足する
C#とかの補完は、加不足なく表示されるのがポイントで、リファレンスを参照する手間がないのがありがたい

>>181
dynamic型とかでできるよ
でも補完が効かないし、遅くなって静的コンパイル言語の利点を潰しちゃうからあんまり使われない

252 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:49:18.71 ID:ysM2oFx/.net]
>>246
> 結局、静的型付けのヒトの主張は

なるほどw 動的型の人の主張はそういう反論しかできないから
話をこれだけにしてくださいってことだなw

253 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:50:10.54 ID:ysM2oFx/.net]
この3つ以外の点には反論しなかったなーw
面白い反応だwww

254 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:09:02.79 ID:QugsHy5+.net]
>>243
typoが発見できないような広い範囲をテストするなんてことは基本的に有り得ない

255 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:10:22.76 ID:l6AIqaac.net]
静的型のヒトはいったい何が目的なんだ?
自分が理解できない動的な考え方の排斥か?
自分たちの土俵での優位性を主張したいだけなのか?



256 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:13:36.72 ID:uwvw3g3I.net]
>>248
>動的型はダックタイピングを期待して故意に複数の型を許すこともある
>だから、仕組み的に静的型付けより正確な補完ができることはありえない

ちがうなw
特定の型の引数しか扱えないような低性能な静的型と違って、
動的型は任意の型を取る能力を持っているから、
動的型のほうがより「正確に」可能な型に関係した補完が可能なんだよ。

257 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:21:30.79 ID:8SzZHE5V.net]
>>253
え?どういう補完を指して優れてるって言ってるの?
型にしばられすぎないことが利点の動的言語で静的言語並の補完したら良さを潰してるとしか思えないんだが

258 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:26:19.12 ID:dtnFGkzr.net]
補完なんて必要ない。IDEを使っていたころ補完にばかり頼っていたらforの書き方さえ分からなくなってた。漢字と一緒で読めるのと変換するのと、漢字を書けるのとは
全く別のことだと言うことがわかったよ。それ以降、補完に頼ることを止めて以来コードの質が上がったということは言うまでもない。

259 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:51:48.54 ID:oOYHp+m9.net]
補完に助けられてコンパイラの型エラーをつぶしつぶしでないとまともにコードすら書けない、それが土方。

260 名前:デフォルトの名無しさん [2015/12/19(土) 10:56:29.09 ID:P/E9W26M.net]
補完ないとクラスのメソッド名全部覚えないといけないじゃん……

261 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:59:35.33 ID:eeFVwRM7.net]
補完とかタイポにそこまで拘る人って
一日二万行くらいコード書いてるのかな?
プログラミングの本質はタイピングじゃなくて設計なんだけどな
俺はemacsとabbrevだけで十数年食ってるよ

262 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 11:07:06.94 ID:t89iAcrU.net]
職業プログラマが2chに来て議論している...

263 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 11:07:11.55 ID:l6AIqaac.net]
>>249
読解力 and/or 論理的思考 も欠如して、かわいそうに…
ただ煽るだけしか能がないのか。そんなんでよくまともなコードを書けるな。

それともあれか、俺たちも我慢して型情報を書いて、それと引き替えに型安全と補完というメリットを得ている
お前らそれを馬鹿にして否定したり、あまつさえ俺には必要ない別のメリットを享受することなど許さないってか

264 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 12:35:58.10 ID:wzwqX1ml.net]
>>239
普通に配列の中身も補完できたよなーと思って試したらやっぱり出来たから、
そっちの環境がおかしいんじゃね?

265 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:21:35.87 ID:dNXWfsX0.net]
>>212のような機能は動的型言語が静的型言語から輸入した機能だから静的型の機能なわけだけど
動的型界隈においても静的型のメリットが評価されてきたってことでもあるが
それはともかくとして、>>212のような書き方をするとfuncはstrと派生クラスしか受け付けなくなるから
動的型の柔軟性が全く損なわれるわけだけどね
動的型言語なのにメタプログラミングもクソもないC言語レベルのコーディングを強いられるのはなんとも

一方で静的型言語で>>211のような型を指定しない書き方をするときは
ジェネリックやテンプレートを使うわけだけど、この場合コード補完こそ効かないけれど
静的に解決するので少なくとも型のミスやtypoのミスはコンパイルエラーになる
静的型言語のタイプセーフはジェネリックでも健在ということ
これは動的型言語の取ってつけたような貧弱な静的型システムでは実現できていない

しかし静的型のジェネリックは静的に解決するので動的なダックタイピングは出来ない
でも、動的なダックタイピングのような危険な行為は本当に必要なのかどうなのか
殆どの場合は静的なダックタイピングだけで十分だし、コンパイルエラーで検出できたほうが良い
動的な多態をしたければ、インターフェースを介して行ったほうが安全



266 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:24:08.37 ID:dNXWfsX0.net]
> >そもそも、完璧なテストは書けるのか?って話もある。
> テストでもプログラムでも「完璧な」なんてありえないんだよ。
> 確率や効率をいかにあげるかって話だ。

そこで静的型言語の出番
少しでもバグを減らすためには静的型言語が有用

267 名前:デフォルトの名無しさん [2015/12/19(土) 13:38:36.46 ID:a/6r0NiU.net]
静的型付け言語の潜在開発生産性は今の100倍 ×5
peace.2ch.net/test/read.cgi/tech/1385273168/

もうこっちでよくないか?

268 名前:デフォルトの名無しさん [2015/12/19(土) 13:41:55.99 ID:XdSebzRf.net]
マイナンバー制度は受け取り拒否をすることで、破壊できます。

任意である通知カードの受け取りを政府広報が受け取れとCM
https://www.youtube.com/watch?v=69cC29ZwXyw

マイナンバー通知カードを受け取ってしまっても、市町村に送り返そうhttps://www.youtube.com/watch?v=_f3I2RTC17s

311東日本大震災は人口地震テロ さゆふらっとまうんど(平塚正幸)https://m.youtube.com/watch?v=XiK9DeIMt14

マイナンバー通知カードの受け取りを拒否しようhttps://www.youtube.com/watch?v=xSt6jiOKh_I

269 名前:デフォルトの名無しさん [2015/12/19(土) 13:43:56.73 ID:a/6r0NiU.net]
>>265
拒否する理由がない。
拒否するだけじゃただの反抗期。
すごくダサい。

270 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:54:09.76 ID:dNXWfsX0.net]
ここまで来て静的型言語のメリットは散々語られているが動的型言語のメリットはあまり語られていない事実
大体は動的にクラスを書き換え出来る、とかといった危険なメリットが有るぐらい

最近は動的型言語にも静的型の機能(の中途半端なもの)が
どんどん導入されてきていることから考えると
動的型言語界隈の人にとっても静的型のメリットは大きいということ
ただし、取ってつけたようなものなので、ジェネリックが無いわけだが・・

人間は完璧じゃないのでテストも完璧とは限らない
機械的に検出できるエラーは多ければ多いほどよい
俺らはコンピュータを使って普段色々なことを自動化するためにプログラムを書いているわけだから
我が身自身のエラーの検出も出来るだけ多くコンピュータで自動化しようというのは当然の事の流れ

他人の仕事は自動化しているのに、自分たちの仕事のエラー検出を自動化しないのは変な話
動的型言語は時代に逆行しているわけだ
最先端と勘違いしていた人たち、可哀想

271 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 14:06:24.99 ID:srVmyYNw.net]
できるだけ良い設計をしたいから動は静の機能を取り込む
できるだけ早く動作を確認したいから静は動の機能を取り込む
動作の確認はどう設計されたかの確認とも言える

272 名前:デフォルトの名無しさん [2015/12/19(土) 14:08:42.41 ID:a/6r0NiU.net]
>>267
ruby on railsとか一時期流行ったよねー。
これからはlightweight languageだとか言ってね。
人力で型チェックのコード書くのだりーってことに気がついて下火になった。

273 名前:デフォルトの名無しさん [2015/12/19(土) 14:19:06.48 ID:6Pr5+KRd.net]
動的なんて局所でスクリプト組み込めばいいだろ。
全部動的言語とか初心者かよ。

274 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 14:26:41.75 ID:srVmyYNw.net]
全部静的言語も設計が甘いと仕様変更に弱いところがある
静的言語でしっかり設計して動的に仕様に追従できるようにしたいものだ

275 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 16:05:53.13 ID:QugsHy5+.net]
ここまでで分かった静的言語の利点typo



276 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 17:18:06.84 ID:TmayNbxK.net]
javascriptはエラーを放置するからストレスなくインターネットをモザイク出来るんだよ

277 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 17:40:05.11 ID:ysM2oFx/.net]
> ここまでで分かった静的言語の利点typo

意訳

静的言語の利点はtypoだけなんだって思い込みたい
だって、それ以外の利点に反論することが出来ないんだもん。

278 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 17:58:11.97 ID:xOPNzksg.net]
なぜそう解釈したいの?w

279 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:11:56.47 ID:ysM2oFx/.net]
静的言語の利点はいろいろ出てるのに、
typoしか指摘してないからだよw

280 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:44:52.65 ID:OdWxPmQd.net]
smalltalkのような動的言語もhaskellのような静的型付け関数型言語も、
設計上のトレードオフで異なる方向性に進んだだけであって、
どちらにも良いところは一杯あるよ。それで良いじゃないか。

もちろんJavaにも良いところはある。ドカタでもコードらしき物が書けるところとか。

281 名前:デフォルトの名無しさん [2015/12/19(土) 18:49:17.24 ID:a/6r0NiU.net]
>>277
Javaが普及した理由って文法がシンプルだから?

282 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:54:52.90 ID:dNXWfsX0.net]
VMのおかげ

283 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:55:37.15 ID:srVmyYNw.net]
たくさん使われたから普及しただけだし
たくさん使われたからドカタが生まれたよ

284 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:56:01.89 ID:ysM2oFx/.net]
能力が劣る人でも使える言語=その言語は優れている

こういう矛盾があるんだよなw

285 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:57:07.90 ID:ysM2oFx/.net]
>>280
その理屈だと、たくさん使われてる言語を使ってる人=ドカタってことになって
なぜドカタなのか?の理由がなくなるぞw



286 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:58:09.44 ID:ysM2oFx/.net]
自分が好きな言語が普及しないと悔しいだろう?
自分が嫌いな言語が普及すると悔しいだろ?


悔しかったら、叫べばいいんだよ。
お前のカーチャンデーべそ!

287 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 19:02:44.62 ID:99cf/LSi.net]
Windowsを使ってる奴はドカタ
それでいいじゃないか。

288 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 19:04:44.99 ID:ysM2oFx/.net]
本来のドカタの定義からは外れて、
低能な悪口になってしまってるよなw

ドカタとする理由はない。
単にドカタと呼ばれれば気分悪いだろう?
っていう気持ちだけで言ってるw

やーい、ドカタ(笑)、ドカタ(笑)
俺はドカタじゃないもん!

289 名前:デフォルトの名無しさん [2015/12/19(土) 20:54:40.24 ID:9zezTTvK.net]
>>274
静的言語の利点はコードコントラクト
monobook.org/wiki/%E5%A5%91%E7%B4%84%E3%81%AB%E3%82%88%E3%82%8B%E8%A8%AD%E8%A8%88

290 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 21:32:04.90 ID:VDGaUBLZ.net]
スレタイの議論は興味あるし読みたいのだが、
静的か動的か(やっぱり静的サイキョ)みたいな
議論は適材適所という話でしかないしどうでもいいや。

291 名前:デフォルトの名無しさん [2015/12/19(土) 22:54:29.05 ID:9zezTTvK.net]
学習コストとシングルスレッド性能でいえばオブジェクト指向
副作用の低減とマルチスレッド性能でいえば関数型

大事なのはバランス感覚。
中間が素晴らしい。

オブジェクト指向で関数型で基本静的で動的も使えunsafeも使えるC#が最強なんだな。

292 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:15:07.87 ID:0/RlvyV4.net]
Objective-Cはクソ
これだけは間違いない

293 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:15:59.92 ID:25MZJC6Y.net]
純粋関数型ってstaticオジサンと何が違うの?

294 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:46:59.99 ID:99cf/LSi.net]
C#なんてマイナー言語誰が使ってんだよ

295 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:55:31.17 ID:GM3q6wlH.net]
そらMS系とUnityユーザあたりでしょ



296 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 01:22:59.25 ID:ei3pb2OR.net]
クリスマスなのでXamarinが無料らしいぞ
realtime.search.yahoo.co.jp/search?fr=applep2&ei=utf-8&p=xamarin

297 名前:uy ◆Qawu9.2l1E [2015/12/20(日) 01:23:00.97 ID:I1JEaeeo.net]
>>288
バランスwwwwwwwwwwwwwwwww?WwWWWwWw

低能特有の曖昧でふわふわした表現ワロタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

298 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 01:27:54.27 ID:ei3pb2OR.net]
基本はキッチリカッチリだろうけJSONなんかを扱う場面ではアホくさいしバランス感覚は重要じゃね。

299 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 02:21:28.75 ID:IuSUOMsB.net]
バランス大事だよほんとw

求められてる範疇で都合

300 名前:よく使えるいいんだ。百点の理想郷なんかなんかいらんのよ

クライアントないし上長の要望に立ち向かうってこと自体、曖昧でふわふわしたところにやんわりと釘を刺し続ける行為だしね

90点もいらない、10点の仕事を最安で求められたなら10点できっちり済ませるのが土方クオリティ
[]
[ここ壊れてます]

301 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 02:24:10.18 ID:jqjYNF9z.net]
曖昧な要望で10点なんてきっかり分かるわけ無いだろ。
矛盾したこと言ってるなよ。

302 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 02:39:17.80 ID:IuSUOMsB.net]
おお済まない。クライアントじゃなく、こちらの想定上の理想を100点という意味で書いてたつもりだった。

303 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 07:15:36.12 ID:2L75ZkE+.net]
いまだに「関数型はマルチスレッド(マルチプロセス)に強い」と思い込んでいる人がいるんだな。
20年前にはそんなものは神話だということがバレているわけだが。

304 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 07:17:27.87 ID:2L75ZkE+.net]
>>286
もしかして、動的型言語では契約プログラミングができないとでも思い込んでいる?

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

いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw



306 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 08:43:25.14 ID:gr0U1KS4.net]
>>299
神話じゃなくってそれはどうすればいいのか知らないだけのことで、少なくとも完全にパッケージングされていれば
きにならないことだ

307 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 08:49:50.37 ID:fsY0id6u.net]
C# + EF使うとSQLのtypoすらほとんど無くなる
あれは感動

308 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 09:30:42.11 ID:hK9ny108.net]
なんでもそうだが、静的言語の「動的」にできるは、
動的言語でできることの「一部」ですらないまがいもん。

いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw

それでそのことを指摘すると、動的な機能なんていらないとか
typoの修正が完全じゃなくなるとか、補完の精度が落ちるとか
挙げ句の果ては、動的だと動かさないと型チェックできないとか
0か1かの極論を展開して煙に巻こうとするんだよなぁw

で、さらにそれを指摘すると、それしか反論がなかったからとか開き直る。
さんざん動的のメリットを言ってもユースケース想像できなくて頭ごなしに拒否。

ドカタは世界が狭いから、静的型だとダメだから動的に移る人もいるって
わかんないんだよね

309 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 09:35:11.37 ID:jqjYNF9z.net]
それで言い返したつもりなんだろうけど、
静的言語でなんでも動的にできるなんて言ってないがねw

逆に静的に決めることが利点なわけで、動的でやろうとは思わない。
そりゃ動的にすることも出来なくはないけど、できればやりたくない。

310 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 10:57:03.24 ID:bx1tuSu0.net]
そうなんだよね
C#には動的型言語みたいな機能のdynamicがあるけど
静的型言語を使っておいて全部の変数をdynamicで書こうとは思わないよね
キャストもなるべくしないようにすべし、というのが静的型の文化

一方で最近の動的型言語は静的型の機能を吸収していっているが
とても中途半端でジェネリックが無い
まさに、動的型の静的機能は静的型言語でできることの一部ですら無いまがい物だね

311 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:15:20.03 ID:NKmQ5FTU.net]
>>304
想像はできてない、かも分からんが
お前も言えてないよ

312 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:29:25.89 ID:OjtiikyN.net]
動的の利点はプロトを素早く書けるってところだろ。
あとは稼働を止めずにリプレースできるとか。。

静的言語の問題点は
静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。

313 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:47:57.68 ID:jqjYNF9z.net]
> あとは稼働を止めずにリプレースできるとか。。

"その方法" は、クラウドの時代になって様変わりしたけどねw

今はサーバーにログインして、一台一台ソースコードを更新なんて
危険なやり方でリプレースしたりしませんw

新しいバージョンにしたVMを作成して最終確認した後
接続先を新しいVMに切り替えるんですよ。
このやり方に動的の利点なんかありません。

314 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:49:22.93 ID:jqjYNF9z.net]
× 静的言語の問題点は静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。

○ 静的言語の問題点は静的解析してりゃテストはいらんとか言い出すんでしょう?
とかいいだす、動的馬鹿が発生し易いってことかなw

静的だとテストはいらんと言ってるのは動的厨だけ。

315 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:56:38.95 ID:ZootpjTa.net]
静的でも値に対するテストはするよな?それは型チェックで分からないからな

で、値に対するテストに通れば、型チェックも通ってると思うんだけど、
なぜか静的ドカタは動的だと型のテストコードも必要と思い込んでるみたいなんだよね
なんで?



316 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 12:49:50.49 ID:jqjYNF9z.net]
>>311
いろいろと勘違いしてるねw

重要なのは、テストも含めた開発のコスト。問題点は早く見つかる方がコストは低くなる。

そしてもう一つ。型チェックというのは正確にはインターフェースのチェック。
引数(シグネチャ)が正しいこと。クラスの継承関係などが正しいこと。

インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
(ほぼというのは意図的に静的型の型安全性を捨てた場合を除くから)

テストコードというのは、単体テストが主で、これはインターフェースのテストではない。
単体テストでインターフェースのテストを静的型と同等レベルまで動的型でテストするには
漏れがないといえるレベル(少なくともカバッジ100%)の完全なテストが必要になる。
しかし漏れがないことを証明する方法はないし、そもそもテストに問題がないことを証明する方法もない。
ちなみに、カバレッジ100%を目指せと言うと、それはやめろと言われる(笑)

テストを書くというのはコストがかかる。メンテナンスするのにもコストは掛かる。
テストを書かなくてもテストを書いたのと同じ効果が得られるのであれば、それに越したことはない
それがテストの一部であったとしても、テストのコストを下げることになる。
テストはどれだけやっても十分とはいえないんだから多ければ多いほどいい。コストがかからない方法(静的)ならなおさらだ。

動的型は完璧なテストがあれば十分だというが、そのような完璧なテストは存在しない。

TDD再考 (1) ? テストファーストとユニットテストへの死刑宣告 ( ubiteku.oinker.me/2015/07/21/tdd-is-dead-long-live-testing/ )
TDD再考 (2) ? 何故、ほとんどのユニットテストは無駄なのか? ( ubiteku.oinker.me/2015/07/27/why-most-unit-testing-is-waste/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 1 postd.cc/is-tdd-dead-part1/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 2 postd.cc/is-tdd-dead-part-2/ )

317 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 12:51:46.50 ID:akw4ximt.net]
なんだかよくわからんがVisualC#™️を信仰するおっさんが
自分がVisualC#™️推しだってことは隠して
Microsoft™️ .NETフレームワーク専用言語の
「静的言語(=Visual C#™️)は世界一なんだぞぉ!」
って主張するスレってことでいいかね?

318 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 12:55:58.25 ID:Ava23gur.net]
>>312
あ、ドカタ界隈ではインターフェースのテストはしてないんだ
なるほどね

319 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:00:45.19 ID:jqjYNF9z.net]
>>314
インターフェースのテストをしてるんだw

書いてみてよ。

320 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:05:09.23 ID:jqjYNF9z.net]
インターフェースのテストの意味がわからないお馬鹿さんがいるようなので
具体的に説明する。

foo(TypeA a, TypeB b, TypeC c) という関数がある。

この関数を使っている所がソースコードのあちこちに存在する。
静的型付けであれば、このインターフェース、つまり引数の型が違うものを
全て教えてくれる。

>>314はこのインターフェースのテストを書くらしいw
俺は実行して見る以外のやり方を知らないよ。

実行すればわかる? そうだね。”漏れがなく完璧なテストがあればね"
さあテストを書くお仕事だ。テストを書くのはコストは掛かるぞ。
テストをメンテナンスするのにもコストは掛かるぞ。

静的型付けでは、このインターフェースのテストにはコストはかからない。

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
"型がわかんねぇから食えないもの食って死ぬ"ってぇなら
「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って
答えるようにすればいいだけだよなー






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

前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