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)
736:デフォルトの名無しさん
15/12/25 23:45:19.82 RqZZBlSb.net
>>720
メモリ管理もできない雑魚プログラマにとってGCは生命線なんだろうけど、
あらゆる環境で動作する、これからのIoT時代を考えると、
プログラマの意図しないところで勝手に動作するGCを言語仕様に組み込まなかったのはSwiftの数多くの英断のうちのひとつ
737:デフォルトの名無しさん
15/12/25 23:59:15.15 ZRRrPEfi.net
>>723
おもしろい!
738:デフォルトの名無しさん
15/12/26 00:05:35.63 X/dp4KOm.net
>>720
pythonみたいに参照カウントをベースに循環参照も破棄できるようになればいいのにね!
739:デフォルトの名無しさん
15/12/26 00:08:12.89 ZXEkf1l0.net
SwiftもまずはWinとLinuxでしっかり動くようにしないと言語仕様に関係なくお話にならない
.NETは今必死に他環境に移植してるけど、結果がどうなるか
740:デフォルトの名無しさん
15/12/26 00:12:29.18 AIAsWwFm.net
Windowsは既にプラットフォームとして終わっているから問題ない
OSXは誰もが最新を使っているが、Win10入れてるやつがどれだけいる?
741:デフォルトの名無しさん
15/12/26 00:22:19.00 h8/CI80S.net
>>724
> メモリ管理もできない雑魚プログラマにとってGCは生命線なんだろうけど、
体育会系かな?
やらなくてもいいことを頑張っても
評価されないよw
742:デフォルトの名無しさん
15/12/26 00:25:35.01 AIAsWwFm.net
>>729
Swiftには明示的なメモリ管理は必要ないよ
頭の中にマシンを思い描けば、あとは勝手にSwiftがメモリを管理してくれる
イマジンからバイトコードを作る、これまでのプログラミング言語と一次元違う生産性を与えてくれる言語だね
循環参照に困ってるようなプログラマは、結局マシンと繋がってない2流なんだよ
何の言語やってもゴミだと思うよ
743:デフォルトの名無しさん
15/12/26 00:27:11.73 h8/CI80S.net
>>730
あんまりおもしろくないかな。
744:デフォルトの名無しさん
15/12/26 00:29:13.18 ZXEkf1l0.net
>>728
少し調べるとMacでも最新は半分とかいうデータもあるが・・・
少し古くなると無言でアップデートが降ってこなくなるのはどうにかしろよ
745:デフォルトの名無しさん
15/12/26 02:08:48.33 fgdYsfOp.net
>>731
なんか露骨にシャドーボクサーが敵だと思う相手のモノマネ始めた…って感じだよなぁw
746:uy ◆Qawu9.2l1E
15/12/26 05:47:09.22 FnXDSeGk.net
アスペしかいないなこのスレ
747:デフォルトの名無しさん
15/12/26 09:17:49.02 Pbxj7UC/.net
静的動的のメリットデメリットの項目を挙げていくと
静的型付けが大差をつけて勝ってると思うのに、
自分で実際に開発すると動的型言語を使ったときのほうが
明らかに生産性が高いのが腑に落ちない
あ、ちなみに静的動的両方使ってます日常的に
748:デフォルトの名無しさん
15/12/26 09:53:04.49 btZXIc4v.net
>>700
「このC#erは、動的機能なんか仕事じゃ使わない。 あれは曲芸のためのもんだと決めつける。
それにLispとかSmalltalkみたいな極端な動的言語でアプリやシステムをきちんと動かしたことがあるって実例を知らないよ。
そもそも、動的言語にはC#にある型チェックや完璧なインテリセンスが理論上作れないもんな。
「このC#erが動的言語を見くだしている時、もちろん彼にはそうしているという自覚がある。
C#よりも型付けの弱い言語は、 明らかに力が弱い。彼が慣れ親しんだ安全性・利便性がないからだ。
しかし、このC#erは反対の立場から見られるとき、彼は自分が見下されているのだということには気付かない。
彼が耳にするのは、自分には無用な変てこりんな機能や使い方ばかり。
どうやらそれらをC#で出来ることと引き換えにできるくらいパワフルと勘違いする馬鹿もいるようだが、
やつらは目的と手段をはき違えている。真摯に耳を傾けようにも俺の現場では有り得ない想定が出てくるばかり、
と思うだろう。
「彼にとってはC#で十分なのだ。何故なら彼にとってC#で十分な仕事がすべてだから。
749:デフォルトの名無しさん
15/12/26 09:58:56.71 NGJJ2lD8.net
静的型付けは処理系のための技術。ベンチマークやエラー検出などカタログスペック的なメリットを挙げやすい。
動的型付けはプログラマのための技術。良さが工学的な指標に直接現れにくい。
だから>>735は至極自然なこと。
matzがよく言う「書いていて気持ちいい言語」もそういうこと。
750:デフォルトの名無しさん
15/12/26 10:16:26.79 h8/CI80S.net
>>736
> このC#erは、動的機能なんか仕事じゃ使わない。 あれは曲芸のためのもんだと決めつける。
決めつけてるんじゃないよ。
お前が曲芸の話しかしないからだろう?
停止して修正しても同じことができる。
停止しないで修正する。以外のことは何一つ言ってない。
751:デフォルトの名無しさん
15/12/26 10:17:43.34 h8/CI80S.net
>>737
> 静的型付けは処理系のための技術。ベンチマークやエラー検出などカタログスペック的なメリットを挙げやすい。
客観的にメリットをあげられる。
> 動的型付けはプログラマのための技術。良さが工学的な指標に直接現れにくい。
主観による好みしか無い
なるほどねぇw
752:デフォルトの名無しさん
15/12/26 10:18:26.61 EXUTS9i+.net
Swiftってそんなにすごいのか
フォートランぶち転がせるかな
753:デフォルトの名無しさん
15/12/26 10:43:34.57 CL7rBGr9.net
>>717
残念ながら多いみたいだよ。
>>739
指標化しずらくても大事な事はあるって言う当たり前のことからまずは目を向けようか。
754:デフォルトの名無しさん
15/12/26 10:47:22.39 KNyipM+p.net
このスレのstatic-typeおじさんはプログラム書いたこと無さそうな感じするわ
webの記事だけ読んでカタログスペック語っちゃってるってことか
755:デフォルトの名無しさん
15/12/26 11:33:23.04 h8/CI80S.net
>>741
まず「大事なことはあるんだ!(完)」じゃなくて
説明することから始めような?
756:デフォルトの名無しさん
15/12/26 14:00:14.24 JNqWY34w.net
説明してもらえる態度から始めような。おっさん。
757:デフォルトの名無しさん
15/12/26 14:17:21.38 lwOCx2j3.net
メリット、デメリットと言っても、チューリング完全ならどの言語を使ったって同じだからなぁ
ラーメンタイマーを作るのに態々コンパイラを引っ張り出してくるなんて馬鹿らしい事をするのか?
EXCELのデータを加工するのに、C#使って加工するのか?
758:デフォルトの名無しさん
15/12/26 14:44:09.10 NGJJ2lD8.net
>>738
>停止して修正しても同じことができる。
停止したらできないことは多い。君がそのどれにも気付いていないだけ。
気付かないのは、それだけ経験が浅いということ。
君は素人だから仕方ない。だから責めはしない。
しかし自分の無知は自覚しておきなさい。
759:デフォルトの名無しさん
15/12/26 15:16:22.31 cLEQ3vA1.net
経験が~ってこれ
言い出すほうがザコっぽいよねいつもw
760:デフォルトの名無しさん
15/12/26 15:19:49.45 h8/CI80S.net
> 停止したらできないことは多い。君がそのどれにも気付いていないだけ。
いっつもこればっかりだよなw
具体的な説明はしない(できない)
説明しないくせに、理解できないのは他人のせいw
761:デフォルトの名無しさん
15/12/26 15:21:01.87 MxaSLHJT.net
例えば、乱択アルゴリズムでのコーナーケースのデバッグは、
修正後の動作確認するには元の実行状態を完全に復元しないと無理だわな。
762:デフォルトの名無しさん
15/12/26 15:27:36.14 MxaSLHJT.net
自分の管理下にないサーバとのチャレンジ/レスポンスでのデバッグも
一旦プログラムを実行中断してしまうとサーバ側が同じチャレンジをしてくれないな。
他にも、実行状態を中断せずに修正して動作確認したいケースは多々ある。
1つも挙げられない人って、プログラマとしてどうなんだろうね?
763:デフォルトの名無しさん
15/12/26 15:28:32.73 h8/CI80S.net
>>749
元の実行状態を完全に復元したら、
次の乱数の値は同じものが出現するってこと?
それでデバッグできるってことは、そういうことなんだろうね。
乱数の値が、前の状態によって決まるのであれば、
一番最初の状態を一つ定義するだけで、同じ状態が復元できるのでは?w
764:デフォルトの名無しさん
15/12/26 15:30:11.50 h8/CI80S.net
>>750
> 自分の管理下にないサーバとのチャレンジ/レスポンスでのデバッグも
> 一旦プログラムを実行中断してしまうとサーバ側が同じチャレンジをしてくれないな。
では、動的言語にすると、サーバー側は同じチャレンジをしてくれる、というのかね?
765:デフォルトの名無しさん
15/12/26 16:08:40.09 sP1JXdgY.net
職業プログラマが出てこないでよ。
仕事の話しないでよ。
766:デフォルトの名無しさん
15/12/26 16:11:36.35 7h5tLOzP.net
だめだこのおっさん。自分の思考が停止してることにぜんぜん気付いてない。www
767:デフォルトの名無しさん
15/12/26 16:16:43.64 h8/CI80S.net
「私はこういう意見がある!(ドンッ)」
ほう、言ってみ?
「自分で考えろ!(ドンッ)」
だめだこりゃwwww
768:デフォルトの名無しさん
15/12/26 17:01:59.36 7h5tLOzP.net
緩募
Aという状況に対処することの必要性を
Aという状況を想定できないおっさんに説明する方法
Bという方法で対処できる事態においてBが有効であるということを
Bを無意識に選択肢から排除して疑問を持たないおっさんに説明する方法
あるいは
端から話を聞く気がないわりにこまめに絡んでくる痛いアスペのおっさんに退場いただく方法
769:デフォルトの名無しさん
15/12/26 17:13:02.19 vJHNtaLI.net
答
スレタイ嫁
(ここは静的型付の優位性を論じるスレではない)
770:デフォルトの名無しさん
15/12/26 17:20:46.23 gCn4MbmU.net
>>757
クソがクソ溜めでクソな話して楽しんでるのに横槍いれんじゃねえ
帰れアスペ野郎
771:デフォルトの名無しさん
15/12/26 18:20:09.09 lipwm7l1.net
>>749-750それができるのは動的型付けだからか?perlでもphpでもできるのか?CommonLispとSmalltalkはできるけど。
CommonLispで>>749-750ができるのはデバッガが充実してるからで、オブジェクト指向は関係無いな。
772:デフォルトの名無しさん
15/12/26 18:40:19.19 AIAsWwFm.net
今の職業プログラマは10年したら「プログラミングネイティブ」世代に置いてけぼりにされるのにね
今でも、できる中年プログラマはマイコンやMSXでBASICとかやってた人なんだろうとは思うんだけど、
かつては金持ちの道楽だったプログラミングが次世代からはいっきに敷居が下がる
「仕事では使えない言語」という評価は、「その言語を使えるレベルの高い人がいない」という人月による奴隷労働の生む現象だけど、
5年もしたら奴隷階級でも、"流行の言語を10代から遊び感覚で使ってきた"、プログラミングネイティブ世代に置き換わる
773:デフォルトの名無しさん
15/12/26 18:55:24.91 h8/CI80S.net
>>759
良い指摘だねw
そう。それはデバッガの機能
URLリンク(msdn.microsoft.com)
> 次に実行されるステートメントを設定する
>
> デバッガーを中断した後、実行ポイントを移動して、コードの次に
> 実行されるステートメントを設定できます。ソース ウィンドウまたは
> [逆アセンブル] ウィンドウのマージンに表示される黄色の矢印は、
> 次に実行されるステートメントの位置を示します。
>
> この矢印を移動すると、コードの一部をスキップしたり、前に実行した行に戻ったりできます。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 既知のバグを含むコードのセクションをスキップするなどの場合に利用できます。
774:デフォルトの名無しさん
15/12/26 18:56:29.15 OdF2h8JB.net
構造化プログラミングでのgoto排除ですら
実は"人間の都合"であって最速最良を追求するならgotoあったほうがいいわけで
つまり性的おじさんの必死で主張してる効率の良さは
下からどんどんコンパイラ最適化でいままさに
人工知能に機械的に喰われてる部分であって。
アセンブラと動的な抽象化の間でなにをのたうっているのかと…
775:デフォルトの名無しさん
15/12/26 18:58:53.84 EXUTS9i+.net
(今度は静的言語の速さを話題にシャドーボクシング始めたぞ)
776:デフォルトの名無しさん
15/12/26 19:01:08.59 h8/CI80S.net
>>763
そうなんだよねw
上で俺はマッチポンプって書いたけど、
「静的厨はこういうことを言ってるんだ!」と
自分で言っておいて、それを叩くというわけのわからんことをやってる
777:デフォルトの名無しさん
15/12/26 19:07:23.46 h8/CI80S.net
前にも書いたと思うけど、>>761を出したついでに関連してこれもかいておくか。 エディット コンティニュ https://msdn.microsoft.com/ja-jp/library/bcew296c.aspx > Visual Studio 2015 その他のバージョン > > エディット コンティニュを使用すると、プログラムが中断モードのときにソース コードを > 変更できるため、時間を節約できます。 Continue や Step などの実行コマンドを選択して > プログラムの実行を再開すると、一定の制限の下で、エディット コンティニュがコードの > 変更を自動的に適用します。このため、デバッグ セッション中にコードを変更できます。 > デバッグ セッションをいったん停止し、プログラム全体を再コンパイルしてからデバッグ セッションを再開する必要がありません。
779:デフォルトの名無しさん
15/12/26 19:10:09.63 OdF2h8JB.net
swiftにシャドー挑んだスマホで書き込んで
即座に切り替えて自分で自分に
「そうなんだよね」ワロタ
780:デフォルトの名無しさん
15/12/26 19:16:55.46 EXUTS9i+.net
自分が自演してるからって人もしてると思ってんじゃねーよ
あとフォートランが死なない理由は速いからと思ってるようだけどどちらかというと遺産が多過ぎるから、老害の使用率が高すぎるからだぞ
そしてこれはシャドーとは言わない
781:デフォルトの名無しさん
15/12/26 19:37:51.44 E3MIEZFa.net
どちらにしても、動的型がどんどん静的型を取り込んでいる現状があるのにそれを無視してもな
静的型にメリットが無いなら、本来静的型がなくても動く動的型が
わざわざ静的型を取り込むわけ無いということぐらい直ぐにわかるのに
782:デフォルトの名無しさん
15/12/26 19:40:22.05 OdF2h8JB.net
それが3つめのでしょ?すぐわかんだよね…
783:デフォルトの名無しさん
15/12/26 19:54:49.37 EXUTS9i+.net
このスレに書き込んでるのは二人だけってマジ?
784:デフォルトの名無しさん
15/12/26 20:01:24.61 h8/CI80S.net
>>770
他人にそれを判断することは不可能だよ。
(あったら説明して納得させてみいw)
だから思い込みと見て間違いない
785:デフォルトの名無しさん
15/12/26 20:06:55.31 EXUTS9i+.net
>>771
それも俺なんでしょ?すぐわかるんだよね…
786:デフォルトの名無しさん
15/12/26 20:40:10.56 NGJJ2lD8.net
>>759
CLとSTの両方とも動的型付けだというのは偶然ではないと思うぞ。
OCamlのような実行時型情
787:報を持たない言語/処理系で 実行中に修正して継続実行することは非常に困難であり、 かつ、型の制約が強すぎて修正できる部分は非常に限定される。 修正前後での型の一貫性を保てない修正ができないから。 以上の理由から、動的型付けの利点と言っていいと思うが、どうよ?
788:デフォルトの名無しさん
15/12/26 20:42:16.15 NGJJ2lD8.net
>>761
コードの実行中でのコード修正&実行継続と
単なるデバッガ中でのステップ実行の区別もつかない人は
黙ってたほうがいいと思うよ?
789:デフォルトの名無しさん
15/12/26 21:08:32.92 6DkdQBNB.net
エディット コンティニュはデバッグ ビルドでのみ動作します。wwwww
エディット コンティニュは 64 ビット コードでは使用できない wwwww
790:デフォルトの名無しさん
15/12/26 21:09:02.33 KNyipM+p.net
OCamlのデバッガに1ステップ前に戻る(ステップ実行の反対の)操作があるのスゴイ
791:デフォルトの名無しさん
15/12/26 21:11:28.36 MxaSLHJT.net
>>765
動的言語の単なるアクロバットの実用価値がやっとわかって静的言語にも取り込もうとしている現状にやっと気付きはじめたんだねw
実行時変更にメリットがないなら静的型がわざわざ実行時変更を取り込むわけ無いことぐらい直ぐにわかるのにwww
792:デフォルトの名無しさん
15/12/26 21:16:27.69 EXUTS9i+.net
>>777
ちなみにこれも俺なんです。すぐにわかるんだよね…
793:デフォルトの名無しさん
15/12/26 21:16:30.94 6DkdQBNB.net
URLリンク(msdn.microsoft.com)
デバッグ セッション中に C# コードに適用できない変更は、次のとおりです。
- 現在のステートメントまたはその他のアクティブ ステートメントに対する変更。
- アクティブ ステートメントには、現在のステートメントを取得するために呼び出される、
呼び出し履歴上の関数内に存在するすべてのステートメントが含まれます。
- ソース ウィンドウ内では、現在のステートメントは黄色の背景で示されます。
その他のアクティブ ステートメント (読み取り専用) は、網かけの背景で示されます。
これらの既定の色は、[オプション] ダイアログ ボックスで変更できます。
- 型のシグネチャの変更
- 以前にキャプチャされていない変数をキャプチャする匿名メソッドの追加。
- 属性の追加、削除、変更。
- using ディレクティブの追加、削除、変更。
- アクティブ ステートメントの周囲への foreach、using、または lock の追加。
じゃあ、なになら出来るんだよwwwwww
794:デフォルトの名無しさん
15/12/26 21:44:49.52 gbQMSnGA.net
>>776
>1ステップ前に戻る(ステップ実行の反対の)操作がある
すごいな。
URLリンク(d.hatena.ne.jp)
ほんとだ。実行時コンテキストはどうやって巻き戻しているの?
795:uy ◆Qawu9.2l1E
15/12/26 22:25:14.87 4ahr08St.net
このスレの奴12/25までケンカしてたんだな・・・
お疲れとしか
796:デフォルトの名無しさん
15/12/26 22:58:18.55 lipwm7l1.net
>>773 多分、プログラミングとは何か、実行環境とは何かっていう部分が違うんだと思う。
超強力なデバッガを持っているCLやSTだと、絶賛稼働中の環境でも修正できるのが単なるメリットではなく、
そういうやり方も当然あるものとして開発を続けるのが普通、だと考えているのではないか。
根底にあるのは、プログラムを実行する人と開発者が分かれていない、分かれていてもそんなに遠くない関係のままであり続ける(べき)というスタンスなんじゃないかと。
特にSmallTalkは(というよりアラン・ケイが)そういう考え方の元で作られた言語+環境だから、
SmallTalkerにとっては実行時の型情報が重要だし、動的型付けも必須だと思う。むしろ空気のようなもんになっているんじゃないかと。
一方で、実行者にプログラミングの素養を期待しない、開発者は遠くの人、みたいな場合はデバッガなんて実行時にあるだけ無駄だし、
開発者はバグが無いよう細心の注意を払うべきだし、言語はそれをサポートする機能を持つべき、っていう考え方の人もいる。
そういう人は強い静的型付けで型システムが豊かな言語が魅力的に見える。
コードの再利用のために継承を欲しがり、ついでにオブジェクト指向も入れてしまった言語…黙秘します。語るべきじゃない。
797:デフォルトの名無しさん
15/12/27 00:25:42.92 LQildC0d.net
>>775
現在では64bitにも相当まで対応してるはず
リリースビルドは動的型と比べて自由度と柔軟性を捨てて速度を選ぶんだから、しょうがない
やってみるとわかるけど、VisualStudioの出来の良さも含めて案外使い物になるよ
798:デフォルトの名無しさん
15/12/27 00:45:39.53 K/y89QOU.net
>>782
議論の参考になるか分かりませんが、アラン・ケイが出してた
動的にやれることのメリットとしてはこんなのがあります。
例えば、あるプロジェクトを一年以上続けていて、
沢山の大切な物が出来上がっているとする。
何万もの動いているオブジェクトがあるクラスに、
システムを破壊せずにいくつかのインスタンス変数を追加して、
動的にそれらを再構成する事は出来るだろうか?
ただあくまで彼は早期結合に批判的なのであって、(静的)型に必ずしも反対しているわけではないようです。
きっと遅延結合をサポートできる柔軟で賢い型システムが出てくれば歓迎するでしょう。
799:uy ◆Qawu9.2l1E
15/12/27 00:50:00.24 Dbb+2cjN.net
URLリンク(www.ruby-lang.org)
800:デフォルトの名無しさん
15/12/27 01:10:47.29 si7ncwl4.net
まあこのスレみてて一番の収穫は
静的、動的に異常にこだわる馬鹿はプロジェクトから排除するべき
っていうことがよくわかったってことだな。
801:デフォルトの名無しさん
15/12/27 03:45:03.72 DLk3aEoT.net
少しPharo Smalltalkを触ってみた感じでは、Pharoだけで閉じたシステムなら稼働中のシステムの改修も簡単にできるように見えた。
来歴の異なる2つのアイデアに同じオブジェクト指向という名前を使うのはやめて欲しいと思った。批判がぼやけるし、反論もぼやける。
Smalltalkの徹底している(ように見える)メッセージ指向は面白い。
ただ、速度を稼ぎたいっていう需要は相変わらずあるし、速度も安全性も欲しいっていう需要もある。
Smalltalkで頑張るより最初っから速い言語で書く方が楽な部分もある。
>>784
アラン・ケイのその例はちょいとSmalltalk過ぎて、自分の好きな言語でどう言い直せる問題なのかすぐに出てこない。すまん。
802:デフォルトの名無しさん
15/12/27 10:55:29.62 iIeA3jAx.net
インテリセンスのためにコメントに型を書いてる言語みると笑いが込み上げるよね
803:デフォルトの名無しさん
15/12/27 17:28:53.36 Uc9cUKER.net
型にこだわる奴はB型なんだけどな。
804:デフォルトの名無しさん
15/12/27 17:52:14.76 Uc9cUKER.net
以下の文はソース
>B型の特徴 マイルールで動きわけのわからないこだわり持つ
805:デフォルトの名無しさん
15/12/27 17:54:46.05 6NYNO2+5.net
お前が一番「型」にこだわってるじゃねーか
806:デフォルトの名無しさん
15/12/27 18:22:52.04 1oZy+T7E.net
最低なのはアホで愚鈍でキチガイのO型
手続き型のA型は実直だけど神経質
おおらかでダイナミックだけど個性的なB型
ハイブリッドマルチパラダイムで最強のAB型
807:デフォルトの名無しさん
15/12/27 18:55:00.45 LQildC0d.net
>>788
たしかに、動的型でコメントに型を書くぐらいなら言語の機能でかければいいのにと思う反面、それやると全てに型を書くように言うやつが出て動的の利点が失われるというジレンマ
808:デフォルトの名無しさん
15/12/27 19:09:57.62 qllk89hj.net
O型はA型やB型に輸血すると動的に型が変わる最強型
A型は他の血液型入れるとすぐクラッシュして死ぬ愚鈍
809:デフォルトの名無しさん
15/12/27 19:45:26.36 /O53e43E.net
>>788
pythonのことか…
810:デフォルトの名無しさん
15/12/27 19:45:47.84 si7ncwl4.net
オブジェクト指向のスレかと思ってたらいつのまに血液型スレになってた。。
何を言っているのかわからねーと思うが おれも何をされたのわからなかった。。
811:デフォルトの名無しさん
15/12/27 20:02:57.80 r1oeWZPX.net
>>794
うお!血液型って変化するんか今更知ったわw
調べたら、O型の人は赤血球ならば他の型へ与えることができるが、逆に血漿は誰にも与えられないのね
URLリンク(ja.wikipedia.org)
812:デフォルトの名無しさん
15/12/27 20:30:46.78 1oZy+T7E.net
>>794
原始人なんじゃねO型って
813:デフォルトの名無しさん
15/12/27 20:52:21.13 si7ncwl4.net
ほんとにプログラム書く上で役に立たないどころか害になりそうな議論しかないところが凄いね。
814:デフォルトの名無しさん
15/12/27 21:29:05.69 AYt5UEwr.net
SmalltalkやCommon Lisp(?)で何作ってんの?
ていうか本当に使ってんの?
815:デフォルトの名無しさん
15/12/27 22:29:14.19 NuWA0y2P.net
C#erのオッサンが、たいして知りもしないSmalltalkとかCommon Lispに難癖つけてて草
816:デフォルトの名無しさん
15/12/27 22:47:34.86 g/r0v/P2.net
>>800
CLerはともかくSmalltalkerは
一匹やってくるとワサワサ増殖して空気読まないレス連発するので不用意に呼び寄せないで欲しい
817:デフォルトの名無しさん
15/12/27 23:13:17.05 Yse7GotI.net
Objective-Cだとなんでもクラスというかちょっとデータ数あったらすぐ
NSObjectを継承して動的に生成され管理されるクラスにデータ入れて渡すから
言語的に言語仕様で定められた"型"の判別がどーとかより
現在使ってるフレームワークで"クラス"がどう定義されてるかになって
話が言語の方にこないっつか。
>>784の想定してる問題がよくわからんがクラスで受け渡してるものに
なにか新しいデータ要素を足すってのは、Obj-C的には
トラックの荷台に新しく置くものが増えるぐらいの感じで
別にそれでどこか別の部分に問題が出たりするシステムの方が
逆によくわからない。それの積み下ろしに関係してないとこはもともと利害ないし
新しく積み下ろす関連のとこだけ直せば動作に問題出ないし。
ちなみにクラス自体は内部的にはポインタ渡しのメモリブロック扱い。
818:デフォルトの名無しさん
15/12/27 23:29:58.30 f7J7LqC1.net
ちっ
819:デフォルトの名無しさん
15/12/27 23:48:44.46 K/y89QOU.net
>>803
>トラックの荷台に新しく置くものが増えるぐらいの感じ
論よりコードで、とりあえずSmalltalkの>>680をObj-Cでやるとどんな感じ?
820:デフォルトの名無しさん
15/12/27 23:54:26.71 TQTcd7lL.net
なんでゴキブリって全員がゴキブリ語を解する前提なんだろ
821:デフォルトの名無しさん
15/12/28 00:03:12.16 CKLu8anb.net
ゴキブリがしゃべってるのが見えるんですね?
お薬ちゃんと飲んでますかー?
822:デフォルトの名無しさん
15/12/28 00:11:06.21 02492xEu.net
>>806
低レベルと見下した意味での「ゴキブリ」なら、解するのもわけないのでは?
そもそも、解する、解さない以前に気にする必要自体ないでしょう? 役立つ情報がないんだから。
得体が知れないという意味なら、Smalltalkはすごくシンプルな言語なので(マクロがない分、Lispよりシンプル)、
さして苦労はせずに読むことくらいはできるようになれますよ。
URLリンク(amber-lang.net)
823:デフォルトの名無しさん
15/12/28 00:12:56.26 KeqGm6Du.net
Smalltalkerにとって>>680は相当にお気に入りみたいだね
ああいうトイコードを書いてはニヤニヤしちゃってるのかな
824:デフォルトの名無しさん
15/12/28 00:20:38.75 02492xEu.net
>>809
基本的にSmalltalkのコードはシステムブラウザを使って書くので、こういうことをあえてすることはないですね。
ただ、内部的にはやはりこうした動きなのと、動的遅延結合性の要素がそれなりに盛り込まれているので
こういうことが無理なく出来る言語なら、使ってもストレスはあまり感じずに済むかなとは思います。
825:デフォルトの名無しさん
15/12/28 00:24:42.85 ESQO+1YW.net
>>800
ホントにこれ
Lispはmathematica様の原料だからわからんでもないけど
実際どこで役立ってるのか紹介せずにアンテナ弱いとかの煽りしか飛んでこないのホント害悪
826:デフォルトの名無しさん
15/12/28 00:38:13.00 w2hqGr/u.net
絞り出したのが「Lispはmathematica様の原料」って、そりゃあんたさすがにアンテナ低すぎだろ…
せめてルンバがLispで動いている(噂レベル)とか、Yahoo!Storeが当初Lispで書かれてたくらいは出そうよ
827:デフォルトの名無しさん
15/12/28 00:40:37.42 i875NmCw.net
動的遅延結合性なんかいらんだろ
エラーが分かるのが遅くなるだけ
だいたい粒度の問題というものは常々なんにでも付きまとっていて
要するに、オブジェクトという細かな粒度でそんな機能は必要とされてないのだ
>>309でも指摘されているだろ
828:デフォルトの名無しさん
15/12/28 00:45:15.64 ESQO+1YW.net
かなり分かりやすい具体例をあげたらそっちからアンテナ低いと叩かれるとか頭おかしい
829:デフォルトの名無しさん
15/12/28 00:47:03.54 ESQO+1YW.net
Mathematical じゃなくてmaximaだったか
これは叩かれても致し方なし
830:デフォルトの名無しさん
15/12/28 00:54:33.76 ESQO+1YW.net
とはいえやっぱりlispみたいなラテン語並みの言語の使い道知らなくても叩かれるいわれはないぞ
831:デフォルトの名無しさん
15/12/28 01:07:18.94 02492xEu.net
LispでMaximaの例がわかりやすいのなら、Smalltalkの場合たとえば
Rubyの処理系のひとつがSmalltalkで書かれているとかではどうですか?
URLリンク(maglev.github.io)
言語処理系では他に SlateとかNewspeakとか、Scratch(1.4まで)とかありますが、まあ、
Smalltalk よりマイナーな言語だと挙げても意味ないかとも。
スマホ向けソフトでも、そう多くはないですが Smalltalk で書かれているものがあります。
URLリンク(www.drgeo.eu)
ネットサービスでPharoを使っているとかならスタートアップでいくつかあるのですがやはりマイナーな用途ですよね?
URLリンク(pharo.org)
URLリンク(www.sorabito.com)
メジャーどころに買い取られた(まあ実際は飼い殺し)のだと、
Twitterに買われたDabbleDB URLリンク(www.youtube.com) とか
VMwareに買われたGemStone URLリンク(www.vmware.com) とか
基幹だと
OOCL の GemStone活用 URLリンク(smalltalk.cincom.jp) とか
J.P.モルガンの VisualWorks活用 URLリンク(smalltalk.cincom.jp) とか
が有名どころです。参考まで。
832:デフォルトの名無しさん
15/12/28 01:09:54.97 KeqGm6Du.net
(1)無停止が要求されるシステムで
(2)プログラマが本番稼働中のシステムに直接パッチ当てることが許されてて
(3)Smalltalkで開発されてる
(1)と(2)が両立するだけでも信じ難いレベルなのに、3つ全部揃ってるってどんだけレアなの
833:デフォルトの名無しさん
15/12/28 01:36:15.43 02492xEu.net
>>818
Smalltalk が目指す無停止っていうのは、サーバーの無停止とはちょっと意味合いが違うんですよね。
インターネットが(ノードレベルでは停止することはあっても)全体として無停止とか、そういうのに似ています。
OS だと、アップデートで再起動がいらないとか以前に、そもそも再起動を想定しないシステム作りとかそういう方向性です。
834:デフォルトの名無しさん
15/12/28 01:56:46.03 ESQO+1YW.net
>>817
すごいなあこれ
Smalltalkを勉強するメリットはあんまり伝わってこなかったけど、Smalltalkに関する情熱はすごくよく伝わってきた
ID:02492xEuさんの主張がまだよく分からないのですが、Smalltalkは学ぶべき実用言語なのですか?それとも敬意を払うべき古典なのですか?それまた考え方の基礎として知っておくべき教養なのですか?
835:デフォルトの名無しさん
15/12/28 02:01:33.32 9w43khSU.net
20年前はどうだった?
どいつもこいつの禿様、オブジェクト指向様と拝んでたくせに
糞共が
836:デフォルトの名無しさん
15/12/28 02:05:36.29 9w43khSU.net
どいつもこいつの → どいつもこいつも
837:uy ◆Qawu9.2l1E
15/12/28 03:03:19.88 9q5IGdq7.net
マイナー言語で何かが作られてたとしても、
その言語が凄いってわけじゃなくて、
その言語を得意としてる奴の中に凄いのが混ざってただけ
人によって使いやすい言語構文は違うというuyの主張
838:デフォルトの名無しさん
15/12/28 03:04:13.01 8sKUVUhj.net
使いやすいかどうかは、慣れでしかない。
839:デフォルトの名無しさん
15/12/28 03:06:45.15 02492xEu.net
>>820
Smalltalkは我々使い手にとっても「来なかった未来」なので、それが何かを知らない人があえて学ぶ価値はないです。^^;
ただ処理系のアップデートは続いていますので、よく知らないくせに「(役目を終えた)教育向け」とか「さび付いた
言語」とかレッテルを貼って馬鹿にされると、いささかむかつきますけどね。
歴史的には、WIMPなGUIとか、MVCとか、IDE、XP/TDD/アジャイルとか、最近ではTraitsとかClassboxesとか
流行になる程度に影響がある技術や手法のゆりかごや先駆けみたいな存在ではあるので、
それらの出自やメリットデメリット、デメリットに対して試みられた対策をきちんと知っておこうという意識高い系には
教養・基礎知識として学習しておくのはありかと思います。
あと、徹底した動的結合性の(失敗して、アラン・ケイに見捨てられたりはしましたが)チャレンジの一応の成果ではあるので、
繰り返し同じ失敗をしないための反面教師であったり、さらにこのチャレンジを進めるためのたたき台としては
大いに学ぶ価値はあるかと。もちろんそこまで背負い込まなくても、落ち穂拾いとか宝探し(ゴミあさり?)感覚で、
まだ手垢の付いていない有用な技術や機能、ノウハウのネタ元を探す目的で学ぶというスタンスも面白いと思います。
840:デフォルトの名無しさん
15/12/28 03:09:49.59 8sKUVUhj.net
じゃあレッテルじゃない事実を
SmalltalkはOSとIDEとエディタと言語を統合させてしまうという
間違った設計をしたため(言語ではなく)運用面で柔軟性にかける言語
841:デフォルトの名無しさん
15/12/28 03:10:28.44 8sKUVUhj.net
訂正
SmalltalkはOSとIDEとデバッガと言語を統合させてしまうという
842:uy ◆Qawu9.2l1E
15/12/28 03:23:50.08 7qtNlkA2.net
今でこそ間違いだと分かるものの
黎明期に作られた言語なんて、何と何を分離したらいいか分からなかったんだろう
その中でたまたま目瞑って石投げたら当たったみたいな言語が生き残った感じ
843:デフォルトの名無しさん
15/12/28 03:31:14.07 8sKUVUhj.net
動的言語の特徴とSmalltalkの特徴がごっちゃになってる人がいるんだよからなぁw
Smalltalkはこういうことができる!これは動的言語だからできるんだ。と
言い出すが、これは他の動的言語では出来ず。
IDE(エディタ+デバッガ)の機能だよねそれ?
Visual Studioでもデバッグ中にソースコード編集できたり
好きな行から再実行とかできるから、静的言語でも実現可能な機能だし。
URLリンク(msdn.microsoft.com)
> 次に実行されるステートメントを設定する
>
> デバッガーを中断した後、実行ポイントを移動して、コードの次に
> 実行されるステートメントを設定できます。ソース ウィンドウまたは
> [逆アセンブル] ウィンドウのマージンに表示される黄色の矢印は、
> 次に実行されるステートメントの位置を示します。
>
> この矢印を移動すると、コードの一部をスキップしたり、前に実行した行に戻ったりできます。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 既知のバグを含むコードのセクションをスキップするなどの場合に利用できます。
それで、エディタやデバッガの機能じゃなくて、動的言語どれにでもあてはまる
動的言語の特徴は何なの?というと結局答えは出てないし。
844:デフォルトの名無しさん
15/12/28 04:07:47.35 02492xEu.net
>>826
はて。それこそ Smalltalk をたんなる処理系と誤解した人が好んで貼りがちなレッテルのひとつですよね?
Smalltalk は Smalltalk-72 のごく初期の時点で今で言うスクリプト言語のようなスタイルでこそありましたが
その後は 70年代を通じ、一貫して OS(ダイナブック向けを想定していたので風変わりではありますが)
として作られたソフトウエアです。
URLリンク(web.archive.org)
仮想マシンベースになってから、移植性が高まり他の OS 内で仮想環境(VMwareのような)として
動作できるようになったのは処理系や IDE が固まった後の話であり、処理系や IDE は、OS の機能の一環として
その OS 上に当然のごとく構築されたものにすぎません。
OS の構造を、将来他の OS の仮想環境のひとつとして機能させるためにモジュラリティーを持たせておく
設計にしなかったから駄目だ、という指摘なら分かりますが、ある OS 上に(それ自身を記述する)処理系や IDE を
構築したことを設計ミスと断じるのは、いささか無理があるように思いますがいかがでしょう。
もちろん現状で専用のハードを持たない以上、他の OS を渡り歩く仮想環境として運用されることが運命づけられた今、
モジュラリティーに欠ける点が言語処理系として振る舞う際に運用上のデメリットとして明らかなことには異論ありません。
845:デフォルトの名無しさん
15/12/28 04:12:26.80 WNJ7FWNN.net
>>823
> その言語を得意としてる奴の中に凄いのが混ざってただけ
その「凄いの」がなぜその言語を選択したのかを無視して
目先の流行の表層だけを見てその背後にある本質に目を閉ざしているから
君はいつまでも初心者レベルだということにいい加減気付け。
846:デフォルトの名無しさん
15/12/28 04:20:58.33 WNJ7FWNN.net
>>829
特定の言語機能が単体で可能なことしかその言語機能の利点と認めないことの愚かさに気づかないの?
プログラミング言語では複数の言語機能の相互作用で可能になることも多いし、
STやCLの利点は言語と環境とライブラリが総合的にデザインされているところ。
君にはその利点を理解する能力が欠如している。それだけの話。
> IDE(エディタ+デバッガ)の機能だよねそれ?
静的型付け言語向けに作ってみたら制限だらけの劣化コピーになっちゃいました、という実例だよなー。
847:デフォルトの名無しさん
15/12/28 04:24:42.29 WNJ7FWNN.net
>>829
>それで、エディタやデバッガの機能じゃなくて、動的言語どれにでもあてはまる
>動的言語の特徴は何なの?というと結局答えは出てないし。
じゃあ、エディタやコンパイラや型推論の機能じゃなくて、
静的型付言語どれにでもあてはまる静的型付言語の特徴は何なの?
FORTRANにもOcamlにもCにも当てはまる利点を挙げてみろよw
848:デフォルトの名無しさん
15/12/28 04:28:38.00 WNJ7FWNN.net
言語機能を個別に切り出して評価できると思ってる時点で
言語設計が何もわかってないってことだw
849:デフォルトの名無しさん
15/12/28 04:42:40.88 WNJ7FWNN.net
言語と環境とライブラリを統合することが間違いだという人達は
もちろんemacsなんて使ってないよね?
もちろんIDE(「統合」開発環境)なんて使わないよね?
記述対象の言語を想定したエディタ機能なんて使わないよね?
シンタックスハイライトも構文チェックもフォーマッタも使わないよね?
ソース上の識別子の型情報を見る機能なんて利用しないよね?
cabalやgemのような対象言語に特化したパッケージ管理ツールなんて使わないよね?
仮想マシンのディスクイメージを構成するために言語ごとのランタイム環境を指定して
自動的にデプロイしたりしないよね?
言語と環境とライブラリを統合することが間違いなら、上記はどれも当然のことだよね?
850:デフォルトの名無しさん
15/12/28 04:44:48.24 8sKUVUhj.net
>>833
> 静的型付言語どれにでもあてはまる静的型付言語の特徴は何なの?
システム全体のモジュールの結合性、インターフェースの不一致を
実行前に検出することができる。
851:デフォルトの名無しさん
15/12/28 04:45:33.44 WNJ7FWNN.net
>>836
Cで?
852:デフォルトの名無しさん
15/12/28 04:47:15.02 8sKUVUhj.net
> 言語と環境とライブラリを統合することが間違いだという人達は
> もちろんemacsなんて使ってないよね?
emacs使ってないし、それは関係ない。
emacsはC言語で作られているが、それはそれとして
emacsはOSとは統合されていない。IDEも一緒。
OSと言語は統合してはならない。
OSはSmalltalk以外の言語も動くものでなければならない。
そしてOSはいろんな言語で作られたアプリを相互に連携させて
動かす事ができないといけない
853:デフォルトの名無しさん
15/12/28 04:48:34.11 8sKUVUhj.net
>>837
できるよw
言っておくけど、あんたが出来ない例を示したとしても、
全体的にできるならば「できる」とみなす。
どんなものでも例外はある。
854:デフォルトの名無しさん
15/12/28 04:51:56.55 WNJ7FWNN.net
>>838
> OSと言語は統合してはならない。
まさか、Unixなんて使ってないよね?
855:デフォルトの名無しさん
15/12/28 04:54:39.35 8sKUVUhj.net
>>840
UnixはOSと言語は統合されていない。
856:デフォルトの名無しさん
15/12/28 05:00:26.10 8sKUVUhj.net
例えば、プログラミングをする時のエディタは
好みのエディタを使えなければいけない。
言語専用のエディタを用意するのは構わないが、
その他のエディタ、例えばメモ帳であっても
プログラミングできないといけない。
SmalltalkはSmalltalk専用の使い慣れていないエディタを
強要されてしまう。こういう密結合なシステムはよくない。
柔軟な変更に耐えられなくなる。
言語ではなくて、システム全体の柔軟性が欠けている言語
857:デフォルトの名無しさん
15/12/28 05:03:48.42 WNJ7FWNN.net
Smalltalk環境上でもSmalltalk以外の言語を使えるし、
エディタもSmalltalk専用のエディタなんて使う必要ないし、
君、本当にSmalltalk使ったことあるの?
858:デフォルトの名無しさん
15/12/28 05:07:09.65 8sKUVUhj.net
当たり前だがソフトウェアの開発とバージョン管理システムは切り離せない。
そしてソフトウェアの開発は複数の人でやるものである。
つまりはgitを使う。マージを行う。
(内部的に)ソースコードの差分を出してパッチを当てるような形で
複数の人が書いた複数のコードを統合していく。
いつからバグが入ったのかかを調べるために、特定のコードに巻き戻して再実行したり
複数のブランチで複数のバージョンを平行して開発したり
こういった当たり前の作業がSmalltalkでは非常にやりづらい。
言語ではなくて、システム全体の柔軟性が欠けている言語