やっぱり動的言語では安全なソフトは作れない
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2011/05/22(日) 03:22:26.61安全で堅牢、バグのないソフトは作れる
0002デフォルトの名無しさん
2011/05/22(日) 03:35:31.37俺は天才だ。って言って、誰が信じると思うの?
そんなこともわからないぐらいに>>1は池沼なのかな?
0003デフォルトの名無しさん
2011/05/22(日) 07:34:05.10言語訓練のために立てたものです。
アイと研究員とのやり取りに利用するスレッドなので、
関係者以外は書きこまないで下さい。
京都大学霊長類研究所
0004デフォルトの名無しさん
2011/05/22(日) 08:07:12.29まさかC言語で「安全」とか思ってないよね?
0005デフォルトの名無しさん
2011/05/22(日) 08:37:53.05スレ乱立を見過ごしてるの?
独自の板立ててそっちで実験するとかできないの?
いまどき、主婦だって専用の板ぐらい立てられるぞ。
「関係者以外は書きこまないで下さい。」とか、何
お前らがエラソーに仕切ってんだよ、ハゲ!
糞スレをあちこちにポンポン乱立されちゃ迷惑なんだよ。
ったく、京都大学霊長類研究所は能無しの集まりかよ!
0006デフォルトの名無しさん
2011/05/22(日) 08:51:00.92unsafeな関数がゴロゴロしてる
0007デフォルトの名無しさん
2011/05/22(日) 09:16:30.990008デフォルトの名無しさん
2011/05/22(日) 09:19:50.880009デフォルトの名無しさん
2011/05/22(日) 09:28:27.14むしろC言語って実質的には型がない言語じゃね?
0010デフォルトの名無しさん
2011/05/22(日) 09:32:36.490011デフォルトの名無しさん
2011/05/22(日) 09:58:19.50単にそういう書き方を許さない空気があるだけで、空気読まずに書こうと思えば書ける。
つまり、安全を機械的にチェックしているというのは半分嘘で、
実は人間のモラルに頼っている部分が大きい。
0012デフォルトの名無しさん
2011/05/22(日) 09:59:14.490013デフォルトの名無しさん
2011/05/22(日) 10:48:55.630014デフォルトの名無しさん
2011/05/22(日) 10:50:23.60/;,, : : : //::/: : 7l,;:≠-::/: : / .l::|: : :l: :|;,,;!: : :!l: : :i: : : :|: : ::、 / ヽ
/ヽヽ: ://: :!:,X~::|: /;,,;,/: :/ リ!: ::/ノ l`ヽl !: : |: : : :l: :l: リ / そ そ お \
/: : ヽヾ/: : l/::l |/|||llllヾ,、 / |: :/ , -==、 l\:::|: : : :|i: | / う う 前 |
. /: : : //ヾ ; :|!: イ、||ll|||||::|| ノノ イ|||||||ヾ、 |: ::|!: : イ: ::|/ な 思 が
/: : ://: : :ヽソ::ヽl |{ i||ll"ン ´ i| l|||l"l `|: /|: : /'!/l ん う
∠: : : ~: : : : : : : :丶ゝ-―- , ー=z_ソ |/ ハメ;, :: ::|. だ ん
i|::ハ: : : : : : : : : : : 、ヘヘヘヘ 、 ヘヘヘヘヘ /: : : : : \,|. ろ な
|!l |: : : : : : : : :、: ::\ 、-―-, / : : :丶;,,;,:ミヽ う ら
丶: :ハ、lヽ: :ヽ: : ::\__ `~ " /: : ト; lヽ) ゝ
レ `| `、l`、>=ニ´ , _´ : :} ` /
,,、r"^~´"''''"t-`r、 _ -、 ´ヽノ \ノ / お ・
,;'~ _r-- 、__ ~f、_>'、_ | で 前 ・
f~ ,;" ~"t___ ミ、 ^'t | は ん ・
," ,~ ヾ~'-、__ ミ_ξ丶 | な 中 ・
;' ,イ .. ヽ_ ヾ、0ヽ丶 l /
( ;":: |: :: .. .`, ヾ 丶 ! \____/
;;;; :: 入:: :: :: l`ー-、 )l ヾ 丶
"~、ソ:: :い:: : \_ ノ , ヾ 丶
0015デフォルトの名無しさん
2011/05/22(日) 11:12:28.800016デフォルトの名無しさん
2011/05/22(日) 11:22:35.30C++自体必要無いという意見は認める。
0017デフォルトの名無しさん
2011/05/22(日) 11:29:18.28マルチパラダイムを存続させたいならCとC++の間にもうひとつ言語用意すべき。
0018デフォルトの名無しさん
2011/05/22(日) 11:34:21.090019デフォルトの名無しさん
2011/05/22(日) 11:34:36.000020デフォルトの名無しさん
2011/05/22(日) 11:42:53.190021デフォルトの名無しさん
2011/05/22(日) 11:43:37.660022デフォルトの名無しさん
2011/05/22(日) 11:53:44.470023デフォルトの名無しさん
2011/05/22(日) 12:08:29.690024デフォルトの名無しさん
2011/05/22(日) 12:31:26.770025デフォルトの名無しさん
2011/05/22(日) 13:05:02.460026デフォルトの名無しさん
2011/05/22(日) 13:09:09.15C++もテンプレート使いまくると動的型みたいな状態になるな
0027デフォルトの名無しさん
2011/05/22(日) 13:17:29.480028デフォルトの名無しさん
2011/05/22(日) 14:00:02.33ならんが?w
それに使い方の問題は関係ない。
静的言語であっても動的言語みたいなことはできる。
だが逆に動的言語では静的言語みたいなことはできない。
0029デフォルトの名無しさん
2011/05/22(日) 14:15:59.090030デフォルトの名無しさん
2011/05/22(日) 14:57:37.69できるよ。
0031デフォルトの名無しさん
2011/05/22(日) 15:02:38.600032デフォルトの名無しさん
2011/05/22(日) 15:34:20.63オプションを両建てできてもあんまり嬉しくない
0033デフォルトの名無しさん
2011/05/22(日) 15:54:51.48関数の引数や返り値の型だとか変数の型をアノテーションで宣言できるし、
モジュールロード時に型検査することもできる。
で、動的言語だと何ができないの?
0034デフォルトの名無しさん
2011/05/22(日) 15:58:21.420035デフォルトの名無しさん
2011/05/22(日) 15:59:37.920036デフォルトの名無しさん
2011/05/22(日) 16:02:52.01どうして>>33を読んで静的チェックが可能だと理解できないの?
0037デフォルトの名無しさん
2011/05/22(日) 16:08:12.04それができるのはなんて言語だよw
0038デフォルトの名無しさん
2011/05/22(日) 16:10:03.14実行前に検査できるのが重要であって。
0039デフォルトの名無しさん
2011/05/22(日) 16:10:54.110040デフォルトの名無しさん
2011/05/22(日) 16:11:37.14どうして>>33を読んで実行前にチェックが可能だと理解できないの? 馬鹿だから?
0041デフォルトの名無しさん
2011/05/22(日) 16:21:49.660042デフォルトの名無しさん
2011/05/22(日) 16:23:43.44簡潔じゃない言語で動的な仕組みが使えても嬉しくないなあ
0043デフォルトの名無しさん
2011/05/22(日) 16:23:58.450044デフォルトの名無しさん
2011/05/22(日) 16:25:20.670045デフォルトの名無しさん
2011/05/22(日) 16:31:54.16だからなんて言語か言えって(爆笑)
怖いのか? お前の脳内言語か?
0046デフォルトの名無しさん
2011/05/22(日) 16:32:07.690047デフォルトの名無しさん
2011/05/22(日) 16:34:22.410048デフォルトの名無しさん
2011/05/22(日) 16:37:39.74書いてあるのが読めないの?気が狂ってるの?
さっさと病院いけやキチガイ
0049デフォルトの名無しさん
2011/05/22(日) 16:38:02.43それよりOS/9とかまだあるの?
0050デフォルトの名無しさん
2011/05/22(日) 16:39:06.52変えようと思ったとき使用箇所が何百とあったとしても、
すべてを安全に変更できるし、エディタの力を借りればほんの数秒で終わる作業だが
動的言語ではそれができない。
0051デフォルトの名無しさん
2011/05/22(日) 16:41:28.81静的言語にしようという流れがある。
やっぱりそれは動的言語では安全なソフトを作れないからなのだろう。
0052デフォルトの名無しさん
2011/05/22(日) 16:43:35.87そのコードを使うのがお前一人なら、という前提が抜けてるぞ。
ま、ホビーストならそれでいいんじゃないか?
しかしチームで開発するようになったら、そんなナイーブな発想じゃだめだ。
ましてや分散レポジトリを使うような開発になったら、そんな変更を勝手にやるカスは追い出されるぞ。
0053デフォルトの名無しさん
2011/05/22(日) 16:43:56.17浸透すればするほど大規模に使おうとして静的になっていく。
0054デフォルトの名無しさん
2011/05/22(日) 16:44:28.70違うよ。
動的言語はメタ機能が充実していることが多いから、
その気になれば静的言語の機能を取り入れることが可能なだけ。
0055デフォルトの名無しさん
2011/05/22(日) 16:46:58.3250じゃないが大規模で動的言語自体危険なんだが。
変更の必要性を否定したら硬直化して一定規模以上で破綻するし
変更に安全性が保証されなかったらこれまた破綻する。
0056デフォルトの名無しさん
2011/05/22(日) 16:47:50.840057デフォルトの名無しさん
2011/05/22(日) 16:49:05.26勝手にやるわけ無いだろ?
それは許可を得るというチーム開発の
マナーの話であって、
メソッド名を簡単に変えるという技術的な話とは一切関係ない
0058デフォルトの名無しさん
2011/05/22(日) 16:50:59.32> 動的言語はメタ機能が充実していることが多いから、
動的言語のメタ機能っていうのは、実行時にしかわからんメタ機能だ。
実行前に分かるメタ機能 = 静的言語が備えている機能
0059デフォルトの名無しさん
2011/05/22(日) 16:52:48.800060デフォルトの名無しさん
2011/05/22(日) 16:54:51.86安全は規模に反比例する
大規模に使おうとする流れは危険だ
0061デフォルトの名無しさん
2011/05/22(日) 16:57:45.37grep使うしか無いからな。
だから、英単語一つのメソッドは作らないとか
メソッドの頭にはクラス名を付けるのような
コード規約がよく使われている。
たとえば、obj.get_customer や obj.custmer_getだと
grepで関係ないものまで引っかかったりしないでしょ?
0062デフォルトの名無しさん
2011/05/22(日) 16:58:56.48おまえは最新OSもGNUも使うな
0063デフォルトの名無しさん
2011/05/22(日) 17:13:08.44異論は認めない
0064デフォルトの名無しさん
2011/05/22(日) 17:23:29.570065デフォルトの名無しさん
2011/05/22(日) 17:27:17.540066デフォルトの名無しさん
2011/05/22(日) 17:36:19.14○つか、
0067デフォルトの名無しさん
2011/05/22(日) 17:41:39.08あるメソッドがどこで使われてるか実行時にしか分からないのは、
静的言語でもポリモーフィズムとかを使ったら一緒
変数の型付けの問題じゃない
0068デフォルトの名無しさん
2011/05/22(日) 17:48:46.93> あるメソッドがどこで使われてるか実行時にしか分からないのは、
> 静的言語でもポリモーフィズムとかを使ったら一緒
お前が言っている「分からない」ってのは一つに絞れないって意味だろ?
俺がいってるのは、一つに絞りたいということではなく
関係がある物を知りたいってことだよ。
ポリモーフィズムを使った場合、実装された関数だけを知りたいとは限らない。
インターフェースも知りたいし、そのインターフェースを使ってる関数も知りたい。
静的言語ならそれが見つかる。
だから、お前がいってるのは何の問題にもなってないよ。
0069デフォルトの名無しさん
2011/05/22(日) 17:53:31.68へー、じゃあ動的言語で何が問題なの?
0071デフォルトの名無しさん
2011/05/22(日) 17:54:26.400072デフォルトの名無しさん
2011/05/22(日) 18:01:24.21たとえばgetでgrepしたとき
全く無関係のgetまで見つかって、
コードを修正するとき、どれが影響あるものなのか
調べるのに時間がかかる。
0073デフォルトの名無しさん
2011/05/22(日) 18:21:24.87基本的に同意なんだけど、
動的言語でも名前空間使ったりして読む範囲を減らす努力はしてる
0074デフォルトの名無しさん
2011/05/22(日) 18:26:28.45interface型でgetメソッドを宣言していて、
継承関係のない複数のclassがそのinterfaceを実装していたら、
結局同じことになるぜ?
こんなこともわからずに静的型マンセーしてるの?
恥ずかしいねえ
0075デフォルトの名無しさん
2011/05/22(日) 18:32:49.450076デフォルトの名無しさん
2011/05/22(日) 18:35:25.38ならないよ。少なくとも、
「interfaceを実装している複数のクラス」だけを見ればいい
これらはそもそも無関係のクラスではない。
0077デフォルトの名無しさん
2011/05/22(日) 18:36:56.73名前空間使っても参照使われたらアウトだね。
インスタンス変数->メソッド ってなったとき
名前空間は役に立たないものになる。
0078デフォルトの名無しさん
2011/05/22(日) 18:41:28.77「interfaceを実装している複数のクラス」が相互依存してると考えるの?
interfaceってそういうのじゃないぜ
0079デフォルトの名無しさん
2011/05/22(日) 18:44:42.62interfaceに依存してるだろ。
例えばあるクラスのgetをfetchに変えようとしたとき、
静的言語なら、このクラスを変えただけでは駄目だ!
interfaceも変えなければ駄目だ!と分かるし
interfaceを変えただけではでだめだ!
このinterfaceを使っているすべてのクラスでも変えないと駄目だ!
ってわかるだろ?
これでも関係ないって言える?
0080デフォルトの名無しさん
2011/05/22(日) 18:46:47.89そもそもがスパゲッティな作りじゃない限り、それで困ることってある?
探すときも、まずクラス名やインターフェース名で探してからメソッド名で
絞り込めばいいわけだし。
0081デフォルトの名無しさん
2011/05/22(日) 18:47:54.59そりゃ、個人で作っていたり
小さいプログラムなら、
時間はかからないだろうさ。
0082デフォルトの名無しさん
2011/05/22(日) 18:48:23.72Pythonだとクラスじゃなく関数使うことも多い
0083デフォルトの名無しさん
2011/05/22(日) 18:48:37.80ユニットテストクラスつくっとけや!
0084デフォルトの名無しさん
2011/05/22(日) 18:49:56.12ユニットテストを作る時間がかかる
できるできないの話をしてるんじゃないんだよ。
時間がかかるかどうかの話。
ユニットテストを使わないでも分かることを
ユニットテストを使ってからじゃないとわからなければ、
それは時間がかかるということ。
0085デフォルトの名無しさん
2011/05/22(日) 18:51:51.57結局は「ユニットテストで使っているgetを手動で書き換える」という
作業が増えてるだけなんだけどな。
0086デフォルトの名無しさん
2011/05/22(日) 18:54:55.56なら動的言語を使えばいいさ
0087デフォルトの名無しさん
2011/05/22(日) 18:55:54.35書かずに同じ効果が得られるのなら
書かないほうがいい。
0088デフォルトの名無しさん
2011/05/22(日) 18:56:45.28静的言語より劣るよ。
つーか動的言語が生産性高いって
何を根拠にそう思ってるんだろうな。
0089デフォルトの名無しさん
2011/05/22(日) 19:01:04.780090デフォルトの名無しさん
2011/05/22(日) 19:03:20.35だからC/C++は別の問題、文字列が扱いにくいのと
メモリ管理が手間がかかるんで、Javaで作ってるよ。
0091デフォルトの名無しさん
2011/05/22(日) 19:07:05.520092デフォルトの名無しさん
2011/05/22(日) 19:08:19.06それにテストを書く前に分かる方が優れてるだろ?
0093デフォルトの名無しさん
2011/05/22(日) 19:09:03.71静的言語で総称型使って頑張ってるのを見ると
動的言語は楽なんだなって思う
0094デフォルトの名無しさん
2011/05/22(日) 19:11:43.10動的言語の方だろう?
0095デフォルトの名無しさん
2011/05/22(日) 19:13:12.38テキストファイルの処理とか、正規表現使ったりとか、置換処理とか、パース処理とか、日付の処理とか、
これ全部Javaでやるの? 面倒くさくない?
0096デフォルトの名無しさん
2011/05/22(日) 19:14:13.70静的言語全部がウンコってわけじゃない
0097デフォルトの名無しさん
2011/05/22(日) 19:15:15.14全部普通にできるし。
0098デフォルトの名無しさん
2011/05/22(日) 19:16:35.280099デフォルトの名無しさん
2011/05/22(日) 19:17:07.01できる出来ないの話はしてないんじゃね?
だって動的言語でもテスト書けば安全なプログラムは書ける
0100デフォルトの名無しさん
2011/05/22(日) 19:20:15.070101デフォルトの名無しさん
2011/05/22(日) 19:22:32.47かからねーよw
>>99
だから、テストは実行しなければわからないんだから
そもそもレイヤーが違うもんだってば。
■ このスレッドは過去ログ倉庫に格納されています