15/12/21 10:36:36.12 vg4j58Ti.net
ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
398:デフォルトの名無しさん
15/12/21 10:42:30.54 atu8DMrc.net
>>375
静的型付けでコンパイル通っても「型に関する」バグも有り得るって言われてるの分かってる?
馬鹿だから分かってないんだろうなぁ
399:デフォルトの名無しさん
15/12/21 10:51:13.05 x6st9rMu.net
動的でも問題ないって言っている人たちは
最近の動的型言語がどんどん静的型の型チェックの機能を取り入れているのは
どう考えているんだろうね
メリットがないなら導入する意味ないよね
でもどんどん導入されていっているよね
あのRubyですら3.0で静的型を導入したいと言っているよね
この事実をどうするの?
400:デフォルトの名無しさん
15/12/21 10:52:41.41 +DYxsHCL.net
ruby3以外に例を挙げてみろよ
401:デフォルトの名無しさん
15/12/21 11:05:22.17 x6st9rMu.net
URLリンク(qiita.com)
動的型言語の型システムしょぼー
>Python 3 の型アノテーション構文の組み合わせが Python における型付けの標準になると宣言されました。
>正直なところ、多くの理由でこれはまったく良い決断ではないと私は考えています。
>その最大の理由は Python は優れた型システムをまさに持っていないことに苦しんでいるからです。
>静的型付けが意味をなすには、型システムが良いものである必要があります。
こういったショボい使いものにならない静的型システムは
なまじ有るだけ使わないと行儀が悪いような気がするが
使いまくるとジェネリックも何もないので汎用性が落ちてCレベルのコーディングになって苦しい
使えば使うほどそういう矛盾が浮き彫りになって、もやもやしてくるだろう
この型システムしょべーって
なまじ有るから使わないと行儀が悪いような気がするってのもポイントだな
プログラムを書いてる本人が気持ち悪くなってきて、動的型言語宗教から改心する
きっかけになるのであれば、中途半端な静的型を導入することにも意味があるっちゃ意味がある
402:デフォルトの名無しさん
15/12/21 11:08:23.42 x6st9rMu.net
>>394
URLリンク(hrnabi.com)
>一方、最近出てきた言語であるScalaやDart、Goといったプログラミング言語は静的型付け言語に分類される。
>そして、Rubyとは色々な面で似た言語と言えるPythonでアノテーションを付ける文法の導入が検討されているなど、
>動的言語でも静的型付けの良さを取り入れる動きがあるという。
URLリンク(gihyo.jp)
>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>使い方をされながらも静的な型を持っています。
>このことについて,まつもとさんは「悔しいからRubyに静的な型を導入してみようか」
ほらよ
403:デフォルトの名無しさん
15/12/21 11:09:20.16 wV5Rx1o6.net
>>392
ないよ。マヌケ。
なぜなら、コンパイラによりタイプセーフを保証されているから。
まず、例を出せよ??
静的でもリフレクションとか動的機能使えるからそれ使った時だよね。
でもそれは、動的のバグだよね。
404:デフォルトの名無しさん
15/12/21 11:10:39.25 +DYxsHCL.net
インターネットの日本語の記事ばっか観てると馬鹿になるよ。英語の記事の誤植とか意訳ばかりだからな。最近日本語読んだのはこのスレくらいかな。
405:デフォルトの名無しさん
15/12/21 11:10:46.95 atu8DMrc.net
>>395
pythonの型は動的型の中では出来損ないの部類だが、そいつにはジェネリックくらいある
無知が批判するとポイントがボヤけるからやめれ
URLリンク(docs.python.org)
406:デフォルトの名無しさん
15/12/21 11:11:54.59 atu8DMrc.net
>>397
>>360
407:デフォルトの名無しさん
15/12/21 11:14:11.40 x6st9rMu.net
新しく言語を作るとき、静的型システムをどういう風に発展させていくかというのが一つの大きな見どころであり
一番手間のかかる部分だ
今は最低でも型推論とジェネリックが当たり前で、これからもっと発展していくかもしれない
タイプセーフでありながら柔軟性も持たせ、記述量も減らす方向へね
安全性と柔軟性を両立させるという、ある種矛盾しているかのような命題へのチャレンジだ
動的型言語はそれを放棄してしまっているのだから、全く面白みがないね
408:デフォルトの名無しさん
15/12/21 11:27:11.60 +DYxsHCL.net
日本語が不自由なようで
409:デフォルトの名無しさん
15/12/21 11:27:25.95 wV5Rx1o6.net
>>400
ごめんjavaはクソだから使ってねーんだわ。
やめてくれよ、そんな欠陥言語持ち出してくるの。
c#以外の言語は静的と呼ぶほど完成度高くねーんだわ。
410:デフォルトの名無しさん
15/12/21 11:30:16.62 dc09zofZ.net
動的言語使うなら受け取る側で型チェックはしないなー。
型による分岐はそれが直接目的に適うならばあり。
411:デフォルトの名無しさん
15/12/21 11:32:36.19 dc09zofZ.net
静的言語ならC++でいいじゃんか
412:デフォルトの名無しさん
15/12/21 14:09:45.86 7dJZ8TPE.net
>>396
>>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>>使い方をされながらも
Scalaをスクリプト言語に分類するような記事を信じるバカですか?
413:uy ◆Qawu9.2l1E
15/12/21 14:29:58.27 2nRQSJGH.net
Matzが静的型の導入を~
って、あれ10年くらい前から言ってる事が二転三転してる戯言だからスルーしたほうが良いよ
浅い信者はMatzの寝言と本音が見極められないようで
414:uy ◆Qawu9.2l1E
15/12/21 14:41:43.33 E4VHpoC/.net
実際この手の問題は多数決のようなもので未来が確定してしまう類のものでは?
動的言語が勝つなら、世界が「動的言語で作られたもので満足」するように作り替えられていく
例えば電子機器のすべてを
プログラムにバグがあろうと後から無線で修正可能なようにすればいいんだよ
動的言語は静的言語以上にバグが入ることは確実だ
しかし「バグっても問題にならない状況作り」が出来るのであればそれで良い
415:デフォルトの名無しさん
15/12/21 16:46:29.69 FpThLLao.net
>>403
> javaはクソだから
具体的に
416:デフォルトの名無しさん
15/12/21 16:56:57.21 +DYxsHCL.net
基本的に企業が作り出した言語はJavascriptを除いてすべて糞。
417:デフォルトの名無しさん
15/12/21 17:20:52.96 XjOZdx5G.net
javaは実行環境というか、バイトコードに手を加えずにジェネリックを実装したせいで、パフォーマンスやら型安全を失ってる
静的型言語とかではなく、互換性重視から生まれた言語の欠陥
418:デフォルトの名無しさん
15/12/21 17:33:12.08 atu8DMrc.net
>>403
一緒や!c#も!
URLリンク(ideone.com)
419:デフォルトの名無しさん
15/12/21 17:40:24.04 qIaAVv7y.net
しかしホントーに"静的言語なら~"って言ってる奴って
『プログラムは自分の身内で組んだもので完結する』前提なのな。
おれらの決めた内々の決まりを組む奴が徹底すれば問題は生じないはず!(キリッ)って…
オブジェクト指向はsmalltalkのむかしから
多くのコンピュータプログラムが相互の通信する未来ではそんなことはできないと看破して
オブジェクトが自分の属性を答える機能とかを基底クラスに組み込んでるってのに
偽オブジェクト指向たちは最初から間違ったところより始めてるせいで
いつまで経っても偽のオブジェクト指向から抜け出せない。
420:デフォルトの名無しさん
15/12/21 18:43:03.63 mofV3EhK.net
> しかしホントーに"静的言語なら~"って言ってる奴って
> 『プログラムは自分の身内で組んだもので完結する』前提なのな。
そんな前提に立てるものを教えてほしいぐらいなんだが(笑)
他人が使るものを使うからこそ、決められたインターフェースを守り
それらを動的に書き換えないようにするんだよ。
勝手にクラスとか書き換えたら動作保証ないからな。
バージョンアップしたらすぐに動かなくなる。
自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから
動的である必要はない。
421:デフォルトの名無しさん
15/12/21 19:24:39.60 qIaAVv7y.net
>自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから
メンテ地獄は楽しいか。
つべがflvやめてhtml5にしたり通信先が小変更する度に
システムフル再コンパイルしてそうだなおまえら。
422:デフォルトの名無しさん
15/12/21 19:25:06.67 dWRO7mc6.net
しかしなんでこのスレってこんなにsmalltalkerいるんだ
本スレすら過疎ってるオワコン言語やぞ
423:デフォルトの名無しさん
15/12/21 19:45:02.82 dc09zofZ.net
なんでこんなことにこだわっているんだ?
424:デフォルトの名無しさん
15/12/21 19:51:20.56 wV5Rx1o6.net
>>412
あー共編性、反変性使わない人かー。
例えば、家の玄関に土足で上がらないでくださいって注意書きしないのはなぜだと思う?
そんなことする馬鹿な人に会ったことないからだよ。
425:デフォルトの名無しさん
15/12/21 19:55:46.35 B3EXamn3.net
OCamlをやるんだ。
JavaやC#じゃ法螺扱いされる「コンパイルが通ればランタイムで型に関するエラーは起きない」世界が待ってるぞ。
426:デフォルトの名無しさん
15/12/21 20:28:52.54 7dJZ8TPE.net
動的型付言語でも「ランタイムで型に関するエラーは起きない」世界が実現されているが?
というとメソッドが見つからないとか言う厨房がいるが、
それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと
どう違うのだ?
ゼロ除算して例外が発生するのとどう違うのだ?
結局、静的型言語ユーザがいう「ランタイムで型に関するエラーは起きない」というのはマッチポンプでしかない。
427:デフォルトの名無しさん
15/12/21 20:41:15.90 mofV3EhK.net
>>415
> つべがflvやめてhtml5にしたり通信先が小変更する度に
> システムフル再コンパイルしてそうだなおまえら。
分割コンパイルって知ってる?
依存関係を小さく保つから、影響があるところも局所化され
実際にはシステムフル再コンパイルではなく、依存しているところのみ
再コンパイルが必要になるだけ。
そういったことも知らずに叩くんだよなぁ(笑)
428:デフォルトの名無しさん
15/12/21 20:42:13.79 etCoLxJ5.net
そもそも"型"ってなにかね?
なんか静的おじさんはintとかstrとかそういうプログラム言語規約上の取り決めぐらいしか想像できてないみたいだけれども
実際はデータ構造そのもの、構造体やクラスが受け渡されてくるのだからその種類の数だけ型がある。
pictureというクラスの型はBMPだから!と決め打ちして、jpgが追加されたら俺にもjpgの展開エンジン教えろ
pngが追加されたら俺にもpngの展開エンジン教えろと言って毎回自分のプログラムを再コンパイルして備えるつもりか。
そうしないと自分が食えなくてバグ吐いて止まるから。
そういうくだらない車輪の再発明を防ぐためにオブジェクト指向は生まれてpictureオブジェクトに
展開エンジンが含まれてるから、受け手は考えなくていい。そして、すべての型はオブジェクトだから
"世界のすべてオブジェクトの名前と内容を予め知るのは不可能"なので動的に処理するしかない。
動的に処理することで作ったものをいちいち毎度メンテして弄り回すプログラマーのメンテ無限地獄を回避してるっつーのに
「おれらのやり方はあらかじめ世界のすべてを知ってからその決まりでやってるから問題は生じない!」とかバカか。
なんでネットワーク関連で動的が主流で、ちんまりした閉システムでしか静的が流行らないのかちゃんと理解しろ、ジジイ。
429:デフォルトの名無しさん
15/12/21 20:46:53.08 mofV3EhK.net
>>420
> それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと
> どう違うのだ?
図にすればわかる? わかりやすく簡略化して書くけど
| 型の問題 | 空リストの問題 | ゼロ除算の問題 |
静的 | なし | あり | あり |
動的 | あり | あり | あり |
問題が多いのはどっち? 答え 動的
重要なのは、問題がどれだけ "多いか" だからさ。
静的・動的、両方に発生する問題を持ってきても、
動的だけにある問題がある以上、動的のほうが問題が多いわけで
430:デフォルトの名無しさん
15/12/21 20:49:47.79 mofV3EhK.net
>>422
> そもそも"型"ってなにかね?
インターフェースの取り決めだね。
巨大なシステムは複雑にならざるをえない。
だから、公開している部分と、公開してない部分をしっかりわけ、
公開している部分は仕様をきっちり明確にする。
その仕様がインターフェースであり型なんだ。
LinuxもWindowsも仮想マシンもコンテナも
大きなシステムは静的言語を使って作られている。
431:デフォルトの名無しさん
15/12/21 20:52:58.26 mofV3EhK.net
>>422
> 毎回自分のプログラムを再コンパイルして備えるつもりか。
だから毎回全部を再コンパイルしてないってばw
Linuxの動的ライブラリの仕組みとかドライバの読み込みとか
Apacheのモジュールの仕組みとかしらないの?w
インターフェース(≒型)をきっちり決め、そのインターフェースに合わせることで
再コンパイルすること無く組み込み可能にしている。
こういったことを知らないんだもんなぁ(笑)
432:デフォルトの名無しさん
15/12/21 21:01:51.63 7dJZ8TPE.net
>>423
だーかーらー、動的型付言語に型の問題なんてないんだって。
コンパイル時型検査なんてしなくても型安全を確保できているから。
型エラーではないものを勝手に静的型では型エラーとして扱われるからといって
勝手に「型の問題」扱いしないでもらえるかなあ?
433:デフォルトの名無しさん
15/12/21 21:04:46.50 mofV3EhK.net
>>426
静的型は型エラーであるもの、つまりアプリのバグ。
そのアプリのバグを静的型は実行すること無く検出できる。
それに対して動的型では、アプリのバグが見つからない。
アプリのバグが見つからないが型安全なんだから、
いいじゃないか。って言ってるわけだよね?
型安全=アプリのバグがない
ということではないよ?知ってる?
434:デフォルトの名無しさん
15/12/21 21:05:35.35 7dJZ8TPE.net
>>425
そうだね、静的型情報をリンカに渡せば静的型でも必ずしも全てを再コンパイルする必要はない。
そもそも動的型ならば全く再コンパイルする必要ないんだがなw
そうやって動的型ならそもそも問題が存在すらしていないものを
静的型では問題になるからといって「静的型では解決できたスゲー」しないでくれる?
435:デフォルトの名無しさん
15/12/21 21:07:13.91 mofV3EhK.net
> そうだね、静的型情報をリンカに渡せば静的型でも必ずしも全てを再コンパイルする必要はない。
> そもそも動的型ならば全く再コンパイルする必要ないんだがなw
全く再コンパイルする必要ない!?それは大変だ。
インターフェースに不整合があったとしても、
その不整合を検出できないじゃないかw
436:デフォルトの名無しさん
15/12/21 21:07:55.23 7dJZ8TPE.net
>>427
で、「動的型ではアプリのバグを見つけることができない」という珍説はどこから湧いて出てきたのかね?
静的型付言語と同じ方法で見つけるわけではないというだけの話を、
どうして「見つけることができない」なんて捏造をするんだね?
437:デフォルトの名無しさん
15/12/21 21:08:48.82 7dJZ8TPE.net
>>429
静的型付と違って、インターフェースが必ず適合するから問題ないんだよ。ぷ
438:デフォルトの名無しさん
15/12/21 21:09:52.92 mofV3EhK.net
> そうやって動的型ならそもそも問題が存在すらしていないものを
意味不明。
インターフェース不整合があってエラーで例外を吐いてシステムが
正常に動かなくても型安全だから問題がない。
そう言ってるわけだよね?
そう、ユーザーにさんに言ってるわけだよね?
Q. ある機能を実行すると、エラーで例外を吐いて落ちます。機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
うははははw
439:デフォルトの名無しさん
15/12/21 21:12:34.78 GVmX1WAG.net
列車とトラックの比較にしか思えない
440:デフォルトの名無しさん
15/12/21 21:12:49.27 7dJZ8TPE.net
>>432
だーかーらー、
動的型付言語の世界ではインターフェイスに不整合が発生しないの。
引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、
必ず同じ形式でメッセージとしてパッケージングされるの。
静的型システムについては多少知っているようだけど、
動的型付言語の仕組みはまるでわかっていないようだね。
441:デフォルトの名無しさん
15/12/21 21:13:39.02 7dJZ8TPE.net
例のおバカさんよりは若干マシだと思っていたが、買いかぶりすぎていたようだ。
442:デフォルトの名無しさん
15/12/21 21:15:10.99 mofV3EhK.net
>434
> 引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、
> 必ず同じ形式でメッセージとしてパッケージングされるの。
その後は? 重要なのはパッケージングされた後でしょう?
例外吐いて落ちるんでしたねw
うははははw
443:デフォルトの名無しさん
15/12/21 21:15:36.10 7dJZ8TPE.net
静的型付言語を使っていると、動的型付言語を静的型付言語のメカニズムでしか理解できなくなってしまうらしい。
まさにバカ製造機だな。
444:デフォルトの名無しさん
15/12/21 21:16:30.67 mofV3EhK.net
Q. ある機能を実行すると、エラーで例外を吐いて落ちます。機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
これを否定しないのは、否定出来ないからだろうなw
445:デフォルトの名無しさん
15/12/21 21:16:44.57 B3EXamn3.net
まずどの動的型付け言語について喋っているのか言及しなよ。
実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
原理的に起こせない、っていう意味で言ったんだけど、分かる?
やたらと例外とエラーを別物にしたいみたいだけど、そんなはっきり区別して扱っている界隈ってあるの?
全然メジャーな使い分けじゃないからちょっと説明してよ。
「例外を投げる動作は言語仕様通りだから、wikipediaでいうところの型安全」っていうは、
関数型言語に言及している中での型安全より遥かに低いレベルの安全性であることは分かってる?
全体的に卑怯者だよ。「ボク間違った言葉遣いしてないもん!」以外全部間違っているよ。
446:デフォルトの名無しさん
15/12/21 21:17:03.21 7dJZ8TPE.net
>>436
落ちないけど?
どうして例外が投げられると落ちると思い込んだの?
たとえ例外ハンドラが設定されていなくてもアプリケーションが異常終了しない言語/環境は普通に存在するよ?
自分の無知を動的型付のせいにしないでくれる?
447:デフォルトの名無しさん
15/12/21 21:17:58.88 7dJZ8TPE.net
>>438
ぜーんぶ君の無知からくる妄想。正直言って、出てくる感想は「バカ」。
448:デフォルトの名無しさん
15/12/21 21:18:59.25 mofV3EhK.net
>>440
なるほど!
じゃあ訂正するよ
Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
うあははははwww
449:デフォルトの名無しさん
15/12/21 21:20:42.70 mofV3EhK.net
な? インターフェースに不整合があってエラーで動かなくても
落ちなければ、不具合ではないっていう考え方なわけさ。
動的のアプリの質が悪い理由がわかるだろう。
こんな感じでいっつもいきあたりばったり
無計画に修正してるんだよ。
450:デフォルトの名無しさん
15/12/21 21:21:32.67 7dJZ8TPE.net
>>439
>実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
>原理的に起こせない、っていう意味で言ったんだけど、分かる?
実行時型エラーという概念が存在しない言語(動的型付言語)では、原理的に実行時型エラーなんて起こせませんが、何か?
451:デフォルトの名無しさん
15/12/21 21:23:57.49 7dJZ8TPE.net
>>442
>Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。
>A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
はい、これも間違い。
メソッドが見つからなくても例外を抑制することもできるし、デフォルト動作を変更することもできる。
当然、「画面にエラーを出す」必要もない。
実行を継続して、機能を利用することができます。
残念でしたw
452:デフォルトの名無しさん
15/12/21 21:24:24.57 7dJZ8TPE.net
>>443
というわけで、やっぱり君は自分の無知を動的型付言語のせいにしているだけでした。
453:デフォルトの名無しさん
15/12/21 21:25:33.03 7dJZ8TPE.net
>>443
というわけで、静的型付言語の世界観で勝手に動的型付言語を誤解して、
間違いだらけの妄想を振りまいているのは君でした。
お・ば・か・さ・ん
454:デフォルトの名無しさん
15/12/21 21:27:09.59 mofV3EhK.net
>>445
じゃあこういうことか
Q. ある機能を実行すると、エラーで�
455:瘧Oを吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。 A. バージョンアップして修正しました。 画面にエラーを出さないようにエラーを握りつぶしました。 該当の機能は正しく動きませんが、 他の機能が動いているんだからいいじゃないか? うははははwwww
456:デフォルトの名無しさん
15/12/21 21:27:32.36 7dJZ8TPE.net
静的型付と動的型付はそれぞれ別のアプローチを取っているだけなのに、
静的型付しか知らないばっかりに動的型付を否定しなければ静的型付のメリットを説明できない。
これって静的型付言語ユーザとしても恥ずかしいことだと思うよ。
457:デフォルトの名無しさん
15/12/21 21:28:05.77 7dJZ8TPE.net
>>448
もちろん、それも大間違い。自分の無知をさらすのって、そんなに楽しいの?
458:デフォルトの名無しさん
15/12/21 21:28:51.88 mofV3EhK.net
静的型付と動的型付はそれぞれ別のアプローチを取っているだけなのに、
動的型付しか知らないばっかりに静的型付を否定しなければ動的型付のメリットを説明できない。
これって動的型付言語ユーザとしても恥ずかしいことだと思うよ。
たしかに! 動的型付けのメリットは出てない!
459:デフォルトの名無しさん
15/12/21 21:29:13.17 wZBXbgJl.net
静的の人、論点ずらしまくりすぎ。
しかも関係ないところぶったたいて回収される、の繰り返しじゃん。
こんなこといくらやっても余計に惨めになるだけだと思うが。
460:デフォルトの名無しさん
15/12/21 21:29:18.17 mofV3EhK.net
>>450
おや?手詰まりですかw
今度は何もいいませんでしたねwww
461:デフォルトの名無しさん
15/12/21 21:30:09.24 +DYxsHCL.net
Rubyなどのスクリプト言語はトランスレーターでインタープリターが理解できる言語に変換するだけだから実行自体するという概念自体存在しないよな。
462:デフォルトの名無しさん
15/12/21 21:32:14.81 mofV3EhK.net
>>452
なんもずらしてないよ?
より確実に堅牢なシステムを作るには静的がいいと言ってる。
静的型は、単体テスト+型チェックの二重のチェックの
仕組みによりより堅牢なシステムが作れる。
動的型は 単体テストしか 出来ない。
型チェックは機械的で矛盾がないチェックシステムだから
低いコストで大きなメリットを得られる。
動的だと、インターフェースに不整合でも、例外が出て
それを捉えて画面に表示したりしなかったりするから
システムが動かなくてもいいじゃないかって言ってるだろう?w
463:デフォルトの名無しさん
15/12/21 21:41:33.25 w/TLv4VO.net
>>433
>列車とトラックの比較にしか思えない
まぁ、そうだね。
トラックが自由に移動できるのを利点として使われてるとこを
「トラックは事故を起こす!レールを走ってないからだ!」
「えー?なにそれ。つか、列車は自由に配送できないじゃん」
「列車も駅から配送するシステムがあるからできる!」
「え…それちがくね?」みたいなやりとりをずっとw
464:デフォルトの名無しさん
15/12/21 21:44:22.27 mofV3EhK.net
>>456
あぁ、でも静的で作れないものはなにもないよ。
目的はシステムを作ることであって
動的にクラスを変えたりすることじゃないんだ。
465:デフォルトの名無しさん
15/12/21 21:48:12.37 2gy+Cq/9.net
すまん、動的静的両方やったことない雑魚おる?
466:デフォルトの名無しさん
15/12/21 21:48:24.54 wZBXbgJl.net
それほど明らかでないことを断定しているだけで議論になってないと思いますが、、、
まあいいでしょう。
で、それがオブジェクト指向か関数型かという議論にどう関係あるんですか?
467:デフォルトの名無しさん
15/12/21 21:54:01.30 VzjtfJRf.net
>>443
>動的のアプリの質が悪い理由がわかるだろう。
どうやらこの人はemacsよりも拡張性が高く安定したエディタを
静的言語でいとも簡単に実装してしまうスーパーハカーらしい ()
468:デフォルトの名無しさん
15/12/21 21:54:11.30 +DYxsHCL.net
型とは何かから始めないといけないようだな。ここで提案なのだが、これからの議論は定義から命題を評価する証明形式の厳格な議論にしようではないか。
469:デフォルトの名無しさん
15/12/21 22:18:22.42 mofV3EhK.net
>>460
> どうやらこの人はemacsよりも拡張性が高く安定したエディタを
emacsはC言語だったね。
URLリンク(git.savannah.gnu.org)
470:デフォルトの名無しさん
15/12/21 22:19:39.20 XjOZdx5G.net
結局、動的だろうと静的だろうとインターフェースが一致してれば簡単に処理を変えられるし、インターフェースが想定外に変わるならそれに合わせて書き換えが必要というだけでしょ?
471:デフォルトの名無しさん
15/12/21 22:23:11.82 mofV3EhK.net
>>463
そうそう。できることは変わらない。
それをするためのコストが違う。
静的であれば、単体テスト+静的解析があるから
少ないコストで品質の高いアプリが作れる
472:デフォルトの名無しさん
15/12/21 22:37:06.08 K9YQZ40/.net
c++ をめちゃくちゃ否定する linus の気持ちがよくわかる例になってるな。
473:デフォルトの名無しさん
15/12/21 23:20:00.93 pll+pxvz.net
だから、型が重要なら、型チェックをすればいいだけだろ
動的型付けな言語は大抵の場合、インタープリタ型の言語なんだから、テストしたい部分だけ、テスト出来るんだしなんの問題もないよ
474:デフォルトの名無しさん
15/12/21 23:38:13.37 mofV3EhK.net
> だから、型が重要なら、型チェックをすればいいだけだろ
だからコストの問題。
静的解析にコストはほとんどかからないから
静的言語の単体テスト+静的解析はコストが同じで
単体テストだけの動的言語よりも高い品質になる。
475:デフォルトの名無しさん
15/12/21 23:55:15.47 w/TLv4VO.net
なにがなんでも貨物列車がいちばんコストが安いんだってさー
476:デフォルトの名無しさん
15/12/21 23:56:05.45 GVmX1WAG.net
コストコストうるせーよ
477:デフォルトの名無しさん
15/12/22 00:33:15.91 EKiu80aU.net
>>467
どんなにテストしても、バグが存在しない証明にはならない
単体テストと静的解析を行っているから、バグが少ない気がしているだけ
478:デフォルトの名無しさん
15/12/22 00:38:03.90 3ywPhKdj.net
証明できないならテストしなくてよくね?
479:デフォルトの名無しさん
15/12/22 01:28:00.98 cWRmjQVf.net
Javaドカタが開発に1月かかる機能が
Smalltalkでは単体テストの作成込みで数時間で終わる
それくらい生産性に差がある事を忘れちゃいけないよ
Javaドカタが時間に追われてマトモにテストしてないコードと
Smalltalkerが悠々とテストしたコードでは
後者の方が品質高いよ
480:デフォルトの名無しさん
15/12/22 01:30:05.05 +ulsEic8.net
「列車はレールが決まってるからダイヤ解析で事故はなくなる
トラックは道を気ままに走るから知らないとこ走って事故る」的な
鉄ちゃんみたいなキチ主張だろう。
鉄道以外じゃルート計算できないと思い込んでる。
481:デフォルトの名無しさん
15/12/22 01:30:46.89 nHx61Hkp.net
Javaドカタが開発に1月かかる機能が
Smalltalkでは単体テストの作成込みで数時間で終わる
証拠はなないが、これはただしい。
だからSmalltalkの勝ち!
482:デフォルトの名無しさん
15/12/22 01:31:47.61 +ulsEic8.net
>>472
なりすましてムリすんな。
おまえは昨日20回も顔真っ赤レスしたばっかなんだからw
483:デフォルトの名無しさん
15/12/22 01:32:46.10 nHx61Hkp.net
>>473
鉄オタかよw ほんと鉄道に例えるのが好きだな。
鉄道使えば、より安全に高速に目的を達成できるって話だろう。
目的は、目的地につくことであって、
いろんな道を通ることじゃねーよw
484:デフォルトの名無しさん
15/12/22 01:35:42.53 bkvH7oDt.net
遠くまで運ぶなら鉄道使って最後だけトラックとかが一番いいと思うけど
485:デフォルトの名無しさん
15/12/22 01:35:42.57 nHx61Hkp.net
静的解析を使えば、レールに乗ったようにスムーズに開発ができる。
これを静的解析onRailsという。
486:デフォルトの名無しさん
15/12/22 05:30:44.16 Cv+dIUET.net
ニイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイップwwwwwwwwwwwwwwwwwwwwwwwwwwwww
487:デフォルトの名無しさん
15/12/22 08:50:57.91 h3Yx9vGx.net
静的解析に夢見過ぎ。
そこまでバグ発見に役立つケースなんてめったにない。
しかもいうほど動的言語での静的解析も手間ってほどではない。
少なくともコンパイル言語での開発に比べればよっぽど低コストだな。
コスト意識が致命的におかしい奴が居るな。
488:デフォルトの名無しさん
15/12/22 09:04:13.39 fvYXJdnq.net
>>480 が結論でOK
489:デフォルトの名無しさん
15/12/22 09:04:28.25 t0KrzUg4.net
>>476
そんなだからドカタは新しいものやサービスが作れないんだよ
既に多くの人が通ってレールまで敷かれた場所しか行けないんだから
490:デフォルトの名無しさん
15/12/22 09:05:44.03 fvYXJdnq.net
このままじゃ462が可哀想だよ...
491:デフォルトの名無しさん
15/12/22 09:06:00.38 71TpXAZk.net
コストコストってうるせーな
492:デフォルトの名無しさん
15/12/22 10:23:52.98 nHx61Hkp.net
>>480
> そこまでバグ発見に役立つケースなんてめったにない。
それはバグとして換算してないからだろ。
どうせエラーで落ちて修正したのをバグと認識してないんだろ?
静的解析は普段の開発でしっかり役に立ってる。
どう考えても
493:落ちるコードが、いちいち実行しなくてもわかるからな。 実行しなくても修正できる。この時点で修正のコストが下がってる。 もちろんそれだけでないのは言うまでもない。 インターフェースに不整合をすぐに修正できるし、 特定の関数に依存している部分をすぐに調べることもできる。 動的言語だとgrepで調べるしかないからな。同じ名前だと 全く違うものでもヒット、冗長な名前にしないといけない。 こういう普段の開発でもコストが下がる。 コードが成長するにつれて、最初の設計では無理が出てきても、 それを自然な形に直すことができる。 動的だと変化が怖くて、大胆な修正ができない。 どんどんコードは古くなっていき、すぐに手がつけられないようになる。
494:デフォルトの名無しさん
15/12/22 10:28:44.26 Hf0cXCbq.net
作文は得意だけれど算数は苦手みたいですね。
495:デフォルトの名無しさん
15/12/22 10:31:06.94 lJMFjOKo.net
そういう具体性のない煽りが、信用を無くすんですよw
496:デフォルトの名無しさん
15/12/22 12:30:06.51 fvYXJdnq.net
>>485
>動的だと変化が怖くて、大胆な修正ができない。
ここが笑うポイントですか?
すごいですね、あなたプロのコメディアンになったらきっと売れますよ。
497:デフォルトの名無しさん
15/12/22 12:43:42.29 bkvH7oDt.net
小さい規模でパフォーマンスをそこまで気にしないなら動的型のスクリプト言語
規模が大きくなったり速度重視なら静的型のコンパイル言語
動的型のフットワークの軽さとかもいいし、静的型の実行速度と優れた補完やエラー表示も便利
結局適材適所
498:デフォルトの名無しさん
15/12/22 12:58:50.30 lJMFjOKo.net
>>488
何も間違ってないよ?
動的は、実行時に変化することは得意でも
ソースコードを修正することは不得意。
少しの修正があちこちに影響して、それがわかりづらいから
修正が怖くなる。
499:デフォルトの名無しさん
15/12/22 13:26:08.65 fVb6IQsc.net
その程度の規模のコードすら書いたことないから
わからないんだろ
500:デフォルトの名無しさん
15/12/22 13:56:00.22 /QaJe51w.net
規模ねぇw
使いモンになるOSを書いたことがあるような人いるのかな?
5000万行~8000万行規模らしいが
これはお前らにとって大きいの?それとも小さいの?w
501:デフォルトの名無しさん
15/12/22 14:30:13.32 lJMFjOKo.net
>>492
少しは計算しろよ
5000万行、仮に1日に1万行(1000行/時の10時間労働)
書いたとして5000日(約13.7年)だ
502:デフォルトの名無しさん
15/12/22 14:38:13.03 cB2HLJLU.net
Objective-Cで作ってるMacOSX(->iOS)と
C++で作ってるWindowsみりゃどっちが
開発苦戦してるかすぐわかりそーなもんだが
503:デフォルトの名無しさん
15/12/22 14:41:56.77 lJMFjOKo.net
そういう間違った比較するやつは
あたまが悪いと言わざるをえないね。
504:デフォルトの名無しさん
15/12/22 15:04:38.37 npw19McH.net
規模とか言っちゃってるのは
何行書いたことある奴が何行書いたことあるやつに言ってるんだろうかw
1000が100に言ってるんだろうか?
10000が1000に言ってるんだろうか?
十万行ほど書いた奴はもう「規模」とかって言う言い方しない気がする
わざわざ規模で話をしようとしない気がする
505:デフォルトの名無しさん
15/12/22 15:09:30.07 cB2HLJLU.net
いや?
基本的にこっちもMac/iOS/Objective-C触って7~8年てとこだけど
下のドキュメントの最初の10ページみたいな
90年にこんな実装なんか提唱したら空論だと笑われたようなことを
25年前から仕込んでたNeXTが最終的に勝ってんだなぁと感心したし。
Objective-Cプログラミングの概念(日本語ドキュメント)
URLリンク(developer.apple.com)
あきらかにきみが棲んでる付け焼き刃の帝国の方が
効率が悪くてトータルコストがかかってる。
プログラマーに賽の河原で石を積む仕事を与え続けてるって点では
その効率の悪さで雇用の創出にはなってるとは思うけどね。
506:デフォルトの名無しさん
15/12/22 15:14:07.59 71TpXAZk.net
しょうもない業界だなあ。
507:デフォルトの名無しさん
15/12/22 16:41:01.82 VCjn0gZS.net
ここに限らんよ
サボる奴がいるから成り立つ生態系もある
508:デフォルトの名無しさん
15/12/22 16:47:52.67 bkvH7oDt.net
Macって、UNIXだし大部分はCとかC++なんじゃね?
開発言語よりも近代になってから互換性を完全放棄してもともと安定感の高いUNIXに強制移行したアドバンテージの方が大きいと思う
あと、動的型付けは遅いからOSの中核には向かないと思うけど
509:デフォルトの名無しさん
15/12/22 18:31:48.05 cB2HLJLU.net
>>500
OSXそのものがMachとかマイクロカーネル
(サービスを適宜呼び出してロードすることでOSの巨大化を防ぐ)UNIXの流れだから
コア部はCで各サービス呼び出しはObjective-Cのメッセージじゃないかな。
URLリンク(ja.m.wikipedia.org)マイクロカーネル
URLリンク(ja.m.wikipedia.org)
510:uy ◆Qawu9.2l1E
15/12/22 18:48:58.47 T3Xhdrtc.net
このスレアスペが会話混じってるよね
何言ってるか分からん奴が常にいてダメだわこのスレ
511:デフォルトの名無しさん
15/12/22 18:54:47.38 fvYXJdnq.net
C++で実装されたgnomeやWindowsと
Objective-Cで実装されたCocoaのUIの質を比較すれば
静的型付言語でUI環境を構築することは愚策中の愚策だな。
素人目には静的型付のほうが大規模なソースを変更しやすく見えるのだろうが
実際には動的型付のほうが大規模で質の高いソースを維持できるという実例。
512:デフォルトの名無しさん
15/12/22 21:49:46.57 lJMFjOKo.net
というか、世の中大規模なものは殆ど静的なんですが?
513:デフォルトの名無しさん
15/12/22 21:51:48.35 h2+OmYvg.net
インターネットが?
514:デフォルトの名無しさん
15/12/22 22:28:45.56 PMk1cnKT.net
このスレはなんのスレですか?
515:デフォルトの名無しさん
15/12/22 22:43:09.44 lJMFjOKo.net
>>505
インターネットを実現している技術はほとんど静的ですね。
OSはもとより、基本のTCP/IPスタック。Apacheやnginxなどのウェブサーバー
sendmail、postfixなどのメールサーバー、クラウドに使われる仮想マシン技術
動画・音楽配信を支えるエンコード技術、きりがないぐらいですね。
516:デフォルトの名無しさん
15/12/22 23:03:34.39 7zsabTQH.net
>>506
お気に入りの言語を擁護しつつC#をdisるスレ
517:デフォルトの名無しさん
15/12/22 23:16:12.47 c/oP9Kt2.net
2chもPerlか何かで書かれていたけどサーバーの負荷が問題になって
C言語で書きなおされたんだったっけか?
518:デフォルトの名無しさん
15/12/22 23:32:12.42 cWRmjQVf.net
>>507
C言語が神すぎるからね
仕方ないね
519:デフォルトの名無しさん
15/12/22 23:33:08.49 h3Yx9vGx.net
まあ速度出すなら型情報があった方がいいだろうね。
数値計算なんかで配列にまっすぐアクセスする場合は明らかに型があった方が有利。
そりゃ開発効率考えたら動的のがいいだろうけれど。
520:デフォルトの名無しさん
15/12/22 23:44:58.21 lJMFjOKo.net
動的が開発効率いい理由は何だ?
普通は、動的にクラスを作ったり、しないだろう?
521:uy ◆Qawu9.2l1E
15/12/22 23:46:55.76 DEhMkplY.net
>>506
アスペの日記帖
522:デフォルトの名無しさん
15/12/22 23:59:05.73 h2+OmYvg.net
>>512
まだ、自分の身内以外が外の世界で新しいクラスを作って送ってくることがある
現実世界が理解できないんだな。
523:デフォルトの名無しさん
15/12/23 00:12:46.47 B7iIvlVa.net
> まだ、自分の身内以外が外の世界で新しいクラスを作って送ってくることがある
それをライブラリっていうんですよ?
分割コンパイルも、サードパーティライブラリも
ずっと前からの常識です。
なんでこんなことを指摘してドヤ顔してるんだろうか?
524:デフォルトの名無しさん
15/12/23 00:15:50.43 IHjjwtj5.net
プラグイン
525:みたいなのもあるけど 大体はDLLとかだから結局静的なんだよな
526:デフォルトの名無しさん
15/12/23 00:55:02.76 +daiOjD/.net
自分の身内以外がクラスを作るって、それプラグインの話だよなぁ
なんで静的じゃ作れないと思ってるんだろうか?
圧倒的に無知。
527:デフォルトの名無しさん
15/12/23 01:02:39.62 oeWwCbV9.net
また、駅から配送するシステムがあるから大丈夫!ですか…
列車が時代遅れでいらないっていいかげんわかりましょうよ?w
528:デフォルトの名無しさん
15/12/23 01:09:24.49 +daiOjD/.net
これが時代の流れなんだよなぁ。
時代遅れにならないようにしようよね。
URLリンク(gihyo.jp)
> Ruby 3のアイデア
>
> まつもとさんは,Ruby 3へ向けて実装したいアイデアとして,次の3つを挙げました。
>
> Concurrency
> JIT
> 静的型付け
>
> このうち今回の講演で取り上げたのは静的型付けについてでした。
529:デフォルトの名無しさん
15/12/23 01:11:06.80 +daiOjD/.net
URLリンク(gihyo.jp)
> 静的型付けのメリット
>
> 静的型付けはRuby以外の言語でも注目されています。では,静的型付けを
> 導入することでどのようなメリットがあるのでしょうか。
> よく言われている静的型付けのメリットについて,
> まつもとさんは「パフォーマンス」「コンパイル時のチェック」
> 「ドキュメンテーション」の3つを挙げました。
まつもとさんわかってるw
530:デフォルトの名無しさん
15/12/23 01:32:02.82 4bnLgUt/.net
それは誰でもわかってるだろ…
531:デフォルトの名無しさん
15/12/23 04:51:55.89 9nXG813n.net
>>507
どれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。
色々な言語が「強い静的型付けのシステム記述言語」として作られたが
ろくに使われずに消えていったわけだが。
試しに、強い静的型付きの言語で実装されたOSや
ネットワーク関連の重要なアプリケーションの例を出してみな?
532:デフォルトの名無しさん
15/12/23 05:30:34.30 o1Ym9CfH.net
大事なことは言語ではなく、タオにつながることなのじゃ。ふぉっふぉっふぉ。
533:デフォルトの名無しさん
15/12/23 05:33:17.13 +daiOjD/.net
> 試しに、強い静的型付きの言語で実装されたOSや
> ネットワーク関連の重要なアプリケーションの例を出してみな?
LinuxやUnix
534:デフォルトの名無しさん
15/12/23 05:55:19.92 +daiOjD/.net
>>522
> どれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。
ん?なんか盛大な勘違いをしているねw
弱い型付けは静的型付けのことを意味していて、
動的型付けのことじゃないよ。
弱くても型付けなんだから。
はい、一覧
URLリンク(ja.wikipedia.org)
535:デフォルトの名無しさん
15/12/23 05:57:16.98 +daiOjD/.net
>>525のリストに、書いてある
「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って
いうのなら、ぷぷぷぷぅって言うしかないけどw
536:デフォルトの名無しさん
15/12/23 07:29:58.35 0ZC/YhCb.net
>>524
もしかして、Cは「強い静的型付け」の言語だと思ってるの?
これはまた…2ちゃんにしてもあまりにも無知すぎないか?
537:デフォルトの名無しさん
15/12/23 07:32:15.10 0ZC/YhCb.net
>>526
>「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って
> いうのなら、ぷぷぷぷぅって言うしかないけどw
Hindley-Milner型推論の言語を推してる人達は
「C言語の安全でない弱い静的型付け」が大嫌いだよw
君はバカすぎるからひっこんでなさいw
538:デフォルトの名無しさん
15/12/23 07:37:31.86 +NQ/xqJl.net
>519,520
都合の悪いところは無視ですかw
>今のRubyが静的な型を持っていない理由
>
>ここまで,まつもとさんは静的な型を持つメリットを取り上げました。では,なぜ今のRubyは静的な型を持っていないのでしょうか。
>
>まつもとさんはRubyが静的な型を持っていない理由について,次の3つを挙げました。
>
>ダックタイピングとの相性の悪さ
>使うかどうかを選択可能(Optional)にしなければいけない
>DRYの哲学に反する
539:デフォルトの名無しさん
15/12/23 07:54:14.96 +daiOjD/.net
>>528
> Hindley-Milner型推論の言語を推してる人達は
だれそれ?w
そんな人はお前以外に居ません。
540:デフォルトの名無しさん
15/12/23 07:56:06.50 +daiOjD/.net
そもそも、型推論うんぬんじゃなくて、
「静的型付け」大好きですからねw
541:デフォルトの名無しさん
15/12/23 07:58:08.92 +NQ/xqJl.net
c が型に対して弱いなんて有名なことだろう。
ストラウストラップが c++ でやりたかった事の一つが c の型をもっときっちりすることだったわけだが、
c の互換性に引っ張られて無理でしたっていう。
542:デフォルトの名無しさん
15/12/23 07:59:30.67 +daiOjD/.net
型に対して弱い=それでも静的型付け
なので、動的型付けは静的型付けに劣っているって
主張に一切影響を与えないがなw
どうも頭がおかしい奴がいる。
543:デフォルトの名無しさん
15/12/23 08:09:45.69 4flMvpuQ.net
ってか、オブジェクト指向の話に戻そうぜ
動的云々はもう泣いてんだからほっといたれ
544:デフォルトの名無しさん
15/12/23 08:23:44.09 0ZC/YhCb.net
>>533
へー、じゃあ静的厨さんが言ってた
・実行時に型に関するエラーが発生しないことを保証できる
・型さえ合わせればモジュールを安全に結合できる
・型により間違いを検出できるから変更時にデグレしにくい
という静的型付けの利点は全て引っ込めるってことだね。
というか、今まで静的厨が言ってた「動的型の欠点」は
全て百倍になってCに跳ね返ってくるわけだがw
ほんとバカってバカだなあw
545:デフォルトの名無しさん
15/12/23 08:28:48.27 +daiOjD/.net
× 実行時に型に関するエラーが発生しないことを保証できる
○ 静的時に型に関する不整合があった時にエラーがわかるからバグを早く修正できる。
(例えば弱か型付けでのC言語などに当てはまる)
× 型さえ合わせればモジュールを安全に結合できる
○ 問題に関する問題が解決するから、より安全に結合できる。(問題の全てが解決するなんて言っていない)
(例えば弱か型付けでのC言語などに当てはまる)
× 型により間違いを検出できるから変更時にデグレしにくい
○ その通り。だが問題の全てが解決するなんて言っていない
(例えば弱か型付けでのC言語などに当てはまる)
静的型付けだと、単体テスト+型解析によって、
単体テストのみの動的型付けよりも、より安全になる
(完璧など無いから、より安全であることが重要)
何度もいいましたよね?
なんで勝手に解釈を変更するんですか?
546:デフォルトの名無しさん
15/12/23 08:31:44.33 0ZC/YhCb.net
>>536
つまり前言撤回するわけねw
あんた、バカというよりキチガイの領域だよ?
547:デフォルトの名無しさん
15/12/23 08:32:10.02 eRscblyy.net
Cの上位互換のObjective-Cも静的型付けって事になったんだから、もうケンカする必要なくなって良かったじゃ無いか
548:デフォルトの名無しさん
15/12/23 08:32:39.88 +daiOjD/.net
こいつのやり口はいつも同じなんだよな。
こっちは「比べてより安全。よりコストが低い。より信頼性が高い」って
話をしているのに、変ないちゃもんをつけてくるんだよな。
動的厨「静的言語は完璧っていいましたよね?(←言ってない) こういう場合完璧じゃないじゃないですか!」
動的厨「静的言語はバグ無いいましたよね?(←言ってない) こういう場合バグあるじゃないじゃないですか!」
動的厨「動的言語ではできないって言いました?(←言ってない) 動的言語でもできるんですが!」
勝手に他人が言ってないことを、言ったと思い込んで、
その自分の思い込みを叩いてる。
549:デフォルトの名無しさん
15/12/23 08:33:14.42 +daiOjD/.net
>>537
> つまり前言撤回するわけねw
前言も何も、最初から言っていること。
「前言」ってどれだよ?言ってみなw
550:デフォルトの名無しさん
15/12/23 08:44:39.41 0ZC/YhCb.net
思いっきり書いてあるねえ
>>439
> 実行時で型に関するエラーが起きないってのは、
> 起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
> 原理的に起こせない、っていう意味で言ったんだけど、分かる?
551:デフォルトの名無しさん
15/12/23 08:46:51.27 +daiOjD/.net
>>541
そいつ明らかに動的厨じゃないかw
552:デフォルトの名無しさん
15/12/23 08:47:42.61 0ZC/YhCb.net
で、Cのような、コンパイルで型のウォーニングすら出なくても
型安全を破ることができてしまう言語が安全性において優れていると?
あんた、完全に頭おかしいよw
>>427
> 静的型は型エラーであるもの、つまりアプリのバグ。
> そのアプリのバグを静的型は実行すること無く検出できる。
553:デフォルトの名無しさん
15/12/23 08:47:45.08 +daiOjD/.net
というか、本人かな?
マッチポンプってやつだろうなw
554:デフォルトの名無しさん
15/12/23 08:48:34.89 +daiOjD/.net
>>543
だから、完璧な�
555:ト言ってないって(笑) より安全。より。何度も言うよ? より安全。
556:デフォルトの名無しさん
15/12/23 08:50:35.73 0ZC/YhCb.net
>>542
バーカ、ちゃんと読めよw
同じIDが>>419を書いているぞwww
557:デフォルトの名無しさん
15/12/23 08:53:32.33 0ZC/YhCb.net
>>545
君は自分が何を言っているのか理解できない類の人らしいね。
君の主張は、
「型安全を確保できない弱い静的型付言語は
型安全を確保できている強い動的型付言語よりも
安全である」だよ?
バファオーバランを起こしても
「型に関するエラー」じゃないもん!
とか言い出すの?
ほんとバカというよりキチガイの極みだなw
558:デフォルトの名無しさん
15/12/23 09:17:33.38 MZJ58G0+.net
ほんとにもうこの話題は終わりにしてオブジェクト指向の話に戻してくれ
559:デフォルトの名無しさん
15/12/23 10:32:20.23 zDlwL3aM.net
Cが安全でコストが安くて信頼性が高い
ちょっと何言ってるのか分からないですね
560:デフォルトの名無しさん
15/12/23 13:02:34.89 GTqqbOlK.net
自分は最初っから、>>419でも>>439でも実行時に型情報がいらない言語OCamlについて話をしていたんだけどな。
JavaもC#も不正なキャストを許す型システムを採用していて、型が保証する安全性は小さいが、
こいつらに当てはまる問題点が静的型付け全部にあるわけじゃない。
それを分かっているくせに今度はCの問題点を静的型付け全般に言及しようとする?卑怯な言い分は変わらないのな。
逆に、静的型付けとひとくくりにして優位性を主張し、動的型付けを無理矢理に貶めようとする卑怯者もいるから面倒。
静的解析の優位性とか型システムが提供する安全性なんて、言語によって大きく違うのにな。
IdrisやCoqやAgdaはテストすら要らないくらいの安全性を持ってるけど、それを静的型付け全部の性質にしちゃ駄目だよな。
だから自分はOCamlやれって言ってる。
静的型付けで型システムが強力で実行時に型エラーが起きない&オブジェクト指向をサポートしている言語だから。
やればオブジェクト指向と関数型は決して対立軸にはならないことが分かるから。
561:uy ◆Qawu9.2l1E
15/12/23 13:14:24.78 uhnrlQdn.net
飛行機なんて落ちたっていいじゃん
562:デフォルトの名無しさん
15/12/23 13:19:23.85 DDf47SHC.net
順番が逆。
2パラグラフ目にあるような、オール・オア・ナッシングで動的型付き言語を
罵倒するだけの不毛な状況の反論で、ちょっと行き過ぎてファールラインを
超える奴がでただけの話。
あと、オブジェクト指向と関数型どころか、静的型/動的型だって対立概念じゃない。
多くの言語や処理系は静的型付けと動的型情報の両方を扱う。
563:デフォルトの名無しさん
15/12/23 13:19:25.16 +daiOjD/.net
>>547
> バファオーバランを起こしても
今度は話をバッファーオーバーランにすり替えたか。
本当にこいつは卑怯w
564:デフォルトの名無しさん
15/12/23 13:22:01.38 +daiOjD/.net
>>550
お前の「安全」の定義が違ってるんだよ。
お前は、アプリが不正なエラーで落ちるかどうかの話をしてるだろ。
こっちは最初からそんな話をしていない。
俺が言ってる安全っていうのは、アプリをバグなく
修正できるって話をしてる。
だから、例外で落ちるのも、俺にとっては安全ではない。
アプリが正常に動かないからだ。
565:デフォルトの名無しさん
15/12/23 13:23:30.17 2bKYe5U2.net
>>551
みつをみたいw
566:デフォルトの名無しさん
15/12/23 13:28:32.11 +daiOjD/.net
あー、また揚げ足取られそうだから修正しておくわ
× 例外で落ちるのも
○ 例外でアプリが正常に動作しないのも
こいつは、例外がでてトラップして画面にエラーですって表示したり
エラーを握りつぶしてログを出さずに動かなくても
仕様通りです。ってユーザーに言うようなやつだからなw
567:uy ◆Qawu9.2l1E
15/12/23 13:36:09.42 xOYwyJJS.net
プログラマが入れたバグのせいで飛行機が落ちました
では逆に、プログラマが飛行機を落とす事を考えてはどうだろう?
それによって現実世界にある飛行機という乗り物がいかに不備のあるものかが露呈する
飛行機という存在を根底から作り直す必要がある
つまりエンジンが止まっても、誤動作しても、人命が助かる作りへと変わっていく
どんどん墜落させれば世界は変わる
568:デフォルトの名無しさん
15/12/23 13:50:11.47 WSDJ3sSn.net
文法的に日本語では曖昧な議論しか出来ない。今から英語で議論しよう。
569:デフォルトの名無しさん
15/12/23 13:52:00.44 IsVfil8S.net
どうして ID:+daiOjD/ は自ら晒されにくるの?
570:デフォルトの名無しさん
15/12/23 13:57:58.13 +daiOjD/.net
>>559
うっぜーからID変えるね(笑)
571:デフォルトの名無しさん
15/12/23 14:38:21.71 cD3wXPE+.net
静的に型検査できる余地が多いから
C#が動的型より安全と言ったんだから、
C#よりも静的に型安全なOcaml使いにC#を批判されたら
それを認めないとダメだな。矛盾してる。
572:デフォルトの名無しさん
15/12/23 14:46:21.55 +NQ/xqJl.net
こういう輩にいくら矛盾を突きつけてもどうにもならんけどね。
573:デフォルトの名無しさん
15/12/23 14:51:05.22 +NQ/xqJl.net
そんなに静的言語のが圧倒的に良いなら
動的言語がこんなに使われる訳ないだろっていう
現実をまず見ようよ。
574:デフォルトの名無しさん
15/12/23 15:00:05.77 v4yXy6ML.net
ウェブ以外の世界では静的型が圧倒的に多いけどな。
575:デフォルトの名無しさん
15/12/23 15:01:46.32 v4yXy6ML.net
>>561
C#の話をしている人って誰だ?
自分でC#を持ってきて自分でC#を批判してるのか?
576:デフォルトの名無しさん
15/12/23 15:12:37.90 oeWwCbV9.net
>>565
いや、きみが自分でIDEが簡単に補完してくれるから静的言語はスゴイ!
とか謎の珍説を長々開陳してたから
「なんだそれ?w」「当てはまるのって"VC#をVSでWindows"ぐらいだからそれだなw」
って全員判断しただけじゃw
577:デフォルトの名無しさん
15/12/23 15:16:08.81 v4yXy6ML.net
>>566が思いついたのがC#だけで、
知識ないのが露呈しているだけだなw
578:uy ◆Qawu9.2l1E
15/12/23 15:20:54.46 y3L2qmhF.net
死ねアスペ
579:デフォルトの名無しさん
15/12/23 15:43:40.82 oeWwCbV9.net
>>567
では、そのすごい知識で自分が推してる環境をくわしくw
IDを変えてはふんわりざっくり
「どこの静的とぼくのかんがえた動的の話だよw」って
ツッコミ入りまくりの話しか君しないでしょw
580:デフォルトの名無しさん
15/12/23 15:46:57.79 v4yXy6ML.net
「C#と全員判断した」とか言うけれど、自分以外の人の判断が
何かわかるはずもない。ただ言えるのは>>566がそう判断したという事実なだけ。
そこから、>>566が無知であることが見事に証明されたんだよ。
静的言語でIDEで補完できない言語の方が少ないぐらいなのにな。
581:デフォルトの名無しさん
15/12/23 16:14:59.12 hnWS8bx3.net
C#の話をしてたかどうかじゃなく、
C#がOcamlより劣ったゴミ言語と認めるかどうかの
話なんだけどな
必死に話を逸らしてる人がいるね
582:デフォルトの名無しさん
15/12/23 16:18:49.87 v4yXy6ML.net
つまりこういうことけ?
Ocaml > C# > 動的言語
583:デフォルトの名無しさん
15/12/23 16:20:24.44 v4yXy6ML.net
訂正
OCaml(強い静的型付け) > C#(強い静的型付け) >>>>>>> 動的型付け
584:デフォルトの名無しさん
15/12/23 16:31:04.85 hnWS8bx3.net
てわけで、静的型付け派もOcamlがC#, Javaより優れてると認めたんだから
これからはOcaml vs Smalltalkでやりなさい
間違ってもC#を攻撃して静的型全体を貶めることの無いようにね
585:デフォルトの名無しさん
15/12/23 16:35:08.21 v4yXy6ML.net
だから誰もC#の話なんてしてねーってのw
586:デフォルトの名無しさん
15/12/23 16:50:59.04 uhnrlQdn.net
1人か2人が周りがどんなレスをしても自分の言いたい事散らばしながら、さらに周囲のレスから用語をピックアップして
無関係の用語同士を繋げて、レス安価したりしてるからごっちゃごちゃ
今までに見た事ないタイプのガイジだな
587:uy ◆Qawu9.2l1E
15/12/23 16:52:15.12 PjxVSF2U.net
死ねアスペ
588:デフォルトの名無しさん
15/12/23 17:02:19.48 iZy07rlJ.net
OCaml vs Smalltalk 、いいね。
同じ厨の意見なら C#厨なんかよりはるかに勉強になる。
589:デフォルトの名無しさん
15/12/23 17:05:26.00 v4yXy6ML.net
ほらな。誰もC#の話をしていないって
言ってるのに、さもC#の話をしていたかのような
誤解を与える文章を書くわけさ
>>576
ほんとひどいよねw
590:デフォルトの名無しさん
15/12/23 17:22:26.94 SBD3pGKR.net
そんな誰も使ってない言語同士の対決とか草生える
591:デフォルトの名無しさん
15/12/23 17:47:45.23 iZy07rlJ.net
使ってるし、お前が著しくアンテナ低いか、単に理解不能な低能なだけだろ。
C#だなんて、MS自体が危うい言語の独りよがりな自慢話のほうが痛いよ
592:デフォルトの名無しさん
15/12/23 17:54:11.80 2bKYe5U2.net
>>581
C#に黒歴史でもあるのか?いい言語じゃないか。使っておやり。
593:デフォルトの名無しさん
15/12/23 18:35:00.90 DDf47SHC.net
>>578
どっちもオブジェクト指向じゃねーか
594:デフォルトの名無しさん
15/12/23 18:46:04.87 iZy07rlJ.net
「オブジェクト指向」っても出自の異なる2つの系統があってだな
両者は「クラス」とか「オブジェクト」とかの言語機能は共通しているけど
やろうとしていることは静的と動的で真逆なの
595:uy ◆Qawu9.2l1E
15/12/23 18:49:30.03 PjxVSF2U.net
神オブジェクト指向だろ
596:uy ◆Qawu9.2l1E
15/12/23 18:53:46.61 PjxVSF2U.net
静的で出来るものは、
本来すべて静的でやるべきなんだよ
ただしそれは、アルゴリズムを走らせる事よりも、
難解な初期化作業になる場合あるから
そういう部分においてある程度の妥協をして、動的生成をする事で現実的な作業量になる
動的言語とはいわば、世界の妥協の集合知なのです
597:デフォルトの名無しさん
15/12/23 19:16:24.47 WSDJ3sSn.net
4 返信:uy ◆Qawu9.2l1E [sage] 投稿日:2015/12/23(水) 19:11:18.55 ID:PjxVSF2U [2/3]
>>3
荒 らしは徹底スルー。厳守 でお願いします。 www wwwwwwwwwww wwwwwwww
荒ら しは徹底スルー。厳 守 でお願いします。 w w wwwwwwwww w wwwwwwwww w
荒らし は徹底スルー。 厳守で お願いします。 www wwwwwww www wwwwwww www
荒らしは 徹底スルー 。厳守でお 願いします 。 wwww wwwww wwwww wwwww wwww w
荒らしは徹 底スル ー。厳守でお願 いしま す。 wwwww www wwwwwww www wwwww w w
荒らしは徹底 ス ルー。厳守でお願い し ます。 wwwwww w wwwwwwwww w wwwwww w w w
荒らしは徹底ス ルー。厳守でお願いしま す。 wwwwwwwww wwwwwwwwwww www w w w w
5 名前:uy ◆Qawu9.2l1E [sage] 投稿日:2015/12/23(水) 19:12:50.88 ID:PjxVSF2U [3/3]
_
ト,\ /
_j;;;;;〉>'"⌒¨⌒>ー|
>'" /| い 死
. / ミ/、 __ 〈;;j い ね
〈 /!ヾ "⌒ヾ < の ば
ヽ. { / ト、 ∧ }| に
/ \Nレベ\ /_ { /ハ ね
| /Yxxx \{⌒ヾ/〉 ハ
l/∨\ ___ xxx/ 人l\___/
xく||>ゝ ノ--イ/ \
/ Ⅶ ∧}_ / x=≠ヘ
{ Vハ {{\V 〃 ∧
598:デフォルトの名無しさん
15/12/23 19:20:48.25 XPrkRHFD.net
>>584
もともと、「パーツの使い回し」と「分散処理」なんで趣向がだいぶ違うんだよな。
そして、動的は分散処理が最初から念頭にあるから
実行までに環境が変わることがあるのを最初から考慮に入れて
さまざまな設計がなされてるってのに、静的側を這ってた奴らは
それをいまごろになって副作用だの実行時解決だの言い出してのたうってるという…
そして、その尻尾に至っては「静的にやってれば不具合は存在しない!」とか
ここに至って言い張るという池沼ぶり…
599:デフォルトの名無しさん
15/12/23 21:36:24.75 SBD3pGKR.net
誰もC#推してないのに一人でC#叩いてるシャドーボクサーおる
600:デフォルトの名無しさん
15/12/23 21:37:18.89 L95mHKNc.net
>>586
URLリンク(hissi.org)
601:デフォルトの名無しさん
15/12/23 22:20:44.03 i2+b/jX1.net
C#er、粘り強く静的型付け代表として戦ってきたが、C#しか知らないとネタが割れたらあっさり白旗か
C#erさえも使っている言語の名前を恥ずかしすぎて出せない。C#って不憫だな…
602:デフォルトの名無しさん
15/12/23 22:43:34.79 k0HavgjY.net
動的型を使っていると性格がおかしくなるみたいですね
静的型の人は静的型のメリットを上げているだけなのにね
最近の動的型言語はどんどん静的型の機能を取り入れていっているというのに
その現実を見ないふり
603:デフォルトの名無しさん
15/12/23 22:45:49.10 oeWwCbV9.net
相手にして欲しがりすぎだおまえ。
604:デフォルトの名無しさん
15/12/23 22:50:14.84 pxGAUGCw.net
特定の言語の欠点をあげて全体が悪いっていうのは変だろ
動的言語の中にも比較時に勝手に型変換するとか、必要な語が予約語になってないとか、理不尽な動作をする言語はいくらでもあるわけで
605:デフォルトの名無しさん
15/12/23 22:58:52.97 k0HavgjY.net
型安全を保ちつつ柔軟性も保つという相反するような命題にチャレンジするのは
プログラミング言語の最先端の花の話題だ
静的に機械的にどれだけたくさんのバグを検出できるかというね
当然動的型言語界隈の人からも、こういうものはよく見えるし
面白そうな題材だから取り込もうとするわ
時代遅れな動的型一辺倒だけじゃ古臭いから
最先端な静的型システムを取り入れようとするわな
C言語しか見当たらなかった時代には動的型は最先端に見えたんだろうけど
今じゃ全く逆だからな
今のトレンドなのに時代に取り残された一部の動的信者は頭が固くて可哀想だね
606:デフォルトの名無しさん
15/12/23 23:03:07.90 pxGAUGCw.net
>>566
知名度の高い中でC#がわりとよくできてるからそれが例に上がるだけだろ
新しかったりしっかり設計されて、しっかり開発されてる静的言語なら程度の違いはあれ対応している
607:デフォルトの名無しさん
15/12/23 23:07:47.18 i2+b/jX1.net
で、ID:k0HavgjY と ID:pxGAUGCw は何言語つかってんの?
言えないってことはC#なんだろうな…
608:デフォルトの名無しさん
15/12/23 23:16:12.53 M5GRmAfS.net
ようよう! キャピュレットの!
609:デフォルトの名無しさん
15/12/23 23:22:43.24 v4yXy6ML.net
> C#しか知らないとネタが割れた
むしろC#しらないんだが?
610:デフォルトの名無しさん
15/12/23 23:24:31.14 i2+b/jX1.net
へ? じゃ何を知って静的型付けかたってんの?
611:デフォルトの名無しさん
15/12/23 23:26:52.96 i2+b/jX1.net
つーか、ID みたら、おめーには聞いてねーんだが? しゃしゃり出てくんなバカ
612:デフォルトの名無しさん
15/12/23 23:51:18.06 hnWS8bx3.net
実はJavaドカタだったら笑える
613:デフォルトの名無しさん
15/12/23 23:59:12.75 XPrkRHFD.net
コンピュータサイエンス方向に詳しくないC++ドカタ上がりだとは思う
614:デフォルトの名無しさん
15/12/24 00:04:57.64 ZIvzfH3j.net
>>597
メインはC#とかだけど、C/C++、Java、VB.NET、F#、TypeScript、ActionScriptとかでも型がきちんと指定されてれば補完とかリファクタリングのサポートとかは使えてる
Rubyとかも、補完割と優秀だけど仕組み的に静的型ほどの質にはならないなーとか思いながら使ってる
615:デフォルトの名無しさん
15/12/24 00:13:04.51 ndtshwiC.net
OCamlより優れた言語が一つもなくて笑った
そりゃ恥ずかしくて言い出し難いわな
616:デフォルトの名無しさん
15/12/24 00:25:51.89 TrbcLjcW.net
>595
逆とかじゃなくて動的静的でウゴウゴ言ってる奴自体が時代遅れだっつの。
617:デフォルトの名無しさん
15/12/24 00:29:15.71 vhy24jAm.net
>>605
> OCamlより優れた言語が一つもなくて笑った
OCamlが優れているっていうのなら、
その優れているところを言っていいんだよ。
君が本当にOCamlを知っているのならね。
618:デフォルトの名無しさん
15/12/24 00:31:03.47 ZIvzfH3j.net
>>605
OCamlより素晴らしい言語ってなにをあげればよかったんだ
文法や考え方も重要だけどRubyのgemとか.NETのnugetみたいな豊富なライブラリができる程度に利用者がいない言語って触りにくいんだよなぁ
CとかCOBOLとかFortranは過去の遺産使用のためにいまだに使われるし
新しい言語は他言語用のライブラリにただ乗りしていく方式が広まってほしい
619:デフォルトの名無しさん
15/12/24 00:37:37.29 TrbcLjcW.net
scala か?あれはどれだけ成功しているんだろうか。
620:デフォルトの名無しさん
15/12/24 01:02:41.26 Q6U3kr4L.net
その点pythonは素晴らしいな
621:デフォルトの名無しさん
15/12/24 01:06:29.65 vhy24jAm.net
>>608
どんな言語でもC言語用ライブラリは使えるでしょ?
622:デフォルトの名無しさん
15/12/24 02:05:42.62 y9bYd1Em.net
OCamlやりなさいよと薦めた人間が言うのもアレだが、型システムだけで言語の優劣を判断しろというわけじゃないからね。
メジャーな言語は完成度の高い開発環境や充実したライブラリが沢山あるから、何か作るかってときの選択肢に常に入るし、
OCamlも開発してたら面倒臭い部分が一杯あるからね。
型システムに限って言えば、OCamlを魅力ある言語として挙げ続けるがね。
静的型付けだけど、オブジェクトがnominal subtypingじゃなくてstructual subtypingなのも面白いところだよ。
623:デフォルトの名無しさん
15/12/24 02:12:20.43 vhy24jAm.net
それで言語厨はいらないんで、静的型付けのOcamlだと
どういうことができるのかの話をしなさいって。
どうこういう言語だから面白いんだっていう言語厨の発言じゃなくて
言語のどうこういう機能が、実際の開発をこのように便利にしてくれるって
話をすれば、それはさらに動的言語に対するアドバンテージにもなるだろ?
624:デフォルトの名無しさん
15/12/24 02:50:45.74 0ir5W3Vp.net
「アドバンテージ」
w
625:デフォルトの名無しさん
15/12/24 03:54:04.19 y9bYd1Em.net
頭が静的/動的型付けの二元論の人には何も言うことないよ。
各言語で型が保証してくれる安全性はスペクトルを描くことが分かっていれば、ガッチガチに型で縛られることのメリットは想像できるはず。
型推論のおかげで型注釈は最小限で済むので、面倒な型注釈も最小限で済むよ。
処理内容についてアタリをつけられる程度に型をつくっていれば、コンパイルできたら大体意図通りに動くっていう安心感も、
objectを使うとメソッドの呼び出しにオーバーヘッドがあるから、late bindingが本当に必要なときだけそのコストを払おうっていうメンタルモデルも、
モジュールを上手に使えばオーバーヘッド無しに実装を置き換えられることも、
Expression Problemが超簡単に解決できることも、興味無いでしょ?
REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ?
626:デフォルトの名無しさん
15/12/24 04:25:47.27 vhy24jAm.net
>>614
> 「アドバンテージ」
日本語にすると、有利な点,強み,長所 って意味だよ。
627:デフォルトの名無しさん
15/12/24 04:40:39.66 0ir5W3Vp.net
そこじゃねーよw笑われてるのはw
628:デフォルトの名無しさん
15/12/24 04:50:56.56 vhy24jAm.net
それ以外に笑う理由が見つかりませんが?
英語を使うのが苦手ですか?
629:デフォルトの名無しさん
15/12/24 05:55:42.72 0ir5W3Vp.net
まるでわかってない。
君高卒か専門卒でしょう?
630:デフォルトの名無しさん
15/12/24 07:34:44.49 UWoYNEvE.net
>>615
>REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ?
無い。
静的型信奉者が、静的型チェックによるケアレスミスの排除とインテリセンスの完全性に過度に執着して
すべてを動的遅延的かつシンプルに実現することによるメリットにまったく聞く耳を持たず、
時代遅れだと決めつけてバカにしまくるのと同程度に
かくも不自然かつ複雑に多大なコストをかけてやっと実現される、にもかかわらず制限付きまくりの
まがい物なんかにはこっちも興味は無い。
631:デフォルトの名無しさん
15/12/24 08:09:36.07 j6+iXrTs.net
「コスト」の時点でお里が知れてるんですが、それは…?
素直にVisualC#™️の宣伝してなさいな、君は
632:uy ◆Qawu9.2l1E
15/12/24 08:22:19.14 G+GnGNiW.net
安全性とか効率の話をしているときに「○○が面白い」とか突然言い出す奴って邪魔だよね
633:uy ◆Qawu9.2l1E
15/12/24 08:39:29.32 CtNlYBZF.net
動的言語でも型情報追っかけてコンパイルって可能じゃね?
c = 1
c = "a"
function(c)
これを内部で
Int c1 = 1
undef_var(c1)
String c2 = "a"
function(c2)
こうやったらコンパイラ側は型知ってるじゃん
634:デフォルトの名無しさん
15/12/24 08:44:11.80 TrbcLjcW.net
江添亮なみの頭の悪さ
635:デフォルトの名無しさん
15/12/24 08:45:13.50 PjvgHOdY.net
>>623
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
636:uy ◆Qawu9.2l1E
15/12/24 08:57:06.27 QbSnczG6.net
c = 1
if rand(2) == 0
c = "a"
end
function(c)
こういうコードを「型推論エラー」として扱うか、
それともコンパイラ側が関数多態化するかっていう話
637:uy ◆Qawu9.2l1E
15/12/24 09:01:29.81 yBEC7nO0.net
こういう規則を作る方法もある
「変数の初期化・変更は必ず同一のifブロック内で行う」
if rand(2) == 0
c = "a"
else
c = 1
end
function(c)
↓
if (memo = rand(2) ) == 0
String c = "a"
else
Int c = 1
end
if memo == 0
function_String(c)
else
function_Int(c)
end
638:デフォルトの名無しさん
15/12/24 09:02:48.63 TrbcLjcW.net
コードレビューして、そんな糞コード書いた奴を首にするのが一番。
639:uy ◆Qawu9.2l1E
15/12/24 09:02:53.31 Ecjqx/Av.net
ここまで書いて思ったけど型推論の技術がいずれ逆輸入されて終わりそうだな
640:uy ◆Qawu9.2l1E
15/12/24 09:07:28.40 IhMbbAWz.net
>>628
アスペはカキコしないでくれますか?
抽象化のコードをコードレビューて
641:uy ◆Qawu9.2l1E
15/12/24 09:18:48.74 g389+8X2.net
完全に型をトレースする為にはすべての分岐をメモするしかない
で、同じ形の分岐をそのまま持ってきて
条件のところを[ memo ]変数にし、
多態化したメソッドを配置して、
[ memo ]変数の中身に沿って実行していく
しかしこれは「型安全性」ではなく、速度問題しか解決されない
型安全性は、動的言語のコンパイラの問題ではなくパラダイムの問題で
動的言語の上では、コンパイラを作り込んでも型安全性は得られない
よって>>627
これは規則のプロトタイプでとてもひどいものだが、
型推論を確実に行うための何らかの「コーディング規則」は必要になる
642:デフォルトの名無しさん
15/12/24 09:22:51.71 PjvgHOdY.net
>>631
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
URLリンク(hissi.org)
643:uy ◆Qawu9.2l1E
15/12/24 09:39:29.04 yBEC7nO0.net
無駄無駄
644:デフォルトの名無しさん
15/12/24 09:52:39.44 8Q8CNXOF.net
静的型付きがやっていることって、よく考えると動的が開拓したことの後追いなんだよね
645:デフォルトの名無しさん
15/12/24 10:12:30.78 P/dN5WcP.net
それを静的のスピードで実行出来るのが偉大なのでは
646:デフォルトの名無しさん
15/12/24 10:20:29.98 ZIvzfH3j.net
>>620
動的型の言語のメリットを全く聞く耳持ってない人はほんの一部の行き過ぎな人だけだろ
それと同程度ってことは静的言語のメリットは全く理解できないっていう極端な方ですか?
647:デフォルトの名無しさん
15/12/24 11:36:16.44 acHF714F.net
>>624
質問ではない。
648:uy ◆Qawu9.2l1E
15/12/24 15:48:25.48 G+GnGNiW.net
動的生成でやってる事を、静的生成にする事のほうが難しいから
技術を動的言語が開拓していくのは当たり前なんですけど
しかし静的生成にする事で計算量が削れてくるから、動的な部分を出来る場所から静的にしていく流れが強いのであって
その逆は弱い
649:デフォルトの名無しさん
15/12/24 16:23:46.71 7vJ6cUbQ.net
動的遅延結合的にやっていることを静的型付きで同じようにやろうとすると、
ひどく複雑な方法になる(もちろんその分コストもかかる)という印象の方が強い
650:デフォルトの名無しさん
15/12/24 16:24:05.94 lTmsChXg.net
> 動的生成でやってる事
具体的には何?
651:デフォルトの名無しさん
15/12/24 16:24:41.70 lTmsChXg.net
> 動的遅延結合的にやっていることを
だから具体的には何?
652:デフォルトの名無しさん
15/12/24 17:07:23.44 acHF714F.net
>>639
>同じようにやろうとすると
問題はここでは?
653:デフォルトの名無しさん
15/12/24 17:55:03.50 J9J3Kh42.net
>>615
>REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ?
その「及ばない」程度をどう認識しているかの問題でしょう。
コマンドラインで満足できる人はREPLはインタラクティブと思うのだろうが、
Smalltalkを使う人にとってはREPLのインタラクションは到底我慢ならない。
Smalltalk環境をある程度以上使い込むと、
「この環境を静的型付言語上に実現することは
とてつもなく困難(おそらく不可能)だ」と実感するんだよ。
654:デフォルトの名無しさん
15/12/24 18:47:04.52 ri4CJahT.net
Pythonで何か変更を加えた後、いちいちいろんなテストを書いて実行しないとプログラムが破綻してる場所がないか確認取れないのが腹立たしくて仕方ない
この点においてはC++って神だわ
655:デフォルトの名無しさん
15/12/24 19:11:30.67 acHF714F.net
勝利もあれば敗北もある
656:デフォルトの名無しさん
15/12/24 19:27:06.30 E5q4kG2K.net
>>644
なんで、変更の影響がそんな外にまで波及すんの。
設計の問題じゃねの。
657:デフォルトの名無しさん
15/12/24 19:44:55.51 rA2ypWMt.net
そうか、C++ではロクにテストもせずに「できた」とか思っちゃうのか…こわっ!
658:デフォルトの名無しさん
15/12/24 20:08:47.22 E5q4kG2K.net
もともと、大型コンピュータの時代に、ひとつのプロセスが
全CPUパワー使ったまま待ち受けとかしたらすんげぇ無駄だよね?
TSS(タイムシェアリング)で複数のプロセスをできるとこから実行させてくとかするし
ネットワークで処理分散して別のコンピュータに処理投げるとか
いまの"密な関係"を前提としたプログラミングでやり続けるのは泥沼の道だよね?
"真のコンピュータサイエンス"が実現するまでは次善の策として
モジュール間の接続を疎にして、手続きの順番に強く縛られないプログラミングを
やるしかないよね?ってのが40年以上も前のことで、
それが真のコンピュータサイエンスが出るどころかネットは発達するわ
普通の家庭用コンピュータが2コアだ4コアだってなってんのに
『密なプログラミング』の泥沼這ってた奴らはなんでその泥沼から
「キツイから動的からあれ持って来て足したわ、こんどはこれ足したわ
これでどんどん"なんでもできるように増築"したから俺スゲー!」って自賛してんだよ。
おまえの棲んでるとこは泥沼なんだよ。泥はね散らかすな。
659:デフォルトの名無しさん
15/12/24 20:26:30.06 DECH3WsR.net
>>611
それがそうでも
C言語用ライブラリをそのまま使えるようにしようと思うと
その言語がC言語のヘッダを理解できる必要がある
ヘッダにはプロトタイプ宣言の他にも構造体とか定数とも定義してあるし
さらに悪いことにC言語にはマクロが有るからCのソースの断片がそのまま
ヘッダファイルに書いてあったりするから
C言語のヘッダが理解できるということは、C言語の全部が理解できるということに他ならない
C++やObjective-Cみたいな初めからC互換が念頭にある言語じゃないと厳しい
結局Cのヘッダをその言語用に移植してあげないと使えないんだよね
windows.hの移植とか、考えただけでぞっとするよな
660:デフォルトの名無しさん
15/12/24 20:30:08.49 DECH3WsR.net
>>648
お前の妄言にはなんの根拠もないわけだが
少なくとも最近の動的型界隈は静的型を取り入れるのがトレンドになっているし
実際にそういう言語がどんどん出てきているのは事実
事実は動かしようがない
661:デフォルトの名無しさん
15/12/24 20:59:23.91 J9J3Kh42.net
>>649
Cのヘッダを読み込んで自動的に動的型言語用のFFIを定義するぐらい
遅くとも90年頃には実用されてたぞw
何週遅れなんだおまえは
662:デフォルトの名無しさん
15/12/24 21:32:06.75 Q6U3kr4L.net
>>646
完全に個人用のファイル生成ツールだから設計適当、バグどんとこいって感じで取り敢えず動けばいいって感じなんよ
だからしばらく使わない機能とかあって、数ヶ月前に変更したところが変に効いてきたりするんよ
ぶっちゃけ設計が悪いのはその通りだと思う
663:デフォルトの名無しさん
15/12/24 21:41:12.91 Q6U3kr4L.net
>>647
C++の業務プログラマーが適当なんじゃなくて俺が適当なだけなんだけど、もしかしてそんなことも分からず俺がC++代表だと思ってしまう雑魚?
664:デフォルトの名無しさん
15/12/24 22:45:00.81 ZIvzfH3j.net
>>651
まじ?移植で純粋に面倒で困ってたんだ
C以外ならなんでもいいから実装を見たい
WindowsのヘッダならHIDA_GetPIDLItemとかのPIDL操作周りとかある?
665:デフォルトの名無しさん
15/12/24 22:57:46.42 DECH3WsR.net
>>651 移植ヘッダがあちこちに上がっているけど 企業はそういうものを使いたがらないんだよね 純正じゃないから
667:デフォルトの名無しさん
15/12/24 23:01:53.68 DECH3WsR.net
C用ヘッダの移植の話ならD言語すら苦しんでいる、というか苦しんでいた
もう過去の言語で忘れ去られる存在だから過去形で良いよね
とにかく全然普及しなかった
C言語のライブラリが使えるっつったって
ヘッダがそのまま使えないのであれば結局面倒なので普及しないのさ
結局C++を進化させる方向を時代は選択した
668:デフォルトの名無しさん
15/12/24 23:07:13.77 Xid5FbCP.net
C用のヘッダを書けばブリッジできるSwiftはやはり未来を生きているな
C++++の立ち位置はやはりこの言語か
669:デフォルトの名無しさん
15/12/24 23:08:30.65 DECH3WsR.net
>>654
C以外なら何でも良いならC++だな
Cのヘッダをそのまま読めるじゃないか
C++のCの互換性は完璧じゃないけど
Windowsのヘッダは両方に対応しているから問題ない
殆どのC用ライブラリはC++で使われることも想定しているから
大体は問題ない
670:デフォルトの名無しさん
15/12/25 00:08:28.55 pGtNhFfn.net
まあなんでもかんでもコンパイラに任せりゃいいと思ってる馬鹿が熱心になるのが
c++ なわけで、そもそもすべての仕様を満たしているコンパイラなんて存在しないっていう。
言ってみれば何でもかんでもプログラマに押し付けて、炎上しまくるクライアントみたいなもんだな。
671:デフォルトの名無しさん
15/12/25 00:12:57.12 v/Z7kcib.net
コンパイラに任せられるところは多ければ多いほど良いだろ
672:デフォルトの名無しさん
15/12/25 00:17:30.47 XvkCqMEu.net
673:逆に実行時のランタイムに何でもかんでも任せれば良いと思っているバガが動的型言語なわけだが
674:デフォルトの名無しさん
15/12/25 00:32:53.45 XvkCqMEu.net
規格書の件も、規格書が実装に先行しているのは健全だろう
実装してみてあとから規格書を起こすのはXXXだよね
特にC++ならまずはBoostとかで実験して便利そうだったら規格に入れていくって
フローが有って上手く行っているよね
キッチリしているよね
675:デフォルトの名無しさん
15/12/25 02:25:48.96 K0bEU4IZ.net
まあ、作る前にできあがる物がキッチリ決められる程度の物を作るなら静的で十分って話
676:デフォルトの名無しさん
15/12/25 02:27:22.36 OJPyRqtL.net
できあがる物がキッチリ決められる程度?
出来上がるものがきっちり決められないものって何?
そしてそれがなんで静的じゃ作れないの?
静的でも、コードを修正することで、
ありとあらゆる将来の変更に対応できるんだが?
君は、それじゃ無理という理由を書かないといけないね(笑)
677:デフォルトの名無しさん
15/12/25 03:11:44.03 IhSwjExx.net
人類はそろそろ静的型という野蛮な風習から卒業しなきゃな...
静的型なんて昭和までで見切りをつけるべきだった
678:デフォルトの名無しさん
15/12/25 04:07:09.91 K9bgF2wt.net
>>664
じゃあ、非常に単純な例で。以下を忠実に静的型付き言語でやってみせて欲しい。
いい具合に君は今、これから何を作らされるかわからない状態だ。
とりあえずオブジェクト(何のクラスに属していてもいい。いや、クラスに属さずにいられるなら、
それでも構わない)を作ろう。
できたかな? 仮にこいつを x と呼称する。
では x に foo というメッセージを送ったら 'bar' と返してくるように振る舞いを加えてみよう。
他にも二つのオブジェクト、y と z が必要になった。これらも当初の x 同様に、現時点では何者でもない。
その後、両者ともプロパティとして x を保持し、片方は baz、もう一方的には qux というメッセージを送ると、
両者とも x を返すように決まったのでそれに従おう。
さらに x には quux というメッセージにも応答させる必要がここで生じた。
当然、今の段階で y.baz.quux を評価したら例外があがるから、そのままデバッガで 'quuux' を返す quux メソッドを定義しよう。
なんとなく各オブジェクトの輪郭がつかめてきたから、x のクラスは X 、y と z のクラスはそれぞれ Y、Z と名付けることにしよう。
念のため、z.qux.quux も 'quuux' を返すことを確認しておく。
これらは大事なオブジェクトだから、次回起動時にもそれぞれのアイデンティティと関係性を変えることなしに
開発を続けられるように永続化もしておこう。
「メッセージ送信」がお気に召さなければ「メソッド呼び出し」と適宜読み替えてもらって構わない。
メッセージ送信もしくはメソッド呼び出しの記法にもこだわらない。
679:デフォルトの名無しさん
15/12/25 04:13:00.59 OJPyRqtL.net
> これから何を作らされるかわからない状態だ。
この時点で現実にありえない話だけどなw
> では x に foo というメッセージを送ったら 'bar' と返してくるように振る舞いを加えてみよう。
そのようにコードを修正して完了
> 両者とも x を返すように決まったのでそれに従おう。
そのようにコードを修正して完了
> 当然、今の段階で y.baz.quux を評価したら例外があがるから、そのままデバッガで 'quuux' を返す quux メソッドを定義しよう。
そのようにコードを修正して完了
> 念のため、z.qux.quux も 'quuux' を返すことを確認しておく。
そのようにコードを修正して完了
> これらは大事なオブジェクトだから、次回起動時にもそれぞれのアイデンティティと関係性を変えることなしに
> 開発を続けられるように永続化もしておこう。
そのようなことができる機能を追加して完了
何かできないことがある? 言ってることが冗長だよね
できないこと「だけ」を指摘しなさい。
なお、目的と手段を履き違えないようにねw
680:デフォルトの名無しさん
15/12/25 04:20:04.95 OJPyRqtL.net
動的のメリットは、結局、やるひつようもない
アクロバット開発ができるってことだけらしいよなw
綱渡りをしなさいっていう制約はないのに、
どれだけ綱を降りずに開発できるか。
自動テストを使えば、初期状態からもう一度再実行できるんだから
デバッグしながら開発するんだ。デバッグを中断したら駄目だっていう
綱渡りな開発をする必要はないんやで?
681:デフォルトの名無しさん
15/12/25 04:26:13.87 IhSwjExx.net
静的脳は動的はバカ、
動的脳は静的は無能と思い込む。
現実は両方必要なのにねえ。
682:デフォルトの名無しさん
15/12/25 04:49:18.25 8VJZxsHL.net
両方必要なことは動的脳はわかってるだろ。
無理に動的なんかいらなイイイ!とか言ってる珍獣土方をからかってるだけで。
683:ネットワークエンジニア(プロ)です
15/12/25 05:26:40.51 0vV5tzYe.net
両方必要とかばかじゃないの。
静的におけるディクショナリをお手軽に使えるのが動的だろ。
動的ってのは局所的に使うんだよ。
Webに収まってろよ。
684:デフォルトの名無しさん
15/12/25 06:36:40.94 pGtNhFfn.net
>>662
きっちりしてるのに上手くいってないのがc++なわけだが。
685:デフォルトの名無しさん
15/12/25 07:21:54.97 IvmyX9uA.net
>>667
「そのようにコードを修正して完了」の一行で済むのに…
686:デフォルトの名無しさん
15/12/25 07:27:52.90 OJPyRqtL.net
>>673
煽るのが目的だからこれでいいw
687:デフォルトの名無しさん
15/12/25 07:34:07.95 IvmyX9uA.net
>ありとあらゆる将来の変更に対応できるんだが?
って大見得切ったわりにはお粗末だったな。インスタンスは作り直しだがとか苦しい言い訳しつつも
クラス名の付け替えくらいは出してくるかと予想したが、まったく無しでコピペ返しとはね。
688:デフォルトの名無しさん
15/12/25 07:41:03.64 OJPyRqtL.net
何がお粗末なのか?事実を言ったまで。
ソースコードを修正で、ありとあらゆる将来の変更に対応できる。
689:デフォルトの名無しさん
15/12/25 07:41:38.82 OJPyRqtL.net
> クラス名の付け替え
それもソースコード修正で可能。
アクロバット(笑)をするのが
目的じゃないんだよw
690:デフォルトの名無しさん
15/12/25 08:33:49.83 b/ORJMNc.net
すまん、状況に応じて静的動的使い分けられない雑魚おる?
どっちかに固執するアスペみたいな奴おるな
691:デフォルトの名無しさん
15/12/25 08:36:13.65 hK6V4eA3.net
ITproでstaticおじさんがまた弄られている
もう数年前だというのに、赦されるときは来るのか
692:デフォルトの名無しさん
15/12/25 09:09:22.55 0wm6/WOA.net
>>666 Squeak Smalltalk で。
x := Object new.
"foo で #bar を返すように動的に変更"
x assureUniClass class compile: 'foo ^#bar'.
x foo. "=> #bar "
y := Object new. z := Object new.
"インスタンス変数、アクセッサーを動的に追加"
y assureUniClass class addInstVarName: 'baz'.
z assureUniClass class addInstVarName: 'qux'.
(Browser new setClass: y class selector: nil) createInstVarAccessors.
(Browser new setClass: z class selector: nil) createInstVarAccessors.
y baz: x. z qux: x.
y baz == x. "=> true "
z qux == x. "=> true "
y baz quux. "(デバッガでの動的メソッド追加作業は割愛。そのまま続行) => #quuux "
"クラスの動的な名称変更。変更後もインスタンスは維持"
{x. #X. y. #Y. z. #Z} pairsDo: [:inst :className | inst class rename: className].
{x. y. z} collect: #class. "=> {X . Y . Z} "
{x. y. z} collect: #identityHash. "=> #(3012 2588 1285) "
"永続化"
SmalltalkImage current snapshot: true andQuit: true.
"再起動後もアイデンティティ等維持"
{x. y. z} collect: #identityHash. "=> #(3012 2588 1285) "
693:デフォルトの名無しさん
15/12/25 09:13:40.79 OJPyRqtL.net
なぜそれを、デバッガを起動したまま
変更しないといけないのか?という問題が有るよな。
まずそこだよ。論点はw
694:デフォルトの名無しさん
15/12/25 09:40:26.84 b/ORJMNc.net
>>679
オブジェクト志向は愚かな考えというスレタイによくあった、今よりはいい話題を提供してくれるいい記事だ
695:デフォルトの名無しさん
15/12/25 10:24:18.27 IvmyX9uA.net
>>681
静的型付けでは「そのようにコードを修正して完了」なんだろ?
いいじゃん、それで。なぜわざわざ蒸し返す?
696:デフォルトの名無しさん
15/12/25 11:15:03.59 OJPyRqtL.net
>>683
そうなんだよね。手段と目的、デバッガを起動したままっていうのは手段であって
目的じゃない。目的はコードを修正することで、
静的型付けでもできることなんだよね。
697:デフォルトの名無しさん
15/12/25 11:22:07.51 zlW/tpNm.net
手段とか目的とか立場で変わることを言ってもしょうがないじゃんか
698:デフォルトの名無しさん
15/12/25 11:25:41.39 JtKLD9Wt.net
ルビーで開発してる人が言ってたけど型エラーが投げられた事は一度もみたことないって言ってた。
699:デフォルトの名無しさん
15/12/25 11:26:33.01 OJPyRqtL.net
じゃあ俺は言語を使ってアプリやシステムを作る人の立場で言うわw
最近ではシステムは停止することを前提として、クラウドで
多数のマシンを使って切り替えながらシステムを動作させるのが主流だからね。
一箇所を変えれば、修正が終わりって時代じゃなくなってる。
常に実行しながら行うのは技術的に面白いってだけで実用性は無い。
700:デフォルトの名無しさん
15/12/25 11:28:09.42 OJPyRqtL.net
>>686
話しよく聞いてみ。
"型エラー"が投げられたことがないと言ってるだけで
"エラー"が投げられたことがないとは言ってないから。
別の名前のエラーが投げられているが、
それは型エラーではないという屁理屈だよ。
701:デフォルトの名無しさん
15/12/25 11:33:07.93 IvmyX9uA.net
>>687
それでいいんじゃない?
キミの住む静的な閉じた幸せな世界ことで、これ以上何を議論する必要があるだろうか。いや無い。
702:デフォルトの名無しさん
15/12/25 11:35:15.65 OJPyRqtL.net
>>689
あぁ、同じことが動的にも言えるね(笑)
動的の閉じた世界であーだこーだ言ってればいいんじゃないw
どうせ、言語を使ってアプリやシステムを作らない人の
オナニーでしょ?w
703:デフォルトの名無しさん
15/12/25 11:39:46.06 JtKLD9Wt.net
ルビーの場合はコードの構造が型エラーを許さないようにできているから型エラーは起きないらしいね。
704:デフォルトの名無しさん
15/12/25 11:43:08.18 OJPyRqtL.net
ちなみに、どのような構造だから型エラーを許さないかを
詳細に語って見せてというと・・・?
言えないんだな、これがw
705:デフォルトの名無しさん
15/12/25 11:48:11.81 IvmyX9uA.net
静的型付きでは普通やらないことは全部アクロバット
そういうことやるやつは皆、アプリやシステムなんか作ってない奴
って妄想もすごいな
706:デフォルトの名無しさん
15/12/25 11:49:13.31 JtKLD9Wt.net
現実でよく使われてる言語の静的型付けはセキュリティーの助けになってないんだって。
707:デフォルトの名無しさん
15/12/25 11:51:54.57 JtKLD9Wt.net
型安全の安全は幻想であって、ルビーの型付けは安全かつ生産性が高いんだって。
708:デフォルトの名無しさん
15/12/25 11:52:57.87 OJPyRqtL.net
そりゃセキュリティのためじゃないしw
こういう「静的言語は○○が目的なんだ」←動的厨勘違い
でも「静的言語は○○の役に立たないんだ!」
という、自分で間違ったことを言って、それは間違いだって
指摘するマッチポンプやめてくれないかね?w
709:デフォルトの名無しさん
15/12/25 11:57:12.88 IvmyX9uA.net
君はいったい何と戦っているんだい?
世のなか馬鹿ばっかりで、さぞや大変だろうね。そんなに頑張らなくてもいいんだよ。
710:デフォルトの名無しさん
15/12/25 11:58:07.60 OJPyRqtL.net
戦うというよりかあしらってるって感じだけどなw
711:デフォルトの名無しさん
15/12/25 11:59:19.48 JtKLD9Wt.net
誰もが初めは動的型付けなんて使ったら滅茶苦茶になるって思ってルービーを使ってみると誰もがその自由度に驚きその恐れは間違いだったことに気が付くんだって。
712:デフォルトの名無しさん
15/12/25 12:03:49.35 OJPyRqtL.net
> 誰もがその自由度に
さっきも、それは具体的にどういうことって聞いたけど、
見事に答えなかったでしょ?
また今回も答えないよ。その自由度を。
あ、手段と目的を履き違えないでねw
それを使って、何に役立てられるかを答えるように。
713:ネットワークエンジニア(プロ)です
15/12/25 12:30:08.52 0vV5tzYe.net
ruby?
ああ、twitterが誤りに気づいて捨てられたやつか
714:デフォルトの名無しさん
15/12/25 13:13:35.65 peTf9jy5.net
>>691
タイポとかで存在しないメソッドを呼んだときに静的型では型エラーになって、動的型では別のエラーになるということでしょ?
715:デフォルトの名無しさん
15/12/25 13:33:40.28 H65SAupI.net
>>702
そもそもね。型安全ではないっていうのはC/C++のことを差すんだよ。
C/C++は型はあるけど、型キャストによってどんな不正な型にも変更できる。
そのようなコードを書いた場合、Segmentation faultが発生する。
もしくはメモリ内容によって未定義な変な動作をする。
Segmentation faultが発生し、通常はOSによって不正な動作を
食い止められる。このような自体になることが型安全じゃないってこと。
C#やJavaは不正な型に変更しようとしたら例外が発生する。
これは型安全。
だから4パターンあるんだよ。
1. 静的型:コンパイル時に型チェックが行われるが、型安全ではない。 C/C++など
2. 静的型:コンパイル時に型チェックが行われ、型安全。 Java、C#など
3. 動的型:コンパイル時に型チェックが行われず、型安全
4. 動的型?:コンパイル時に型チェックが行われず、型安全でない。(流石にこんなめちゃくちゃなのは作らないだろう)
静的型の1のパターンは、コンパイル時の型チェックにより、殆どの場合は安全に動作するが
壊そうと思えば壊せてしまう。それができないのが静的型の2のパターン
動的型は型安全にするしかないから型安全。静的型には型安全じゃないものが存在する。
動的厨はそれを利用して型安全じゃない静的型を叩いているだけ。
型安全な静的型の存在を意図的に無視してね。
型安全かつコンパイル時に型チェックが行われる言語は、型安全なのはもとより、
コンパイル時に型チェックが行われるから、実行時に例外(バグ)が発生する可能性も大きく減る。
つまり2のパターンの静的型が一番信頼性が高いソフトウェアを作れるってわけ。
716:デフォルトの名無しさん
15/12/25 13:39:12.58 b/ORJMNc.net
でも動的厨が叩いてるのC#じゃないっけ?
717:デフォルトの名無しさん
15/12/25 13:41:17.94 W214cjQ2.net
「static-typeおじさん」はなぜ自信満々なのか…
718:デフォルトの名無しさん
15/12/25 13:42:41.49 H65SAupI.net
>>704
それは連想ゲームで叩いてるんだよw
動的型は型安全 → 静的型は型安全じゃない → 静的型のC/C++は型安全じゃない
→ 静的型は型安全じゃない → C#は静的型 → 静的型は型安全じゃない
こんな感じでねw
719:デフォルトの名無しさん
15/12/25 15:31:05.22 JtKLD9Wt.net
これは針の上の天使問題の一つにだな。
720:デフォルトの名無しさん
15/12/25 20:26:11.52 P+AWGo7j.net
>>648で終わったら性的おじさんが
「終わりじゃねぇ!」って発狂した流れ
721:デフォルトの名無しさん
15/12/25 20:32:11.38 RqZZBlSb.net
Swiftのような本当の意味で型安全な言語って他にある?
722:デフォルトの名無しさん
15/12/25 21:04:06.54 VdtrNDQn.net
static-typeおじさんとかいう頭悪そうなレッテル貼りすこ
723:デフォルトの名無しさん
15/12/25 21:17:46.87 XvkCqMEu.net
っても最近の動的型はどんどん静的型の機能を取り入れている現実が有るわけだから
レッテル貼りしようにも、自分たちにも降りかかってくるんじゃないかね
724:デフォルトの名無しさん
15/12/25 21:19:31.49 JtKLD9Wt.net
型はカリーハワード対応で証明が出来るから安全なんだけど、C++とかはそういうことできないからな。
725:デフォルトの名無しさん
15/12/25 21:23:41.52 pExGh+/O.net
馬っ鹿野郎カーリーハワード対応なんてやりだしたら型推論もできなくなるじゃねえか。
まだ証明駆動開発に手を出すのは早いというか、現実とのすり合わせが欲しいところ。
726:デフォルトの名無しさん
15/12/25 22:45:11.43 cOtvUzth.net
気分はstatic-type!: 何度聞いても動的のメリットってピンとこないんです!
727:デフォルトの名無しさん
15/12/25 23:05:46.54 ya9ISuTA.net
極端な話、Cでシングルプロセッサの組み込み機材用の
小さなプログラム組んでる現場しか知らないプログラマが
C++もObjective-Cも"自分には必要のない機能"だから
関数で十分だろ!って言い張ってんのといっしょだからな。
728:デフォルトの名無しさん
15/12/25 23:07:42.36 H65SAupI.net
なら必要な理由を言うべきでは?w
729:デフォルトの名無しさん
15/12/25 23:14:42.64 VdtrNDQn.net
動的のメリットがピンとこないやつはそうそういないだろ
それ以上に静的のメリットが目立ってきただけで
730:デフォルトの名無しさん
15/12/25 23:19:44.67 NwxuBGdr.net
まだやってたのかい
おおいぬ座VY星の大きさにくらべたら
そんなちっぽけな事なんてどうでもいい話だぞ。
731:デフォルトの名無しさん
15/12/25 23:20:18.82 RqZZBlSb.net
今から5年後10年後を考えるともうプログラミング言語はSwift以外は必要ないんじゃない?
732:デフォルトの名無しさん
15/12/25 23:24:54.08 Zq2DCqaM.net
>>719
ふぞけんな
ガベージコレクション実装してくれたら考える
循環参照うざすぎ
733:デフォルトの名無しさん
15/12/25 23:30:22.04 O7yo+mtd.net
>>715
井の中の蛙に大海原でのサバイバルに必要な知恵を説いたところで、
「技術的に面白いってだけで実用性は無い」って一蹴されるのがオチ。
時間の無駄だと気付よ。www
そのカエルが想像力を欠いた思い込みの激しい自信たっぷりの頭の固いオッサンだったらなおさら。
734:デフォルトの名無しさん
15/12/25 23:39:55.58 H65SAupI.net
まず説明するべきだろうw
735:デフォルトの名無しさん
15/12/25 23:43:21.09 fIh1CtOA.net
このLISPロートルもC#を使ってりゃ
200行程度のコードのデバグ()に40時間も無駄にせんでも済んだのにな!
URLリンク(cybozushiki.cybozu.co.jp)