オブジェクト指向は愚かな考え。この世は計算式 ★2 [無断転載禁止]©5ch.io
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2015/12/15(火) 13:23:08.06ID:Rib62xXqhttps://twitter.com/ProgrammingMono/status/665702678006140928
研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・
コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。
生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった
秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な
酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な
枝分かれ構造をとっています。
これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の
動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。
今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、
隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制
されていることを世界に先駆けて実証しました。
興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の
動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる
ことをコンピュータシミュレーションで実証しました。
http://www.jst.go.jp/pr/announce/20151120-2/#YOUGO3
前スレ
オブジェクト指向は愚かな考え。この世は計算式
http://peace.2ch.net/test/read.cgi/tech/1447990379/
0002デフォルトの名無しさん
2015/12/15(火) 13:23:59.26ID:Rib62xXqオブジェクト指向は愚かな考え。この世は計算式
http://peace.2ch.net/test/read.cgi/tech/1447990379/
0003デフォルトの名無しさん
2015/12/15(火) 13:24:32.37ID:Rib62xXqオブジェクト指向は愚かな考え。この世は計算式 ★2
http://peace.2ch.net/test/read.cgi/tech/1450153388/
0004デフォルトの名無しさん
2015/12/15(火) 13:24:54.73ID:Ln94sVRZhttp://mysearch.ritlweb.com/search/%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E6%8C%87%E5%90%91%E3%81%AF%E6%84%9A%E3%81%8B%E3%81%AA%E8%80%83%E3%81%88
0005デフォルトの名無しさん
2015/12/16(水) 01:25:36.21ID:017P2otv0006デフォルトの名無しさん
2015/12/16(水) 01:35:54.96ID:R3uzXom/意味がないってことはないですよ。
動的遅延結合をモットーとするSmalltalkでは、コンパイル時間を短くするのはもちろん、
コンパイルが通らないエラーを含めてソフトウェアが動作しなくなる時間をできるだけ無くす必要があるので。
それに、エラーがでなくなるように修正するのと、スタブが生じないように修正するのとで
本質は変わらんでしょう。
あとSmalltalkはコンパイル処理も自身のプロセス内で動的に行なうしくみなので
「コンパイル時に」と「動的に」は矛盾しません。
0007デフォルトの名無しさん
2015/12/16(水) 01:55:51.94ID:mFWCIMTJ個人的には、Smalltalkerが度々ハッスルして他の人たちが辟易してる構図に見える
系譜としてのobj-cと成功例としてのiOSが引き合いに出されると、だいたい客観的な反論が出されてSmalltalkerが黙るという構図じゃなかったかな。
0008Objective-Cの人
2015/12/16(水) 02:15:28.68ID:hnVuOn0rsmalltalkそのまんまとは聞いてるが、俺はsmalltalk自体は
弄ったことないから知らんよ?
そもそも、Objective-Cの話に対してまともなレスは一個も返ってきてなくて
「だからマカーは!」だけしか言ってこないから(ああ、知らんのだ…)で流してるし。
0009Objective-Cの人
2015/12/16(水) 02:34:00.21ID:hnVuOn0r参照カウント形式(呼んだらインスタンス内のカウンタに+1終わったら-1、0になったら誰も使ってないから解放するシステム)
を使用してるから、コンパイル時に「ここで呼んで、ここで解放して」と
ひととおりオブジェクトの生成消滅を追跡してエラー探してエラーメッセージ吐くから
定期的に言い出してる「動的だとエラーがわかんねぇだろ!」って謎の思い込み発言の意味がわからんし。
動的だと単に動的にインスタンスが他でなんとかしてる可能性があるから
コンパイル時の「ここで呼んでも居ねぇんじゃね?」が静的だと致命的エラーになるところが単に
「ここで呼んでも居ない可能性あるよね?」ってワーニングになるだけだし
ワーニング読んでプログラマーが自分で内容判断するだけだろ。
0010デフォルトの名無しさん
2015/12/16(水) 02:38:50.14ID:mFWCIMTJ個人的には、ゴールのない議論になっちゃってるのを最優先な問題、課題として提示したいw
前スレの流れだと、「ruby派ぶっ倒してやったわ」とか「ほら関数型が最強だろボケが」とか個々人が全く別種の達成感を感じているのではなかろうか。
0011Objective-Cの人
2015/12/16(水) 02:44:48.13ID:hnVuOn0rえ?Objective-Cのインスタンスに定義されてないメッセージ(メソッド)が送られた時?
単純にインスタンスは"そんな命令は知りません"ってただ無視してふつうに動作続けるよ?
って言ったらそれじゃバグが見つからない!とか謎の発言をして固まってたこと。
いや、やれ!って命令して反応返らないんだからすぐわかるだろうそれ。
0012デフォルトの名無しさん
2015/12/16(水) 02:53:40.58ID:UIvh2pdgこの説明だとダメだろ
0013Objective-Cの人
2015/12/16(水) 02:54:06.15ID:hnVuOn0rだいたい途中からわざと議論にならない妙なこと書いてスレ伸ばしてる子がいるから
そういう期間は眺めてる。動的静的の理解がおかしいしあれは絡みようがない。
0014uy ◆Qawu9.2l1E
2015/12/16(水) 03:55:57.26ID:1rtzXOslそうだと思った
0015デフォルトの名無しさん
2015/12/16(水) 04:26:33.21ID:SEae+C8u> いや、やれ!って命令して反応返らないんだからすぐわかるだろうそれ。
え? 「やれ!って命令して反応返らなかったら」わかると思ってるの?
反応が返るかどうかを、誰が調べてるんだよ?
命令が正しく実行されたか調べるコードを書かないと
行けないってことで、それ面倒なだけだし、それを忘れると
バグの元になるじゃん。
0016デフォルトの名無しさん
2015/12/16(水) 04:27:05.13ID:SEae+C8u>>11はちょっと想像力が足りないみたい。
0017デフォルトの名無しさん
2015/12/16(水) 06:03:16.00ID:dzfkExTjだーかーらー、
おまえはまず自分の無知を自覚しろってw
0018uy ◆Qawu9.2l1E
2015/12/16(水) 06:55:38.58ID:L2apS2Qu0019デフォルトの名無しさん
2015/12/16(水) 08:12:16.73ID:FTfTBK6H0020デフォルトの名無しさん
2015/12/16(水) 08:29:39.35ID:7uqbUkJH0021デフォルトの名無しさん
2015/12/16(水) 08:41:12.56ID:fgV80IeNまぁ普通はそうおもうわな
んで、Obj-Cの人としては「どうすれば良いのか知ってる」からそれが分かるといってるようだから
まずはそれ書いたらいいんじゃねーかな
たぶん、例外ははけるけど基本はそれはcatchするのではなくfinally的なレベルではけるよってだけ
だと思うけど
0022デフォルトの名無しさん
2015/12/16(水) 08:43:16.65ID:fgV80IeNそんな動きされんの迷惑だわ
0023デフォルトの名無しさん
2015/12/16(水) 08:56:33.85ID:SEae+C8uメソッドがなくても動くのは、、例外が出てるのにそれを
例外を握りつぶすのと同じ。
プログラムは書いたとおりに動くが、
書いた通りに動くことが、正解じゃない。
仕様通りに動くことが正解であり、動いているからって
仕様通りの動きでなければ、それはバグ。
言っとくけど、仕様っていうのは言語仕様じゃないぞ。
アプリの仕様だ。
0024デフォルトの名無しさん
2015/12/16(水) 09:05:12.96ID:fgV80IeNせやね
0025デフォルトの名無しさん
2015/12/16(水) 09:28:12.04ID:AqyIi4A0バグなんて存在しないって立場だろ
Obj-Cで素人アプリ作ってる奴ならそれでも良いじゃん
0026デフォルトの名無しさん
2015/12/16(水) 11:03:03.62ID:Ulco0f/2すごいよな
そうなるとOS仕様+アプリ仕様を精査しなければ
0027デフォルトの名無しさん
2015/12/16(水) 11:17:18.63ID:eqSTcsSBどこ行くかわからない自動車の違いみたいなものかと想像していたよ。
0028unrecognized selector to instance
2015/12/16(水) 11:42:30.84ID:etXhzojxObjective-Cは、存在しないメソッド呼んだら落ちるがな。
いったいどんな環境の話だよ。
0029デフォルトの名無しさん
2015/12/16(水) 11:43:49.25ID:v8L8DVNA0030デフォルトの名無しさん
2015/12/16(水) 12:09:43.96ID:SEae+C8uそれ何のたとえ?w
センスが無いね
0031デフォルトの名無しさん
2015/12/16(水) 14:50:10.61ID:nvDs2EAXあるインスタンスのメソッドを使う際に、
そのインスタンスのプロパティのプロパティのプロパティのプロパティのプロパティが影響したりしてデバッグが大変だったりするよね。
0032デフォルトの名無しさん
2015/12/16(水) 14:53:17.28ID:eqSTcsSB0033デフォルトの名無しさん
2015/12/16(水) 14:56:01.55ID:etXhzojxそうならないように作る必要があるね。
その例だと、そのプロパティのオブジェクトに外からは直接さわれないようにするとか、
1階層で断ち切る必要がある。
0034デフォルトの名無しさん
2015/12/16(水) 21:06:02.90ID:uNQnNzO9Obj-Cの動作だと存在しないのを呼んだから落ちるんじゃなくて
存在しないメソッドを呼んでも応答しないから
返り値がnullで"呼んだクラスが"処理できなくて落ちてるんだろう
0035デフォルトの名無しさん
2015/12/16(水) 21:43:54.69ID:u9Ia4Qec悪いところはSmalltalkに影響を受けてるところ
0036デフォルトの名無しさん
2015/12/16(水) 22:06:58.45ID:6HcXJhed0037デフォルトの名無しさん
2015/12/16(水) 22:47:07.63ID:DoMVf2Rv0038デフォルトの名無しさん
2015/12/16(水) 23:01:47.94ID:etXhzojxメッセージの送信側オブジェクトには処理は戻らない。
ランタイムが例外投げてcatchされなければ終了。
0039デフォルトの名無しさん
2015/12/16(水) 23:14:18.71ID:zYgiBPWI例えるなら、野球の試合をサッカーのルールで解説するようなもんだ
0040デフォルトの名無しさん
2015/12/17(木) 00:44:59.09ID:gwKZvSIdそれはC++やJavaやRubyを含めた
オブジェクト指向言語の一般的な動きだ。
Objective-C特有の話をしなさいよ
0041デフォルトの名無しさん
2015/12/17(木) 00:45:32.82ID:Kcx2I8yF同じだっつうのw
0042デフォルトの名無しさん
2015/12/17(木) 00:46:15.76ID:gwKZvSId> 「静的型付け」言語しか知らない奴に、「動的型付け」言語の話をしたって分かるはずがないじゃん
なるほど。動的型付け言語の話しか知らない奴に
静的型付けの話をしてもわからないっていいたいわけだなw
0043デフォルトの名無しさん
2015/12/17(木) 00:46:47.66ID:gwKZvSIdObjective-Cは他のオブジェクト指向言語よりも凄いって話じゃなかったのか?
0044デフォルトの名無しさん
2015/12/17(木) 00:47:42.76ID:Kcx2I8yF誰が凄いって言ったんだ?
0045デフォルトの名無しさん
2015/12/17(木) 01:01:08.15ID:9iUNReL+プロパティとなっているオブジェクトの状態の数だけテストしないとならないのは辛い
0046デフォルトの名無しさん
2015/12/17(木) 01:03:31.69ID:Kcx2I8yFオブジェクトごとにテストすれば良くね?
0047デフォルトの名無しさん
2015/12/17(木) 01:04:21.44ID:Z0rIjNHqその逆は真ならざるが
0048デフォルトの名無しさん
2015/12/17(木) 01:04:26.64ID:gwKZvSId関数型であっても、データはデータベースに保存するし、
そのデータ=オブジェクトの状態なので結局テストが大変なのは同じ。
0049デフォルトの名無しさん
2015/12/17(木) 01:07:33.17ID:9iUNReL+1986年
ブラッド・コックスとトム・ラブがObjective-Cを作り、「この言語はCのメモリ安全性とSmalltalkの高速性を合わせたものだ」と宣言する。
現代の歴史家は2人が失読症ではないかと疑っている。
Smalltalkが人気なさすぎたのでCのライブラリを使えるようにしたんだろうな。
0050デフォルトの名無しさん
2015/12/17(木) 01:10:40.77ID:9iUNReL+Cのライブラリを使えるようにした代償としてCの悪い部分も取り込んでしまった。
Mac使ってるプログラマも増えたことだしCを切り捨て理想型に戻りましょうという事だろうね。
0051デフォルトの名無しさん
2015/12/17(木) 01:11:22.61ID:9iUNReL+確かに
0052デフォルトの名無しさん
2015/12/17(木) 01:19:27.22ID:sxT+KKiuSmalltalk成分のほうが微塵も残ってない件
0053デフォルトの名無しさん
2015/12/17(木) 01:27:57.55ID:aNh2v0Tbネタ文章を説明なく貼るのよそうぜw
0054デフォルトの名無しさん
2015/12/17(木) 01:44:31.81ID:9iUNReL+メソッド名の長さは残ってるだろ
0055デフォルトの名無しさん
2015/12/17(木) 02:30:11.56ID:FyqR5n97>>49は「不完全にしておよそ正しくないプログラミング言語小史」でググりゃ全文みつかると思うけど
プログラマーなら誰でもわかる微妙に間違った説明をしてクスリとさせるのが目的のプログラマージョーク…
…っぽいナニカ(の一部)なんだよな。
1983 – ビョーン・ストラウストラップが耳にしたことのあるあらゆるものをCに詰め込んでC++を作る。
出来上がった言語はあまりに複雑であったため、プログラムは未来に送って人工知能Skynetでコンパイルする必要があった。
莫大なビルド時間を要したのである。Skynetがそのようなサービスを行っている動機は明らかでないが、
未来のスポークスパーソンは、「そんなこと気にしなくていいぜ、ベイビー」と、オーストリア訛りのある単調な口調で答えている。
Skynetは体裁を装ったバッファオーバーランに過ぎないのではないかと予想する向きもある。
とか、どー反応すりゃいいのかわからんレベルの中から抜き出して>>49張られても、アンサイクロペディアを
ソースにしてコピペしてくる奴みてるみたいなもんで…
0056デフォルトの名無しさん
2015/12/17(木) 03:26:39.43ID:ICf+3Sgsスモールトーク系のオブジェクト指向はゴミ
0057デフォルトの名無しさん
2015/12/17(木) 07:11:27.89ID:zm+NMMJNhttp://www.amazon.co.jp/dp/4797328541
「Smalltalkの底を流れる設計思想」がわからんうちはSmalltalkもクソ引き籠もり環境にしか見えない
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
0058デフォルトの名無しさん
2015/12/17(木) 08:11:57.67ID:z5VUeQHxよく気がついたな
その通りだ
>>47
君は、>>42と違って、ちょっと程度が低いようだね
0059デフォルトの名無しさん
2015/12/17(木) 12:01:03.95ID:BgKGnUH4だいたいあってるじゃん
0060デフォルトの名無しさん
2015/12/17(木) 12:02:01.19ID:xmtXrbaYぼくちゃん、ようちでちゅね
0061デフォルトの名無しさん
2015/12/17(木) 14:14:39.01ID:Gw5Yeqz+よかったでちゅね〜
0062デフォルトの名無しさん
2015/12/17(木) 14:54:32.35ID:BhqjqAUv反応が返らないって画面眺めてりゃわかんの?
11 名前:Objective-Cの人 [sage] :2015/12/16(水) 02:44:48.13 ID:hnVuOn0r
もひとつ、考え方が違うなーと思ったのはむかし分野違いのプログラマーと話してて
え?Objective-Cのインスタンスに定義されてないメッセージ(メソッド)が送られた時?
単純にインスタンスは"そんな命令は知りません"ってただ無視してふつうに動作続けるよ?
って言ったらそれじゃバグが見つからない!とか謎の発言をして固まってたこと。
いや、やれ!って命令して反応返らないんだからすぐわかるだろうそれ。
0063デフォルトの名無しさん
2015/12/17(木) 14:56:10.94ID:BhqjqAUv9 名前:Objective-Cの人 [sage] :2015/12/16(水) 02:34:00.21 ID:hnVuOn0r
動的静的もなんも、そもそもObjective-Cはインスタンスの管理に
参照カウント形式(呼んだらインスタンス内のカウンタに+1終わったら-1、0になったら誰も使ってないから解放するシステム)
を使用してるから、コンパイル時に「ここで呼んで、ここで解放して」と
ひととおりオブジェクトの生成消滅を追跡してエラー探してエラーメッセージ吐くから
定期的に言い出してる「動的だとエラーがわかんねぇだろ!」って謎の思い込み発言の意味がわからんし。
動的だと単に動的にインスタンスが他でなんとかしてる可能性があるから
コンパイル時の「ここで呼んでも居ねぇんじゃね?」が静的だと致命的エラーになるところが単に
「ここで呼んでも居ない可能性あるよね?」ってワーニングになるだけだし
ワーニング読んでプログラマーが自分で内容判断するだけだろ。
0064デフォルトの名無しさん
2015/12/17(木) 15:06:11.33ID:Kcx2I8yFだから、>>11は間違ってるの。ランタイムが例外を投げます。
あとObj-Cは、受信側のインスタンスが無い場合(nil)は、何も起きない事が保証されてる。
0065デフォルトの名無しさん
2015/12/17(木) 16:01:30.96ID:jTZkH1z9かといって毎回ifでチェックするか?っていう
やっぱりMaybeが至高
0066デフォルトの名無しさん
2015/12/17(木) 16:09:57.39ID:uUwsUuhVあぁ、なんだ
やっぱ例外になるんか、分かったありがと
0067デフォルトの名無しさん
2015/12/17(木) 16:11:43.69ID:s5+Nn1UK0068デフォルトの名無しさん
2015/12/17(木) 21:02:07.06ID:TfrmoFMM> コンパイル時の「ここで呼んでも居ねぇんじゃね?」が静的だと致命的エラーになるところが単に
> 「ここで呼んでも居ない可能性あるよね?」ってワーニングになるだけだし
> ワーニング読んでプログラマーが自分で内容判断するだけだろ。
え? 静的にエラーになる(動的でもエラーになる)場所が
実機で稼働させたとき、ワーニングが出て
リリース後に、プログラマが飛んでいって修正するの?
なんで静的に見つけられなかったのさ?w
0069デフォルトの名無しさん
2015/12/17(木) 23:39:08.84ID:LWfeKYVc0070デフォルトの名無しさん
2015/12/18(金) 00:08:54.65ID:OvzannQF本番稼働中にエラーが見つかるのでは
影響の大きさが違いすぎるだろ?
0071デフォルトの名無しさん
2015/12/18(金) 00:13:02.71ID:k38RLsj8ん?
コンパイルが通ったら本番稼働中にエラーは出ないのか?
ずいぶんお気楽な開発してるなぁ...
0072デフォルトの名無しさん
2015/12/18(金) 00:17:03.49ID:OvzannQF誰もそんな事は言っていないので、
そう読めてしまうなら小学校から国語をやり直すことを勧める
0073デフォルトの名無しさん
2015/12/18(金) 00:38:27.47ID:k38RLsj8> 開発中のコンパイル段階でエラーが見つかるのと
> 本番稼働中にエラーが見つかるのでは
> 影響の大きさが違いすぎるだろ?
どこに、コンパイル後の事が書いてるんだ?
そのまま、テストせずに本番稼働させているようにしか読めないのだが?
まさか、エスパーモードで、コンパイルの後はテストだろって事なのか?
テストするのは、動的言語でも静的言語でもやることだし、それ以前に、どこまで行っても、エラーはエラーだ
0074デフォルトの名無しさん
2015/12/18(金) 01:00:19.51ID:4xDk7IkOビルドしたら自動でテスト走るだろ?
0075デフォルトの名無しさん
2015/12/18(金) 01:15:10.90ID:7Erpdy7Zそのとおりだな。
>>71
> コンパイルが通ったら本番稼働中にエラーは出ないのか?
今話しているのは、他のエラーのことじゃない。
型が違うことで発生するエラーの話。
>>74
> ビルドしたら自動でテスト走るだろ?
テストっていうのはプログラマが書くんだぞ。
小人さんが勝手にテストを書いてくれるわけじゃない。
そりゃ完璧なテストがあれば、バグは一つもでることはないだろうよw
動的言語は特に、実行時に型が判断されるので、
実行するまでバグがわからない。
0076デフォルトの名無しさん
2015/12/18(金) 01:24:34.58ID:7Erpdy7Z> テストするのは、動的言語でも静的言語でもやることだし、
確かにテストするのは、動的言語でも静的言語でもやることだが、完璧なテストっていうのはない。
テストが足りずにバグが入り込んでしまうミスをしてしまうことは有るわけで
安全策は二重、三重とある方がいい。
そもそも、他の型を入れた時にエラーになるか?っていうテストなんて書いているか?
書いていないだろう? それはテストしてないってことだよ。
引数に想定以外の型が入ることがありえないテストも書いてるわけないな。
ソフトウェアの全部の部分を調べて、引数すべてが正しいことを調べる方法がない。
やってるのは、ある引数や変数に想定通りの型を入れた時に想定通りの動きをする。
というテストだけだろう? 不正な型がはいることがないことを保証するテストは書けないんだよ。
0077デフォルトの名無しさん
2015/12/18(金) 01:40:18.80ID:VJfWDduP> テストっていうのはプログラマが書くんだぞ。
> 小人さんが勝手にテストを書いてくれるわけじゃない。
前時代的なやり方に囚われているお前が>>74におちょくられてるだけだよwww
0078デフォルトの名無しさん
2015/12/18(金) 01:42:15.57ID:7Erpdy7Z? 何か反論を期待したのだが、
それで何が前時代的なのかの説明すらないのか?
少しは内容があることを言えよw
0079デフォルトの名無しさん
2015/12/18(金) 02:36:11.32ID:7Erpdy7Zついでだからもう一回重要な点を言っておくか。
変数に想定した型のみが入るようにすることはできる。
変数ごとに、この型以外が入ってきたらエラーにすればいいだけ。
それを動的型でやるのはナンセンスだよなw
で、もっと重要なのは、変数に想定した型以外を入れようとする行為(バグ)
例えば、関数の引数に(バグ)で不正な型を入れて呼び出すコード。
これを書いてしまうことをテストで検出することは出来ない。
ややこしいだろうから簡潔に言うと
・不正な型が入ってきたらエラーにする・・・可能
・不正な型を入れようとする・・・動的では検出不可能
動的型では入ってきた後にエラーにすることはできるが、入れようとすることを防ぐことは出来ない。
そしてこれをテストで検出することも出来ない。別の言い方をすると前者は単体テストの範疇だが、
後者は結合テストの範疇だからだ。結合テストの一部を型システムはテストできる。
0080デフォルトの名無しさん
2015/12/18(金) 02:51:26.86ID:M9A20KwY汎用型を使うものもある。要はvoid*だ。
0081デフォルトの名無しさん
2015/12/18(金) 03:08:35.75ID:Y0b/Op+dシステムを修正するたびに手作業でテストしてんの?ビルド時に自動テストしろよwww
0082デフォルトの名無しさん
2015/12/18(金) 03:13:52.32ID:7Erpdy7Zえ? 誰が自動テストしてないって言ってるんだ?
ん〜?もしかして自動テストのテスト内容っていうのは
プログラマが書いているって言うことの意味がわかってないの?
そう考えると辻褄が合うからそうなんだろうな。
0083uy ◆Qawu9.2l1E
2015/12/18(金) 04:10:27.24ID:LS3OaJlp0084デフォルトの名無しさん
2015/12/18(金) 05:19:05.90ID:tbWYHKuTおまえは本当にバカだなあw
静的型だろうが動的型だろうが、テストは「入ってきた後に」検出するものだw
この業界から足洗ったほうがいいんじゃないの?周囲が迷惑してるよ?
0085デフォルトの名無しさん
2015/12/18(金) 05:20:50.65ID:tbWYHKuT>そもそも、他の型を入れた時にエラーになるか?っていうテストなんて書いているか?
書かないバカはお前だけだw
0086デフォルトの名無しさん
2015/12/18(金) 05:28:11.93ID:7Erpdy7Zだからいくらテストをやった所で、
入ってくる前のテストにはならんってことなんだが?
静的型だと、そもそも入らなくしてくれる。
0087デフォルトの名無しさん
2015/12/18(金) 05:29:44.45ID:7Erpdy7Z> 書かないバカはお前だけだw
じゃあオープンソースのコードで、他の型を入れた時に
エラーになるかをテストしているものを簡単に探しだせそうだね。
証拠として見せてみてよ。
早くお願いねーw
0088デフォルトの名無しさん
2015/12/18(金) 05:49:57.26ID:7Erpdy7Z0089デフォルトの名無しさん
2015/12/18(金) 07:48:33.02ID:i13cEfwD0090デフォルトの名無しさん
2015/12/18(金) 07:51:24.94ID:HeX3slfp79の言いたいことは、静的な型ならコンパイルエラーになる、だよ。
0091デフォルトの名無しさん
2015/12/18(金) 08:09:44.92ID:i13cEfwD0092デフォルトの名無しさん
2015/12/18(金) 08:13:50.45ID:k38RLsj80093デフォルトの名無しさん
2015/12/18(金) 08:37:24.37ID:jlCbbYEYすまん、テンプレートでよくね?
0094デフォルトの名無しさん
2015/12/18(金) 08:51:10.88ID:5/sh8mBQそれは流れ逆じゃね?
0095デフォルトの名無しさん
2015/12/18(金) 08:51:52.19ID:gk961EIG0096デフォルトの名無しさん
2015/12/18(金) 09:24:29.93ID:P6kUmH+Qなんか自分が糞なコードしか書けないのを言語のせいにしてるだけにしか思えんが。
糞コードが発生する理由は動的とか静的とかそんな理由ではないことにいい加減気づいて欲しい。
0097デフォルトの名無しさん
2015/12/18(金) 09:59:10.68ID:SRTwlmwS型をミスっていたり、メソッド名をtypoしていたりしたら
コンパイルするまでもなく、打ち込んだ段階でIDEが教えてくれるよ
0098デフォルトの名無しさん
2015/12/18(金) 10:37:33.92ID:i13cEfwDというより動的だと良コードを書いてもテストの負担が小さくならないと想像しているのでは?
それが正しいかどうかは知らん。
0099デフォルトの名無しさん
2015/12/18(金) 10:42:44.66ID:Lwsmy/pl一人でやってんならそれでいいんでない
チームでやるなら言語選定は重要だろ
0100デフォルトの名無しさん
2015/12/18(金) 10:42:51.99ID:tbWYHKuT>糞コードが発生する理由は動的とか静的とかそんな理由ではないことにいい加減気づいて欲しい。
ほんとそれ。マトモな奴は両方できる。
静的型言語エバンジェリストでもちゃんとした人は動的言語の経験があるし
動的言語エバンジェリストでもちゃんとした人は静的型言語の経験がある。
0101デフォルトの名無しさん
2015/12/18(金) 11:08:16.14ID:c5QtSCUZ0102デフォルトの名無しさん
2015/12/18(金) 12:13:04.41ID:7Erpdy7Zそれをすぐに検出できる方がいいな。
0103デフォルトの名無しさん
2015/12/18(金) 12:50:31.99ID:tbWYHKuT「Smalltalkならコードをセーブした瞬間にテストを走らせることができる」
とか言われるだけだぞ?
0104デフォルトの名無しさん
2015/12/18(金) 12:51:30.31ID:tbWYHKuT「Smalltalkならコードをセーブした瞬間にテストを走らせることができる」
とか言われるだけだぞ?
0105デフォルトの名無しさん
2015/12/18(金) 12:52:43.39ID:tbWYHKuT「Smalltalkならコードをセーブした瞬間にテストを走らせることができる」
とか言われるだけだぞ?
0106デフォルトの名無しさん
2015/12/18(金) 12:59:52.46ID:4xDk7IkOなんのためのテストだ。
一発成功の方が怖いわ。
0107デフォルトの名無しさん
2015/12/18(金) 13:16:09.82ID:7Erpdy7Z> 「Smalltalkならコードをセーブした瞬間にテストを走らせることができる」
テストを走らせるのはどうでもいいんだよ。
そんなのは他の言語でもできるし。
で、テストっていうのは、謎の小人さんが
勝手に完璧にチェックしてくれるわけじゃないんだわ。
テストの内容はプログラマが書くもので、プログラマはミスをするもの。
だから「テストがあれば〜」というのは「バグなく漏れもなくテストを実装していれば〜」と
言ってるのと同じ。テストを走らせるてもテストが完璧であることを保証することにはならない。
それに静的型チェックと同等のことをテストを記述するのは困難なんだわ。
ソースコードの全ての関数呼び出しのコードを解析しないと、
不正な呼び出しをしている場所を検出することは出来ない。
0108デフォルトの名無しさん
2015/12/18(金) 13:53:07.69ID:47x3yklWなんかSmalltalkのことを言うと過剰反応されるのでこういうこと言うのなんだけど、以下参考まで。
> ソースコードの全ての関数呼び出しのコードを解析しないと、
> 不正な呼び出しをしている場所を検出することは出来ない。
Smalltalkではメソッドもオブジェクトだから、それが他のどのメソッドをコールしているかはプロパティとして得られるし、
他のどのメソッドからコールされているかもわかるから、ソースコードを精査せずとも可能性のあるメソッドは
全部列挙できるので、静的型付きな人が心配するほど大変な作業じゃないよ
(もちろん命名重要だし、メタプログラミングとか駆使した凝った呼び方も避けなくちゃこの機能は使えないけど)
0109デフォルトの名無しさん
2015/12/18(金) 13:56:10.38ID:7Erpdy7Z一番重要な情報がわからない。
ある関数の第一引数は、○型であり、
この型以外を渡している関数を取得する。
という方法がない。
0110デフォルトの名無しさん
2015/12/18(金) 13:58:15.96ID:7Erpdy7Zある関数の第一引数は、○型であり、
この型と互換性がある型以外を渡している関数を取得する。
という方法がない。
互換性が有る型っていうのは、○型と○型を継承した型のことね。
0111デフォルトの名無しさん
2015/12/18(金) 13:58:48.93ID:SRTwlmwSコンパイルするまでもなく入力した瞬間にIDEが教えてくれるよ
例えばVSなら間違っているところの下に赤の波線が表示される
編集中にすぐにミスとわかるからその場で書きなおせば
誰にも知られることなくあっという間に修正できる
ミスはなるべく早期に発見できたほうが良いでしょ
0112デフォルトの名無しさん
2015/12/18(金) 14:00:53.93ID:7Erpdy7Zそのとおりだね。
赤線が引かれるから、そこに問題が有ることがはっきりする。
仮にそれがテストで見つかったとしても「そこ」を教えてくれるわけじゃない。
テストが失敗した。なぜだ? とプログラマが原因を推測し探しまわる。
たかがtypoごときで、バグ調査と同様のことが必要になるのは
効率が悪すぎる。でtypoって誰でもするんだよ。
0113デフォルトの名無しさん
2015/12/18(金) 14:03:52.82ID:nMQi/7zb0114デフォルトの名無しさん
2015/12/18(金) 14:07:50.78ID:7Erpdy7ZIDEに比べて劣ってるわけじゃないんだしさー(・∀・)ニヤニヤ
0115デフォルトの名無しさん
2015/12/18(金) 14:10:23.72ID:47x3yklWhttps://www.youtube.com/watch?v=HOuZyOKa91o&t=1m30s
0116デフォルトの名無しさん
2015/12/18(金) 14:14:21.38ID:7Erpdy7Zローカル変数程度や、どこのクラスにも存在しないメソッド等、
型情報とは無関係のことに関しては、赤線を引いてくれる。
0117デフォルトの名無しさん
2015/12/18(金) 14:15:27.01ID:7Erpdy7Z0118デフォルトの名無しさん
2015/12/18(金) 14:22:32.85ID:47x3yklWメソッド名の列挙も静的型付けの人が心配するほど大量に列挙されることもないしね。
0119デフォルトの名無しさん
2015/12/18(金) 14:28:36.57ID:7Erpdy7Z0120デフォルトの名無しさん
2015/12/18(金) 14:40:57.56ID:47x3yklWそれら簡易のOODBのような感じでIDE内で管理されているから、プログラムから情報を引き出すのも
データベース感覚で可能かつ気軽にできるところは使っていてすごく面白い。
わかりやすい単純な(でも他言語では理解されにくい)ところでは、ソースコードテキストもメソッドオブジェクトの
属性にすぎないとか。
(Integer >> #factorial) getSource
=> a Text for 'factorial
"Answer the factorial of the receiver."
self = 0 ifTrue: [^ 1].
self > 0 ifTrue: [^ self * (self - 1) factorial].
self error: ''Not valid for negative integers'''
この手の「オブジェクトに訊ねる」スタイルによって、クラスブラウザとかデバッガがそこそこ高機能なのに
作りがすごくシンプルになっていてよく驚かされたりするのも、Smalltalkを使う楽しみのひとつ。
0121デフォルトの名無しさん
2015/12/18(金) 14:55:55.75ID:47x3yklWSmalltalkでは型には頓着しないからそういう抽出はできないね(Strongtalkでもないかぎり)。
ま、知っていて貶めるのが目的だろうけど、以下念のため。
極端な話、Smalltalkでエラーっていうのは「メッセージの処理のしかたがわかりません」だけだから
その場違いなオブジェクトがノーティファイアをあげたときに捕まえてあげるしかない。
でもSmalltalkでの開発の真骨頂はここからで、至れりつくせりのデバッガが全力でサポートしてくれる。
その威力は強力で、Smalltalk教育においてしばしばデバッガ使用禁止のしばりがつくレベルだったりする。
0122デフォルトの名無しさん
2015/12/18(金) 15:04:05.73ID:7Erpdy7Zで、具体的に、何をサポートしてくれるのさ?w
当たり前の機能はかかなくていいよ。
0123デフォルトの名無しさん
2015/12/18(金) 15:15:21.62ID:NNkc/DqV静的型のIDEから見るとあまりにショボくて、
それをいくら指摘されても理解しないところを見ると
分かり合うのは不可能だと思った
> 正確に言うと、静的型ほど多くのことはわからないが、
> ローカル変数程度や、どこのクラスにも存在しないメソッド等、
> 型情報とは無関係のことに関しては、赤線を引いてくれる。
0124デフォルトの名無しさん
2015/12/18(金) 15:20:04.19ID:47x3yklW当たり前の機能は省くとして(のっけからデバッガのそれ自体の機能じゃなくて恐縮だけど)、
他ではあまり見られない機能としては、
デバッガ向けのコンパイルをしなくとも当然のようにフルで状況の情報が引き出せること
コンテキストやコンテキストスタックがファーストクラスオブジェクトだから
永続化して何度でも同じ状況を解析・検証できたり、すべての情報を引き出したり変更できること。
あと、動的特性としては、修正してコンパイル後、まったく同じスレッドで続行が可能なこと、あたり?
0125デフォルトの名無しさん
2015/12/18(金) 15:21:09.63ID:7Erpdy7Z動的言語にしては至れり尽くせりってだけで、
静的言語では(デバッガ自身も強力だが)
デバッガも使わずにIDEの機能でできることだったりするw
0126デフォルトの名無しさん
2015/12/18(金) 15:25:08.02ID:7Erpdy7Z> あと、動的特性としては、修正してコンパイル後、まったく同じスレッドで続行が可能なこと、あたり?
https://msdn.microsoft.com/ja-jp/library/ms379578(v=vs.80).aspx
> 概要: Visual C# 2005 の新しいデバッグ機能であるエディット コンティニュの使用方法の概説です。
> この機能を使用すると、アプリケーションのデバッグ中にコードに変更を加えて、その変更を適用できます。
> アプリケーションを閉じてリビルドし、もう一度実行する、という手順が必要なくなります。
0127デフォルトの名無しさん
2015/12/18(金) 15:28:16.80ID:47x3yklWエディット コンティニュはデバッグ ビルドでのみ動作します。wwwww
0128デフォルトの名無しさん
2015/12/18(金) 15:31:00.77ID:7Erpdy7ZSmalltalkも似たようなものなんだし。
0129デフォルトの名無しさん
2015/12/18(金) 15:35:37.08ID:47x3yklW0130デフォルトの名無しさん
2015/12/18(金) 15:39:32.17ID:7Erpdy7Z手段と目的がごっちゃになってるからねw
エディットコンテニューなんて開発時やればいい話であって
実運用中に使うことなんてない。
こんなこともできる。何に使うかわからないけど凄いでしょ!じゃ
なんの説得力もないわけでw
0131デフォルトの名無しさん
2015/12/18(金) 15:55:49.76ID:47x3yklW実際役立って使う必要とされる機能なんだから「何に使うかわからない」はないだろ。さすがに。
端からSmalltalkや動的遅延結合性を貶めるのが目的だろうから言っても無駄だろうけど、
Smalltalkでのデバッグ時の思考を中断させない疾走感(と、他言語での隔靴掻痒感)は、
Smalltalkのデバッガが何かを知って解って使ってみないことには
特に他言語処理系の手練れにはなかなかわからないと思う
必ずしも機能の多寡ではないんだよね。
Live Debugging in Smalltalk
https://www.youtube.com/watch?v=1kuoS796vNw
0132デフォルトの名無しさん
2015/12/18(金) 16:01:44.79ID:7Erpdy7Zはぁ? お前話をごちゃ混ぜにしすぎ。
最初に言ったよな?
「至れりつくせりのデバッガが全力でサポートしてくれる」
とは具体的に何かって? あれだけだろ?
ほぼすべて静的言語+IDE+デバッガで実現できてるじゃないか。
Smalltalkのデバッガ機能、全然すごくない。
0133デフォルトの名無しさん
2015/12/18(金) 16:05:29.03ID:7Erpdy7Z> はぁ? お前話をごちゃ混ぜにしすぎ。
何をごちゃ混ぜにしているかを書いてなかったな。
デバッガ機能は便利だよ。どの言語であっても。
Smalltalk特有のこともあるよ。
ただ、このふたつをごっちゃにして、Smalltalkのデバッガ機能は凄いって言うなよ。
どの言語でもデバッガ機能はすごい便利なんだよ。
デバッガだけじゃなくてIDEも思考を中断させない開発ができる。
別にSmalltalkのデバッガだけが凄いんじゃないんだよね。
そして静的言語+IDEの凄さはSmalltalkのデバッガでできること以上のことができる。
0134デフォルトの名無しさん
2015/12/18(金) 16:06:19.19ID:47x3yklW0135デフォルトの名無しさん
2015/12/18(金) 16:06:29.32ID:SLQY/0qq0136デフォルトの名無しさん
2015/12/18(金) 16:10:16.47ID:7Erpdy7Zこれはすごく便利な機能で、実行すればいいじゃないか?って
思うかもしれないが、それはぜんぜん違う。
実行するということは、その場所に来なければいけない。
プログラム実行コードは何万行、何十万行とあるわけで、その場所に来るだけなら
簡単でも、変数の中身まで考慮して「その行にそういう変数の中身で来る」場合を
考えると組み合わせは膨大な量になる。
実行しないでできるっていうことは、それがどれだけ膨大な量であっても
わかるということ。
0137デフォルトの名無しさん
2015/12/18(金) 16:12:07.58ID:47x3yklW型には反対しないが、複雑さに悩まされない型システムを見たことはない。動的型付けはまだマシだ。
http://d.hatena.ne.jp/katzchang/20080807/p2
だから我々は我々でSmalltalkを使ってヒャッハーしつつ、
型システムが今より賢くなって動的遅延結合性を許容するようになったら喜んでそっちに行くよ。
0138デフォルトの名無しさん
2015/12/18(金) 16:12:44.71ID:7Erpdy7Zさいようならw
>>135
IDEは静的解析の情報を元に、実行すること無く情報を判断している。
これは極めて重要で、実行するまでの時間を大幅に削減することができる。
Smalltalkが実行した後のデバッガ機能を強化して
後手対応の幅を増やしたのとは逆で、
静的言語はIDEを強化することで、実行すること無く
根本的な解決ができるようになっている。
0139デフォルトの名無しさん
2015/12/18(金) 16:14:02.81ID:7Erpdy7Z自分の言葉で説明できないから、他人の言葉を使って
自分が間違ってないと思い込んでるねw
その人は完璧人間でもないというのに。
0140デフォルトの名無しさん
2015/12/18(金) 16:15:11.62ID:SLQY/0qq0141デフォルトの名無しさん
2015/12/18(金) 16:15:40.07ID:7Erpdy7Z何も便利なことを言うことは出来なかったということだよ。
0142デフォルトの名無しさん
2015/12/18(金) 16:20:21.05ID:c5QtSCUZ0143デフォルトの名無しさん
2015/12/18(金) 16:20:53.12ID:47x3yklW> 実行するまでの時間を大幅に削減する
また他人の言葉を鵜呑みにしてって言うだろうけど、実感があるから言うと
ソフトウェアシステムにおいて全コストの85% は成功裏に導入された後で必要になる
http://metatoys.org/oxymoron/oxymoron.html
んだよね。だから実行するまでの時間を大幅に削減したところで(そのときは幸せかもしれないけれど)
結局、動かしてみて解ることのほうが多いから、全体から見たら誤差の範囲じゃない?
0144デフォルトの名無しさん
2015/12/18(金) 16:26:26.18ID:7Erpdy7Z他人の言葉を鵜呑する以前に全然レイヤーが違う話をしてる。
システムをリリースした後で分かることがあるからなんだって言うんだ?
Windowsだって、リリースした後のユーザーのフィードバックを元に
改良しているだろ。
っていう話は全然レイヤーが違う。
0145デフォルトの名無しさん
2015/12/18(金) 16:26:54.71ID:47x3yklW> 結局javaScriptが
おまえじゃねぇwww すわってろwww
https://pbs.twimg.com/media/BzZBmK8CMAMBjQr.jpg
0146デフォルトの名無しさん
2015/12/18(金) 16:27:38.49ID:BjfgvjArhttp://peace.2ch.net/test/read.cgi/tech/1450153388/
0147デフォルトの名無しさん
2015/12/18(金) 16:29:03.31ID:7Erpdy7Z言語の話に関連しているから、ここだけ抜き取るにしても
動かしてみて(=動かすのには時間がかかる)わかることが多いからこそ
「時間がかかることが多い」ではなく、動かさないでわかるようにすることが
「時間がかかることを少なくする」ことにつながる。
0148デフォルトの名無しさん
2015/12/18(金) 16:30:07.85ID:tbWYHKuT>そんなのは他の言語でもできるし。
ダウト。それは言語の問題ではなく開発環境の問題だ。
そしてそんなことをしている開発環境はSmalltalkぐらいしか見当たらない。
0149デフォルトの名無しさん
2015/12/18(金) 16:31:55.76ID:7Erpdy7Z開発環境が実現可能な機能は言語によって決まるのだから
無関係ではない。
開発環境と言語を切り離して考えてるから、
開発環境が強化できないんだよ。
目的は何? 開発環境を使わないという縛りありで頑張ることではない。
使えるものはなんでも使って開発することだ。
0150デフォルトの名無しさん
2015/12/18(金) 16:33:50.41ID:SLQY/0qq0151デフォルトの名無しさん
2015/12/18(金) 16:41:48.59ID:SRTwlmwSIDEの静的解析がコンパイラと同じ技術を使っているのは当たり前
構文解析するんだからな
しかし
「実はコンパイラと同じ技術を使っていて実は実行してないように見せかけて実行してる」
これはおかしな言い回しだな
だって、コンパイラはソースコードをコンパイルするだけで実行はしないからな
コンパイラと同じ技術==プログラムを実行
ってのはおかしな発想だ
もう少しまともな言葉で指摘すると
構文解析や意味解析をすることと、プログラムを実行する事は別物だ
0152デフォルトの名無しさん
2015/12/18(金) 16:43:35.89ID:7Erpdy7Z構文解析や意味解析を実行する事 = プログラムを実行する事
どちらも実行してるでしょ?
ねー、一緒だよ。(*´・ω・)(・ω・`*)ネー
0153デフォルトの名無しさん
2015/12/18(金) 16:48:32.95ID:SRTwlmwSプログラムを実行するためには明確なインスタンスを与えなければならない
かたや、構文解析にはインスタンスはいらない
インスタンスがなくてもわかる、言い換えればプログラムを実行しなくてもわかる、エラーがあるから
コンパイルエラーというものが存在している
0154デフォルトの名無しさん
2015/12/18(金) 16:54:10.35ID:SRTwlmwSこの式がどういう構造になっているか静的に構文解析することと
実際にa+bを計算するために実行することとは
全くの別物ということがわからない知能のままで32スレも書き込んでいたのかと思うと
頭が痛くなるな
0155デフォルトの名無しさん
2015/12/18(金) 16:54:12.86ID:SLQY/0qq0156デフォルトの名無しさん
2015/12/18(金) 17:00:07.74ID:SRTwlmwSコンパイルと出来上がったプログラムを実行することは別物なのは当たり前
構文解析や意味解析は対象のプログラムを実行してはいない
このことは、コンパイルエラーとランタイムエラーという2つのエラーが有ることからも明白
コンパイルエラーはプログラムを実行せずともわかるエラー
ランタイムエラーはプログラムを実行しなければわからないエラー
2つに分かれているということは、別物だということ
0157デフォルトの名無しさん
2015/12/18(金) 17:02:58.30ID:SLQY/0qq0158デフォルトの名無しさん
2015/12/18(金) 17:14:17.63ID:SLQY/0qq0159デフォルトの名無しさん
2015/12/18(金) 17:42:12.82ID:SRTwlmwS静的解析なのに実行していたらそれは動的解析の手法だから
そもそも言葉の定義が怪しいんだよね
0160デフォルトの名無しさん
2015/12/18(金) 18:03:20.55ID:i13cEfwD0161デフォルトの名無しさん
2015/12/18(金) 18:08:17.19ID:V1Ii3Ho8あの気持ちよさはやみつきになる
0162デフォルトの名無しさん
2015/12/18(金) 18:12:08.05ID:OysfGD3Gこれ本当に同意
静的言語から入ると動的言語の補完の無能さに恐れ入る
0163デフォルトの名無しさん
2015/12/18(金) 18:19:29.16ID:47x3yklW後学のため、実際に試してPharo Smalltalkとも比較したいので、
どの静的言語のなんというIDEから入って、
どの動的言語のなんというIDEの補完の無能さに恐れ入ったか教えてもらうことできます?
0164デフォルトの名無しさん
2015/12/18(金) 20:03:52.18ID:7Erpdy7Zできるできないの話じゃなくて、
できることの量、正確さが、動的言語では圧倒的に少ない。
そういう話だからね。
補完以外もそうだけどさ。
0165デフォルトの名無しさん
2015/12/18(金) 20:04:50.48ID:7Erpdy7Zという欠点も有るよね。
実行時にしか出来ないから、補完するためだけに
実行しなければいけない。
0166デフォルトの名無しさん
2015/12/18(金) 20:06:22.22ID:ZY6DzZKi数値オブジェクトに対して文字列オブジェクトのメソッドまで補完候補に出てくるようなゴミは論外なんだよ引っ込んでろ
0167デフォルトの名無しさん
2015/12/18(金) 20:27:55.99ID:47x3yklWひどいなぁ…。で、試したのは Pharo Smalltalk のどのバージョン?
ちなみに手元の Pharo 4.0 だと
| num |
num := 1.23.
num
まで入れて as と打っても文字列オブジェクトのメソッド名は出てこないけど?
0168デフォルトの名無しさん
2015/12/18(金) 20:29:21.85ID:47x3yklWえ、どういうこと? コードをパーズして抽象構文木にするのも実行なの?
0169デフォルトの名無しさん
2015/12/18(金) 20:40:03.63ID:ZY6DzZKi意地悪に書けばこういうことだよ
実行すれば分かるのは165も書いてるだろ
function foo() {
if (false) { bar(1) }
}
function bar(num) {
num.ここで補完
}
0170デフォルトの名無しさん
2015/12/18(金) 20:43:48.66ID:ZY6DzZKiあれでも数値メソッドだけ補完できるなら実行しなくても補完できてると言えるだけだぞ
勘違いすんなよ
0171デフォルトの名無しさん
2015/12/18(金) 21:31:26.55ID:7Erpdy7Z(静的な)コードをパーズして抽象構文木にするだけで
なんで動的に決まるオブジェクトの中に関する補完ができると思うのか?
静的に補完できないから、動的に補完するしかないんだろ?
0172デフォルトの名無しさん
2015/12/18(金) 21:32:07.91ID:DSnroAdkお前の言ってることは「本番中に発生したらダメ」っていわれてんの分からんのかな?
0173デフォルトの名無しさん
2015/12/18(金) 21:33:48.00ID:SLQY/0qq0174デフォルトの名無しさん
2015/12/18(金) 21:34:19.00ID:DSnroAdk実にくだらんし、そんなことを高らかに言ってると他のユーザーにも迷惑千万
0175デフォルトの名無しさん
2015/12/18(金) 21:51:31.46ID:k38RLsj80176デフォルトの名無しさん
2015/12/18(金) 22:00:03.43ID:7Erpdy7Z理由は? キッチリした仕事をやる=土方という定義なのかね?w
0177デフォルトの名無しさん
2015/12/18(金) 22:04:15.15ID:47x3yklWたしかにそれは意地が悪い。w
0178デフォルトの名無しさん
2015/12/18(金) 22:09:28.58ID:k38RLsj8ここまでで書かれている内容を要約すると、「静的型付けの言語では、typoをチェックしてくれる」って事だけなんだが?
0179デフォルトの名無しさん
2015/12/18(金) 22:20:39.15ID:ZY6DzZKiIDE等のサポートが必要な補完を一緒にするなんてセンス無さすぎ
0180デフォルトの名無しさん
2015/12/18(金) 22:21:45.22ID:7Erpdy7Zいや、だからなんでtypoをチェックしてくれる道具を使うと土方なのさ?
typoをチェックしてない道具を使って、typoと格闘する俺凄いとかそういう話?w
あと、それからtypoってよくあるミスであり、typoが原因で
大きなバグになることも有る。そして静的型が調べてくれるのは
typoだけじゃないからね。他にも説明しろっていうのなら説明するけど。
0181デフォルトの名無しさん
2015/12/18(金) 22:28:26.64ID:LnB+58/eオブジェクト指向と関数型ならできるのに。
0182デフォルトの名無しさん
2015/12/18(金) 22:32:25.87ID:7Erpdy7Zできるよ。
ただし、有る情報を捨てるのと、無い情報を補完するのを比べると、
無い情報を補完するのは大変。
静的型で動的型風にするには、オブジェクト型で扱って
特定の型に強制的にキャストすればいい。
あとリフレクションの機能を使ったり、
Javaだとバイトコードを変更したりもできるね。
0183デフォルトの名無しさん
2015/12/18(金) 22:43:59.79ID:7Erpdy7Zそもそもタイプ数の違いなんて、大した事じゃないし
その減ったタイプ数は、静的型の可読性の高さ+補完で相殺される程度だろう。
動的にクラスをいじれるというけれど、それってソースコードがあれば
ソースコードにパッチを当てれば良い程度の話だったりする。
0184デフォルトの名無しさん
2015/12/18(金) 22:44:30.19ID:LnB+58/eうーん、あまりいいとこ取りとは思えないな...
0185デフォルトの名無しさん
2015/12/18(金) 22:47:37.08ID:k38RLsj8ごめん、typoで困ったことがないから全く理解ができん
0186デフォルトの名無しさん
2015/12/18(金) 22:55:36.10ID:7Erpdy7Z> ごめん、typoで困ったことがないから全く理解ができん
それが上級者と初心者の違いだね。
静的型のありがたさがわからないのは、経験が足りないからだって
分かったじゃないかw
http://cpplover.blogspot.jp/2014/04/openbsd.html
> このコミットは、Makefileの中で、OpenSSLでheatbeatを無効にするマクロを定義するよう、
> コンパイラーオプションを指定するものだ。ただし、無効にするマクロは、
> OPENSSL_NO_HEARTBEATSなのに、このコミットで定義されているマクロは、
> OPENSSL_NO_HEARTBEATだ。なんと、typoをしている。これでは何の意味もない。
0187デフォルトの名無しさん
2015/12/18(金) 22:56:39.43ID:47x3yklWSmalltalk でも typo で困ることはない
0188デフォルトの名無しさん
2015/12/18(金) 22:58:14.53ID:7Erpdy7Z巨大なシステムを複数の人で作る。最初に開発した人以外がいじる。
そうなってくると、些細なミスでも、原因の調査に時間がかかるんだ。
数百行程度の小さいスクリプトをいじっている程度なら、
大して時間もかからず、困ると感じないだろうけどさw
0189デフォルトの名無しさん
2015/12/18(金) 23:08:19.10ID:k38RLsj80190デフォルトの名無しさん
2015/12/18(金) 23:10:41.85ID:qLDL3KKH「…」
「動的言語はいっぱいタイプするからタイプミスが多いんだろ?ん!ん?」
「…」
ギャグ漫画日和かこれ。
0191デフォルトの名無しさん
2015/12/18(金) 23:13:51.90ID:XVaxeCrBそんなにおかしなことじゃないと思うけどなあ
0192デフォルトの名無しさん
2015/12/18(金) 23:14:23.82ID:XVaxeCrBタイプミスは重要だよ
0193デフォルトの名無しさん
2015/12/18(金) 23:14:54.43ID:6PgNGDd6http://hayabusa3.2ch.net/test/read.cgi/news/1450395043/
0194デフォルトの名無しさん
2015/12/18(金) 23:29:42.98ID:k38RLsj8タイプミスは、ロジックを追えば必ず見つかるミス
怖いのはタイプミスではないtypo
0195デフォルトの名無しさん
2015/12/18(金) 23:43:17.54ID:XVaxeCrBそりゃいつかは見つかるだろうが、それにかける労力が大きいだろ。
0196デフォルトの名無しさん
2015/12/18(金) 23:47:14.07ID:7Erpdy7Z重要なのは「簡単に」できるかどうかであって。
0197デフォルトの名無しさん
2015/12/18(金) 23:48:52.66ID:XVaxeCrBだねー。
0198デフォルトの名無しさん
2015/12/18(金) 23:54:41.63ID:k38RLsj8リレーシーケンスの配線ミスを探す方が遥かに大変だよ
0199デフォルトの名無しさん
2015/12/19(土) 00:00:09.78ID:APSLa6hAな、経験が全然足りないんだよw
0200デフォルトの名無しさん
2015/12/19(土) 00:05:06.20ID:EQ0D2wf/0201デフォルトの名無しさん
2015/12/19(土) 00:15:43.81ID:APSLa6hAアプリの全体から文字列でyamlファイルのデータにアクセスするような
コードを書いていると同じようにタイプミスすることあるよ。
こういうのは、設定オブジェクトを作って、内部ではyamlでもjsonでも
対応可能な設計にしておくと、アプリからは設定オブジェクトのメソッドや
プロパティを参照するだけになるから、間違いが無くなる。
(正確にはタイプミスが起こりえる場所を設定オブジェクトに押し込められる)
更に設定オブジェクトのリファクタリングで名前や階層を変えたり
単一値を複数値扱えるような変更があっても、設定オブジェクトを変更すると
それに依存する場所全てを明らかにしてくれる。
0202デフォルトの名無しさん
2015/12/19(土) 00:46:06.06ID:u/d4wrI0たしかにテストがない場合の静的チェックは相当嬉しいものがあるが。
テストがまともにある場合に動的と静的の違いなんて 5 %以下だよ。
0203デフォルトの名無しさん
2015/12/19(土) 01:17:50.15ID:APSLa6hAどんなテストを書くっていうのか?
タイポしてないことを確かめるテストは書けない。
できるとしたら、何かのテストのついでとして、エラーが起きれば
タイポではないか? ということになるが、エラーが出たあとに、
ん? なんでエラーになった? バグかな?ってコードを調べるのも馬鹿らしい。
タイポしていてもエラーにならないことだってある。
そもそも、完璧なテストは書けるのか?って話もある。
適当な範囲のテストを書いてないからというが、タイポはミスだ。
人間はミスをする。ならばテストを書くことに対してもミスするだろう。
ミス無くテストを書いたという保証は得られない。
プロトタイプ的な実験コードに対してもテストを書くのか?という話もある。
テストを書く=時間がかかる だ。
テストは誰かが勝手に作ってくれるものじゃない。
テストを書く時点でコストがかかっている。
0204デフォルトの名無しさん
2015/12/19(土) 01:21:33.29ID:+ddvqKbrPythonはtypoも補完も静的解析できるからね(eval除く)
一緒にしないでね
0205デフォルトの名無しさん
2015/12/19(土) 01:24:52.39ID:nEJLJZaD0206デフォルトの名無しさん
2015/12/19(土) 01:26:24.39ID:dNXWfsX0typoぐらいならコンパイルするまでもなくIDEが教えてくれる
VSなら間違っているところのコードの下にリアルタイムで赤の波線が出る
これでもかってぐらいわかりやすく教えてくれる
コンパイルする前の、まさに編集している段階でエラーがわかるから
その場でサクっと直せば良いだけ
コンパイルして、さらにテストして初めてtypoが分かるのと比べると
生産性が段違いだ
0207デフォルトの名無しさん
2015/12/19(土) 01:28:40.84ID:APSLa6hA型チェックはテストでは検出できない。
なぜならば、これは関数の呼び出し方の間違いだからだ。
テストとは通常、関数が与えられた引数で正しい答えを返すことをテストする。
与える引数は正しいことが前提となっている。
例えばある関数の引数の数が変わったとしよう。テストも引数の数を変えるだろう。
しかし、実際のコードの呼び出し部分、ここの引数を変えるのを忘れたら、
テストは通るのに実際のコードでエラーが発生することになる。
もちろん呼び出し側のテストがしっかり書かれていればそちらでエラーが出るだろう。
つまり、Aという関数の仕様を変えた時、その関数を使用している場所全て、
関数B、C、D、E・・・でエラーが発生する。さあ大変なデバッグ作業の始まりだ!
もし、これらの関数でテストに見逃しがあったりしたならば、バグになるのは明白だ。
これは適当な範囲でのテストを書いてないからという程度ですむ話じゃない。
完璧なテストを書かないかぎり、呼び出し方が間違っていないかどうかはわからない。
完璧なテストを書けばいい?もし世の中に完璧なテストが有るならば、バグは一切無いだろうなw
0208デフォルトの名無しさん
2015/12/19(土) 01:29:47.38ID:APSLa6hA> Pythonはtypoも補完も静的解析できるからね
できるできないの話じゃない。
できる量が違うという話。
静的で出来ることの「一部」が出来たからって
何も凄くはないんだよ。
0209デフォルトの名無しさん
2015/12/19(土) 01:36:22.40ID:P/E9W26Mどうやんの?
0210デフォルトの名無しさん
2015/12/19(土) 01:47:54.86ID:+ddvqKbr出来ないコード出してみ
>>209
jedi-vim
0211デフォルトの名無しさん
2015/12/19(土) 02:13:01.48ID:APSLa6hAJava
void func(String str) {
str. ← 補完できる
}
Python
def func(str):
str. ←補完できない
0212デフォルトの名無しさん
2015/12/19(土) 02:38:39.06ID:wzwqX1mlそれは無理だけど、動的型は関係なかったね
静的型でも型推論に必要な情報ないからね
def func(str: str) なら出来るよ
0213デフォルトの名無しさん
2015/12/19(土) 02:42:51.49ID:VdM6quSm0214デフォルトの名無しさん
2015/12/19(土) 02:45:46.18ID:APSLa6hA型推論っていうのは、型が断定できるときに記述を省略できる
"追加機能" であって、型推論を持ち出す意味が無いんだが。
で、動的型むりでしょ?w
静的型はできるでしょw
ほら、言ったとおり。
0215デフォルトの名無しさん
2015/12/19(土) 02:55:03.23ID:APSLa6hA大概狭い範囲での話なんだよね。
どちらかと言えば、狭い範囲のものは、その場所だけ
注意してみればいいからそこまで必要ない。
静的型の型チェックが便利なのは、広い範囲の依存関係の矛盾を暴き出すことだから
こういうのは単体テストが主である自動テストではテストがしづらい部分。
つまり、関数の引数とかクラスの継承関係とかオブジェクトのメソッドとか
そういう「インターフェース」に関わる部分の矛盾のテストができる。
0216デフォルトの名無しさん
2015/12/19(土) 02:58:01.15ID:OdWxPmQd中身はundefinedやassert falseにしておき(つまり、まだ実装しない)
関数を呼び出す側を先に実装する手法をとる事が良くある。
いわゆるトップダウン型の実装ね。関数型と相性が良いけど、仕様が明確な大規模開発にも向いてる。
で、そのときは呼び出し側の使われ方から型推論できるから
引数の型を書かなくても型推論できる。
ドカタ言語使いには想像も出来ないだろうけど、そういう世界もあるってこと。
0217デフォルトの名無しさん
2015/12/19(土) 02:59:35.78ID:APSLa6hA関数を呼び出す側を先に実装する手法をとる事が良くある。
それと何も変わらないNE!
0218デフォルトの名無しさん
2015/12/19(土) 03:01:04.70ID:OdWxPmQdそれObjectのメソッドだけしか補完出来ないけど?
0219デフォルトの名無しさん
2015/12/19(土) 03:02:59.96ID:APSLa6hAその文章から、どういった理由でドカタ言語なのかわからないのは、
お前が、ドカタということで心の安定を保つためだと思ってるYO!
0220デフォルトの名無しさん
2015/12/19(土) 03:05:24.53ID:APSLa6hA呼び出し側の使われ方から推論できるよ?
正確には「呼び出し側が使われた時」っていうのは
呼び出し側の型も決定したってことだから、
関数の実装をするときにその型に書きなおすだけでいい。
関数の実装するんだから、すぐ上の行を編集するだけ。
0221デフォルトの名無しさん
2015/12/19(土) 03:06:46.74ID:OdWxPmQdどういった理由かも分からないのに、ドカタ言語と言われて
君はJavaを連想してしまったんだね。
話の流れ的にpythonでもsmalltalkでもおかしくなかったのに。
0222デフォルトの名無しさん
2015/12/19(土) 03:09:08.23ID:APSLa6hAへ? Javaの話を今までしていたその続きをしただけだけどw
うわー、やっぱりこう他の言語をディスることで
心の安定を(笑)うわーwww
0223デフォルトの名無しさん
2015/12/19(土) 03:09:11.65ID:OdWxPmQd計算機が正しく自動的にやってくれることを
手で書くのはアホのする事ですよ
typoしてIDEに赤線引かれちゃうかもよ?
0224デフォルトの名無しさん
2015/12/19(土) 03:10:20.46ID:APSLa6hA> 計算機が正しく自動的にやってくれることを
呼び出し側を間違えたら、計算機は間違いますよw
計算機は、書いた通りに動く。
何が正しいかはプログラマが決めるもの。
0225デフォルトの名無しさん
2015/12/19(土) 03:12:18.93ID:APSLa6hA呼び出し側が矛盾することだってあるしね。
fooという関数をintを引数にして呼び出している場所と
stringを引数にして呼び出している場所があったらどうなるのか。
定義は一箇所にするもの。
関数の定義こそが一箇所に絞り込める唯一の場所。
使ってる場所で、決めるっていうのは
間違いの元にしかならないよ。
0226デフォルトの名無しさん
2015/12/19(土) 03:15:03.21ID:OdWxPmQdコンパイラが型推論して自動生成した型を見ても間違いに気がつかないなら
手で書いても間違ってるだろうね
0227デフォルトの名無しさん
2015/12/19(土) 03:16:20.72ID:OdWxPmQdゴメンね分からない話して。
0228デフォルトの名無しさん
2015/12/19(土) 03:20:44.63ID:APSLa6hA型が決定できた時に、記述を省略してくれる機能。
だから(推論が)正しいか、推論できないかの2つに別れる。
推論できた時、それは正しい。
だけど動的型の場合、推論は本当に推論でしか無いんだよね。
こうじゃないか?って思いました。コンパイラがいう。
だから、計算機は正しく自動的にやってくれるわけじゃない。
所詮、推論でしかない。
0229デフォルトの名無しさん
2015/12/19(土) 03:21:26.48ID:APSLa6hAやっぱり正しく自動的にやってくれるんじゃないんですねwwww
0230デフォルトの名無しさん
2015/12/19(土) 03:24:05.57ID:srVmyYNw静的型の型推論は推論できた時、それは正しい
と
動的型の場合、所詮、推論でしかない
この二つは整合するのかい?
0231デフォルトの名無しさん
2015/12/19(土) 03:30:45.67ID:OdWxPmQd最後まで書き込んでたら勝ちってゲームしてるつもりかな?
もうちょっと中身のある事を書こうね。
関数型言語の型推論だと、複数の場所で矛盾する型を書いたら即座にエラーになるから間違いを早く発見できるし(>>217は型を書く段階まで発見できない)、
間違っていたときも型推論の出力を見ながら修正できる。
たしか、早くより少ない労力でエラーを発見できる方が優れてるんだよな?
0232デフォルトの名無しさん
2015/12/19(土) 04:45:37.26ID:ysM2oFx/なぜなら、どんな型でも入れることが可能だからだ。
なお型が矛盾しないからといって、正しく動くわけじゃないw
0233デフォルトの名無しさん
2015/12/19(土) 05:08:30.90ID:srVmyYNw入れるって書いてるから変数型かな
0234デフォルトの名無しさん
2015/12/19(土) 05:20:10.46ID:ysM2oFx/関数の引数の型。
0235デフォルトの名無しさん
2015/12/19(土) 06:11:42.29ID:uwvw3g3I一方、静的型付言語でも、型が矛盾しないからといって、正しく動くわけでもないw
0236デフォルトの名無しさん
2015/12/19(土) 06:13:31.81ID:uwvw3g3I静的型付関数型言語で型エラーの本当の原因を探すよりも
Smalltalkで実行時エラーの本当の原因を探すほうが遥かに簡単で間違えにくい。
0237デフォルトの名無しさん
2015/12/19(土) 07:30:05.05ID:TW2fFhuS型の不整合によるエラーはぜったい起こらないという前提なの?
そんなちゃんとした型システムの言語、あんたら使ったことないだろ
0238デフォルトの名無しさん
2015/12/19(土) 07:51:26.41ID:ysM2oFx/1か0じゃない。出来る限りコンパイル時に解決してくれれば
動的に解決する問題が減る。
静的型で型の不整合が起きるコードなんて限られてるんだから、
その影響範囲を小さくすることで、動的なものを静的に
解決できるように設計するんだよ。
静的に解決するのと動的に解決するのとの差は大きく、
動的だとすべての実行パスを、実際に実行しないと信頼出来ないが
静的だと実行する必要が無いから、すべての実行パスを実行するコストが0になる。
0239デフォルトの名無しさん
2015/12/19(土) 09:07:04.58ID:P/E9W26M俺もJedi-vim使ってるけどこれってどうやって配列の中身に補完かけんの?
何回やっても出来なくてPythonゴミだと思ってた
0240デフォルトの名無しさん
2015/12/19(土) 09:33:28.96ID:TW2fFhuS> 1か0じゃない。
あんたらの言ってることは1か0かでしかないよ。w
ここでもすでに2つもやってる
> すべての実行パス
> コストが0
0241デフォルトの名無しさん
2015/12/19(土) 09:33:42.26ID:QugsHy5+オブジェクト指向とか、関数型とかいう前に、構造化プログラミングが出来てないからtypoで困るのか
0242デフォルトの名無しさん
2015/12/19(土) 09:34:15.15ID:u/d4wrI0こいつまじでテスト書かないんだろうな。。
適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
型があってなけりゃ大概まともになんて動かんわ。
>そもそも、完璧なテストは書けるのか?って話もある。
テストでもプログラムでも「完璧な」なんてありえないんだよ。
確率や効率をいかにあげるかって話だ。
>テストを書く=時間がかかる だ。
当たり前だ。それなりの精度のもの作るならそうなる。
プロトで作るくらいの規模のもので型エラーでほとんど動かんもの作る奴なんてどっちにしろ
まともなものなんて作れんわ。
0243デフォルトの名無しさん
2015/12/19(土) 09:35:02.37ID:ysM2oFx/無関係なものを結びつけたがるよなw
まるで、そういう印象をあたえるのが目的かのようだwww
0244デフォルトの名無しさん
2015/12/19(土) 09:36:58.29ID:ysM2oFx/> 適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
> 型があってなけりゃ大概まともになんて動かんわ。
わかってないねw
適当にその型のオブジェクト生成して突っ込むというテストコードを書いたからといって、
そのテストコード以外の部分には、当てはまらないんだよ。
テストコードだけがうまく動作するwww
> 型があってなけりゃ大概まともになんて動かんわ。
問題はそこからだな。まともに動かない。原因は何か?
デバッグ大変だぁw
0245デフォルトの名無しさん
2015/12/19(土) 09:38:45.80ID:ysM2oFx/インターフェースの問題なのだから
単体テストでは見つけることが出来ないんだよ。
これは結合テストの範疇。
0246デフォルトの名無しさん
2015/12/19(土) 09:41:53.19ID:TW2fFhuS- 動的型付けで静的型付けのような完全なチェックは不可能
- 完全なチェックを妨げる言語機能は自分達には無価値
- 静的型付きはすばらしい。だからおまえ等が使わない理由が分からない。バカなの?
ただこれだけのこと
0247デフォルトの名無しさん
2015/12/19(土) 09:45:53.67ID:P/E9W26M0248デフォルトの名無しさん
2015/12/19(土) 09:47:41.17ID:8SzZHE5Vだから、仕組み的に静的型付けより正確な補完ができることはありえない
>>216
戻り値にShowとかCloseとかのよくあるメソッド呼ぶだけだとどうしても補完は不足する
C#とかの補完は、加不足なく表示されるのがポイントで、リファレンスを参照する手間がないのがありがたい
>>181
dynamic型とかでできるよ
でも補完が効かないし、遅くなって静的コンパイル言語の利点を潰しちゃうからあんまり使われない
0249デフォルトの名無しさん
2015/12/19(土) 09:49:18.71ID:ysM2oFx/> 結局、静的型付けのヒトの主張は
なるほどw 動的型の人の主張はそういう反論しかできないから
話をこれだけにしてくださいってことだなw
0250デフォルトの名無しさん
2015/12/19(土) 09:50:10.54ID:ysM2oFx/面白い反応だwww
0251デフォルトの名無しさん
2015/12/19(土) 10:09:02.79ID:QugsHy5+typoが発見できないような広い範囲をテストするなんてことは基本的に有り得ない
0252デフォルトの名無しさん
2015/12/19(土) 10:10:22.76ID:l6AIqaac自分が理解できない動的な考え方の排斥か?
自分たちの土俵での優位性を主張したいだけなのか?
0253デフォルトの名無しさん
2015/12/19(土) 10:13:36.72ID:uwvw3g3I>動的型はダックタイピングを期待して故意に複数の型を許すこともある
>だから、仕組み的に静的型付けより正確な補完ができることはありえない
ちがうなw
特定の型の引数しか扱えないような低性能な静的型と違って、
動的型は任意の型を取る能力を持っているから、
動的型のほうがより「正確に」可能な型に関係した補完が可能なんだよ。
0254デフォルトの名無しさん
2015/12/19(土) 10:21:30.79ID:8SzZHE5Vえ?どういう補完を指して優れてるって言ってるの?
型にしばられすぎないことが利点の動的言語で静的言語並の補完したら良さを潰してるとしか思えないんだが
0255デフォルトの名無しさん
2015/12/19(土) 10:26:19.12ID:dtnFGkzr全く別のことだと言うことがわかったよ。それ以降、補完に頼ることを止めて以来コードの質が上がったということは言うまでもない。
0256デフォルトの名無しさん
2015/12/19(土) 10:51:48.54ID:oOYHp+m90257デフォルトの名無しさん
2015/12/19(土) 10:56:29.09ID:P/E9W26M0258デフォルトの名無しさん
2015/12/19(土) 10:59:35.33ID:eeFVwRM7一日二万行くらいコード書いてるのかな?
プログラミングの本質はタイピングじゃなくて設計なんだけどな
俺はemacsとabbrevだけで十数年食ってるよ
0259デフォルトの名無しさん
2015/12/19(土) 11:07:06.94ID:t89iAcrU0260デフォルトの名無しさん
2015/12/19(土) 11:07:11.55ID:l6AIqaac読解力 and/or 論理的思考 も欠如して、かわいそうに…
ただ煽るだけしか能がないのか。そんなんでよくまともなコードを書けるな。
それともあれか、俺たちも我慢して型情報を書いて、それと引き替えに型安全と補完というメリットを得ている
お前らそれを馬鹿にして否定したり、あまつさえ俺には必要ない別のメリットを享受することなど許さないってか
0261デフォルトの名無しさん
2015/12/19(土) 12:35:58.10ID:wzwqX1ml普通に配列の中身も補完できたよなーと思って試したらやっぱり出来たから、
そっちの環境がおかしいんじゃね?
0262デフォルトの名無しさん
2015/12/19(土) 13:21:35.87ID:dNXWfsX0動的型界隈においても静的型のメリットが評価されてきたってことでもあるが
それはともかくとして、>>212のような書き方をするとfuncはstrと派生クラスしか受け付けなくなるから
動的型の柔軟性が全く損なわれるわけだけどね
動的型言語なのにメタプログラミングもクソもないC言語レベルのコーディングを強いられるのはなんとも
一方で静的型言語で>>211のような型を指定しない書き方をするときは
ジェネリックやテンプレートを使うわけだけど、この場合コード補完こそ効かないけれど
静的に解決するので少なくとも型のミスやtypoのミスはコンパイルエラーになる
静的型言語のタイプセーフはジェネリックでも健在ということ
これは動的型言語の取ってつけたような貧弱な静的型システムでは実現できていない
しかし静的型のジェネリックは静的に解決するので動的なダックタイピングは出来ない
でも、動的なダックタイピングのような危険な行為は本当に必要なのかどうなのか
殆どの場合は静的なダックタイピングだけで十分だし、コンパイルエラーで検出できたほうが良い
動的な多態をしたければ、インターフェースを介して行ったほうが安全
0263デフォルトの名無しさん
2015/12/19(土) 13:24:08.37ID:dNXWfsX0> テストでもプログラムでも「完璧な」なんてありえないんだよ。
> 確率や効率をいかにあげるかって話だ。
そこで静的型言語の出番
少しでもバグを減らすためには静的型言語が有用
0264デフォルトの名無しさん
2015/12/19(土) 13:38:36.46ID:a/6r0NiUhttp://peace.2ch.net/test/read.cgi/tech/1385273168/
もうこっちでよくないか?
0265デフォルトの名無しさん
2015/12/19(土) 13:41:55.99ID:XdSebzRf任意である通知カードの受け取りを政府広報が受け取れとCM
https://www.youtube.com/watch?v=69cC29ZwXyw
マイナンバー通知カードを受け取ってしまっても、市町村に送り返そうhttps://www.youtube.com/watch?v=_f3I2RTC17s
311東日本大震災は人口地震テロ さゆふらっとまうんど(平塚正幸)https://m.youtube.com/watch?v=XiK9DeIMt14
マイナンバー通知カードの受け取りを拒否しようhttps://www.youtube.com/watch?v=xSt6jiOKh_I
0266デフォルトの名無しさん
2015/12/19(土) 13:43:56.73ID:a/6r0NiU拒否する理由がない。
拒否するだけじゃただの反抗期。
すごくダサい。
0267デフォルトの名無しさん
2015/12/19(土) 13:54:09.76ID:dNXWfsX0大体は動的にクラスを書き換え出来る、とかといった危険なメリットが有るぐらい
最近は動的型言語にも静的型の機能(の中途半端なもの)が
どんどん導入されてきていることから考えると
動的型言語界隈の人にとっても静的型のメリットは大きいということ
ただし、取ってつけたようなものなので、ジェネリックが無いわけだが・・
人間は完璧じゃないのでテストも完璧とは限らない
機械的に検出できるエラーは多ければ多いほどよい
俺らはコンピュータを使って普段色々なことを自動化するためにプログラムを書いているわけだから
我が身自身のエラーの検出も出来るだけ多くコンピュータで自動化しようというのは当然の事の流れ
他人の仕事は自動化しているのに、自分たちの仕事のエラー検出を自動化しないのは変な話
動的型言語は時代に逆行しているわけだ
最先端と勘違いしていた人たち、可哀想
0268デフォルトの名無しさん
2015/12/19(土) 14:06:24.99ID:srVmyYNwできるだけ早く動作を確認したいから静は動の機能を取り込む
動作の確認はどう設計されたかの確認とも言える
0269デフォルトの名無しさん
2015/12/19(土) 14:08:42.41ID:a/6r0NiUruby on railsとか一時期流行ったよねー。
これからはlightweight languageだとか言ってね。
人力で型チェックのコード書くのだりーってことに気がついて下火になった。
0270デフォルトの名無しさん
2015/12/19(土) 14:19:06.48ID:6Pr5+KRd全部動的言語とか初心者かよ。
0271デフォルトの名無しさん
2015/12/19(土) 14:26:41.75ID:srVmyYNw静的言語でしっかり設計して動的に仕様に追従できるようにしたいものだ
0272デフォルトの名無しさん
2015/12/19(土) 16:05:53.13ID:QugsHy5+0273デフォルトの名無しさん
2015/12/19(土) 17:18:06.84ID:TmayNbxK0274デフォルトの名無しさん
2015/12/19(土) 17:40:05.11ID:ysM2oFx/意訳
静的言語の利点はtypoだけなんだって思い込みたい
だって、それ以外の利点に反論することが出来ないんだもん。
0275デフォルトの名無しさん
2015/12/19(土) 17:58:11.97ID:xOPNzksg0276デフォルトの名無しさん
2015/12/19(土) 18:11:56.47ID:ysM2oFx/typoしか指摘してないからだよw
0277デフォルトの名無しさん
2015/12/19(土) 18:44:52.65ID:OdWxPmQd設計上のトレードオフで異なる方向性に進んだだけであって、
どちらにも良いところは一杯あるよ。それで良いじゃないか。
もちろんJavaにも良いところはある。ドカタでもコードらしき物が書けるところとか。
0278デフォルトの名無しさん
2015/12/19(土) 18:49:17.24ID:a/6r0NiUJavaが普及した理由って文法がシンプルだから?
0279デフォルトの名無しさん
2015/12/19(土) 18:54:52.90ID:dNXWfsX00280デフォルトの名無しさん
2015/12/19(土) 18:55:37.15ID:srVmyYNwたくさん使われたからドカタが生まれたよ
0281デフォルトの名無しさん
2015/12/19(土) 18:56:01.89ID:ysM2oFx/こういう矛盾があるんだよなw
0282デフォルトの名無しさん
2015/12/19(土) 18:57:07.90ID:ysM2oFx/その理屈だと、たくさん使われてる言語を使ってる人=ドカタってことになって
なぜドカタなのか?の理由がなくなるぞw
0283デフォルトの名無しさん
2015/12/19(土) 18:58:09.44ID:ysM2oFx/自分が嫌いな言語が普及すると悔しいだろ?
悔しかったら、叫べばいいんだよ。
お前のカーチャンデーべそ!
0284デフォルトの名無しさん
2015/12/19(土) 19:02:44.62ID:99cf/LSiそれでいいじゃないか。
0285デフォルトの名無しさん
2015/12/19(土) 19:04:44.99ID:ysM2oFx/低能な悪口になってしまってるよなw
ドカタとする理由はない。
単にドカタと呼ばれれば気分悪いだろう?
っていう気持ちだけで言ってるw
やーい、ドカタ(笑)、ドカタ(笑)
俺はドカタじゃないもん!
0286デフォルトの名無しさん
2015/12/19(土) 20:54:40.24ID:9zezTTvK静的言語の利点はコードコントラクト
http://monobook.org/wiki/%E5%A5%91%E7%B4%84%E3%81%AB%E3%82%88%E3%82%8B%E8%A8%AD%E8%A8%88
0287デフォルトの名無しさん
2015/12/19(土) 21:32:04.90ID:VDGaUBLZ静的か動的か(やっぱり静的サイキョ)みたいな
議論は適材適所という話でしかないしどうでもいいや。
0288デフォルトの名無しさん
2015/12/19(土) 22:54:29.05ID:9zezTTvK副作用の低減とマルチスレッド性能でいえば関数型
大事なのはバランス感覚。
中間が素晴らしい。
オブジェクト指向で関数型で基本静的で動的も使えunsafeも使えるC#が最強なんだな。
0289デフォルトの名無しさん
2015/12/19(土) 23:15:07.87ID:0/RlvyV4これだけは間違いない
0290デフォルトの名無しさん
2015/12/19(土) 23:15:59.92ID:25MZJC6Y0291デフォルトの名無しさん
2015/12/19(土) 23:46:59.99ID:99cf/LSi0292デフォルトの名無しさん
2015/12/19(土) 23:55:31.17ID:GM3q6wlH0293デフォルトの名無しさん
2015/12/20(日) 01:22:59.25ID:ei3pb2ORhttp://realtime.search.yahoo.co.jp/search?fr=applep2&ei=utf-8&p=xamarin
0294uy ◆Qawu9.2l1E
2015/12/20(日) 01:23:00.97ID:I1JEaeeoバランスwwwwwwwwwwwwwwwww?WwWWWwWw
低能特有の曖昧でふわふわした表現ワロタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0295デフォルトの名無しさん
2015/12/20(日) 01:27:54.27ID:ei3pb2OR0296デフォルトの名無しさん
2015/12/20(日) 02:21:28.75ID:IuSUOMsB求められてる範疇で都合よく使えるいいんだ。百点の理想郷なんかなんかいらんのよ
クライアントないし上長の要望に立ち向かうってこと自体、曖昧でふわふわしたところにやんわりと釘を刺し続ける行為だしね
90点もいらない、10点の仕事を最安で求められたなら10点できっちり済ませるのが土方クオリティ
0297デフォルトの名無しさん
2015/12/20(日) 02:24:10.18ID:jqjYNF9z矛盾したこと言ってるなよ。
0298デフォルトの名無しさん
2015/12/20(日) 02:39:17.80ID:IuSUOMsB0299デフォルトの名無しさん
2015/12/20(日) 07:15:36.12ID:2L75ZkE+20年前にはそんなものは神話だということがバレているわけだが。
0300デフォルトの名無しさん
2015/12/20(日) 07:17:27.87ID:2L75ZkE+もしかして、動的型言語では契約プログラミングができないとでも思い込んでいる?
0301デフォルトの名無しさん
2015/12/20(日) 07:54:40.31ID:jqjYNF9z静的言語でできることの「一部」しかできない。
いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw
0302デフォルトの名無しさん
2015/12/20(日) 08:43:25.14ID:gr0U1KS4神話じゃなくってそれはどうすればいいのか知らないだけのことで、少なくとも完全にパッケージングされていれば
きにならないことだ
0303デフォルトの名無しさん
2015/12/20(日) 08:49:50.37ID:fsY0id6uあれは感動
0304デフォルトの名無しさん
2015/12/20(日) 09:30:42.11ID:hK9ny108動的言語でできることの「一部」ですらないまがいもん。
いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw
それでそのことを指摘すると、動的な機能なんていらないとか
typoの修正が完全じゃなくなるとか、補完の精度が落ちるとか
挙げ句の果ては、動的だと動かさないと型チェックできないとか
0か1かの極論を展開して煙に巻こうとするんだよなぁw
で、さらにそれを指摘すると、それしか反論がなかったからとか開き直る。
さんざん動的のメリットを言ってもユースケース想像できなくて頭ごなしに拒否。
ドカタは世界が狭いから、静的型だとダメだから動的に移る人もいるって
わかんないんだよね
0305デフォルトの名無しさん
2015/12/20(日) 09:35:11.37ID:jqjYNF9z静的言語でなんでも動的にできるなんて言ってないがねw
逆に静的に決めることが利点なわけで、動的でやろうとは思わない。
そりゃ動的にすることも出来なくはないけど、できればやりたくない。
0306デフォルトの名無しさん
2015/12/20(日) 10:57:03.24ID:bx1tuSu0C#には動的型言語みたいな機能のdynamicがあるけど
静的型言語を使っておいて全部の変数をdynamicで書こうとは思わないよね
キャストもなるべくしないようにすべし、というのが静的型の文化
一方で最近の動的型言語は静的型の機能を吸収していっているが
とても中途半端でジェネリックが無い
まさに、動的型の静的機能は静的型言語でできることの一部ですら無いまがい物だね
0307デフォルトの名無しさん
2015/12/20(日) 11:15:20.03ID:NKmQ5FTU想像はできてない、かも分からんが
お前も言えてないよ
0308デフォルトの名無しさん
2015/12/20(日) 11:29:25.89ID:OjtiikyNあとは稼働を止めずにリプレースできるとか。。
静的言語の問題点は
静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。
0309デフォルトの名無しさん
2015/12/20(日) 11:47:57.68ID:jqjYNF9z"その方法" は、クラウドの時代になって様変わりしたけどねw
今はサーバーにログインして、一台一台ソースコードを更新なんて
危険なやり方でリプレースしたりしませんw
新しいバージョンにしたVMを作成して最終確認した後
接続先を新しいVMに切り替えるんですよ。
このやり方に動的の利点なんかありません。
0310デフォルトの名無しさん
2015/12/20(日) 11:49:22.93ID:jqjYNF9z○ 静的言語の問題点は静的解析してりゃテストはいらんとか言い出すんでしょう?
とかいいだす、動的馬鹿が発生し易いってことかなw
静的だとテストはいらんと言ってるのは動的厨だけ。
0311デフォルトの名無しさん
2015/12/20(日) 11:56:38.95ID:ZootpjTaで、値に対するテストに通れば、型チェックも通ってると思うんだけど、
なぜか静的ドカタは動的だと型のテストコードも必要と思い込んでるみたいなんだよね
なんで?
0312デフォルトの名無しさん
2015/12/20(日) 12:49:50.49ID:jqjYNF9zいろいろと勘違いしてるねw
重要なのは、テストも含めた開発のコスト。問題点は早く見つかる方がコストは低くなる。
そしてもう一つ。型チェックというのは正確にはインターフェースのチェック。
引数(シグネチャ)が正しいこと。クラスの継承関係などが正しいこと。
インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
(ほぼというのは意図的に静的型の型安全性を捨てた場合を除くから)
テストコードというのは、単体テストが主で、これはインターフェースのテストではない。
単体テストでインターフェースのテストを静的型と同等レベルまで動的型でテストするには
漏れがないといえるレベル(少なくともカバッジ100%)の完全なテストが必要になる。
しかし漏れがないことを証明する方法はないし、そもそもテストに問題がないことを証明する方法もない。
ちなみに、カバレッジ100%を目指せと言うと、それはやめろと言われる(笑)
テストを書くというのはコストがかかる。メンテナンスするのにもコストは掛かる。
テストを書かなくてもテストを書いたのと同じ効果が得られるのであれば、それに越したことはない
それがテストの一部であったとしても、テストのコストを下げることになる。
テストはどれだけやっても十分とはいえないんだから多ければ多いほどいい。コストがかからない方法(静的)ならなおさらだ。
動的型は完璧なテストがあれば十分だというが、そのような完璧なテストは存在しない。
TDD再考 (1) ? テストファーストとユニットテストへの死刑宣告 ( http://ubiteku.oinker.me/2015/07/21/tdd-is-dead-long-live-testing/ )
TDD再考 (2) ? 何故、ほとんどのユニットテストは無駄なのか? ( http://ubiteku.oinker.me/2015/07/27/why-most-unit-testing-is-waste/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 1 http://postd.cc/is-tdd-dead-part1/ )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 2 http://postd.cc/is-tdd-dead-part-2/ )
0313デフォルトの名無しさん
2015/12/20(日) 12:51:46.50ID:akw4ximt自分がVisualC#™️推しだってことは隠して
Microsoft™️ .NETフレームワーク専用言語の
「静的言語(=Visual C#™️)は世界一なんだぞぉ!」
って主張するスレってことでいいかね?
0314デフォルトの名無しさん
2015/12/20(日) 12:55:58.25ID:Ava23gurあ、ドカタ界隈ではインターフェースのテストはしてないんだ
なるほどね
0315デフォルトの名無しさん
2015/12/20(日) 13:00:45.19ID:jqjYNF9zインターフェースのテストをしてるんだw
書いてみてよ。
0316デフォルトの名無しさん
2015/12/20(日) 13:05:09.23ID:jqjYNF9z具体的に説明する。
foo(TypeA a, TypeB b, TypeC c) という関数がある。
この関数を使っている所がソースコードのあちこちに存在する。
静的型付けであれば、このインターフェース、つまり引数の型が違うものを
全て教えてくれる。
>>314はこのインターフェースのテストを書くらしいw
俺は実行して見る以外のやり方を知らないよ。
実行すればわかる? そうだね。”漏れがなく完璧なテストがあればね"
さあテストを書くお仕事だ。テストを書くのはコストは掛かるぞ。
テストをメンテナンスするのにもコストは掛かるぞ。
静的型付けでは、このインターフェースのテストにはコストはかからない。
0317デフォルトの名無しさん
2015/12/20(日) 13:10:54.30ID:hK9ny108> インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
逆だろ
静的型ではほぼ完全にチェックできることしか書けないように、
本来ソフトウエアにできることに制限を設けてるだけ
0318デフォルトの名無しさん
2015/12/20(日) 13:11:34.10ID:Ava23gurドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
なるほどね
0319デフォルトの名無しさん
2015/12/20(日) 13:22:25.74ID:jqjYNF9z> 静的型ではほぼ完全にチェックできることしか書けないように、
> 本来ソフトウエアにできることに制限を設けてるだけ
プログラミングの進化に伴い、なんでもできるアセンブラから制限をかけることで、
より安全なコードが書けるように進化しているという事実をどう考えてるのか?
>>318
> ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
だからいったろ?
静的型のインターフェースのテストと同等レベルのテストを行うには
完璧なテスト(カバレッジ100%)が必要。だがテストが完璧だと保証する方法はない。
テストにバグがないことを保証する方法もない。
そしてカバレッジ100%を目指せというと、それはやめとけと言われる(笑)
もちろんカバレッジ100%では完璧ではない。特に動的型付けでは
コードパスによって引数は大胆に変わる可能性があるし、コード自体も変わる可能性がある。
あるコードを実行したら、オレオレパッチで関数のシグネチャが変わることさえも。
テストはどれだけやっても確実にはならない。ソースコードの単体テストに加えて
静的型付けのコンパイルチェックがあれば、単体テストだけよりもさらに完璧になる。
鬼に金棒ってやつだ。
所詮お前は、単体テストがあれば十分だって考えてる
あまちゃんってこと。
0320デフォルトの名無しさん
2015/12/20(日) 13:43:19.63ID:GK0ijEppつまり値に対するテストはロクにやらずに
本番でエラーが出ないことをガクブルしながら祈ってるわけね
なるほどね
0321デフォルトの名無しさん
2015/12/20(日) 13:44:12.09ID:dp1zfJIT0322デフォルトの名無しさん
2015/12/20(日) 14:52:31.49ID:hK9ny108> より安全なコードが書けるように進化しているという事実をどう考えてるのか?
抽象化=制限 じゃあない。
0323デフォルトの名無しさん
2015/12/20(日) 15:56:38.30ID:+uShK3RK0324デフォルトの名無しさん
2015/12/20(日) 16:28:07.52ID:bx1tuSu0自動車にも自動ブレーキがつく時代だぞ
ファンヒーターやコンロも付けっぱなし防止機能が付いているし
電車なんかの制御も安全機能だらけだろ
初めから危ない動作はしないように制御されている
セーフティーは重要
お前らの書くプログラムも明らかに矛盾した入力は受け付けないようにしているだろ
ユーザーは何を入力するか分からんからな
普段そういう安全機能がついたものを使っておいて、また、作っておいて
どうしてそういう安全に関する考えを自分の使う言語にまで発展させて考えられないの?
頭硬いの?どうして安全装置が無いことでドヤ顔できるの?
0325デフォルトの名無しさん
2015/12/20(日) 16:31:01.73ID:+uShK3RK0326デフォルトの名無しさん
2015/12/20(日) 16:38:13.00ID:bx1tuSu0そういう意味ではメガデモをアセンブリで作るような場合は安全は関係ないだろう
仕事で使うもの、あまたある業務用装置に
安全装置がついてないとでも言うか?
なまじ危ないことをするから安全装置だらけだぞ
ただし業務用装置にはコストの関係もあるから付いてない場合もあるが
それは劣っているというだけで、コストかけられるなら安全装置はついていたほうが良いのは当たり前
安全装置がついていないことをドヤ顔する人はいない
0327デフォルトの名無しさん
2015/12/20(日) 16:41:55.89ID:+uShK3RK0328デフォルトの名無しさん
2015/12/20(日) 16:46:14.53ID:0rzi2y0bまあ、する気もないんだろうけど。
動的遅延結合性を大事にする人間は別に型は否定してない。
たまたま今の型システムは不自由だから、次善の策として動的型を使っているだけだ。
0329デフォルトの名無しさん
2015/12/20(日) 16:51:13.35ID:bx1tuSu0誤った入力が有ってもそのまま実行するのか?
それか初めから誤った入力は出来ないように
無効なボタンは灰色表示にして押せないようにしているんじゃないのか?
当たり前だよな?
普段そういうものを作っておいて、作らされておいて
どうして自分の使っている言語に安全装置が足りてないことに気づかないの?
0330デフォルトの名無しさん
2015/12/20(日) 16:55:40.40ID:+uShK3RK0331デフォルトの名無しさん
2015/12/20(日) 17:27:57.19ID:9YX+2XWA正直、smalltalkはlispやprologと同じくらい極北なイメージがある。
Cのマクロしか知らずにマクロを批判してたらLisperに囲まれてボコボコにされるのと同じように、
Javaのオブジェクト指向しか知らずにOOPを批判してたらSmalltalkerにボコボコにされる雰囲気がある。
そして誰か、「この世は計算式」ってどういう意味なのか教えてください。
それがオブジェクト指向とどう対立するのかも分からん。
0332デフォルトの名無しさん
2015/12/20(日) 17:48:36.25ID:m7Ghdsbn"型がわかんねぇから食えないもの食って死ぬ"ってぇなら
「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って
答えるようにすればいいだけだよなー
0333デフォルトの名無しさん
2015/12/20(日) 17:54:30.03ID:m7Ghdsbn>そして誰か、「この世は計算式」ってどういう意味なのか教えてください。
建てた奴はオブジェクト指向vs関数型にしてやろうと思ってたけど
C#ジハードおじさんが来て「俺がいるところこそが唯一絶対の真理である!」って
やってるから皆でテキトーにそれつついて遊んでんじゃないの。
0334デフォルトの名無しさん
2015/12/20(日) 18:17:46.11ID:noY3begs安全装置はついていれば便利なことも多いけど、必ずしもよいことばかりではないよ。
不完全な安全装置や安易な判断で設置された安全装置は、人の命を奪うことすらある。
もちろん程度問題で、すべてが悪と言う気はないよ。たぶん、それで助かる人は困る人より
はるかに多いだろうし。でも、それでいいと思う人ばかりじゃないことは理解をしないと。
現状の静的型が目的以外の使用を許さないところは、車に例えれば、安全装置のせいで
セルモーターを使った踏み切り脱出ができなくなったと嘆く教習所の教官の言葉を思い起こさせる。
0335デフォルトの名無しさん
2015/12/20(日) 18:22:06.62ID:rV5TNjST0336デフォルトの名無しさん
2015/12/20(日) 19:19:03.42ID:+uShK3RK0337デフォルトの名無しさん
2015/12/20(日) 19:37:44.93ID:Ava23gur例外を必要以上に危険視する傾向があるという
0338デフォルトの名無しさん
2015/12/20(日) 19:39:46.66ID:+uShK3RK0339デフォルトの名無しさん
2015/12/20(日) 20:02:45.31ID:IBlQGaN+>>なんでもそうだが、静的言語の「動的」にできるは、
>>動的言語でできることの「一部」ですらないまがいもん。
一部ですらって、何ができないの?
大方の動的言語に近いことはできるとおもってるんだけど・・・
0340デフォルトの名無しさん
2015/12/20(日) 20:32:36.37ID:jqjYNF9z> 「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って
> 答えるようにすればいいだけだよなー
型に聞く必要があるのなら、なおのこと、
型があったほうがいいんじゃないの?w
0341デフォルトの名無しさん
2015/12/20(日) 20:52:12.77ID:hK9ny1080342デフォルトの名無しさん
2015/12/20(日) 21:01:07.39ID:ILSUiSxT>なんでもそうだが、動的言語のできるは、
>静的言語でできることの「一部」しかできない。
逆。原理的に静的型言語は動的言語の「一部」しかできない。
ばか?
0343デフォルトの名無しさん
2015/12/20(日) 21:05:03.98ID:ILSUiSxTおまえは本当にばかだなあ。
静的型言語は型検査を通らないと型安全を確保できないが、
動的型言語は型検査などなくても型安全を確保できているんだよ。
0344デフォルトの名無しさん
2015/12/20(日) 21:11:05.33ID:IBlQGaN+C#、VB.NETだと必要なところにだけ動的型を導入できる
TypeScriptではjavascriptに合わせて動的型にする場面も多い
Javaでもバイトコードでは対応したみたいだから、将来的に導入されるかも?
C/C++ではそんな不自然な機能には対応しない
0345デフォルトの名無しさん
2015/12/20(日) 21:12:53.77ID:HeaJTNm+0346デフォルトの名無しさん
2015/12/20(日) 21:34:01.48ID:+uShK3RK0347デフォルトの名無しさん
2015/12/20(日) 21:37:01.46ID:eaGEBgum0348デフォルトの名無しさん
2015/12/20(日) 21:59:10.73ID:ywvYIxL30349デフォルトの名無しさん
2015/12/20(日) 22:09:54.59ID:akw4ximt0350デフォルトの名無しさん
2015/12/20(日) 22:13:03.00ID:hK9ny1080351デフォルトの名無しさん
2015/12/20(日) 22:15:16.86ID:l3TBRkh90352デフォルトの名無しさん
2015/12/20(日) 23:15:04.42ID:3zlmhSVS0353デフォルトの名無しさん
2015/12/20(日) 23:24:35.18ID:JMy37Egb0354デフォルトの名無しさん
2015/12/20(日) 23:46:56.43ID:akw4ximt0355デフォルトの名無しさん
2015/12/21(月) 00:05:30.65ID:K9YQZ40/ことあるごとに 100% じゃねーからとか言い訳してテストしなさそうだ。
0356デフォルトの名無しさん
2015/12/21(月) 00:20:21.16ID:wKrNpYiO> 逆。原理的に静的型言語は動的言語の「一部」しかできない。
> ばか?
話の流れがわかってないw
原理的に動的言語は静的型言語でわかることの「一部」しか「静的に」判断できないできない。
静的型言語はなんでもできる動的言語の危険性を抑えるために
実行時にできることが制限されている。それが安全性につながる。
0357デフォルトの名無しさん
2015/12/21(月) 00:21:30.20ID:wKrNpYiO> 動的型言語は型検査などなくても型安全を確保できているんだよ。
じゃあ、TypeAしか入れられない型にTypeBを入れて
それでどうやって静的に(実行せずに)型安全性を確保しているか教えて。
実行して落ちるのは型安全じゃないからねw
0358デフォルトの名無しさん
2015/12/21(月) 00:23:07.92ID:wKrNpYiO> 型が重要な箇所があるなら、その部分で型チェックすればいいじゃない
それだと、どんな型を渡しても正しく扱えることはまず無いから、
殆どの部分で型チェックが必要になるぞw
特定の型固有のメソッドを呼んだ時点で、落ちてしまう。
0359デフォルトの名無しさん
2015/12/21(月) 00:48:12.97ID:wV5Rx1o6そのヌルポに大した危険はなくても偉い人がヌルポだと騒ぎ出すから、結局なんかしなきゃいけない。
0360デフォルトの名無しさん
2015/12/21(月) 00:59:07.29ID:qoXEI4guimport java.util.*;
class Hoge {
public static void main (String[] args) {
Collection<Number> nums = new ArrayList<Number>();
nums.add(new Integer(1));
nums.add(new Long(1));
Integer[] ints = nums.toArray(new Integer[nums.size()]);
for (Integer integer : ints) {
System.out.println(integer);
}
}
}
0361デフォルトの名無しさん
2015/12/21(月) 01:48:05.01ID:B3EXamn3nullはあるわisInstanceOfはあるわ後方互換性のせいで汚いメソッドがあるわで、潔癖な人にはおすすめできん。
現在に至るまでの資産が無ければ触りたくもならんです。
自分はML系の型システムでようやく静的型付けの有り難みが分かるようになった。
0362デフォルトの名無しさん
2015/12/21(月) 02:47:46.56ID:wKrNpYiOIntegerとLongは共にNumberを継承しているから
0363デフォルトの名無しさん
2015/12/21(月) 04:14:30.72ID:7dJZ8TPE本物のバカ?
まともな動的型言語なら、そもそもTypeAしかいれられない型なんて存在しないから。
メソッドが見つからなければ言語仕様通りに「正しく」例外を投げる。
例外ハンドラが設定されていなければ終了する。
静的型言語で例外を投げた時にハンドラがなければ終了するのと同じだ。
言語仕様通りに動作しているのだから、型安全は確保できている。
もし「実行したらメソッドが見つからないだけで落ちた」のは型安全じゃないというのなら、
https://ja.wikipedia.org/wiki/%E5%9E%8B%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0#.E5.AE.89.E5.85.A8.E6.80.A7
でも読んでろバカ。
わかりまちたか、おばかちゃん?
静的厨はほんと型システムに関する知識が薄いね。だからバカなんじゃないかなあ。
0364デフォルトの名無しさん
2015/12/21(月) 04:52:19.75ID:wKrNpYiO言語仕様通りに「正しく」例外を投げる。
だけど、これはアプリの仕様からしたらバグだ。
話の前提わかってる?
言語を作る側の話じゃなくて
言語を使ってアプリを作る側の話をしてる。
0365uy ◆Qawu9.2l1E
2015/12/21(月) 05:10:51.36ID:ouS7hqFY0366デフォルトの名無しさん
2015/12/21(月) 05:36:24.60ID:7dJZ8TPE例外を捕捉しないのはアプリのバグであって言語のバグじゃないよw
自分のバカさを動的型のせいにするなってww
話の前提どうこう以前に、まずは自分のバカさを自覚しろw
0367デフォルトの名無しさん
2015/12/21(月) 05:39:43.68ID:wKrNpYiOあんたは動的言語では例外が出るといった。
実行されるまでわからないということだ。
静的言語だと静的にメソッドが無いことを調べられる。
だからアプリのバグを減らすことができる。
少なくとも実行しなくてもわかるから、
早くバグを修正できる。アプリ開発のコストが下がる。
0368デフォルトの名無しさん
2015/12/21(月) 05:45:26.20ID:YADl95dr0369デフォルトの名無しさん
2015/12/21(月) 06:16:48.64ID:7dJZ8TPEそうでちゅね、静的型言語ではアプリをテストせずに開発できちゃうんでちゅね、すごいでちゅねwww
バカ丸出しw
0370デフォルトの名無しさん
2015/12/21(月) 06:19:38.14ID:7dJZ8TPE普通にレコード定義すればいいところでMap型を使って
アプリがキーエラーで落ちるw
0371デフォルトの名無しさん
2015/12/21(月) 06:39:28.24ID:G65zLFazすげーな。
コンパイルが通るってことは、このコード、ランタイムエラー吐かずに正しく動くんだな?
0372デフォルトの名無しさん
2015/12/21(月) 06:50:22.82ID:7dJZ8TPE>少なくとも実行しなくてもわかるから、
>早くバグを修正できる。アプリ開発のコストが下がる。
HM型検査を実行するのと、ほんの数個の単体テストを実行するのと、
どちらが早くバグを修正できるでしょうかね?
ばーかw
0373デフォルトの名無しさん
2015/12/21(月) 07:01:32.16ID:wKrNpYiO単体テストだけの動的よりも信頼性が高い。
0374デフォルトの名無しさん
2015/12/21(月) 07:02:38.27ID:wKrNpYiO単体テストでテストできなかった部分も静的解析でテストできる。
鬼に金棒
0375デフォルトの名無しさん
2015/12/21(月) 07:03:44.31ID:wKrNpYiOすげーな。単体テストさえあれば、バグは一個もない。
他にテストは要らないと思ってるのかw
0376デフォルトの名無しさん
2015/12/21(月) 07:18:53.80ID:7dJZ8TPEメソッドがあるかないかぐらい単体テストでC0カバレッジで十分わかることじゃないかw
本物のバカだなw
0377デフォルトの名無しさん
2015/12/21(月) 07:19:42.76ID:7dJZ8TPE0378デフォルトの名無しさん
2015/12/21(月) 07:22:03.68ID:wKrNpYiOカバレッジ100なのかい?
http://d.hatena.ne.jp/ku-ma-me/20110526/p1
> ■ コードカバレッジ 100 % の難しさ
> マイクロソフトの面接試験とかいう噂の問題。のバリエーション。
>
> 水槽に 100 匹の魚がいます。98 % はグッピーです。
> では水槽にいる魚の 99 % をグッピーにするには、何匹のグッピーを水槽に足せばいいでしょう?
> 知らない人は一瞬だけ考えてみてください。
>
>
>
>
>
> 答えは「100 匹」です。直感より多いですよね?
>
> これは、コードカバレッジ 100 % の難しさに似ています。グッピーがテストされた行で、
> パーセントがその割合 (カバレッジ) だと考えてください。カバレッジが 98 % のプロジェクトがあれば、99 % にするにはおよそ倍の労力が必要なわけです。
>
> 自分でテストを書かない人は、したり顔で「C0 カバレッジは 100 % で当然 (キリッ)」などと
> 言うのですが、世の中そんなに甘くないんですよね。
0379デフォルトの名無しさん
2015/12/21(月) 07:24:23.17ID:wKrNpYiOこれぐらい常識だろう?
0380デフォルトの名無しさん
2015/12/21(月) 07:41:17.41ID:wZBXbgJl0381デフォルトの名無しさん
2015/12/21(月) 08:30:07.58ID:dc09zofZメソッドがあるかないかで動的に条件分岐するところのテストなんてやりたくない。
0382デフォルトの名無しさん
2015/12/21(月) 08:36:09.75ID:dc09zofZ型エラーの「発生」をその時に検知できればいい、
というスタンスの違いってことか。なら理解できる。
0383デフォルトの名無しさん
2015/12/21(月) 09:01:27.79ID:7dJZ8TPEメソッドがみつからない問題はC0カバレッジ100%で解決できるよ。
実際にはメソッドを叩いてる箇所のみが問題だから、厳密にはC0カバレッジ100%いかなくても網羅できるよ。
そんなことも知らずにテスト手法を叩いてたの?ばか?
0384デフォルトの名無しさん
2015/12/21(月) 09:03:29.84ID:7dJZ8TPE正確には、コンパイラによる静的型検査では「事前に」検知できないよ。
型検査という一種の証明手続きの「実行」によってしか検知できない。
にもかかわらずバカな静的型厨は「実行前」「実行前」とバカのように連呼する。
バカだから仕方ないけど、バカ丸出し。
0385デフォルトの名無しさん
2015/12/21(月) 09:08:42.38ID:G+qBG4+kゴキブリ韓国(ゴキ韓) 日本は国交断絶せよ
民主主義は無理 世界一民度低い国
http://goo.gl/cchGqh
0386デフォルトの名無しさん
2015/12/21(月) 09:10:23.98ID:dc09zofZ>型検査という一種の証明手続きの「実行」
それは一般的に言うところの「コンパイル」もしくは「リンク」に相当するもの?
0387デフォルトの名無しさん
2015/12/21(月) 09:22:48.80ID:+DYxsHCL次にそのオブジェクトを使おうとするとき、それが何か忘れてるから、そのオブジェクトがどういうメソッドを持っているかなどの
チェックをするから絶対間違えることはない。すなわち動的型付けが悪いという批判の全ては実は
手動静的型付けという名の静的型付けが悪いということだったんだね。
0388デフォルトの名無しさん
2015/12/21(月) 09:26:23.10ID:K9YQZ40/>単体テストでテストできなかった部分も静的解析でテストできる。
>鬼に金棒
正しいこと言ってるけれど、こいつは絶対テスト書いてないと思わせるところが凄いw
0389デフォルトの名無しさん
2015/12/21(月) 10:04:08.74ID:XjOZdx5Gその程度の違い
javascriptでブラウザのコンソールで補完使いながら書いてると実感する
あんまり触れられてないけど、スクリプトと比べて静的に型を解決してコンパイルする言語のほうが速度面で圧倒有利というのもでかいと思う
0390デフォルトの名無しさん
2015/12/21(月) 10:29:34.55ID:7dJZ8TPEポエムはお花畑板でどうぞ。
0391uy ◆Qawu9.2l1E
2015/12/21(月) 10:36:36.12ID:vg4j58Ti0392デフォルトの名無しさん
2015/12/21(月) 10:42:30.54ID:atu8DMrc静的型付けでコンパイル通っても「型に関する」バグも有り得るって言われてるの分かってる?
馬鹿だから分かってないんだろうなぁ
0393デフォルトの名無しさん
2015/12/21(月) 10:51:13.05ID:x6st9rMu最近の動的型言語がどんどん静的型の型チェックの機能を取り入れているのは
どう考えているんだろうね
メリットがないなら導入する意味ないよね
でもどんどん導入されていっているよね
あのRubyですら3.0で静的型を導入したいと言っているよね
この事実をどうするの?
0394デフォルトの名無しさん
2015/12/21(月) 10:52:41.41ID:+DYxsHCL0395デフォルトの名無しさん
2015/12/21(月) 11:05:22.17ID:x6st9rMu動的型言語の型システムしょぼー
>Python 3 の型アノテーション構文の組み合わせが Python における型付けの標準になると宣言されました。
>正直なところ、多くの理由でこれはまったく良い決断ではないと私は考えています。
>その最大の理由は Python は優れた型システムをまさに持っていないことに苦しんでいるからです。
>静的型付けが意味をなすには、型システムが良いものである必要があります。
こういったショボい使いものにならない静的型システムは
なまじ有るだけ使わないと行儀が悪いような気がするが
使いまくるとジェネリックも何もないので汎用性が落ちてCレベルのコーディングになって苦しい
使えば使うほどそういう矛盾が浮き彫りになって、もやもやしてくるだろう
この型システムしょべーって
なまじ有るから使わないと行儀が悪いような気がするってのもポイントだな
プログラムを書いてる本人が気持ち悪くなってきて、動的型言語宗教から改心する
きっかけになるのであれば、中途半端な静的型を導入することにも意味があるっちゃ意味がある
0396デフォルトの名無しさん
2015/12/21(月) 11:08:23.42ID:x6st9rMuhttp://hrnabi.com/2015/05/12/7035/
>一方、最近出てきた言語であるScalaやDart、Goといったプログラミング言語は静的型付け言語に分類される。
>そして、Rubyとは色々な面で似た言語と言えるPythonでアノテーションを付ける文法の導入が検討されているなど、
>動的言語でも静的型付けの良さを取り入れる動きがあるという。
http://gihyo.jp/news/report/01/rubykaigi2014/0002
>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>使い方をされながらも静的な型を持っています。
>このことについて,まつもとさんは「悔しいからRubyに静的な型を導入してみようか」
ほらよ
0397デフォルトの名無しさん
2015/12/21(月) 11:09:20.16ID:wV5Rx1o6ないよ。マヌケ。
なぜなら、コンパイラによりタイプセーフを保証されているから。
まず、例を出せよ??
静的でもリフレクションとか動的機能使えるからそれ使った時だよね。
でもそれは、動的のバグだよね。
0398デフォルトの名無しさん
2015/12/21(月) 11:10:39.25ID:+DYxsHCL0399デフォルトの名無しさん
2015/12/21(月) 11:10:46.95ID:atu8DMrcpythonの型は動的型の中では出来損ないの部類だが、そいつにはジェネリックくらいある
無知が批判するとポイントがボヤけるからやめれ
https://docs.python.org/3/library/typing.html
0400デフォルトの名無しさん
2015/12/21(月) 11:11:54.59ID:atu8DMrc>>360
0401デフォルトの名無しさん
2015/12/21(月) 11:14:11.40ID:x6st9rMu一番手間のかかる部分だ
今は最低でも型推論とジェネリックが当たり前で、これからもっと発展していくかもしれない
タイプセーフでありながら柔軟性も持たせ、記述量も減らす方向へね
安全性と柔軟性を両立させるという、ある種矛盾しているかのような命題へのチャレンジだ
動的型言語はそれを放棄してしまっているのだから、全く面白みがないね
0402デフォルトの名無しさん
2015/12/21(月) 11:27:11.60ID:+DYxsHCL0403デフォルトの名無しさん
2015/12/21(月) 11:27:25.95ID:wV5Rx1o6ごめんjavaはクソだから使ってねーんだわ。
やめてくれよ、そんな欠陥言語持ち出してくるの。
c#以外の言語は静的と呼ぶほど完成度高くねーんだわ。
0404デフォルトの名無しさん
2015/12/21(月) 11:30:16.62ID:dc09zofZ型による分岐はそれが直接目的に適うならばあり。
0405デフォルトの名無しさん
2015/12/21(月) 11:32:36.19ID:dc09zofZ0406デフォルトの名無しさん
2015/12/21(月) 14:09:45.86ID:7dJZ8TPE>>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>>使い方をされながらも
Scalaをスクリプト言語に分類するような記事を信じるバカですか?
0407uy ◆Qawu9.2l1E
2015/12/21(月) 14:29:58.27ID:2nRQSJGHって、あれ10年くらい前から言ってる事が二転三転してる戯言だからスルーしたほうが良いよ
浅い信者はMatzの寝言と本音が見極められないようで
0408uy ◆Qawu9.2l1E
2015/12/21(月) 14:41:43.33ID:E4VHpoC/動的言語が勝つなら、世界が「動的言語で作られたもので満足」するように作り替えられていく
例えば電子機器のすべてを
プログラムにバグがあろうと後から無線で修正可能なようにすればいいんだよ
動的言語は静的言語以上にバグが入ることは確実だ
しかし「バグっても問題にならない状況作り」が出来るのであればそれで良い
0409デフォルトの名無しさん
2015/12/21(月) 16:46:29.69ID:FpThLLao> javaはクソだから
具体的に
0410デフォルトの名無しさん
2015/12/21(月) 16:56:57.21ID:+DYxsHCL0411デフォルトの名無しさん
2015/12/21(月) 17:20:52.96ID:XjOZdx5G静的型言語とかではなく、互換性重視から生まれた言語の欠陥
0412デフォルトの名無しさん
2015/12/21(月) 17:33:12.08ID:atu8DMrc一緒や!c#も!
http://ideone.com/yFcW0Y
0413デフォルトの名無しさん
2015/12/21(月) 17:40:24.04ID:qIaAVv7y『プログラムは自分の身内で組んだもので完結する』前提なのな。
おれらの決めた内々の決まりを組む奴が徹底すれば問題は生じないはず!(キリッ)って…
オブジェクト指向はsmalltalkのむかしから
多くのコンピュータプログラムが相互の通信する未来ではそんなことはできないと看破して
オブジェクトが自分の属性を答える機能とかを基底クラスに組み込んでるってのに
偽オブジェクト指向たちは最初から間違ったところより始めてるせいで
いつまで経っても偽のオブジェクト指向から抜け出せない。
0414デフォルトの名無しさん
2015/12/21(月) 18:43:03.63ID:mofV3EhK> 『プログラムは自分の身内で組んだもので完結する』前提なのな。
そんな前提に立てるものを教えてほしいぐらいなんだが(笑)
他人が使るものを使うからこそ、決められたインターフェースを守り
それらを動的に書き換えないようにするんだよ。
勝手にクラスとか書き換えたら動作保証ないからな。
バージョンアップしたらすぐに動かなくなる。
自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから
動的である必要はない。
0415デフォルトの名無しさん
2015/12/21(月) 19:24:39.60ID:qIaAVv7yメンテ地獄は楽しいか。
つべがflvやめてhtml5にしたり通信先が小変更する度に
システムフル再コンパイルしてそうだなおまえら。
0416デフォルトの名無しさん
2015/12/21(月) 19:25:06.67ID:dWRO7mc6本スレすら過疎ってるオワコン言語やぞ
0417デフォルトの名無しさん
2015/12/21(月) 19:45:02.82ID:dc09zofZ0418デフォルトの名無しさん
2015/12/21(月) 19:51:20.56ID:wV5Rx1o6あー共編性、反変性使わない人かー。
例えば、家の玄関に土足で上がらないでくださいって注意書きしないのはなぜだと思う?
そんなことする馬鹿な人に会ったことないからだよ。
0419デフォルトの名無しさん
2015/12/21(月) 19:55:46.35ID:B3EXamn3JavaやC#じゃ法螺扱いされる「コンパイルが通ればランタイムで型に関するエラーは起きない」世界が待ってるぞ。
0420デフォルトの名無しさん
2015/12/21(月) 20:28:52.54ID:7dJZ8TPEというとメソッドが見つからないとか言う厨房がいるが、
それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと
どう違うのだ?
ゼロ除算して例外が発生するのとどう違うのだ?
結局、静的型言語ユーザがいう「ランタイムで型に関するエラーは起きない」というのはマッチポンプでしかない。
0421デフォルトの名無しさん
2015/12/21(月) 20:41:15.90ID:mofV3EhK> つべがflvやめてhtml5にしたり通信先が小変更する度に
> システムフル再コンパイルしてそうだなおまえら。
分割コンパイルって知ってる?
依存関係を小さく保つから、影響があるところも局所化され
実際にはシステムフル再コンパイルではなく、依存しているところのみ
再コンパイルが必要になるだけ。
そういったことも知らずに叩くんだよなぁ(笑)
0422デフォルトの名無しさん
2015/12/21(月) 20:42:13.79ID:etCoLxJ5なんか静的おじさんはintとかstrとかそういうプログラム言語規約上の取り決めぐらいしか想像できてないみたいだけれども
実際はデータ構造そのもの、構造体やクラスが受け渡されてくるのだからその種類の数だけ型がある。
pictureというクラスの型はBMPだから!と決め打ちして、jpgが追加されたら俺にもjpgの展開エンジン教えろ
pngが追加されたら俺にもpngの展開エンジン教えろと言って毎回自分のプログラムを再コンパイルして備えるつもりか。
そうしないと自分が食えなくてバグ吐いて止まるから。
そういうくだらない車輪の再発明を防ぐためにオブジェクト指向は生まれてpictureオブジェクトに
展開エンジンが含まれてるから、受け手は考えなくていい。そして、すべての型はオブジェクトだから
"世界のすべてオブジェクトの名前と内容を予め知るのは不可能"なので動的に処理するしかない。
動的に処理することで作ったものをいちいち毎度メンテして弄り回すプログラマーのメンテ無限地獄を回避してるっつーのに
「おれらのやり方はあらかじめ世界のすべてを知ってからその決まりでやってるから問題は生じない!」とかバカか。
なんでネットワーク関連で動的が主流で、ちんまりした閉システムでしか静的が流行らないのかちゃんと理解しろ、ジジイ。
0423デフォルトの名無しさん
2015/12/21(月) 20:46:53.08ID:mofV3EhK> それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと
> どう違うのだ?
図にすればわかる? わかりやすく簡略化して書くけど
| 型の問題 | 空リストの問題 | ゼロ除算の問題 |
静的 | なし | あり | あり |
動的 | あり | あり | あり |
問題が多いのはどっち? 答え 動的
重要なのは、問題がどれだけ "多いか" だからさ。
静的・動的、両方に発生する問題を持ってきても、
動的だけにある問題がある以上、動的のほうが問題が多いわけで
0424デフォルトの名無しさん
2015/12/21(月) 20:49:47.79ID:mofV3EhK> そもそも"型"ってなにかね?
インターフェースの取り決めだね。
巨大なシステムは複雑にならざるをえない。
だから、公開している部分と、公開してない部分をしっかりわけ、
公開している部分は仕様をきっちり明確にする。
その仕様がインターフェースであり型なんだ。
LinuxもWindowsも仮想マシンもコンテナも
大きなシステムは静的言語を使って作られている。
0425デフォルトの名無しさん
2015/12/21(月) 20:52:58.26ID:mofV3EhK> 毎回自分のプログラムを再コンパイルして備えるつもりか。
だから毎回全部を再コンパイルしてないってばw
Linuxの動的ライブラリの仕組みとかドライバの読み込みとか
Apacheのモジュールの仕組みとかしらないの?w
インターフェース(≒型)をきっちり決め、そのインターフェースに合わせることで
再コンパイルすること無く組み込み可能にしている。
こういったことを知らないんだもんなぁ(笑)
0426デフォルトの名無しさん
2015/12/21(月) 21:01:51.63ID:7dJZ8TPEだーかーらー、動的型付言語に型の問題なんてないんだって。
コンパイル時型検査なんてしなくても型安全を確保できているから。
型エラーではないものを勝手に静的型では型エラーとして扱われるからといって
勝手に「型の問題」扱いしないでもらえるかなあ?
0427デフォルトの名無しさん
2015/12/21(月) 21:04:46.50ID:mofV3EhK静的型は型エラーであるもの、つまりアプリのバグ。
そのアプリのバグを静的型は実行すること無く検出できる。
それに対して動的型では、アプリのバグが見つからない。
アプリのバグが見つからないが型安全なんだから、
いいじゃないか。って言ってるわけだよね?
型安全=アプリのバグがない
ということではないよ?知ってる?
0428デフォルトの名無しさん
2015/12/21(月) 21:05:35.35ID:7dJZ8TPEそうだね、静的型情報をリンカに渡せば静的型でも必ずしも全てを再コンパイルする必要はない。
そもそも動的型ならば全く再コンパイルする必要ないんだがなw
そうやって動的型ならそもそも問題が存在すらしていないものを
静的型では問題になるからといって「静的型では解決できたスゲー」しないでくれる?
0429デフォルトの名無しさん
2015/12/21(月) 21:07:13.91ID:mofV3EhK> そもそも動的型ならば全く再コンパイルする必要ないんだがなw
全く再コンパイルする必要ない!?それは大変だ。
インターフェースに不整合があったとしても、
その不整合を検出できないじゃないかw
0430デフォルトの名無しさん
2015/12/21(月) 21:07:55.23ID:7dJZ8TPEで、「動的型ではアプリのバグを見つけることができない」という珍説はどこから湧いて出てきたのかね?
静的型付言語と同じ方法で見つけるわけではないというだけの話を、
どうして「見つけることができない」なんて捏造をするんだね?
0431デフォルトの名無しさん
2015/12/21(月) 21:08:48.82ID:7dJZ8TPE静的型付と違って、インターフェースが必ず適合するから問題ないんだよ。ぷ
0432デフォルトの名無しさん
2015/12/21(月) 21:09:52.92ID:mofV3EhK意味不明。
インターフェース不整合があってエラーで例外を吐いてシステムが
正常に動かなくても型安全だから問題がない。
そう言ってるわけだよね?
そう、ユーザーにさんに言ってるわけだよね?
Q. ある機能を実行すると、エラーで例外を吐いて落ちます。機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
うははははw
0433デフォルトの名無しさん
2015/12/21(月) 21:12:34.78ID:GVmX1WAG0434デフォルトの名無しさん
2015/12/21(月) 21:12:49.27ID:7dJZ8TPEだーかーらー、
動的型付言語の世界ではインターフェイスに不整合が発生しないの。
引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、
必ず同じ形式でメッセージとしてパッケージングされるの。
静的型システムについては多少知っているようだけど、
動的型付言語の仕組みはまるでわかっていないようだね。
0435デフォルトの名無しさん
2015/12/21(月) 21:13:39.02ID:7dJZ8TPE0436デフォルトの名無しさん
2015/12/21(月) 21:15:10.99ID:mofV3EhK> 引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、
> 必ず同じ形式でメッセージとしてパッケージングされるの。
その後は? 重要なのはパッケージングされた後でしょう?
例外吐いて落ちるんでしたねw
うははははw
0437デフォルトの名無しさん
2015/12/21(月) 21:15:36.10ID:7dJZ8TPEまさにバカ製造機だな。
0438デフォルトの名無しさん
2015/12/21(月) 21:16:30.67ID:mofV3EhKA. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
これを否定しないのは、否定出来ないからだろうなw
0439デフォルトの名無しさん
2015/12/21(月) 21:16:44.57ID:B3EXamn3実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
原理的に起こせない、っていう意味で言ったんだけど、分かる?
やたらと例外とエラーを別物にしたいみたいだけど、そんなはっきり区別して扱っている界隈ってあるの?
全然メジャーな使い分けじゃないからちょっと説明してよ。
「例外を投げる動作は言語仕様通りだから、wikipediaでいうところの型安全」っていうは、
関数型言語に言及している中での型安全より遥かに低いレベルの安全性であることは分かってる?
全体的に卑怯者だよ。「ボク間違った言葉遣いしてないもん!」以外全部間違っているよ。
0440デフォルトの名無しさん
2015/12/21(月) 21:17:03.21ID:7dJZ8TPE落ちないけど?
どうして例外が投げられると落ちると思い込んだの?
たとえ例外ハンドラが設定されていなくてもアプリケーションが異常終了しない言語/環境は普通に存在するよ?
自分の無知を動的型付のせいにしないでくれる?
0441デフォルトの名無しさん
2015/12/21(月) 21:17:58.88ID:7dJZ8TPEぜーんぶ君の無知からくる妄想。正直言って、出てくる感想は「バカ」。
0442デフォルトの名無しさん
2015/12/21(月) 21:18:59.25ID:mofV3EhKなるほど!
じゃあ訂正するよ
Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
うあははははwww
0443デフォルトの名無しさん
2015/12/21(月) 21:20:42.70ID:mofV3EhK落ちなければ、不具合ではないっていう考え方なわけさ。
動的のアプリの質が悪い理由がわかるだろう。
こんな感じでいっつもいきあたりばったり
無計画に修正してるんだよ。
0444デフォルトの名無しさん
2015/12/21(月) 21:21:32.67ID:7dJZ8TPE>実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
>原理的に起こせない、っていう意味で言ったんだけど、分かる?
実行時型エラーという概念が存在しない言語(動的型付言語)では、原理的に実行時型エラーなんて起こせませんが、何か?
0445デフォルトの名無しさん
2015/12/21(月) 21:23:57.49ID:7dJZ8TPE>Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。
>A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
はい、これも間違い。
メソッドが見つからなくても例外を抑制することもできるし、デフォルト動作を変更することもできる。
当然、「画面にエラーを出す」必要もない。
実行を継続して、機能を利用することができます。
残念でしたw
0446デフォルトの名無しさん
2015/12/21(月) 21:24:24.57ID:7dJZ8TPEというわけで、やっぱり君は自分の無知を動的型付言語のせいにしているだけでした。
0447デフォルトの名無しさん
2015/12/21(月) 21:25:33.03ID:7dJZ8TPEというわけで、静的型付言語の世界観で勝手に動的型付言語を誤解して、
間違いだらけの妄想を振りまいているのは君でした。
お・ば・か・さ・ん
0448デフォルトの名無しさん
2015/12/21(月) 21:27:09.59ID:mofV3EhKじゃあこういうことか
Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。
A. バージョンアップして修正しました。
画面にエラーを出さないようにエラーを握りつぶしました。
該当の機能は正しく動きませんが、
他の機能が動いているんだからいいじゃないか?
うははははwwww
0449デフォルトの名無しさん
2015/12/21(月) 21:27:32.36ID:7dJZ8TPE静的型付しか知らないばっかりに動的型付を否定しなければ静的型付のメリットを説明できない。
これって静的型付言語ユーザとしても恥ずかしいことだと思うよ。
0450デフォルトの名無しさん
2015/12/21(月) 21:28:05.77ID:7dJZ8TPEもちろん、それも大間違い。自分の無知をさらすのって、そんなに楽しいの?
0451デフォルトの名無しさん
2015/12/21(月) 21:28:51.88ID:mofV3EhK動的型付しか知らないばっかりに静的型付を否定しなければ動的型付のメリットを説明できない。
これって動的型付言語ユーザとしても恥ずかしいことだと思うよ。
たしかに! 動的型付けのメリットは出てない!
0452デフォルトの名無しさん
2015/12/21(月) 21:29:13.17ID:wZBXbgJlしかも関係ないところぶったたいて回収される、の繰り返しじゃん。
こんなこといくらやっても余計に惨めになるだけだと思うが。
0453デフォルトの名無しさん
2015/12/21(月) 21:29:18.17ID:mofV3EhKおや?手詰まりですかw
今度は何もいいませんでしたねwww
0454デフォルトの名無しさん
2015/12/21(月) 21:30:09.24ID:+DYxsHCL0455デフォルトの名無しさん
2015/12/21(月) 21:32:14.81ID:mofV3EhKなんもずらしてないよ?
より確実に堅牢なシステムを作るには静的がいいと言ってる。
静的型は、単体テスト+型チェックの二重のチェックの
仕組みによりより堅牢なシステムが作れる。
動的型は 単体テストしか 出来ない。
型チェックは機械的で矛盾がないチェックシステムだから
低いコストで大きなメリットを得られる。
動的だと、インターフェースに不整合でも、例外が出て
それを捉えて画面に表示したりしなかったりするから
システムが動かなくてもいいじゃないかって言ってるだろう?w
0456デフォルトの名無しさん
2015/12/21(月) 21:41:33.25ID:w/TLv4VO>列車とトラックの比較にしか思えない
まぁ、そうだね。
トラックが自由に移動できるのを利点として使われてるとこを
「トラックは事故を起こす!レールを走ってないからだ!」
「えー?なにそれ。つか、列車は自由に配送できないじゃん」
「列車も駅から配送するシステムがあるからできる!」
「え…それちがくね?」みたいなやりとりをずっとw
0457デフォルトの名無しさん
2015/12/21(月) 21:44:22.27ID:mofV3EhKあぁ、でも静的で作れないものはなにもないよ。
目的はシステムを作ることであって
動的にクラスを変えたりすることじゃないんだ。
0458デフォルトの名無しさん
2015/12/21(月) 21:48:12.37ID:2gy+Cq/90459デフォルトの名無しさん
2015/12/21(月) 21:48:24.54ID:wZBXbgJlまあいいでしょう。
で、それがオブジェクト指向か関数型かという議論にどう関係あるんですか?
0460デフォルトの名無しさん
2015/12/21(月) 21:54:01.30ID:VzjtfJRf>動的のアプリの質が悪い理由がわかるだろう。
どうやらこの人はemacsよりも拡張性が高く安定したエディタを
静的言語でいとも簡単に実装してしまうスーパーハカーらしい ()
0461デフォルトの名無しさん
2015/12/21(月) 21:54:11.30ID:+DYxsHCL0462デフォルトの名無しさん
2015/12/21(月) 22:18:22.42ID:mofV3EhK> どうやらこの人はemacsよりも拡張性が高く安定したエディタを
emacsはC言語だったね。
http://git.savannah.gnu.org/cgit/emacs.git/tree/lib?h=emacs-25
0463デフォルトの名無しさん
2015/12/21(月) 22:19:39.20ID:XjOZdx5G0464デフォルトの名無しさん
2015/12/21(月) 22:23:11.82ID:mofV3EhKそうそう。できることは変わらない。
それをするためのコストが違う。
静的であれば、単体テスト+静的解析があるから
少ないコストで品質の高いアプリが作れる
0465デフォルトの名無しさん
2015/12/21(月) 22:37:06.08ID:K9YQZ40/0466デフォルトの名無しさん
2015/12/21(月) 23:20:00.93ID:pll+pxvz動的型付けな言語は大抵の場合、インタープリタ型の言語なんだから、テストしたい部分だけ、テスト出来るんだしなんの問題もないよ
0467デフォルトの名無しさん
2015/12/21(月) 23:38:13.37ID:mofV3EhKだからコストの問題。
静的解析にコストはほとんどかからないから
静的言語の単体テスト+静的解析はコストが同じで
単体テストだけの動的言語よりも高い品質になる。
0468デフォルトの名無しさん
2015/12/21(月) 23:55:15.47ID:w/TLv4VO0469デフォルトの名無しさん
2015/12/21(月) 23:56:05.45ID:GVmX1WAG0470デフォルトの名無しさん
2015/12/22(火) 00:33:15.91ID:EKiu80aUどんなにテストしても、バグが存在しない証明にはならない
単体テストと静的解析を行っているから、バグが少ない気がしているだけ
0471デフォルトの名無しさん
2015/12/22(火) 00:38:03.90ID:3ywPhKdj0472デフォルトの名無しさん
2015/12/22(火) 01:28:00.98ID:cWRmjQVfSmalltalkでは単体テストの作成込みで数時間で終わる
それくらい生産性に差がある事を忘れちゃいけないよ
Javaドカタが時間に追われてマトモにテストしてないコードと
Smalltalkerが悠々とテストしたコードでは
後者の方が品質高いよ
0473デフォルトの名無しさん
2015/12/22(火) 01:30:05.05ID:+ulsEic8トラックは道を気ままに走るから知らないとこ走って事故る」的な
鉄ちゃんみたいなキチ主張だろう。
鉄道以外じゃルート計算できないと思い込んでる。
0474デフォルトの名無しさん
2015/12/22(火) 01:30:46.89ID:nHx61HkpSmalltalkでは単体テストの作成込みで数時間で終わる
証拠はなないが、これはただしい。
だからSmalltalkの勝ち!
0475デフォルトの名無しさん
2015/12/22(火) 01:31:47.61ID:+ulsEic8なりすましてムリすんな。
おまえは昨日20回も顔真っ赤レスしたばっかなんだからw
0476デフォルトの名無しさん
2015/12/22(火) 01:32:46.10ID:nHx61Hkp鉄オタかよw ほんと鉄道に例えるのが好きだな。
鉄道使えば、より安全に高速に目的を達成できるって話だろう。
目的は、目的地につくことであって、
いろんな道を通ることじゃねーよw
0477デフォルトの名無しさん
2015/12/22(火) 01:35:42.53ID:bkvH7oDt0478デフォルトの名無しさん
2015/12/22(火) 01:35:42.57ID:nHx61Hkpこれを静的解析onRailsという。
0479デフォルトの名無しさん
2015/12/22(火) 05:30:44.16ID:Cv+dIUET0480デフォルトの名無しさん
2015/12/22(火) 08:50:57.91ID:h3Yx9vGxそこまでバグ発見に役立つケースなんてめったにない。
しかもいうほど動的言語での静的解析も手間ってほどではない。
少なくともコンパイル言語での開発に比べればよっぽど低コストだな。
コスト意識が致命的におかしい奴が居るな。
0481デフォルトの名無しさん
2015/12/22(火) 09:04:13.39ID:fvYXJdnq0482デフォルトの名無しさん
2015/12/22(火) 09:04:28.25ID:t0KrzUg4そんなだからドカタは新しいものやサービスが作れないんだよ
既に多くの人が通ってレールまで敷かれた場所しか行けないんだから
0483デフォルトの名無しさん
2015/12/22(火) 09:05:44.03ID:fvYXJdnq0484デフォルトの名無しさん
2015/12/22(火) 09:06:00.38ID:71TpXAZk0485デフォルトの名無しさん
2015/12/22(火) 10:23:52.98ID:nHx61Hkp> そこまでバグ発見に役立つケースなんてめったにない。
それはバグとして換算してないからだろ。
どうせエラーで落ちて修正したのをバグと認識してないんだろ?
静的解析は普段の開発でしっかり役に立ってる。
どう考えても落ちるコードが、いちいち実行しなくてもわかるからな。
実行しなくても修正できる。この時点で修正のコストが下がってる。
もちろんそれだけでないのは言うまでもない。
インターフェースに不整合をすぐに修正できるし、
特定の関数に依存している部分をすぐに調べることもできる。
動的言語だとgrepで調べるしかないからな。同じ名前だと
全く違うものでもヒット、冗長な名前にしないといけない。
こういう普段の開発でもコストが下がる。
コードが成長するにつれて、最初の設計では無理が出てきても、
それを自然な形に直すことができる。
動的だと変化が怖くて、大胆な修正ができない。
どんどんコードは古くなっていき、すぐに手がつけられないようになる。
0486デフォルトの名無しさん
2015/12/22(火) 10:28:44.26ID:Hf0cXCbq0487デフォルトの名無しさん
2015/12/22(火) 10:31:06.94ID:lJMFjOKo0488デフォルトの名無しさん
2015/12/22(火) 12:30:06.51ID:fvYXJdnq>動的だと変化が怖くて、大胆な修正ができない。
ここが笑うポイントですか?
すごいですね、あなたプロのコメディアンになったらきっと売れますよ。
0489デフォルトの名無しさん
2015/12/22(火) 12:43:42.29ID:bkvH7oDt規模が大きくなったり速度重視なら静的型のコンパイル言語
動的型のフットワークの軽さとかもいいし、静的型の実行速度と優れた補完やエラー表示も便利
結局適材適所
0490デフォルトの名無しさん
2015/12/22(火) 12:58:50.30ID:lJMFjOKo何も間違ってないよ?
動的は、実行時に変化することは得意でも
ソースコードを修正することは不得意。
少しの修正があちこちに影響して、それがわかりづらいから
修正が怖くなる。
0491デフォルトの名無しさん
2015/12/22(火) 13:26:08.65ID:fVb6IQscわからないんだろ
0492デフォルトの名無しさん
2015/12/22(火) 13:56:00.22ID:/QaJe51w使いモンになるOSを書いたことがあるような人いるのかな?
5000万行〜8000万行規模らしいが
これはお前らにとって大きいの?それとも小さいの?w
0493デフォルトの名無しさん
2015/12/22(火) 14:30:13.32ID:lJMFjOKo少しは計算しろよ
5000万行、仮に1日に1万行(1000行/時の10時間労働)
書いたとして5000日(約13.7年)だ
0494デフォルトの名無しさん
2015/12/22(火) 14:38:13.03ID:cB2HLJLUC++で作ってるWindowsみりゃどっちが
開発苦戦してるかすぐわかりそーなもんだが
0495デフォルトの名無しさん
2015/12/22(火) 14:41:56.77ID:lJMFjOKoあたまが悪いと言わざるをえないね。
0496デフォルトの名無しさん
2015/12/22(火) 15:04:38.37ID:npw19McH何行書いたことある奴が何行書いたことあるやつに言ってるんだろうかw
1000が100に言ってるんだろうか?
10000が1000に言ってるんだろうか?
十万行ほど書いた奴はもう「規模」とかって言う言い方しない気がする
わざわざ規模で話をしようとしない気がする
0497デフォルトの名無しさん
2015/12/22(火) 15:09:30.07ID:cB2HLJLU基本的にこっちもMac/iOS/Objective-C触って7~8年てとこだけど
下のドキュメントの最初の10ページみたいな
90年にこんな実装なんか提唱したら空論だと笑われたようなことを
25年前から仕込んでたNeXTが最終的に勝ってんだなぁと感心したし。
Objective-Cプログラミングの概念(日本語ドキュメント)
https://developer.apple.com/jp/documentation/CocoaEncyclopedia.pdf
あきらかにきみが棲んでる付け焼き刃の帝国の方が
効率が悪くてトータルコストがかかってる。
プログラマーに賽の河原で石を積む仕事を与え続けてるって点では
その効率の悪さで雇用の創出にはなってるとは思うけどね。
0498デフォルトの名無しさん
2015/12/22(火) 15:14:07.59ID:71TpXAZk0499デフォルトの名無しさん
2015/12/22(火) 16:41:01.82ID:VCjn0gZSサボる奴がいるから成り立つ生態系もある
0500デフォルトの名無しさん
2015/12/22(火) 16:47:52.67ID:bkvH7oDt開発言語よりも近代になってから互換性を完全放棄してもともと安定感の高いUNIXに強制移行したアドバンテージの方が大きいと思う
あと、動的型付けは遅いからOSの中核には向かないと思うけど
0501デフォルトの名無しさん
2015/12/22(火) 18:31:48.05ID:cB2HLJLUOSXそのものがMachとかマイクロカーネル
(サービスを適宜呼び出してロードすることでOSの巨大化を防ぐ)UNIXの流れだから
コア部はCで各サービス呼び出しはObjective-Cのメッセージじゃないかな。
https://ja.m.wikipedia.org/wiki/マイクロカーネル
https://ja.m.wikipedia.org/wiki/XNU
0502uy ◆Qawu9.2l1E
2015/12/22(火) 18:48:58.47ID:T3Xhdrtc何言ってるか分からん奴が常にいてダメだわこのスレ
0503デフォルトの名無しさん
2015/12/22(火) 18:54:47.38ID:fvYXJdnqObjective-Cで実装されたCocoaのUIの質を比較すれば
静的型付言語でUI環境を構築することは愚策中の愚策だな。
素人目には静的型付のほうが大規模なソースを変更しやすく見えるのだろうが
実際には動的型付のほうが大規模で質の高いソースを維持できるという実例。
0504デフォルトの名無しさん
2015/12/22(火) 21:49:46.57ID:lJMFjOKo0505デフォルトの名無しさん
2015/12/22(火) 21:51:48.35ID:h2+OmYvg0506デフォルトの名無しさん
2015/12/22(火) 22:28:45.56ID:PMk1cnKT0507デフォルトの名無しさん
2015/12/22(火) 22:43:09.44ID:lJMFjOKoインターネットを実現している技術はほとんど静的ですね。
OSはもとより、基本のTCP/IPスタック。Apacheやnginxなどのウェブサーバー
sendmail、postfixなどのメールサーバー、クラウドに使われる仮想マシン技術
動画・音楽配信を支えるエンコード技術、きりがないぐらいですね。
0508デフォルトの名無しさん
2015/12/22(火) 23:03:34.39ID:7zsabTQHお気に入りの言語を擁護しつつC#をdisるスレ
0509デフォルトの名無しさん
2015/12/22(火) 23:16:12.47ID:c/oP9Kt2C言語で書きなおされたんだったっけか?
0510デフォルトの名無しさん
2015/12/22(火) 23:32:12.42ID:cWRmjQVfC言語が神すぎるからね
仕方ないね
0511デフォルトの名無しさん
2015/12/22(火) 23:33:08.49ID:h3Yx9vGx数値計算なんかで配列にまっすぐアクセスする場合は明らかに型があった方が有利。
そりゃ開発効率考えたら動的のがいいだろうけれど。
0512デフォルトの名無しさん
2015/12/22(火) 23:44:58.21ID:lJMFjOKo普通は、動的にクラスを作ったり、しないだろう?
0514デフォルトの名無しさん
2015/12/22(火) 23:59:05.73ID:h2+OmYvgまだ、自分の身内以外が外の世界で新しいクラスを作って送ってくることがある
現実世界が理解できないんだな。
0515デフォルトの名無しさん
2015/12/23(水) 00:12:46.47ID:B7iIvlVaそれをライブラリっていうんですよ?
分割コンパイルも、サードパーティライブラリも
ずっと前からの常識です。
なんでこんなことを指摘してドヤ顔してるんだろうか?
0516デフォルトの名無しさん
2015/12/23(水) 00:15:50.43ID:IHjjwtj5大体はDLLとかだから結局静的なんだよな
0517デフォルトの名無しさん
2015/12/23(水) 00:55:02.76ID:+daiOjD/なんで静的じゃ作れないと思ってるんだろうか?
圧倒的に無知。
0518デフォルトの名無しさん
2015/12/23(水) 01:02:39.62ID:oeWwCbV9列車が時代遅れでいらないっていいかげんわかりましょうよ?w
0519デフォルトの名無しさん
2015/12/23(水) 01:09:24.49ID:+daiOjD/時代遅れにならないようにしようよね。
http://gihyo.jp/news/report/01/rubykaigi2014/0002
> Ruby 3のアイデア
>
> まつもとさんは,Ruby 3へ向けて実装したいアイデアとして,次の3つを挙げました。
>
> Concurrency
> JIT
> 静的型付け
>
> このうち今回の講演で取り上げたのは静的型付けについてでした。
0520デフォルトの名無しさん
2015/12/23(水) 01:11:06.80ID:+daiOjD/> 静的型付けのメリット
>
> 静的型付けはRuby以外の言語でも注目されています。では,静的型付けを
> 導入することでどのようなメリットがあるのでしょうか。
> よく言われている静的型付けのメリットについて,
> まつもとさんは「パフォーマンス」「コンパイル時のチェック」
> 「ドキュメンテーション」の3つを挙げました。
まつもとさんわかってるw
0521デフォルトの名無しさん
2015/12/23(水) 01:32:02.82ID:4bnLgUt/0522デフォルトの名無しさん
2015/12/23(水) 04:51:55.89ID:9nXG813nどれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。
色々な言語が「強い静的型付けのシステム記述言語」として作られたが
ろくに使われずに消えていったわけだが。
試しに、強い静的型付きの言語で実装されたOSや
ネットワーク関連の重要なアプリケーションの例を出してみな?
0523デフォルトの名無しさん
2015/12/23(水) 05:30:34.30ID:o1Ym9CfH0524デフォルトの名無しさん
2015/12/23(水) 05:33:17.13ID:+daiOjD/> ネットワーク関連の重要なアプリケーションの例を出してみな?
LinuxやUnix
0525デフォルトの名無しさん
2015/12/23(水) 05:55:19.92ID:+daiOjD/> どれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。
ん?なんか盛大な勘違いをしているねw
弱い型付けは静的型付けのことを意味していて、
動的型付けのことじゃないよ。
弱くても型付けなんだから。
はい、一覧
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0%E8%A8%80%E8%AA%9E%E3%81%AE%E6%AF%94%E8%BC%83
0526デフォルトの名無しさん
2015/12/23(水) 05:57:16.98ID:+daiOjD/「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って
いうのなら、ぷぷぷぷぅって言うしかないけどw
0527デフォルトの名無しさん
2015/12/23(水) 07:29:58.35ID:0ZC/YhCbもしかして、Cは「強い静的型付け」の言語だと思ってるの?
これはまた…2ちゃんにしてもあまりにも無知すぎないか?
0528デフォルトの名無しさん
2015/12/23(水) 07:32:15.10ID:0ZC/YhCb>「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って
> いうのなら、ぷぷぷぷぅって言うしかないけどw
Hindley-Milner型推論の言語を推してる人達は
「C言語の安全でない弱い静的型付け」が大嫌いだよw
君はバカすぎるからひっこんでなさいw
0529デフォルトの名無しさん
2015/12/23(水) 07:37:31.86ID:+NQ/xqJl都合の悪いところは無視ですかw
>今のRubyが静的な型を持っていない理由
>
>ここまで,まつもとさんは静的な型を持つメリットを取り上げました。では,なぜ今のRubyは静的な型を持っていないのでしょうか。
>
>まつもとさんはRubyが静的な型を持っていない理由について,次の3つを挙げました。
>
>ダックタイピングとの相性の悪さ
>使うかどうかを選択可能(Optional)にしなければいけない
>DRYの哲学に反する
0530デフォルトの名無しさん
2015/12/23(水) 07:54:14.96ID:+daiOjD/> Hindley-Milner型推論の言語を推してる人達は
だれそれ?w
そんな人はお前以外に居ません。
0531デフォルトの名無しさん
2015/12/23(水) 07:56:06.50ID:+daiOjD/「静的型付け」大好きですからねw
0532デフォルトの名無しさん
2015/12/23(水) 07:58:08.92ID:+NQ/xqJlストラウストラップが c++ でやりたかった事の一つが c の型をもっときっちりすることだったわけだが、
c の互換性に引っ張られて無理でしたっていう。
0533デフォルトの名無しさん
2015/12/23(水) 07:59:30.67ID:+daiOjD/なので、動的型付けは静的型付けに劣っているって
主張に一切影響を与えないがなw
どうも頭がおかしい奴がいる。
0534デフォルトの名無しさん
2015/12/23(水) 08:09:45.69ID:4flMvpuQ動的云々はもう泣いてんだからほっといたれ
0535デフォルトの名無しさん
2015/12/23(水) 08:23:44.09ID:0ZC/YhCbへー、じゃあ静的厨さんが言ってた
・実行時に型に関するエラーが発生しないことを保証できる
・型さえ合わせればモジュールを安全に結合できる
・型により間違いを検出できるから変更時にデグレしにくい
という静的型付けの利点は全て引っ込めるってことだね。
というか、今まで静的厨が言ってた「動的型の欠点」は
全て百倍になってCに跳ね返ってくるわけだがw
ほんとバカってバカだなあw
0536デフォルトの名無しさん
2015/12/23(水) 08:28:48.27ID:+daiOjD/○ 静的時に型に関する不整合があった時にエラーがわかるからバグを早く修正できる。
(例えば弱か型付けでのC言語などに当てはまる)
× 型さえ合わせればモジュールを安全に結合できる
○ 問題に関する問題が解決するから、より安全に結合できる。(問題の全てが解決するなんて言っていない)
(例えば弱か型付けでのC言語などに当てはまる)
× 型により間違いを検出できるから変更時にデグレしにくい
○ その通り。だが問題の全てが解決するなんて言っていない
(例えば弱か型付けでのC言語などに当てはまる)
静的型付けだと、単体テスト+型解析によって、
単体テストのみの動的型付けよりも、より安全になる
(完璧など無いから、より安全であることが重要)
何度もいいましたよね?
なんで勝手に解釈を変更するんですか?
0537デフォルトの名無しさん
2015/12/23(水) 08:31:44.33ID:0ZC/YhCbつまり前言撤回するわけねw
あんた、バカというよりキチガイの領域だよ?
0538デフォルトの名無しさん
2015/12/23(水) 08:32:10.02ID:eRscblyy0539デフォルトの名無しさん
2015/12/23(水) 08:32:39.88ID:+daiOjD/こっちは「比べてより安全。よりコストが低い。より信頼性が高い」って
話をしているのに、変ないちゃもんをつけてくるんだよな。
動的厨「静的言語は完璧っていいましたよね?(←言ってない) こういう場合完璧じゃないじゃないですか!」
動的厨「静的言語はバグ無いいましたよね?(←言ってない) こういう場合バグあるじゃないじゃないですか!」
動的厨「動的言語ではできないって言いました?(←言ってない) 動的言語でもできるんですが!」
勝手に他人が言ってないことを、言ったと思い込んで、
その自分の思い込みを叩いてる。
0540デフォルトの名無しさん
2015/12/23(水) 08:33:14.42ID:+daiOjD/> つまり前言撤回するわけねw
前言も何も、最初から言っていること。
「前言」ってどれだよ?言ってみなw
0541デフォルトの名無しさん
2015/12/23(水) 08:44:39.41ID:0ZC/YhCb>>439
> 実行時で型に関するエラーが起きないってのは、
> 起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
> 原理的に起こせない、っていう意味で言ったんだけど、分かる?
0542デフォルトの名無しさん
2015/12/23(水) 08:46:51.27ID:+daiOjD/そいつ明らかに動的厨じゃないかw
0543デフォルトの名無しさん
2015/12/23(水) 08:47:42.61ID:0ZC/YhCb型安全を破ることができてしまう言語が安全性において優れていると?
あんた、完全に頭おかしいよw
>>427
> 静的型は型エラーであるもの、つまりアプリのバグ。
> そのアプリのバグを静的型は実行すること無く検出できる。
0544デフォルトの名無しさん
2015/12/23(水) 08:47:45.08ID:+daiOjD/マッチポンプってやつだろうなw
0545デフォルトの名無しさん
2015/12/23(水) 08:48:34.89ID:+daiOjD/だから、完璧なんて言ってないって(笑)
より安全。より。何度も言うよ?
より安全。
0546デフォルトの名無しさん
2015/12/23(水) 08:50:35.73ID:0ZC/YhCbバーカ、ちゃんと読めよw
同じIDが>>419を書いているぞwww
0547デフォルトの名無しさん
2015/12/23(水) 08:53:32.33ID:0ZC/YhCb君は自分が何を言っているのか理解できない類の人らしいね。
君の主張は、
「型安全を確保できない弱い静的型付言語は
型安全を確保できている強い動的型付言語よりも
安全である」だよ?
バファオーバランを起こしても
「型に関するエラー」じゃないもん!
とか言い出すの?
ほんとバカというよりキチガイの極みだなw
0548デフォルトの名無しさん
2015/12/23(水) 09:17:33.38ID:MZJ58G0+0549デフォルトの名無しさん
2015/12/23(水) 10:32:20.23ID:zDlwL3aMちょっと何言ってるのか分からないですね
0550デフォルトの名無しさん
2015/12/23(水) 13:02:34.89ID:GTqqbOlKJavaもC#も不正なキャストを許す型システムを採用していて、型が保証する安全性は小さいが、
こいつらに当てはまる問題点が静的型付け全部にあるわけじゃない。
それを分かっているくせに今度はCの問題点を静的型付け全般に言及しようとする?卑怯な言い分は変わらないのな。
逆に、静的型付けとひとくくりにして優位性を主張し、動的型付けを無理矢理に貶めようとする卑怯者もいるから面倒。
静的解析の優位性とか型システムが提供する安全性なんて、言語によって大きく違うのにな。
IdrisやCoqやAgdaはテストすら要らないくらいの安全性を持ってるけど、それを静的型付け全部の性質にしちゃ駄目だよな。
だから自分はOCamlやれって言ってる。
静的型付けで型システムが強力で実行時に型エラーが起きない&オブジェクト指向をサポートしている言語だから。
やればオブジェクト指向と関数型は決して対立軸にはならないことが分かるから。
0551uy ◆Qawu9.2l1E
2015/12/23(水) 13:14:24.78ID:uhnrlQdn0552デフォルトの名無しさん
2015/12/23(水) 13:19:23.85ID:DDf47SHC2パラグラフ目にあるような、オール・オア・ナッシングで動的型付き言語を
罵倒するだけの不毛な状況の反論で、ちょっと行き過ぎてファールラインを
超える奴がでただけの話。
あと、オブジェクト指向と関数型どころか、静的型/動的型だって対立概念じゃない。
多くの言語や処理系は静的型付けと動的型情報の両方を扱う。
0553デフォルトの名無しさん
2015/12/23(水) 13:19:25.16ID:+daiOjD/> バファオーバランを起こしても
今度は話をバッファーオーバーランにすり替えたか。
本当にこいつは卑怯w
0554デフォルトの名無しさん
2015/12/23(水) 13:22:01.38ID:+daiOjD/お前の「安全」の定義が違ってるんだよ。
お前は、アプリが不正なエラーで落ちるかどうかの話をしてるだろ。
こっちは最初からそんな話をしていない。
俺が言ってる安全っていうのは、アプリをバグなく
修正できるって話をしてる。
だから、例外で落ちるのも、俺にとっては安全ではない。
アプリが正常に動かないからだ。
0555デフォルトの名無しさん
2015/12/23(水) 13:23:30.17ID:2bKYe5U2みつをみたいw
0556デフォルトの名無しさん
2015/12/23(水) 13:28:32.11ID:+daiOjD/× 例外で落ちるのも
○ 例外でアプリが正常に動作しないのも
こいつは、例外がでてトラップして画面にエラーですって表示したり
エラーを握りつぶしてログを出さずに動かなくても
仕様通りです。ってユーザーに言うようなやつだからなw
0557uy ◆Qawu9.2l1E
2015/12/23(水) 13:36:09.42ID:xOYwyJJSでは逆に、プログラマが飛行機を落とす事を考えてはどうだろう?
それによって現実世界にある飛行機という乗り物がいかに不備のあるものかが露呈する
飛行機という存在を根底から作り直す必要がある
つまりエンジンが止まっても、誤動作しても、人命が助かる作りへと変わっていく
どんどん墜落させれば世界は変わる
0558デフォルトの名無しさん
2015/12/23(水) 13:50:11.47ID:WSDJ3sSn0559デフォルトの名無しさん
2015/12/23(水) 13:52:00.44ID:IsVfil8S0560デフォルトの名無しさん
2015/12/23(水) 13:57:58.13ID:+daiOjD/うっぜーからID変えるね(笑)
0561デフォルトの名無しさん
2015/12/23(水) 14:38:21.71ID:cD3wXPE+C#が動的型より安全と言ったんだから、
C#よりも静的に型安全なOcaml使いにC#を批判されたら
それを認めないとダメだな。矛盾してる。
0562デフォルトの名無しさん
2015/12/23(水) 14:46:21.55ID:+NQ/xqJl0563デフォルトの名無しさん
2015/12/23(水) 14:51:05.22ID:+NQ/xqJl動的言語がこんなに使われる訳ないだろっていう
現実をまず見ようよ。
0564デフォルトの名無しさん
2015/12/23(水) 15:00:05.77ID:v4yXy6ML0565デフォルトの名無しさん
2015/12/23(水) 15:01:46.32ID:v4yXy6MLC#の話をしている人って誰だ?
自分でC#を持ってきて自分でC#を批判してるのか?
0566デフォルトの名無しさん
2015/12/23(水) 15:12:37.90ID:oeWwCbV9いや、きみが自分でIDEが簡単に補完してくれるから静的言語はスゴイ!
とか謎の珍説を長々開陳してたから
「なんだそれ?w」「当てはまるのって"VC#をVSでWindows"ぐらいだからそれだなw」
って全員判断しただけじゃw
0567デフォルトの名無しさん
2015/12/23(水) 15:16:08.81ID:v4yXy6ML知識ないのが露呈しているだけだなw
0568uy ◆Qawu9.2l1E
2015/12/23(水) 15:20:54.46ID:y3L2qmhF0569デフォルトの名無しさん
2015/12/23(水) 15:43:40.82ID:oeWwCbV9では、そのすごい知識で自分が推してる環境をくわしくw
IDを変えてはふんわりざっくり
「どこの静的とぼくのかんがえた動的の話だよw」って
ツッコミ入りまくりの話しか君しないでしょw
0570デフォルトの名無しさん
2015/12/23(水) 15:46:57.79ID:v4yXy6ML何かわかるはずもない。ただ言えるのは>>566がそう判断したという事実なだけ。
そこから、>>566が無知であることが見事に証明されたんだよ。
静的言語でIDEで補完できない言語の方が少ないぐらいなのにな。
0571デフォルトの名無しさん
2015/12/23(水) 16:14:59.12ID:hnWS8bx3C#がOcamlより劣ったゴミ言語と認めるかどうかの
話なんだけどな
必死に話を逸らしてる人がいるね
0572デフォルトの名無しさん
2015/12/23(水) 16:18:49.87ID:v4yXy6MLOcaml > C# > 動的言語
0573デフォルトの名無しさん
2015/12/23(水) 16:20:24.44ID:v4yXy6MLOCaml(強い静的型付け) > C#(強い静的型付け) >>>>>>> 動的型付け
0574デフォルトの名無しさん
2015/12/23(水) 16:31:04.85ID:hnWS8bx3これからはOcaml vs Smalltalkでやりなさい
間違ってもC#を攻撃して静的型全体を貶めることの無いようにね
0575デフォルトの名無しさん
2015/12/23(水) 16:35:08.21ID:v4yXy6ML0576デフォルトの名無しさん
2015/12/23(水) 16:50:59.04ID:uhnrlQdn無関係の用語同士を繋げて、レス安価したりしてるからごっちゃごちゃ
今までに見た事ないタイプのガイジだな
0577uy ◆Qawu9.2l1E
2015/12/23(水) 16:52:15.12ID:PjxVSF2U0578デフォルトの名無しさん
2015/12/23(水) 17:02:19.48ID:iZy07rlJ同じ厨の意見なら C#厨なんかよりはるかに勉強になる。
0579デフォルトの名無しさん
2015/12/23(水) 17:05:26.00ID:v4yXy6ML言ってるのに、さもC#の話をしていたかのような
誤解を与える文章を書くわけさ
>>576
ほんとひどいよねw
0580デフォルトの名無しさん
2015/12/23(水) 17:22:26.94ID:SBD3pGKR0581デフォルトの名無しさん
2015/12/23(水) 17:47:45.23ID:iZy07rlJC#だなんて、MS自体が危うい言語の独りよがりな自慢話のほうが痛いよ
0582デフォルトの名無しさん
2015/12/23(水) 17:54:11.80ID:2bKYe5U2C#に黒歴史でもあるのか?いい言語じゃないか。使っておやり。
0583デフォルトの名無しさん
2015/12/23(水) 18:35:00.90ID:DDf47SHCどっちもオブジェクト指向じゃねーか
0584デフォルトの名無しさん
2015/12/23(水) 18:46:04.87ID:iZy07rlJ両者は「クラス」とか「オブジェクト」とかの言語機能は共通しているけど
やろうとしていることは静的と動的で真逆なの
0585uy ◆Qawu9.2l1E
2015/12/23(水) 18:49:30.03ID:PjxVSF2U0586uy ◆Qawu9.2l1E
2015/12/23(水) 18:53:46.61ID:PjxVSF2U本来すべて静的でやるべきなんだよ
ただしそれは、アルゴリズムを走らせる事よりも、
難解な初期化作業になる場合あるから
そういう部分においてある程度の妥協をして、動的生成をする事で現実的な作業量になる
動的言語とはいわば、世界の妥協の集合知なのです
0587デフォルトの名無しさん
2015/12/23(水) 19:16:24.47ID:WSDJ3sSn>>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く||>ゝ ノ--イ/ \
/ �Z ∧}_ / x=≠ヘ
{ Vハ {{\V 〃 ∧
0588デフォルトの名無しさん
2015/12/23(水) 19:20:48.25ID:XPrkRHFDもともと、「パーツの使い回し」と「分散処理」なんで趣向がだいぶ違うんだよな。
そして、動的は分散処理が最初から念頭にあるから
実行までに環境が変わることがあるのを最初から考慮に入れて
さまざまな設計がなされてるってのに、静的側を這ってた奴らは
それをいまごろになって副作用だの実行時解決だの言い出してのたうってるという…
そして、その尻尾に至っては「静的にやってれば不具合は存在しない!」とか
ここに至って言い張るという池沼ぶり…
0589デフォルトの名無しさん
2015/12/23(水) 21:36:24.75ID:SBD3pGKR0590デフォルトの名無しさん
2015/12/23(水) 21:37:18.89ID:L95mHKNchttp://hissi.org/read.php/tech/20151223/UGp4VlNGMlU.html
0591デフォルトの名無しさん
2015/12/23(水) 22:20:44.03ID:i2+b/jX1C#erさえも使っている言語の名前を恥ずかしすぎて出せない。C#って不憫だな…
0592デフォルトの名無しさん
2015/12/23(水) 22:43:34.79ID:k0HavgjY静的型の人は静的型のメリットを上げているだけなのにね
最近の動的型言語はどんどん静的型の機能を取り入れていっているというのに
その現実を見ないふり
0593デフォルトの名無しさん
2015/12/23(水) 22:45:49.10ID:oeWwCbV90594デフォルトの名無しさん
2015/12/23(水) 22:50:14.84ID:pxGAUGCw動的言語の中にも比較時に勝手に型変換するとか、必要な語が予約語になってないとか、理不尽な動作をする言語はいくらでもあるわけで
0595デフォルトの名無しさん
2015/12/23(水) 22:58:52.97ID:k0HavgjYプログラミング言語の最先端の花の話題だ
静的に機械的にどれだけたくさんのバグを検出できるかというね
当然動的型言語界隈の人からも、こういうものはよく見えるし
面白そうな題材だから取り込もうとするわ
時代遅れな動的型一辺倒だけじゃ古臭いから
最先端な静的型システムを取り入れようとするわな
C言語しか見当たらなかった時代には動的型は最先端に見えたんだろうけど
今じゃ全く逆だからな
今のトレンドなのに時代に取り残された一部の動的信者は頭が固くて可哀想だね
0596デフォルトの名無しさん
2015/12/23(水) 23:03:07.90ID:pxGAUGCw知名度の高い中でC#がわりとよくできてるからそれが例に上がるだけだろ
新しかったりしっかり設計されて、しっかり開発されてる静的言語なら程度の違いはあれ対応している
0597デフォルトの名無しさん
2015/12/23(水) 23:07:47.18ID:i2+b/jX1言えないってことはC#なんだろうな…
0598デフォルトの名無しさん
2015/12/23(水) 23:16:12.53ID:M5GRmAfS0599デフォルトの名無しさん
2015/12/23(水) 23:22:43.24ID:v4yXy6MLむしろC#しらないんだが?
0600デフォルトの名無しさん
2015/12/23(水) 23:24:31.14ID:i2+b/jX10601デフォルトの名無しさん
2015/12/23(水) 23:26:52.96ID:i2+b/jX10602デフォルトの名無しさん
2015/12/23(水) 23:51:18.06ID:hnWS8bx30603デフォルトの名無しさん
2015/12/23(水) 23:59:12.75ID:XPrkRHFD0604デフォルトの名無しさん
2015/12/24(木) 00:04:57.64ID:ZIvzfH3jメインはC#とかだけど、C/C++、Java、VB.NET、F#、TypeScript、ActionScriptとかでも型がきちんと指定されてれば補完とかリファクタリングのサポートとかは使えてる
Rubyとかも、補完割と優秀だけど仕組み的に静的型ほどの質にはならないなーとか思いながら使ってる
0605デフォルトの名無しさん
2015/12/24(木) 00:13:04.51ID:ndtshwiCそりゃ恥ずかしくて言い出し難いわな
0606デフォルトの名無しさん
2015/12/24(木) 00:25:51.89ID:TrbcLjcW逆とかじゃなくて動的静的でウゴウゴ言ってる奴自体が時代遅れだっつの。
0607デフォルトの名無しさん
2015/12/24(木) 00:29:15.71ID:vhy24jAm> OCamlより優れた言語が一つもなくて笑った
OCamlが優れているっていうのなら、
その優れているところを言っていいんだよ。
君が本当にOCamlを知っているのならね。
0608デフォルトの名無しさん
2015/12/24(木) 00:31:03.47ID:ZIvzfH3jOCamlより素晴らしい言語ってなにをあげればよかったんだ
文法や考え方も重要だけどRubyのgemとか.NETのnugetみたいな豊富なライブラリができる程度に利用者がいない言語って触りにくいんだよなぁ
CとかCOBOLとかFortranは過去の遺産使用のためにいまだに使われるし
新しい言語は他言語用のライブラリにただ乗りしていく方式が広まってほしい
0609デフォルトの名無しさん
2015/12/24(木) 00:37:37.29ID:TrbcLjcW0610デフォルトの名無しさん
2015/12/24(木) 01:02:41.26ID:Q6U3kr4L0611デフォルトの名無しさん
2015/12/24(木) 01:06:29.65ID:vhy24jAmどんな言語でもC言語用ライブラリは使えるでしょ?
0612デフォルトの名無しさん
2015/12/24(木) 02:05:42.62ID:y9bYd1Emメジャーな言語は完成度の高い開発環境や充実したライブラリが沢山あるから、何か作るかってときの選択肢に常に入るし、
OCamlも開発してたら面倒臭い部分が一杯あるからね。
型システムに限って言えば、OCamlを魅力ある言語として挙げ続けるがね。
静的型付けだけど、オブジェクトがnominal subtypingじゃなくてstructual subtypingなのも面白いところだよ。
0613デフォルトの名無しさん
2015/12/24(木) 02:12:20.43ID:vhy24jAmどういうことができるのかの話をしなさいって。
どうこういう言語だから面白いんだっていう言語厨の発言じゃなくて
言語のどうこういう機能が、実際の開発をこのように便利にしてくれるって
話をすれば、それはさらに動的言語に対するアドバンテージにもなるだろ?
0614デフォルトの名無しさん
2015/12/24(木) 02:50:45.74ID:0ir5W3Vpw
0615デフォルトの名無しさん
2015/12/24(木) 03:54:04.19ID:y9bYd1Em各言語で型が保証してくれる安全性はスペクトルを描くことが分かっていれば、ガッチガチに型で縛られることのメリットは想像できるはず。
型推論のおかげで型注釈は最小限で済むので、面倒な型注釈も最小限で済むよ。
処理内容についてアタリをつけられる程度に型をつくっていれば、コンパイルできたら大体意図通りに動くっていう安心感も、
objectを使うとメソッドの呼び出しにオーバーヘッドがあるから、late bindingが本当に必要なときだけそのコストを払おうっていうメンタルモデルも、
モジュールを上手に使えばオーバーヘッド無しに実装を置き換えられることも、
Expression Problemが超簡単に解決できることも、興味無いでしょ?
REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ?
0616デフォルトの名無しさん
2015/12/24(木) 04:25:47.27ID:vhy24jAm> 「アドバンテージ」
日本語にすると、有利な点,強み,長所 って意味だよ。
0617デフォルトの名無しさん
2015/12/24(木) 04:40:39.66ID:0ir5W3Vp0618デフォルトの名無しさん
2015/12/24(木) 04:50:56.56ID:vhy24jAm英語を使うのが苦手ですか?
0619デフォルトの名無しさん
2015/12/24(木) 05:55:42.72ID:0ir5W3Vp君高卒か専門卒でしょう?
0620デフォルトの名無しさん
2015/12/24(木) 07:34:44.49ID:UWoYNEvE>REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ?
無い。
静的型信奉者が、静的型チェックによるケアレスミスの排除とインテリセンスの完全性に過度に執着して
すべてを動的遅延的かつシンプルに実現することによるメリットにまったく聞く耳を持たず、
時代遅れだと決めつけてバカにしまくるのと同程度に
かくも不自然かつ複雑に多大なコストをかけてやっと実現される、にもかかわらず制限付きまくりの
まがい物なんかにはこっちも興味は無い。
0621デフォルトの名無しさん
2015/12/24(木) 08:09:36.07ID:j6+iXrTs素直にVisualC#™️の宣伝してなさいな、君は
0622uy ◆Qawu9.2l1E
2015/12/24(木) 08:22:19.14ID:G+GnGNiW0623uy ◆Qawu9.2l1E
2015/12/24(木) 08:39:29.32ID:CtNlYBZFc = 1
c = "a"
function(c)
これを内部で
Int c1 = 1
undef_var(c1)
String c2 = "a"
function(c2)
こうやったらコンパイラ側は型知ってるじゃん
0624デフォルトの名無しさん
2015/12/24(木) 08:44:11.80ID:TrbcLjcW0625デフォルトの名無しさん
2015/12/24(木) 08:45:13.50ID:PjvgHOdYhttp://hissi.org/read.php/tech/20151223/UGp4VlNGMlU.html
http://hissi.org/read.php/tech/20151223/bGd3LzFLdkk.html
http://hissi.org/read.php/tech/20151223/dWhucmxRZG4.html
http://hissi.org/read.php/tech/20151223/ZHBBcWUzY1o.html
http://hissi.org/read.php/tech/20151223/Y0dyQzdxZWQ.html
http://hissi.org/read.php/tech/20151223/eE9Zd3lKSlM.html
http://hissi.org/read.php/tech/20151223/eTNMMnFtaEY.html
http://hissi.org/read.php/tech/20151223/aDJKTXlFZk8.html
http://hissi.org/read.php/tech/20151223/ZFV6WUFBZlg.html
http://hissi.org/read.php/tech/20151223/UDZmKysxZks.html
0626uy ◆Qawu9.2l1E
2015/12/24(木) 08:57:06.27ID:QbSnczG6if rand(2) == 0
c = "a"
end
function(c)
こういうコードを「型推論エラー」として扱うか、
それともコンパイラ側が関数多態化するかっていう話
0627uy ◆Qawu9.2l1E
2015/12/24(木) 09:01:29.81ID:yBEC7nO0「変数の初期化・変更は必ず同一の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
0628デフォルトの名無しさん
2015/12/24(木) 09:02:48.63ID:TrbcLjcW0629uy ◆Qawu9.2l1E
2015/12/24(木) 09:02:53.31ID:Ecjqx/Av0631uy ◆Qawu9.2l1E
2015/12/24(木) 09:18:48.74ID:g389+8X2で、同じ形の分岐をそのまま持ってきて
条件のところを[ memo ]変数にし、
多態化したメソッドを配置して、
[ memo ]変数の中身に沿って実行していく
しかしこれは「型安全性」ではなく、速度問題しか解決されない
型安全性は、動的言語のコンパイラの問題ではなくパラダイムの問題で
動的言語の上では、コンパイラを作り込んでも型安全性は得られない
よって>>627
これは規則のプロトタイプでとてもひどいものだが、
型推論を確実に行うための何らかの「コーディング規則」は必要になる
0632デフォルトの名無しさん
2015/12/24(木) 09:22:51.71ID:PjvgHOdYhttp://hissi.org/read.php/tech/20151224/UWJTbmN6RzY.html
http://hissi.org/read.php/tech/20151224/RWNqcXgvQXY.html
http://hissi.org/read.php/tech/20151224/ZFVwRGxGWTE.html
http://hissi.org/read.php/tech/20151224/Q3RObFlCWkY.html
http://hissi.org/read.php/tech/20151224/RytHbkdOaVc.html
http://hissi.org/read.php/tech/20151224/eHp0c0pWU3Y.html
0633uy ◆Qawu9.2l1E
2015/12/24(木) 09:39:29.04ID:yBEC7nO00634デフォルトの名無しさん
2015/12/24(木) 09:52:39.44ID:8Q8CNXOF0635デフォルトの名無しさん
2015/12/24(木) 10:12:30.78ID:P/dN5WcP0636デフォルトの名無しさん
2015/12/24(木) 10:20:29.98ID:ZIvzfH3j動的型の言語のメリットを全く聞く耳持ってない人はほんの一部の行き過ぎな人だけだろ
それと同程度ってことは静的言語のメリットは全く理解できないっていう極端な方ですか?
0637デフォルトの名無しさん
2015/12/24(木) 11:36:16.44ID:acHF714F質問ではない。
0638uy ◆Qawu9.2l1E
2015/12/24(木) 15:48:25.48ID:G+GnGNiW技術を動的言語が開拓していくのは当たり前なんですけど
しかし静的生成にする事で計算量が削れてくるから、動的な部分を出来る場所から静的にしていく流れが強いのであって
その逆は弱い
0639デフォルトの名無しさん
2015/12/24(木) 16:23:46.71ID:7vJ6cUbQひどく複雑な方法になる(もちろんその分コストもかかる)という印象の方が強い
0640デフォルトの名無しさん
2015/12/24(木) 16:24:05.94ID:lTmsChXg具体的には何?
0641デフォルトの名無しさん
2015/12/24(木) 16:24:41.70ID:lTmsChXgだから具体的には何?
0642デフォルトの名無しさん
2015/12/24(木) 17:07:23.44ID:acHF714F>同じようにやろうとすると
問題はここでは?
0643デフォルトの名無しさん
2015/12/24(木) 17:55:03.50ID:J9J3Kh42>REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ?
その「及ばない」程度をどう認識しているかの問題でしょう。
コマンドラインで満足できる人はREPLはインタラクティブと思うのだろうが、
Smalltalkを使う人にとってはREPLのインタラクションは到底我慢ならない。
Smalltalk環境をある程度以上使い込むと、
「この環境を静的型付言語上に実現することは
とてつもなく困難(おそらく不可能)だ」と実感するんだよ。
0644デフォルトの名無しさん
2015/12/24(木) 18:47:04.52ID:ri4CJahTこの点においてはC++って神だわ
0645デフォルトの名無しさん
2015/12/24(木) 19:11:30.67ID:acHF714F0646デフォルトの名無しさん
2015/12/24(木) 19:27:06.30ID:E5q4kG2Kなんで、変更の影響がそんな外にまで波及すんの。
設計の問題じゃねの。
0647デフォルトの名無しさん
2015/12/24(木) 19:44:55.51ID:rA2ypWMt0648デフォルトの名無しさん
2015/12/24(木) 20:08:47.22ID:E5q4kG2K全CPUパワー使ったまま待ち受けとかしたらすんげぇ無駄だよね?
TSS(タイムシェアリング)で複数のプロセスをできるとこから実行させてくとかするし
ネットワークで処理分散して別のコンピュータに処理投げるとか
いまの"密な関係"を前提としたプログラミングでやり続けるのは泥沼の道だよね?
"真のコンピュータサイエンス"が実現するまでは次善の策として
モジュール間の接続を疎にして、手続きの順番に強く縛られないプログラミングを
やるしかないよね?ってのが40年以上も前のことで、
それが真のコンピュータサイエンスが出るどころかネットは発達するわ
普通の家庭用コンピュータが2コアだ4コアだってなってんのに
『密なプログラミング』の泥沼這ってた奴らはなんでその泥沼から
「キツイから動的からあれ持って来て足したわ、こんどはこれ足したわ
これでどんどん"なんでもできるように増築"したから俺スゲー!」って自賛してんだよ。
おまえの棲んでるとこは泥沼なんだよ。泥はね散らかすな。
0649デフォルトの名無しさん
2015/12/24(木) 20:26:30.06ID:DECH3WsRそれがそうでも
C言語用ライブラリをそのまま使えるようにしようと思うと
その言語がC言語のヘッダを理解できる必要がある
ヘッダにはプロトタイプ宣言の他にも構造体とか定数とも定義してあるし
さらに悪いことにC言語にはマクロが有るからCのソースの断片がそのまま
ヘッダファイルに書いてあったりするから
C言語のヘッダが理解できるということは、C言語の全部が理解できるということに他ならない
C++やObjective-Cみたいな初めからC互換が念頭にある言語じゃないと厳しい
結局Cのヘッダをその言語用に移植してあげないと使えないんだよね
windows.hの移植とか、考えただけでぞっとするよな
0650デフォルトの名無しさん
2015/12/24(木) 20:30:08.49ID:DECH3WsRお前の妄言にはなんの根拠もないわけだが
少なくとも最近の動的型界隈は静的型を取り入れるのがトレンドになっているし
実際にそういう言語がどんどん出てきているのは事実
事実は動かしようがない
0651デフォルトの名無しさん
2015/12/24(木) 20:59:23.91ID:J9J3Kh42Cのヘッダを読み込んで自動的に動的型言語用のFFIを定義するぐらい
遅くとも90年頃には実用されてたぞw
何週遅れなんだおまえは
0652デフォルトの名無しさん
2015/12/24(木) 21:32:06.75ID:Q6U3kr4L完全に個人用のファイル生成ツールだから設計適当、バグどんとこいって感じで取り敢えず動けばいいって感じなんよ
だからしばらく使わない機能とかあって、数ヶ月前に変更したところが変に効いてきたりするんよ
ぶっちゃけ設計が悪いのはその通りだと思う
0653デフォルトの名無しさん
2015/12/24(木) 21:41:12.91ID:Q6U3kr4LC++の業務プログラマーが適当なんじゃなくて俺が適当なだけなんだけど、もしかしてそんなことも分からず俺がC++代表だと思ってしまう雑魚?
0654デフォルトの名無しさん
2015/12/24(木) 22:45:00.81ID:ZIvzfH3jまじ?移植で純粋に面倒で困ってたんだ
C以外ならなんでもいいから実装を見たい
WindowsのヘッダならHIDA_GetPIDLItemとかのPIDL操作周りとかある?
0655デフォルトの名無しさん
2015/12/24(木) 22:57:46.42ID:DECH3WsR移植ヘッダがあちこちに上がっているけど
企業はそういうものを使いたがらないんだよね
純正じゃないから
0656デフォルトの名無しさん
2015/12/24(木) 23:01:53.68ID:DECH3WsRもう過去の言語で忘れ去られる存在だから過去形で良いよね
とにかく全然普及しなかった
C言語のライブラリが使えるっつったって
ヘッダがそのまま使えないのであれば結局面倒なので普及しないのさ
結局C++を進化させる方向を時代は選択した
0657デフォルトの名無しさん
2015/12/24(木) 23:07:13.77ID:Xid5FbCPC++++の立ち位置はやはりこの言語か
0658デフォルトの名無しさん
2015/12/24(木) 23:08:30.65ID:DECH3WsRC以外なら何でも良いならC++だな
Cのヘッダをそのまま読めるじゃないか
C++のCの互換性は完璧じゃないけど
Windowsのヘッダは両方に対応しているから問題ない
殆どのC用ライブラリはC++で使われることも想定しているから
大体は問題ない
0659デフォルトの名無しさん
2015/12/25(金) 00:08:28.55ID:pGtNhFfnc++ なわけで、そもそもすべての仕様を満たしているコンパイラなんて存在しないっていう。
言ってみれば何でもかんでもプログラマに押し付けて、炎上しまくるクライアントみたいなもんだな。
0660デフォルトの名無しさん
2015/12/25(金) 00:12:57.12ID:v/Z7kcib0661デフォルトの名無しさん
2015/12/25(金) 00:17:30.47ID:XvkCqMEu0662デフォルトの名無しさん
2015/12/25(金) 00:32:53.45ID:XvkCqMEu実装してみてあとから規格書を起こすのはXXXだよね
特にC++ならまずはBoostとかで実験して便利そうだったら規格に入れていくって
フローが有って上手く行っているよね
キッチリしているよね
0663デフォルトの名無しさん
2015/12/25(金) 02:25:48.96ID:K0bEU4IZ0664デフォルトの名無しさん
2015/12/25(金) 02:27:22.36ID:OJPyRqtL出来上がるものがきっちり決められないものって何?
そしてそれがなんで静的じゃ作れないの?
静的でも、コードを修正することで、
ありとあらゆる将来の変更に対応できるんだが?
君は、それじゃ無理という理由を書かないといけないね(笑)
0665デフォルトの名無しさん
2015/12/25(金) 03:11:44.03ID:IhSwjExx静的型なんて昭和までで見切りをつけるべきだった
0666デフォルトの名無しさん
2015/12/25(金) 04:07:09.91ID:K9bgF2wtじゃあ、非常に単純な例で。以下を忠実に静的型付き言語でやってみせて欲しい。
いい具合に君は今、これから何を作らされるかわからない状態だ。
とりあえずオブジェクト(何のクラスに属していてもいい。いや、クラスに属さずにいられるなら、
それでも構わない)を作ろう。
できたかな? 仮にこいつを 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' を返すことを確認しておく。
これらは大事なオブジェクトだから、次回起動時にもそれぞれのアイデンティティと関係性を変えることなしに
開発を続けられるように永続化もしておこう。
「メッセージ送信」がお気に召さなければ「メソッド呼び出し」と適宜読み替えてもらって構わない。
メッセージ送信もしくはメソッド呼び出しの記法にもこだわらない。
0667デフォルトの名無しさん
2015/12/25(金) 04:13:00.59ID:OJPyRqtLこの時点で現実にありえない話だけどなw
> では x に foo というメッセージを送ったら 'bar' と返してくるように振る舞いを加えてみよう。
そのようにコードを修正して完了
> 両者とも x を返すように決まったのでそれに従おう。
そのようにコードを修正して完了
> 当然、今の段階で y.baz.quux を評価したら例外があがるから、そのままデバッガで 'quuux' を返す quux メソッドを定義しよう。
そのようにコードを修正して完了
> 念のため、z.qux.quux も 'quuux' を返すことを確認しておく。
そのようにコードを修正して完了
> これらは大事なオブジェクトだから、次回起動時にもそれぞれのアイデンティティと関係性を変えることなしに
> 開発を続けられるように永続化もしておこう。
そのようなことができる機能を追加して完了
何かできないことがある? 言ってることが冗長だよね
できないこと「だけ」を指摘しなさい。
なお、目的と手段を履き違えないようにねw
0668デフォルトの名無しさん
2015/12/25(金) 04:20:04.95ID:OJPyRqtLアクロバット開発ができるってことだけらしいよなw
綱渡りをしなさいっていう制約はないのに、
どれだけ綱を降りずに開発できるか。
自動テストを使えば、初期状態からもう一度再実行できるんだから
デバッグしながら開発するんだ。デバッグを中断したら駄目だっていう
綱渡りな開発をする必要はないんやで?
0669デフォルトの名無しさん
2015/12/25(金) 04:26:13.87ID:IhSwjExx動的脳は静的は無能と思い込む。
現実は両方必要なのにねえ。
0670デフォルトの名無しさん
2015/12/25(金) 04:49:18.25ID:8VJZxsHL無理に動的なんかいらなイイイ!とか言ってる珍獣土方をからかってるだけで。
0671ネットワークエンジニア(プロ)です
2015/12/25(金) 05:26:40.51ID:0vV5tzYe静的におけるディクショナリをお手軽に使えるのが動的だろ。
動的ってのは局所的に使うんだよ。
Webに収まってろよ。
0672デフォルトの名無しさん
2015/12/25(金) 06:36:40.94ID:pGtNhFfnきっちりしてるのに上手くいってないのがc++なわけだが。
0673デフォルトの名無しさん
2015/12/25(金) 07:21:54.97ID:IvmyX9uA「そのようにコードを修正して完了」の一行で済むのに…
0674デフォルトの名無しさん
2015/12/25(金) 07:27:52.90ID:OJPyRqtL煽るのが目的だからこれでいいw
0675デフォルトの名無しさん
2015/12/25(金) 07:34:07.95ID:IvmyX9uAって大見得切ったわりにはお粗末だったな。インスタンスは作り直しだがとか苦しい言い訳しつつも
クラス名の付け替えくらいは出してくるかと予想したが、まったく無しでコピペ返しとはね。
0676デフォルトの名無しさん
2015/12/25(金) 07:41:03.64ID:OJPyRqtLソースコードを修正で、ありとあらゆる将来の変更に対応できる。
0677デフォルトの名無しさん
2015/12/25(金) 07:41:38.82ID:OJPyRqtLそれもソースコード修正で可能。
アクロバット(笑)をするのが
目的じゃないんだよw
0678デフォルトの名無しさん
2015/12/25(金) 08:33:49.83ID:b/ORJMNcどっちかに固執するアスペみたいな奴おるな
0679デフォルトの名無しさん
2015/12/25(金) 08:36:13.65ID:hK6V4eA3もう数年前だというのに、赦されるときは来るのか
0680デフォルトの名無しさん
2015/12/25(金) 09:09:22.55ID:0wm6/WOAx := 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) "
0681デフォルトの名無しさん
2015/12/25(金) 09:13:40.79ID:OJPyRqtL変更しないといけないのか?という問題が有るよな。
まずそこだよ。論点はw
0682デフォルトの名無しさん
2015/12/25(金) 09:40:26.84ID:b/ORJMNcオブジェクト志向は愚かな考えというスレタイによくあった、今よりはいい話題を提供してくれるいい記事だ
0683デフォルトの名無しさん
2015/12/25(金) 10:24:18.27ID:IvmyX9uA静的型付けでは「そのようにコードを修正して完了」なんだろ?
いいじゃん、それで。なぜわざわざ蒸し返す?
0684デフォルトの名無しさん
2015/12/25(金) 11:15:03.59ID:OJPyRqtLそうなんだよね。手段と目的、デバッガを起動したままっていうのは手段であって
目的じゃない。目的はコードを修正することで、
静的型付けでもできることなんだよね。
0685デフォルトの名無しさん
2015/12/25(金) 11:22:07.51ID:zlW/tpNm0686デフォルトの名無しさん
2015/12/25(金) 11:25:41.39ID:JtKLD9Wt0687デフォルトの名無しさん
2015/12/25(金) 11:26:33.01ID:OJPyRqtL最近ではシステムは停止することを前提として、クラウドで
多数のマシンを使って切り替えながらシステムを動作させるのが主流だからね。
一箇所を変えれば、修正が終わりって時代じゃなくなってる。
常に実行しながら行うのは技術的に面白いってだけで実用性は無い。
0688デフォルトの名無しさん
2015/12/25(金) 11:28:09.42ID:OJPyRqtL話しよく聞いてみ。
"型エラー"が投げられたことがないと言ってるだけで
"エラー"が投げられたことがないとは言ってないから。
別の名前のエラーが投げられているが、
それは型エラーではないという屁理屈だよ。
0689デフォルトの名無しさん
2015/12/25(金) 11:33:07.93ID:IvmyX9uAそれでいいんじゃない?
キミの住む静的な閉じた幸せな世界ことで、これ以上何を議論する必要があるだろうか。いや無い。
0690デフォルトの名無しさん
2015/12/25(金) 11:35:15.65ID:OJPyRqtLあぁ、同じことが動的にも言えるね(笑)
動的の閉じた世界であーだこーだ言ってればいいんじゃないw
どうせ、言語を使ってアプリやシステムを作らない人の
オナニーでしょ?w
0691デフォルトの名無しさん
2015/12/25(金) 11:39:46.06ID:JtKLD9Wt0692デフォルトの名無しさん
2015/12/25(金) 11:43:08.18ID:OJPyRqtL詳細に語って見せてというと・・・?
言えないんだな、これがw
0693デフォルトの名無しさん
2015/12/25(金) 11:48:11.81ID:IvmyX9uAそういうことやるやつは皆、アプリやシステムなんか作ってない奴
って妄想もすごいな
0694デフォルトの名無しさん
2015/12/25(金) 11:49:13.31ID:JtKLD9Wt0695デフォルトの名無しさん
2015/12/25(金) 11:51:54.57ID:JtKLD9Wt0696デフォルトの名無しさん
2015/12/25(金) 11:52:57.87ID:OJPyRqtLこういう「静的言語は○○が目的なんだ」←動的厨勘違い
でも「静的言語は○○の役に立たないんだ!」
という、自分で間違ったことを言って、それは間違いだって
指摘するマッチポンプやめてくれないかね?w
0697デフォルトの名無しさん
2015/12/25(金) 11:57:12.88ID:IvmyX9uA世のなか馬鹿ばっかりで、さぞや大変だろうね。そんなに頑張らなくてもいいんだよ。
0698デフォルトの名無しさん
2015/12/25(金) 11:58:07.60ID:OJPyRqtL0699デフォルトの名無しさん
2015/12/25(金) 11:59:19.48ID:JtKLD9Wt0700デフォルトの名無しさん
2015/12/25(金) 12:03:49.35ID:OJPyRqtLさっきも、それは具体的にどういうことって聞いたけど、
見事に答えなかったでしょ?
また今回も答えないよ。その自由度を。
あ、手段と目的を履き違えないでねw
それを使って、何に役立てられるかを答えるように。
0701ネットワークエンジニア(プロ)です
2015/12/25(金) 12:30:08.52ID:0vV5tzYeああ、twitterが誤りに気づいて捨てられたやつか
0702デフォルトの名無しさん
2015/12/25(金) 13:13:35.65ID:peTf9jy5タイポとかで存在しないメソッドを呼んだときに静的型では型エラーになって、動的型では別のエラーになるということでしょ?
0703デフォルトの名無しさん
2015/12/25(金) 13:33:40.28ID:H65SAupIそもそもね。型安全ではないっていうのはC/C++のことを差すんだよ。
C/C++は型はあるけど、型キャストによってどんな不正な型にも変更できる。
そのようなコードを書いた場合、Segmentation faultが発生する。
もしくはメモリ内容によって未定義な変な動作をする。
Segmentation faultが発生し、通常はOSによって不正な動作を
食い止められる。このような自体になることが型安全じゃないってこと。
C#やJavaは不正な型に変更しようとしたら例外が発生する。
これは型安全。
だから4パターンあるんだよ。
1. 静的型:コンパイル時に型チェックが行われるが、型安全ではない。 C/C++など
2. 静的型:コンパイル時に型チェックが行われ、型安全。 Java、C#など
3. 動的型:コンパイル時に型チェックが行われず、型安全
4. 動的型?:コンパイル時に型チェックが行われず、型安全でない。(流石にこんなめちゃくちゃなのは作らないだろう)
静的型の1のパターンは、コンパイル時の型チェックにより、殆どの場合は安全に動作するが
壊そうと思えば壊せてしまう。それができないのが静的型の2のパターン
動的型は型安全にするしかないから型安全。静的型には型安全じゃないものが存在する。
動的厨はそれを利用して型安全じゃない静的型を叩いているだけ。
型安全な静的型の存在を意図的に無視してね。
型安全かつコンパイル時に型チェックが行われる言語は、型安全なのはもとより、
コンパイル時に型チェックが行われるから、実行時に例外(バグ)が発生する可能性も大きく減る。
つまり2のパターンの静的型が一番信頼性が高いソフトウェアを作れるってわけ。
0704デフォルトの名無しさん
2015/12/25(金) 13:39:12.58ID:b/ORJMNc0705デフォルトの名無しさん
2015/12/25(金) 13:41:17.94ID:W214cjQ20706デフォルトの名無しさん
2015/12/25(金) 13:42:41.49ID:H65SAupIそれは連想ゲームで叩いてるんだよw
動的型は型安全 → 静的型は型安全じゃない → 静的型のC/C++は型安全じゃない
→ 静的型は型安全じゃない → C#は静的型 → 静的型は型安全じゃない
こんな感じでねw
0707デフォルトの名無しさん
2015/12/25(金) 15:31:05.22ID:JtKLD9Wt0708デフォルトの名無しさん
2015/12/25(金) 20:26:11.52ID:P+AWGo7j「終わりじゃねぇ!」って発狂した流れ
0709デフォルトの名無しさん
2015/12/25(金) 20:32:11.38ID:RqZZBlSb0710デフォルトの名無しさん
2015/12/25(金) 21:04:06.54ID:VdtrNDQn0711デフォルトの名無しさん
2015/12/25(金) 21:17:46.87ID:XvkCqMEuレッテル貼りしようにも、自分たちにも降りかかってくるんじゃないかね
0712デフォルトの名無しさん
2015/12/25(金) 21:19:31.49ID:JtKLD9Wt0713デフォルトの名無しさん
2015/12/25(金) 21:23:41.52ID:pExGh+/Oまだ証明駆動開発に手を出すのは早いというか、現実とのすり合わせが欲しいところ。
0714デフォルトの名無しさん
2015/12/25(金) 22:45:11.43ID:cOtvUzth0715デフォルトの名無しさん
2015/12/25(金) 23:05:46.54ID:ya9ISuTA小さなプログラム組んでる現場しか知らないプログラマが
C++もObjective-Cも"自分には必要のない機能"だから
関数で十分だろ!って言い張ってんのといっしょだからな。
0716デフォルトの名無しさん
2015/12/25(金) 23:07:42.36ID:H65SAupI0717デフォルトの名無しさん
2015/12/25(金) 23:14:42.64ID:VdtrNDQnそれ以上に静的のメリットが目立ってきただけで
0718デフォルトの名無しさん
2015/12/25(金) 23:19:44.67ID:NwxuBGdrおおいぬ座VY星の大きさにくらべたら
そんなちっぽけな事なんてどうでもいい話だぞ。
0719デフォルトの名無しさん
2015/12/25(金) 23:20:18.82ID:RqZZBlSb0720デフォルトの名無しさん
2015/12/25(金) 23:24:54.08ID:Zq2DCqaMふぞけんな
ガベージコレクション実装してくれたら考える
循環参照うざすぎ
0721デフォルトの名無しさん
2015/12/25(金) 23:30:22.04ID:O7yo+mtd井の中の蛙に大海原でのサバイバルに必要な知恵を説いたところで、
「技術的に面白いってだけで実用性は無い」って一蹴されるのがオチ。
時間の無駄だと気付よ。www
そのカエルが想像力を欠いた思い込みの激しい自信たっぷりの頭の固いオッサンだったらなおさら。
0722デフォルトの名無しさん
2015/12/25(金) 23:39:55.58ID:H65SAupI0723デフォルトの名無しさん
2015/12/25(金) 23:43:21.09ID:fIh1CtOA200行程度のコードのデバグ()に40時間も無駄にせんでも済んだのにな!
http://cybozushiki.cybozu.co.jp/articles/m000442.html
0724デフォルトの名無しさん
2015/12/25(金) 23:45:19.82ID:RqZZBlSbメモリ管理もできない雑魚プログラマにとってGCは生命線なんだろうけど、
あらゆる環境で動作する、これからのIoT時代を考えると、
プログラマの意図しないところで勝手に動作するGCを言語仕様に組み込まなかったのはSwiftの数多くの英断のうちのひとつ
0725デフォルトの名無しさん
2015/12/25(金) 23:59:15.15ID:ZRRrPEfiおもしろい!
0726デフォルトの名無しさん
2015/12/26(土) 00:05:35.63ID:X/dp4KOmpythonみたいに参照カウントをベースに循環参照も破棄できるようになればいいのにね!
0727デフォルトの名無しさん
2015/12/26(土) 00:08:12.89ID:ZXEkf1l0.NETは今必死に他環境に移植してるけど、結果がどうなるか
0728デフォルトの名無しさん
2015/12/26(土) 00:12:29.18ID:AIAsWwFmOSXは誰もが最新を使っているが、Win10入れてるやつがどれだけいる?
0729デフォルトの名無しさん
2015/12/26(土) 00:22:19.00ID:h8/CI80S> メモリ管理もできない雑魚プログラマにとってGCは生命線なんだろうけど、
体育会系かな?
やらなくてもいいことを頑張っても
評価されないよw
0730デフォルトの名無しさん
2015/12/26(土) 00:25:35.01ID:AIAsWwFmSwiftには明示的なメモリ管理は必要ないよ
頭の中にマシンを思い描けば、あとは勝手にSwiftがメモリを管理してくれる
イマジンからバイトコードを作る、これまでのプログラミング言語と一次元違う生産性を与えてくれる言語だね
循環参照に困ってるようなプログラマは、結局マシンと繋がってない2流なんだよ
何の言語やってもゴミだと思うよ
0731デフォルトの名無しさん
2015/12/26(土) 00:27:11.73ID:h8/CI80Sあんまりおもしろくないかな。
0732デフォルトの名無しさん
2015/12/26(土) 00:29:13.18ID:ZXEkf1l0少し調べるとMacでも最新は半分とかいうデータもあるが・・・
少し古くなると無言でアップデートが降ってこなくなるのはどうにかしろよ
0733デフォルトの名無しさん
2015/12/26(土) 02:08:48.33ID:fgdYsfOpなんか露骨にシャドーボクサーが敵だと思う相手のモノマネ始めた…って感じだよなぁw
0734uy ◆Qawu9.2l1E
2015/12/26(土) 05:47:09.22ID:FnXDSeGk0735デフォルトの名無しさん
2015/12/26(土) 09:17:49.02ID:Pbxj7UC/静的型付けが大差をつけて勝ってると思うのに、
自分で実際に開発すると動的型言語を使ったときのほうが
明らかに生産性が高いのが腑に落ちない
あ、ちなみに静的動的両方使ってます日常的に
0736デフォルトの名無しさん
2015/12/26(土) 09:53:04.49ID:btZXIc4v「このC#erは、動的機能なんか仕事じゃ使わない。 あれは曲芸のためのもんだと決めつける。
それにLispとかSmalltalkみたいな極端な動的言語でアプリやシステムをきちんと動かしたことがあるって実例を知らないよ。
そもそも、動的言語にはC#にある型チェックや完璧なインテリセンスが理論上作れないもんな。
「このC#erが動的言語を見くだしている時、もちろん彼にはそうしているという自覚がある。
C#よりも型付けの弱い言語は、 明らかに力が弱い。彼が慣れ親しんだ安全性・利便性がないからだ。
しかし、このC#erは反対の立場から見られるとき、彼は自分が見下されているのだということには気付かない。
彼が耳にするのは、自分には無用な変てこりんな機能や使い方ばかり。
どうやらそれらをC#で出来ることと引き換えにできるくらいパワフルと勘違いする馬鹿もいるようだが、
やつらは目的と手段をはき違えている。真摯に耳を傾けようにも俺の現場では有り得ない想定が出てくるばかり、
と思うだろう。
「彼にとってはC#で十分なのだ。何故なら彼にとってC#で十分な仕事がすべてだから。
0737デフォルトの名無しさん
2015/12/26(土) 09:58:56.71ID:NGJJ2lD8動的型付けはプログラマのための技術。良さが工学的な指標に直接現れにくい。
だから>>735は至極自然なこと。
matzがよく言う「書いていて気持ちいい言語」もそういうこと。
0738デフォルトの名無しさん
2015/12/26(土) 10:16:26.79ID:h8/CI80S> このC#erは、動的機能なんか仕事じゃ使わない。 あれは曲芸のためのもんだと決めつける。
決めつけてるんじゃないよ。
お前が曲芸の話しかしないからだろう?
停止して修正しても同じことができる。
停止しないで修正する。以外のことは何一つ言ってない。
0739デフォルトの名無しさん
2015/12/26(土) 10:17:43.34ID:h8/CI80S> 静的型付けは処理系のための技術。ベンチマークやエラー検出などカタログスペック的なメリットを挙げやすい。
客観的にメリットをあげられる。
> 動的型付けはプログラマのための技術。良さが工学的な指標に直接現れにくい。
主観による好みしか無い
なるほどねぇw
0740デフォルトの名無しさん
2015/12/26(土) 10:18:26.61ID:EXUTS9i+フォートランぶち転がせるかな
0741デフォルトの名無しさん
2015/12/26(土) 10:43:34.57ID:CL7rBGr9残念ながら多いみたいだよ。
>>739
指標化しずらくても大事な事はあるって言う当たり前のことからまずは目を向けようか。
0742デフォルトの名無しさん
2015/12/26(土) 10:47:22.39ID:KNyipM+pwebの記事だけ読んでカタログスペック語っちゃってるってことか
0743デフォルトの名無しさん
2015/12/26(土) 11:33:23.04ID:h8/CI80Sまず「大事なことはあるんだ!(完)」じゃなくて
説明することから始めような?
0744デフォルトの名無しさん
2015/12/26(土) 14:00:14.24ID:JNqWY34w0745デフォルトの名無しさん
2015/12/26(土) 14:17:21.38ID:lwOCx2j3ラーメンタイマーを作るのに態々コンパイラを引っ張り出してくるなんて馬鹿らしい事をするのか?
EXCELのデータを加工するのに、C#使って加工するのか?
0746デフォルトの名無しさん
2015/12/26(土) 14:44:09.10ID:NGJJ2lD8>停止して修正しても同じことができる。
停止したらできないことは多い。君がそのどれにも気付いていないだけ。
気付かないのは、それだけ経験が浅いということ。
君は素人だから仕方ない。だから責めはしない。
しかし自分の無知は自覚しておきなさい。
0747デフォルトの名無しさん
2015/12/26(土) 15:16:22.31ID:cLEQ3vA1言い出すほうがザコっぽいよねいつもw
0748デフォルトの名無しさん
2015/12/26(土) 15:19:49.45ID:h8/CI80Sいっつもこればっかりだよなw
具体的な説明はしない(できない)
説明しないくせに、理解できないのは他人のせいw
0749デフォルトの名無しさん
2015/12/26(土) 15:21:01.87ID:MxaSLHJT修正後の動作確認するには元の実行状態を完全に復元しないと無理だわな。
0750デフォルトの名無しさん
2015/12/26(土) 15:27:36.14ID:MxaSLHJT一旦プログラムを実行中断してしまうとサーバ側が同じチャレンジをしてくれないな。
他にも、実行状態を中断せずに修正して動作確認したいケースは多々ある。
1つも挙げられない人って、プログラマとしてどうなんだろうね?
0751デフォルトの名無しさん
2015/12/26(土) 15:28:32.73ID:h8/CI80S元の実行状態を完全に復元したら、
次の乱数の値は同じものが出現するってこと?
それでデバッグできるってことは、そういうことなんだろうね。
乱数の値が、前の状態によって決まるのであれば、
一番最初の状態を一つ定義するだけで、同じ状態が復元できるのでは?w
0752デフォルトの名無しさん
2015/12/26(土) 15:30:11.50ID:h8/CI80S> 自分の管理下にないサーバとのチャレンジ/レスポンスでのデバッグも
> 一旦プログラムを実行中断してしまうとサーバ側が同じチャレンジをしてくれないな。
では、動的言語にすると、サーバー側は同じチャレンジをしてくれる、というのかね?
0753デフォルトの名無しさん
2015/12/26(土) 16:08:40.09ID:sP1JXdgY仕事の話しないでよ。
0754デフォルトの名無しさん
2015/12/26(土) 16:11:36.35ID:7h5tLOzP0755デフォルトの名無しさん
2015/12/26(土) 16:16:43.64ID:h8/CI80Sほう、言ってみ?
「自分で考えろ!(ドンッ)」
だめだこりゃwwww
0756デフォルトの名無しさん
2015/12/26(土) 17:01:59.36ID:7h5tLOzPAという状況に対処することの必要性を
Aという状況を想定できないおっさんに説明する方法
Bという方法で対処できる事態においてBが有効であるということを
Bを無意識に選択肢から排除して疑問を持たないおっさんに説明する方法
あるいは
端から話を聞く気がないわりにこまめに絡んでくる痛いアスペのおっさんに退場いただく方法
0757デフォルトの名無しさん
2015/12/26(土) 17:13:02.19ID:vJHNtaLIスレタイ嫁
(ここは静的型付の優位性を論じるスレではない)
0758デフォルトの名無しさん
2015/12/26(土) 17:20:46.23ID:gCn4MbmUクソがクソ溜めでクソな話して楽しんでるのに横槍いれんじゃねえ
帰れアスペ野郎
0759デフォルトの名無しさん
2015/12/26(土) 18:20:09.09ID:lipwm7l1CommonLispで>>749-750ができるのはデバッガが充実してるからで、オブジェクト指向は関係無いな。
0760デフォルトの名無しさん
2015/12/26(土) 18:40:19.19ID:AIAsWwFm今でも、できる中年プログラマはマイコンやMSXでBASICとかやってた人なんだろうとは思うんだけど、
かつては金持ちの道楽だったプログラミングが次世代からはいっきに敷居が下がる
「仕事では使えない言語」という評価は、「その言語を使えるレベルの高い人がいない」という人月による奴隷労働の生む現象だけど、
5年もしたら奴隷階級でも、"流行の言語を10代から遊び感覚で使ってきた"、プログラミングネイティブ世代に置き換わる
0761デフォルトの名無しさん
2015/12/26(土) 18:55:24.91ID:h8/CI80S良い指摘だねw
そう。それはデバッガの機能
https://msdn.microsoft.com/ja-jp/library/y740d9d3.aspx
> 次に実行されるステートメントを設定する
>
> デバッガーを中断した後、実行ポイントを移動して、コードの次に
> 実行されるステートメントを設定できます。ソース ウィンドウまたは
> [逆アセンブル] ウィンドウのマージンに表示される黄色の矢印は、
> 次に実行されるステートメントの位置を示します。
>
> この矢印を移動すると、コードの一部をスキップしたり、前に実行した行に戻ったりできます。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 既知のバグを含むコードのセクションをスキップするなどの場合に利用できます。
0762デフォルトの名無しさん
2015/12/26(土) 18:56:29.15ID:OdF2h8JB実は"人間の都合"であって最速最良を追求するならgotoあったほうがいいわけで
つまり性的おじさんの必死で主張してる効率の良さは
下からどんどんコンパイラ最適化でいままさに
人工知能に機械的に喰われてる部分であって。
アセンブラと動的な抽象化の間でなにをのたうっているのかと…
0763デフォルトの名無しさん
2015/12/26(土) 18:58:53.84ID:EXUTS9i+0764デフォルトの名無しさん
2015/12/26(土) 19:01:08.59ID:h8/CI80Sそうなんだよねw
上で俺はマッチポンプって書いたけど、
「静的厨はこういうことを言ってるんだ!」と
自分で言っておいて、それを叩くというわけのわからんことをやってる
0765デフォルトの名無しさん
2015/12/26(土) 19:07:23.46ID:h8/CI80Sエディット コンティニュ
https://msdn.microsoft.com/ja-jp/library/bcew296c.aspx
> Visual Studio 2015 その他のバージョン
>
> エディット コンティニュを使用すると、プログラムが中断モードのときにソース コードを
> 変更できるため、時間を節約できます。 Continue や Step などの実行コマンドを選択して
> プログラムの実行を再開すると、一定の制限の下で、エディット コンティニュがコードの
> 変更を自動的に適用します。このため、デバッグ セッション中にコードを変更できます。
> デバッグ セッションをいったん停止し、プログラム全体を再コンパイルしてからデバッグ セッションを再開する必要がありません。
0766デフォルトの名無しさん
2015/12/26(土) 19:10:09.63ID:OdF2h8JB即座に切り替えて自分で自分に
「そうなんだよね」ワロタ
0767デフォルトの名無しさん
2015/12/26(土) 19:16:55.46ID:EXUTS9i+あとフォートランが死なない理由は速いからと思ってるようだけどどちらかというと遺産が多過ぎるから、老害の使用率が高すぎるからだぞ
そしてこれはシャドーとは言わない
0768デフォルトの名無しさん
2015/12/26(土) 19:37:51.44ID:E3MIEZFa静的型にメリットが無いなら、本来静的型がなくても動く動的型が
わざわざ静的型を取り込むわけ無いということぐらい直ぐにわかるのに
0769デフォルトの名無しさん
2015/12/26(土) 19:40:22.05ID:OdF2h8JB0770デフォルトの名無しさん
2015/12/26(土) 19:54:49.37ID:EXUTS9i+0771デフォルトの名無しさん
2015/12/26(土) 20:01:24.61ID:h8/CI80S他人にそれを判断することは不可能だよ。
(あったら説明して納得させてみいw)
だから思い込みと見て間違いない
0772デフォルトの名無しさん
2015/12/26(土) 20:06:55.31ID:EXUTS9i+それも俺なんでしょ?すぐわかるんだよね…
0773デフォルトの名無しさん
2015/12/26(土) 20:40:10.56ID:NGJJ2lD8CLとSTの両方とも動的型付けだというのは偶然ではないと思うぞ。
OCamlのような実行時型情報を持たない言語/処理系で
実行中に修正して継続実行することは非常に困難であり、
かつ、型の制約が強すぎて修正できる部分は非常に限定される。
修正前後での型の一貫性を保てない修正ができないから。
以上の理由から、動的型付けの利点と言っていいと思うが、どうよ?
0774デフォルトの名無しさん
2015/12/26(土) 20:42:16.15ID:NGJJ2lD8コードの実行中でのコード修正&実行継続と
単なるデバッガ中でのステップ実行の区別もつかない人は
黙ってたほうがいいと思うよ?
0775デフォルトの名無しさん
2015/12/26(土) 21:08:32.92ID:6DkdQBNBエディット コンティニュは 64 ビット コードでは使用できない wwwww
0776デフォルトの名無しさん
2015/12/26(土) 21:09:02.33ID:KNyipM+p0777デフォルトの名無しさん
2015/12/26(土) 21:11:28.36ID:MxaSLHJT動的言語の単なるアクロバットの実用価値がやっとわかって静的言語にも取り込もうとしている現状にやっと気付きはじめたんだねw
実行時変更にメリットがないなら静的型がわざわざ実行時変更を取り込むわけ無いことぐらい直ぐにわかるのにwww
0778デフォルトの名無しさん
2015/12/26(土) 21:16:27.69ID:EXUTS9i+ちなみにこれも俺なんです。すぐにわかるんだよね…
0779デフォルトの名無しさん
2015/12/26(土) 21:16:30.94ID:6DkdQBNBデバッグ セッション中に C# コードに適用できない変更は、次のとおりです。
- 現在のステートメントまたはその他のアクティブ ステートメントに対する変更。
- アクティブ ステートメントには、現在のステートメントを取得するために呼び出される、
呼び出し履歴上の関数内に存在するすべてのステートメントが含まれます。
- ソース ウィンドウ内では、現在のステートメントは黄色の背景で示されます。
その他のアクティブ ステートメント (読み取り専用) は、網かけの背景で示されます。
これらの既定の色は、[オプション] ダイアログ ボックスで変更できます。
- 型のシグネチャの変更
- 以前にキャプチャされていない変数をキャプチャする匿名メソッドの追加。
- 属性の追加、削除、変更。
- using ディレクティブの追加、削除、変更。
- アクティブ ステートメントの周囲への foreach、using、または lock の追加。
じゃあ、なになら出来るんだよwwwwww
0780デフォルトの名無しさん
2015/12/26(土) 21:44:49.52ID:gbQMSnGA>1ステップ前に戻る(ステップ実行の反対の)操作がある
すごいな。
http://d.hatena.ne.jp/mzp/20081225/ocamldebug
ほんとだ。実行時コンテキストはどうやって巻き戻しているの?
0781uy ◆Qawu9.2l1E
2015/12/26(土) 22:25:14.87ID:4ahr08Stお疲れとしか
0782デフォルトの名無しさん
2015/12/26(土) 22:58:18.55ID:lipwm7l1超強力なデバッガを持っているCLやSTだと、絶賛稼働中の環境でも修正できるのが単なるメリットではなく、
そういうやり方も当然あるものとして開発を続けるのが普通、だと考えているのではないか。
根底にあるのは、プログラムを実行する人と開発者が分かれていない、分かれていてもそんなに遠くない関係のままであり続ける(べき)というスタンスなんじゃないかと。
特にSmallTalkは(というよりアラン・ケイが)そういう考え方の元で作られた言語+環境だから、
SmallTalkerにとっては実行時の型情報が重要だし、動的型付けも必須だと思う。むしろ空気のようなもんになっているんじゃないかと。
一方で、実行者にプログラミングの素養を期待しない、開発者は遠くの人、みたいな場合はデバッガなんて実行時にあるだけ無駄だし、
開発者はバグが無いよう細心の注意を払うべきだし、言語はそれをサポートする機能を持つべき、っていう考え方の人もいる。
そういう人は強い静的型付けで型システムが豊かな言語が魅力的に見える。
コードの再利用のために継承を欲しがり、ついでにオブジェクト指向も入れてしまった言語…黙秘します。語るべきじゃない。
0783デフォルトの名無しさん
2015/12/27(日) 00:25:42.92ID:LQildC0d現在では64bitにも相当まで対応してるはず
リリースビルドは動的型と比べて自由度と柔軟性を捨てて速度を選ぶんだから、しょうがない
やってみるとわかるけど、VisualStudioの出来の良さも含めて案外使い物になるよ
0784デフォルトの名無しさん
2015/12/27(日) 00:45:39.53ID:K/y89QOU議論の参考になるか分かりませんが、アラン・ケイが出してた
動的にやれることのメリットとしてはこんなのがあります。
例えば、あるプロジェクトを一年以上続けていて、
沢山の大切な物が出来上がっているとする。
何万もの動いているオブジェクトがあるクラスに、
システムを破壊せずにいくつかのインスタンス変数を追加して、
動的にそれらを再構成する事は出来るだろうか?
ただあくまで彼は早期結合に批判的なのであって、(静的)型に必ずしも反対しているわけではないようです。
きっと遅延結合をサポートできる柔軟で賢い型システムが出てくれば歓迎するでしょう。
0785uy ◆Qawu9.2l1E
2015/12/27(日) 00:50:00.24ID:Dbb+2cjN0786デフォルトの名無しさん
2015/12/27(日) 01:10:47.29ID:si7ncwl4静的、動的に異常にこだわる馬鹿はプロジェクトから排除するべき
っていうことがよくわかったってことだな。
0787デフォルトの名無しさん
2015/12/27(日) 03:45:03.72ID:DLk3aEoT来歴の異なる2つのアイデアに同じオブジェクト指向という名前を使うのはやめて欲しいと思った。批判がぼやけるし、反論もぼやける。
Smalltalkの徹底している(ように見える)メッセージ指向は面白い。
ただ、速度を稼ぎたいっていう需要は相変わらずあるし、速度も安全性も欲しいっていう需要もある。
Smalltalkで頑張るより最初っから速い言語で書く方が楽な部分もある。
>>784
アラン・ケイのその例はちょいとSmalltalk過ぎて、自分の好きな言語でどう言い直せる問題なのかすぐに出てこない。すまん。
0788デフォルトの名無しさん
2015/12/27(日) 10:55:29.62ID:iIeA3jAx0789デフォルトの名無しさん
2015/12/27(日) 17:28:53.36ID:Uc9cUKER0790デフォルトの名無しさん
2015/12/27(日) 17:52:14.76ID:Uc9cUKER>B型の特徴 マイルールで動きわけのわからないこだわり持つ
0791デフォルトの名無しさん
2015/12/27(日) 17:54:46.05ID:6NYNO2+50792デフォルトの名無しさん
2015/12/27(日) 18:22:52.04ID:1oZy+T7E手続き型のA型は実直だけど神経質
おおらかでダイナミックだけど個性的なB型
ハイブリッドマルチパラダイムで最強のAB型
0793デフォルトの名無しさん
2015/12/27(日) 18:55:00.45ID:LQildC0dたしかに、動的型でコメントに型を書くぐらいなら言語の機能でかければいいのにと思う反面、それやると全てに型を書くように言うやつが出て動的の利点が失われるというジレンマ
0794デフォルトの名無しさん
2015/12/27(日) 19:09:57.62ID:qllk89hjA型は他の血液型入れるとすぐクラッシュして死ぬ愚鈍
0795デフォルトの名無しさん
2015/12/27(日) 19:45:26.36ID:/O53e43Epythonのことか…
0796デフォルトの名無しさん
2015/12/27(日) 19:45:47.84ID:si7ncwl4何を言っているのかわからねーと思うが おれも何をされたのわからなかった。。
0797デフォルトの名無しさん
2015/12/27(日) 20:02:57.80ID:r1oeWZPXうお!血液型って変化するんか今更知ったわw
調べたら、O型の人は赤血球ならば他の型へ与えることができるが、逆に血漿は誰にも与えられないのね
https://ja.wikipedia.org/wiki/%E8%A1%80%E6%B6%B2%E5%9E%8B#.E9.81.A9.E5.90.88.E6.80.A7
0798デフォルトの名無しさん
2015/12/27(日) 20:30:46.78ID:1oZy+T7E原始人なんじゃねO型って
0799デフォルトの名無しさん
2015/12/27(日) 20:52:21.13ID:si7ncwl40800デフォルトの名無しさん
2015/12/27(日) 21:29:05.69ID:AYt5UEwrていうか本当に使ってんの?
0801デフォルトの名無しさん
2015/12/27(日) 22:29:14.19ID:NuWA0y2P0802デフォルトの名無しさん
2015/12/27(日) 22:47:34.86ID:g/r0v/P2CLerはともかくSmalltalkerは
一匹やってくるとワサワサ増殖して空気読まないレス連発するので不用意に呼び寄せないで欲しい
0803デフォルトの名無しさん
2015/12/27(日) 23:13:17.05ID:Yse7GotINSObjectを継承して動的に生成され管理されるクラスにデータ入れて渡すから
言語的に言語仕様で定められた"型"の判別がどーとかより
現在使ってるフレームワークで"クラス"がどう定義されてるかになって
話が言語の方にこないっつか。
>>784の想定してる問題がよくわからんがクラスで受け渡してるものに
なにか新しいデータ要素を足すってのは、Obj-C的には
トラックの荷台に新しく置くものが増えるぐらいの感じで
別にそれでどこか別の部分に問題が出たりするシステムの方が
逆によくわからない。それの積み下ろしに関係してないとこはもともと利害ないし
新しく積み下ろす関連のとこだけ直せば動作に問題出ないし。
ちなみにクラス自体は内部的にはポインタ渡しのメモリブロック扱い。
0804デフォルトの名無しさん
2015/12/27(日) 23:29:58.30ID:f7J7LqC10805デフォルトの名無しさん
2015/12/27(日) 23:48:44.46ID:K/y89QOU>トラックの荷台に新しく置くものが増えるぐらいの感じ
論よりコードで、とりあえずSmalltalkの>>680をObj-Cでやるとどんな感じ?
0806デフォルトの名無しさん
2015/12/27(日) 23:54:26.71ID:TQTcd7lL0807デフォルトの名無しさん
2015/12/28(月) 00:03:12.16ID:CKLu8anbお薬ちゃんと飲んでますかー?
0808デフォルトの名無しさん
2015/12/28(月) 00:11:06.21ID:02492xEu低レベルと見下した意味での「ゴキブリ」なら、解するのもわけないのでは?
そもそも、解する、解さない以前に気にする必要自体ないでしょう? 役立つ情報がないんだから。
得体が知れないという意味なら、Smalltalkはすごくシンプルな言語なので(マクロがない分、Lispよりシンプル)、
さして苦労はせずに読むことくらいはできるようになれますよ。
http://amber-lang.net/learn.html
0809デフォルトの名無しさん
2015/12/28(月) 00:12:56.26ID:KeqGm6Duああいうトイコードを書いてはニヤニヤしちゃってるのかな
0810デフォルトの名無しさん
2015/12/28(月) 00:20:38.75ID:02492xEu基本的にSmalltalkのコードはシステムブラウザを使って書くので、こういうことをあえてすることはないですね。
ただ、内部的にはやはりこうした動きなのと、動的遅延結合性の要素がそれなりに盛り込まれているので
こういうことが無理なく出来る言語なら、使ってもストレスはあまり感じずに済むかなとは思います。
0811デフォルトの名無しさん
2015/12/28(月) 00:24:42.85ID:ESQO+1YWホントにこれ
Lispはmathematica様の原料だからわからんでもないけど
実際どこで役立ってるのか紹介せずにアンテナ弱いとかの煽りしか飛んでこないのホント害悪
0812デフォルトの名無しさん
2015/12/28(月) 00:38:13.00ID:w2hqGr/uせめてルンバがLispで動いている(噂レベル)とか、Yahoo!Storeが当初Lispで書かれてたくらいは出そうよ
0813デフォルトの名無しさん
2015/12/28(月) 00:40:37.42ID:i875NmCwエラーが分かるのが遅くなるだけ
だいたい粒度の問題というものは常々なんにでも付きまとっていて
要するに、オブジェクトという細かな粒度でそんな機能は必要とされてないのだ
>>309でも指摘されているだろ
0814デフォルトの名無しさん
2015/12/28(月) 00:45:15.64ID:ESQO+1YW0815デフォルトの名無しさん
2015/12/28(月) 00:47:03.54ID:ESQO+1YWこれは叩かれても致し方なし
0816デフォルトの名無しさん
2015/12/28(月) 00:54:33.76ID:ESQO+1YW0817デフォルトの名無しさん
2015/12/28(月) 01:07:18.94ID:02492xEuRubyの処理系のひとつがSmalltalkで書かれているとかではどうですか?
http://maglev.github.io/
言語処理系では他に SlateとかNewspeakとか、Scratch(1.4まで)とかありますが、まあ、
Smalltalk よりマイナーな言語だと挙げても意味ないかとも。
スマホ向けソフトでも、そう多くはないですが Smalltalk で書かれているものがあります。
http://www.drgeo.eu/
ネットサービスでPharoを使っているとかならスタートアップでいくつかあるのですがやはりマイナーな用途ですよね?
http://pharo.org/success
http://www.sorabito.com/allstocker.html
メジャーどころに買い取られた(まあ実際は飼い殺し)のだと、
Twitterに買われたDabbleDB https://www.youtube.com/watch?v=MCVj5RZOqwY とか
VMwareに買われたGemStone https://www.vmware.com/jp/company/acquisitions/gemstone とか
基幹だと
OOCL の GemStone活用 http://smalltalk.cincom.jp/main/successes/shipping/ とか
J.P.モルガンの VisualWorks活用 http://smalltalk.cincom.jp/main/successes/financial-services/ とか
が有名どころです。参考まで。
0818デフォルトの名無しさん
2015/12/28(月) 01:09:54.97ID:KeqGm6Du(2)プログラマが本番稼働中のシステムに直接パッチ当てることが許されてて
(3)Smalltalkで開発されてる
(1)と(2)が両立するだけでも信じ難いレベルなのに、3つ全部揃ってるってどんだけレアなの
0819デフォルトの名無しさん
2015/12/28(月) 01:36:15.43ID:02492xEuSmalltalk が目指す無停止っていうのは、サーバーの無停止とはちょっと意味合いが違うんですよね。
インターネットが(ノードレベルでは停止することはあっても)全体として無停止とか、そういうのに似ています。
OS だと、アップデートで再起動がいらないとか以前に、そもそも再起動を想定しないシステム作りとかそういう方向性です。
0820デフォルトの名無しさん
2015/12/28(月) 01:56:46.03ID:ESQO+1YWすごいなあこれ
Smalltalkを勉強するメリットはあんまり伝わってこなかったけど、Smalltalkに関する情熱はすごくよく伝わってきた
ID:02492xEuさんの主張がまだよく分からないのですが、Smalltalkは学ぶべき実用言語なのですか?それとも敬意を払うべき古典なのですか?それまた考え方の基礎として知っておくべき教養なのですか?
0821デフォルトの名無しさん
2015/12/28(月) 02:01:33.32ID:9w43khSUどいつもこいつの禿様、オブジェクト指向様と拝んでたくせに
糞共が
0822デフォルトの名無しさん
2015/12/28(月) 02:05:36.29ID:9w43khSU0823uy ◆Qawu9.2l1E
2015/12/28(月) 03:03:19.88ID:9q5IGdq7その言語が凄いってわけじゃなくて、
その言語を得意としてる奴の中に凄いのが混ざってただけ
人によって使いやすい言語構文は違うというuyの主張
0824デフォルトの名無しさん
2015/12/28(月) 03:04:13.01ID:8sKUVUhj0825デフォルトの名無しさん
2015/12/28(月) 03:06:45.15ID:02492xEuSmalltalkは我々使い手にとっても「来なかった未来」なので、それが何かを知らない人があえて学ぶ価値はないです。^^;
ただ処理系のアップデートは続いていますので、よく知らないくせに「(役目を終えた)教育向け」とか「さび付いた
言語」とかレッテルを貼って馬鹿にされると、いささかむかつきますけどね。
歴史的には、WIMPなGUIとか、MVCとか、IDE、XP/TDD/アジャイルとか、最近ではTraitsとかClassboxesとか
流行になる程度に影響がある技術や手法のゆりかごや先駆けみたいな存在ではあるので、
それらの出自やメリットデメリット、デメリットに対して試みられた対策をきちんと知っておこうという意識高い系には
教養・基礎知識として学習しておくのはありかと思います。
あと、徹底した動的結合性の(失敗して、アラン・ケイに見捨てられたりはしましたが)チャレンジの一応の成果ではあるので、
繰り返し同じ失敗をしないための反面教師であったり、さらにこのチャレンジを進めるためのたたき台としては
大いに学ぶ価値はあるかと。もちろんそこまで背負い込まなくても、落ち穂拾いとか宝探し(ゴミあさり?)感覚で、
まだ手垢の付いていない有用な技術や機能、ノウハウのネタ元を探す目的で学ぶというスタンスも面白いと思います。
0826デフォルトの名無しさん
2015/12/28(月) 03:09:49.59ID:8sKUVUhjSmalltalkはOSとIDEとエディタと言語を統合させてしまうという
間違った設計をしたため(言語ではなく)運用面で柔軟性にかける言語
0827デフォルトの名無しさん
2015/12/28(月) 03:10:28.44ID:8sKUVUhjSmalltalkはOSとIDEとデバッガと言語を統合させてしまうという
0828uy ◆Qawu9.2l1E
2015/12/28(月) 03:23:50.08ID:7qtNlkA2黎明期に作られた言語なんて、何と何を分離したらいいか分からなかったんだろう
その中でたまたま目瞑って石投げたら当たったみたいな言語が生き残った感じ
0829デフォルトの名無しさん
2015/12/28(月) 03:31:14.07ID:8sKUVUhjSmalltalkはこういうことができる!これは動的言語だからできるんだ。と
言い出すが、これは他の動的言語では出来ず。
IDE(エディタ+デバッガ)の機能だよねそれ?
Visual Studioでもデバッグ中にソースコード編集できたり
好きな行から再実行とかできるから、静的言語でも実現可能な機能だし。
https://msdn.microsoft.com/ja-jp/library/y740d9d3.aspx
> 次に実行されるステートメントを設定する
>
> デバッガーを中断した後、実行ポイントを移動して、コードの次に
> 実行されるステートメントを設定できます。ソース ウィンドウまたは
> [逆アセンブル] ウィンドウのマージンに表示される黄色の矢印は、
> 次に実行されるステートメントの位置を示します。
>
> この矢印を移動すると、コードの一部をスキップしたり、前に実行した行に戻ったりできます。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> 既知のバグを含むコードのセクションをスキップするなどの場合に利用できます。
それで、エディタやデバッガの機能じゃなくて、動的言語どれにでもあてはまる
動的言語の特徴は何なの?というと結局答えは出てないし。
0830デフォルトの名無しさん
2015/12/28(月) 04:07:47.35ID:02492xEuはて。それこそ Smalltalk をたんなる処理系と誤解した人が好んで貼りがちなレッテルのひとつですよね?
Smalltalk は Smalltalk-72 のごく初期の時点で今で言うスクリプト言語のようなスタイルでこそありましたが
その後は 70年代を通じ、一貫して OS(ダイナブック向けを想定していたので風変わりではありますが)
として作られたソフトウエアです。
http://web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24#
仮想マシンベースになってから、移植性が高まり他の OS 内で仮想環境(VMwareのような)として
動作できるようになったのは処理系や IDE が固まった後の話であり、処理系や IDE は、OS の機能の一環として
その OS 上に当然のごとく構築されたものにすぎません。
OS の構造を、将来他の OS の仮想環境のひとつとして機能させるためにモジュラリティーを持たせておく
設計にしなかったから駄目だ、という指摘なら分かりますが、ある OS 上に(それ自身を記述する)処理系や IDE を
構築したことを設計ミスと断じるのは、いささか無理があるように思いますがいかがでしょう。
もちろん現状で専用のハードを持たない以上、他の OS を渡り歩く仮想環境として運用されることが運命づけられた今、
モジュラリティーに欠ける点が言語処理系として振る舞う際に運用上のデメリットとして明らかなことには異論ありません。
0831デフォルトの名無しさん
2015/12/28(月) 04:12:26.80ID:WNJ7FWNN> その言語を得意としてる奴の中に凄いのが混ざってただけ
その「凄いの」がなぜその言語を選択したのかを無視して
目先の流行の表層だけを見てその背後にある本質に目を閉ざしているから
君はいつまでも初心者レベルだということにいい加減気付け。
0832デフォルトの名無しさん
2015/12/28(月) 04:20:58.33ID:WNJ7FWNN特定の言語機能が単体で可能なことしかその言語機能の利点と認めないことの愚かさに気づかないの?
プログラミング言語では複数の言語機能の相互作用で可能になることも多いし、
STやCLの利点は言語と環境とライブラリが総合的にデザインされているところ。
君にはその利点を理解する能力が欠如している。それだけの話。
> IDE(エディタ+デバッガ)の機能だよねそれ?
静的型付け言語向けに作ってみたら制限だらけの劣化コピーになっちゃいました、という実例だよなー。
0833デフォルトの名無しさん
2015/12/28(月) 04:24:42.29ID:WNJ7FWNN>それで、エディタやデバッガの機能じゃなくて、動的言語どれにでもあてはまる
>動的言語の特徴は何なの?というと結局答えは出てないし。
じゃあ、エディタやコンパイラや型推論の機能じゃなくて、
静的型付言語どれにでもあてはまる静的型付言語の特徴は何なの?
FORTRANにもOcamlにもCにも当てはまる利点を挙げてみろよw
0834デフォルトの名無しさん
2015/12/28(月) 04:28:38.00ID:WNJ7FWNN言語設計が何もわかってないってことだw
0835デフォルトの名無しさん
2015/12/28(月) 04:42:40.88ID:WNJ7FWNNもちろんemacsなんて使ってないよね?
もちろんIDE(「統合」開発環境)なんて使わないよね?
記述対象の言語を想定したエディタ機能なんて使わないよね?
シンタックスハイライトも構文チェックもフォーマッタも使わないよね?
ソース上の識別子の型情報を見る機能なんて利用しないよね?
cabalやgemのような対象言語に特化したパッケージ管理ツールなんて使わないよね?
仮想マシンのディスクイメージを構成するために言語ごとのランタイム環境を指定して
自動的にデプロイしたりしないよね?
言語と環境とライブラリを統合することが間違いなら、上記はどれも当然のことだよね?
0836デフォルトの名無しさん
2015/12/28(月) 04:44:48.24ID:8sKUVUhj> 静的型付言語どれにでもあてはまる静的型付言語の特徴は何なの?
システム全体のモジュールの結合性、インターフェースの不一致を
実行前に検出することができる。
0837デフォルトの名無しさん
2015/12/28(月) 04:45:33.44ID:WNJ7FWNNCで?
0838デフォルトの名無しさん
2015/12/28(月) 04:47:15.02ID:8sKUVUhj> もちろんemacsなんて使ってないよね?
emacs使ってないし、それは関係ない。
emacsはC言語で作られているが、それはそれとして
emacsはOSとは統合されていない。IDEも一緒。
OSと言語は統合してはならない。
OSはSmalltalk以外の言語も動くものでなければならない。
そしてOSはいろんな言語で作られたアプリを相互に連携させて
動かす事ができないといけない
0839デフォルトの名無しさん
2015/12/28(月) 04:48:34.11ID:8sKUVUhjできるよw
言っておくけど、あんたが出来ない例を示したとしても、
全体的にできるならば「できる」とみなす。
どんなものでも例外はある。
0840デフォルトの名無しさん
2015/12/28(月) 04:51:56.55ID:WNJ7FWNN> OSと言語は統合してはならない。
まさか、Unixなんて使ってないよね?
0841デフォルトの名無しさん
2015/12/28(月) 04:54:39.35ID:8sKUVUhjUnixはOSと言語は統合されていない。
0842デフォルトの名無しさん
2015/12/28(月) 05:00:26.10ID:8sKUVUhj好みのエディタを使えなければいけない。
言語専用のエディタを用意するのは構わないが、
その他のエディタ、例えばメモ帳であっても
プログラミングできないといけない。
SmalltalkはSmalltalk専用の使い慣れていないエディタを
強要されてしまう。こういう密結合なシステムはよくない。
柔軟な変更に耐えられなくなる。
言語ではなくて、システム全体の柔軟性が欠けている言語
0843デフォルトの名無しさん
2015/12/28(月) 05:03:48.42ID:WNJ7FWNNエディタもSmalltalk専用のエディタなんて使う必要ないし、
君、本当にSmalltalk使ったことあるの?
0844デフォルトの名無しさん
2015/12/28(月) 05:07:09.65ID:8sKUVUhjそしてソフトウェアの開発は複数の人でやるものである。
つまりはgitを使う。マージを行う。
(内部的に)ソースコードの差分を出してパッチを当てるような形で
複数の人が書いた複数のコードを統合していく。
いつからバグが入ったのかかを調べるために、特定のコードに巻き戻して再実行したり
複数のブランチで複数のバージョンを平行して開発したり
こういった当たり前の作業がSmalltalkでは非常にやりづらい。
言語ではなくて、システム全体の柔軟性が欠けている言語
0845デフォルトの名無しさん
2015/12/28(月) 05:09:49.64ID:WNJ7FWNNSmalltalk環境上でも仮想マシンの仕様に則ったバイトコードを出力するコンパイラを書けばいいだけだし。
例えば http://tinlizzie.org/ometa/ とかあるし。
そういうこと知った上で
「Smalltalkは言語とOSが統合されてるからだめ」
「UnixはCと統合されていない」
とか言っちゃうのかなあ?
0846デフォルトの名無しさん
2015/12/28(月) 05:10:40.73ID:WNJ7FWNN0847デフォルトの名無しさん
2015/12/28(月) 05:17:53.48ID:WNJ7FWNN例えば、Smalltalkはお客さん根性全開なプログラマーには向かない。
自分で解決する気はないが文句を言っておけば誰かが解決してくれると思っている人には向かない。
0848デフォルトの名無しさん
2015/12/28(月) 09:09:02.56ID:tjw+19nB>>845のリストにある言語もどれだけマトモに動くか分からんし
そんで例えば、他のいろんな言語と同じくソースはgitで管理します、CIツールにJenkins使います、アプリはDockerで動かします
ってなったら、このスレで書かれてるSmalltalk固有のメリットって何一つ発揮できないと思うよ
0849デフォルトの名無しさん
2015/12/28(月) 09:29:47.14ID:teguHjPLc や javascriptくらいスモールに作っておけばツールなんかは後から誰かが作ってくれる。
0850デフォルトの名無しさん
2015/12/28(月) 09:37:56.90ID:WNJ7FWNNどうしてこのスレで書かれてるSmalltalk固有のメリットって何一つ発揮できないと思うのかな?
むしろDockerなどで遠隔サーバに自動デプロイした時のデバッグで
Smalltalkのように問題発生時に自動的にスナップショットを保存して
実行状態を手元の開発機でほぼ完全に再現できる環境はとても便利なんだけど?
0851デフォルトの名無しさん
2015/12/28(月) 09:42:56.78ID:WNJ7FWNN「生まれてこのかたウンコしか食ったことない人は
他人がどんなに旨い料理を出してきても
自分が気に入っている最高のウンコと見た目が違っているという理由で
こんなものが旨いわけがないと思ってしまうのだろうな」
と思わざるをえないw
0852デフォルトの名無しさん
2015/12/28(月) 09:43:55.33ID:WNJ7FWNN0853デフォルトの名無しさん
2015/12/28(月) 09:45:55.52ID:MpvL/SZu0854デフォルトの名無しさん
2015/12/28(月) 09:46:14.25ID:tjw+19nBそれじゃハードウェアやネットワーク障害が起きた時に別のノードに切り替えられないじゃん
使い方間違ってるよ
0855デフォルトの名無しさん
2015/12/28(月) 09:55:09.76ID:MpvL/SZu0856デフォルトの名無しさん
2015/12/28(月) 09:59:04.88ID:teguHjPLそういう傲慢さが見える。
0857デフォルトの名無しさん
2015/12/28(月) 12:16:47.06ID:VijL79y/> むしろDockerなどで遠隔サーバに自動デプロイした時のデバッグで
だからDockerがあれば十分でしょw
つーか、自動テストしてるんだよね。だから、同じ状態を作るのは簡単。
テストを再実行するだけでいい。
だいたいさ、デバッグっていうのはバグでおかしくなった "原因" を
取り除く行為であって、バグでおかしくなった "状態" を修復することじゃない。
バグが起きたあとの情報を保存しても意味ないんだよ。
具体例出す? バグで100を加える所に、200を加えてしまった。
数値がおかしい!と気づいた時には、もう手遅れでその状態を保存することに意味は無い。
異常な状態になる前を保存するならまだ意味はわかるけどさ。
異常状態になったら、その結果を破棄して、最初から同じことを繰り返す。
つまり自動テストな。これが必要なものであって、異常データの保存じゃないから。
Dockerもそう。Dockerは今の状態を保存するものではなくて、
Dockerfileという定義ファイルから、ゼロの状態から同じ実行環境を作り出すもの。
0858デフォルトの名無しさん
2015/12/28(月) 12:35:09.10ID:Tl4NM7Enネクロマンサーもネクロマンサーでみんながそれに興味ないのにムカつくのは分かるけど、いくらその死体が高貴だからと言って死んでるのを認めずに生者の世界に持ち込むもんじゃない
0859デフォルトの名無しさん
2015/12/28(月) 13:30:49.05ID:WNJ7FWNN> テストを再実行するだけでいい。
ああ、やっぱり問題をまるで理解していないw
同じ状態をつくるのは本当に簡単なのかな?
簡単って言ってるうちはド初心者だよw
0860デフォルトの名無しさん
2015/12/28(月) 13:35:19.93ID:VijL79y/理解してないのはお前だろ。
> 同じ状態をつくるのは本当に簡単なのかな?
同じ状態を作れないとテストにならん。
バグった状態のデータを持ってこられても意味ない。
同じ状態になる手順を再現できんとバグの修正なんぞできん。
それにそもそも異常な状態を保存した所で
意味は無いといったばかりだ。
> 簡単って言ってるうちはド初心者だよw
またいつものやつだねw
「俺が正しい、なぜならば・・・その説明はしない!」
0861デフォルトの名無しさん
2015/12/28(月) 13:35:24.50ID:WNJ7FWNN「わーい、最新技術だー」とか飛びつくんでしょ?
くすくす
0862デフォルトの名無しさん
2015/12/28(月) 13:37:51.01ID:VijL79y/自分で、Dockerを持ってきて、Dockerの話に
俺がついてこれるもんだから、
自分が持ってきた最新技術(笑)を叩き始めたな。
0863uy ◆Qawu9.2l1E
2015/12/28(月) 13:44:54.53ID:FI1ndW8l0864uy ◆Qawu9.2l1E
2015/12/28(月) 13:45:25.55ID:KRgYgwWB0865デフォルトの名無しさん
2015/12/28(月) 13:56:26.18ID:Ieq5nvcSそりゃそうだろ。それが本当に最新技術なのかはさておき偉大なる歴史上の死人から得るものは使うだろ
ただ、まるでその人がまだ現役であるかのように語るから話がこじれるわけで
0866デフォルトの名無しさん
2015/12/28(月) 14:01:17.54ID:gtimbSrX>Unix環境上でシステムコールの呼出し規約を守れば色々な言語のコンパイラを使えるのと同じように、
>Smalltalk環境上でも仮想マシンの仕様に則ったバイトコードを出力するコンパイラを書けばいいだけだし。
ふーん。そーなんだー。
で、出てきた例がこれ
>例えば http://tinlizzie.org/ometa/ とかあるし。
ショボすぎるw
Unixでどれだけの言語が動くと思ってんだ
絵に描いた餅で対抗しようとすんな
誰も使ってないSmalltalk環境でSmalltalkの為だけの仮想イメージを作れても意味ないんだよ
色んな言語の色んなアプリが動くLinuxで作れることに価値がある
0867デフォルトの名無しさん
2015/12/28(月) 14:22:51.43ID:WNJ7FWNN> 同じ状態を作れないとテストにならん。
で、サーバ内のプログラムの実行コンテキストがどういう状態だったかをどうやって知るのかな?
どういう状態だったかがわかったとしてもそれを実行コンテキスト上に再現するのは簡単じゃないけどなw
それにしても「同じ状態をつくる」なんて簡単に言っちゃうなんて、
君はプログラミングを習いはじめて3秒目ぐらいの初心者かい?
初心者としてもバカすぎてお話にならないw
0868デフォルトの名無しさん
2015/12/28(月) 14:27:53.96ID:WNJ7FWNN君の言う通りだよ。Smalltalkはもう死んだということで結構だよ。
だから君は消費者としてMSやAppleの開発環境でモンスタークレーマーになっていなさい。
君はただ上を向いて口をポカーンと開けて、処理系開発者様がスプーンで食べ物を与えてくれるのを
ブーブーと文句を言いながら待ち続けていなさい。
間違ってもプログラマーなんて名乗らないように。
0869デフォルトの名無しさん
2015/12/28(月) 14:35:23.75ID:i875NmCw世間で使われてないということは現実に合っていないということ、これが全て
Smalltalkの人は現実の生態系の話を持ちだしてアレコレ言うが、それはマヤカシで
そんなに現実に有っているならもっと使われているはずということ
つまりは生態系云々の話はプロセスとかサービスとかサーバーとか
そういう大きな粒度で扱う物事であってオブジェクトのような小さな粒度に持ち込んでも
現実に合っていない、人間社会の仕事の流れにマッチしていない、だから使われない
極端な話、1+1のようなプリミティブな計算に生態系のような壮大な理屈は必要ない
ということは、バカにでも分かる
何度も言うが現実に合っていないから使われていないのだ
これはまさに一般的なサラリーマンの家庭に4トントラックを売り込んで居るようなもので
生活スタイルにマッチしていないから売れないし、そんなことは当たり前でバカにでも分かる
マッチしていれば売れるし、マッチしていなければ売れない
大きさとか、粒度とか、そういう問題は何にでも存在していて、ラジコンを拡大しても乗用車にはならない
ラジコンにはラジコンのやり方、乗用車には乗用車のやり方がある
そんなバカにでも分かる簡単なんことが分からないのが、このスレで暴れているSmalltalker
こんな調子だから世間でSmalltalkは使われてないし
使われていないのは現実にマッチしていないから、ということすらわからない
現実世界の生態系を模範したつもりが、粒度やスケールを間違っていてアンマッチになった悲しい言語
0870デフォルトの名無しさん
2015/12/28(月) 15:00:43.88ID:kIejf3VS便利を求める奴はプログラマーじゃないということ?
0871デフォルトの名無しさん
2015/12/28(月) 15:06:42.69ID:VijL79y/> で、サーバ内のプログラムの実行コンテキストがどういう状態だったかをどうやって知るのかな?
> どういう状態だったかがわかったとしてもそれを実行コンテキスト上に再現するのは簡単じゃないけどなw
だから実行された後の状態を保存したって、何の意味もないだろ。
おかしくなったデータを再現したって、それでどうするんだよ。
ログって知ってるか?ログって。デバッグするためには、
実行結果じゃなくて、実行の仮定が記録されてないと意味ないんだよ。
だいたい、いつどうやってデータ保存するんだ?おかしくなったデータを
保存しているサーバーに入って、実行プロセスを停止してデバッグでも始めるのか?
俺なら普通にデータベースのデータ見るわw
0872デフォルトの名無しさん
2015/12/28(月) 15:10:28.69ID:VijL79y/> それにしても「同じ状態をつくる」なんて簡単に言っちゃうなんて、
同じ状態を作るのが簡単なんて言った覚え無いけど?w
お前はすぐに思い込む、俺が言ったことにするよな?
俺が言ってるのは、同じ状態を作っても、それでデバッグするのは難しいってこと。
状態をすべてのリアルタイム記録し続けてるわけじゃないだろ。
バグを実行して、おかしくなったデータの状態を取るのが精一杯だろ。
(ログは状態の一部とはいえ、記録し続けてるからデバッグの役に立つ)
それと同じ状態を作るのが難しかろうが、それをやってバグになる手順を再現できないとダメ
難しいから何? 難しいのをやるのがプロってもんだ。
0873デフォルトの名無しさん
2015/12/28(月) 15:17:13.08ID:pElGsOOM>論よりコードで、とりあえずSmalltalkの>>680をObj-Cでやるとどんな感じ?
Objective-Cはsmalltalk式のクラス取り回しができるCだから
NSObjectのxを宣言してメソッドも値もない空のオブジェクト作って〜から
>>666の「そのままデバッガで〜」辺りまでは書き方違うだけでいっしょかなぁ。
動的にシステムデバッガ?でやらないで段階ごとにコンパイルしながらだけど。
むしろそのあたりまでは>>666のなにが他の言語だとできないのかがピンとこない。
例外が〜あたりはメソッドだけ書いてreturn @"quuuex"とかしとけばいいのかしら…
「xをXに〜」あたりはデバッガでクラス名を一括で変えてるってこと?
永続化はたぶんcoredataフレームワークあたりだろうけどiOSアプリ程度だと
システムのwillterminateメッセージに対応して最終情報をセーブぐらいで済んでるから
あんまり使ってる人見ないなぁ…
coredata自体はレジュームとかiOSの背後に回ったアプリのフリーズドライ
(休眠アプリを圧縮してテンポラリ退避してメモリ空ける)でOSには大規模に使われてるけど。
0874デフォルトの名無しさん
2015/12/28(月) 15:26:59.27ID:VijL79y/それはSmalltalkプロセスのメモリ内だけの話。
データはデータベースに保存する。
RDBMSだったりNoSQLだったりAmazonのs3だったり。
Smalltalk内だけプロセスの状態を保存できても意味は殆ど無い。
0875デフォルトの名無しさん
2015/12/28(月) 15:32:46.87ID:MpvL/SZu0876デフォルトの名無しさん
2015/12/28(月) 15:40:15.68ID:2PxLG9dT> 同じ状態を作るのが簡単なんて言った覚え無いけど?w
> お前はすぐに思い込む、俺が言ったことにするよな?
ウ ソ つ き m9( ̄ー ̄)
>>857
>>>850
>> むしろDockerなどで遠隔サーバに自動デプロイした時のデバッグで
>
>だからDockerがあれば十分でしょw
>
>つーか、自動テストしてるんだよね。だから、同じ状態を作るのは簡単。
>テストを再実行するだけでいい。
0877デフォルトの名無しさん
2015/12/28(月) 15:41:16.89ID:on1WoP30> ということは、バカにでも分かる
バカだからこそ、そう「分かる」のだよ
0878デフォルトの名無しさん
2015/12/28(月) 15:48:25.44ID:VijL79y/おや?w
「自動テストしてるから」って文字が見えない?
自動テストしてるから同じ状態を作るのが簡単って言ったんだよ?
あんた、自動テストしてるのに、同じ状態作れないの?
そして自動テストをしていなければ、同じ状態を作るのは大変だよ?
テストコードを書いてテストデータを用意しなければいけない。
でもそれは、プロなら当たり前にやることなんだよね。
0879デフォルトの名無しさん
2015/12/28(月) 16:07:25.43ID:5gREh2gGいろいろ説明してもらっているのをむげにするようで申し訳ないのですが、どうも齟齬があるようなのと、
それを含め「論」より「コード」の方がはっきりするので、Objective-C の動作するコードを示してもらえますか?
もしおっしゃるとおり Objective-C が Smalltalk と同じようなことを単に書き方が違うだけで書けるのなら、
たかだか 2〜30行程度だと思うので、ぜひ、お願いします。デバッガでの作業と永続化は無視して残りの
> なにが他の言語だとできないのかがピンとこない
という部分をベタに main に書いてもらってかまいません。忠実でなくとも、インスタンス特異的なメソッドおよび
プロパティの動的追加、そのインスタンスに特異的なクラスに名前をつけて参照できるようにする手続きを
新たに書き下ろしもらうのでもかまいません。よろしくお願いします。
0880デフォルトの名無しさん
2015/12/28(月) 16:09:29.00ID:ylUAFX7e動的言語の話題になってからはずっと傍観してたが、もう業界全体が狂ってるな!
0881デフォルトの名無しさん
2015/12/28(月) 16:12:08.36ID:VijL79y/> という部分をベタに main に書いてもらってかまいません。忠実でなくとも、インスタンス特異的なメソッドおよび
> プロパティの動的追加、そのインスタンスに特異的なクラスに名前をつけて参照できるようにする手続きを
> 新たに書き下ろしもらうのでもかまいません。よろしくお願いします。
もちろん、静的言語だからソースコードを
修正して対応するのも全然OKですよね!
0882デフォルトの名無しさん
2015/12/28(月) 16:16:22.55ID:VijL79y/http://doloopwhile.hatenablog.com/entry/20090705/1275175768
> しかし「Pythonで特異メソッドはこう書く!」といった記事はそれなりに見かけますが、
>
> 「Pythonで特異メソッドを使えばこんなにハッピーですよ!」という記事は見たことがありません(僕は)。
>
> 新しいメソッドが必要なら、クラスを継承して新しいクラスを作ればいいだけなので、特異メソッドはさほど重要ではないのかもしれません。
ワロタw
全くもってそのとおりなんだよなw
0883デフォルトの名無しさん
2015/12/28(月) 16:29:19.49ID:MpvL/SZu0884デフォルトの名無しさん
2015/12/28(月) 16:33:18.43ID:5gREh2gG横ですが、
自動テストで再現できる程度のバグなら、Smalltalkでもいちいちイメージを保存する必要はないと思います。
自動テストでは出てきにくい、めったに出会えないバグに出くわすことってありますよね。
あまり適切な例を思いつきませんが、たとえば100時間動かさないと出ないバグとか。
そういうのを捕まえて潰すときに実効コンテキストがオブジェクトでその永続化もデフォになっていると助かるんです。
0885デフォルトの名無しさん
2015/12/28(月) 16:39:23.46ID:f/yDa8Ky0886デフォルトの名無しさん
2015/12/28(月) 16:40:26.91ID:5gREh2gGいえ、この方は Objective-C のランタイムの柔軟性に言及しておられるので、
当方としては、それがどの程度のものかに大変興味があり、できれば main に過程を順次記述していただきたいところです。
C# にはこのような動作はいっさい必要ないことを表明していただけているので、お手を煩わせる必要はなさそうです。
ありがとうございます。
0887デフォルトの名無しさん
2015/12/28(月) 16:41:37.60ID:MpvL/SZu0888デフォルトの名無しさん
2015/12/28(月) 16:46:15.15ID:pElGsOOM「えっ?スマホからコードを!?」
だいたいそんな感じ。
昨日もテキストエディット開いたけどめんどくさくなって寝た。
https://developer.apple.com/jp/documentation/ObjC.pdf
0889デフォルトの名無しさん
2015/12/28(月) 17:09:04.61ID:VijL79y/> あまり適切な例を思いつきませんが、たとえば100時間動かさないと出ないバグとか。
100時間待たないとテストできない事自体が良くないだろ?
待たずにできるような設計にするんだよ。
0890デフォルトの名無しさん
2015/12/28(月) 18:04:56.19ID:2PxLG9dT待たずにできるような設計をしたらメモリリークは絶対に発生しないのか?
いいかげん自分のみっともなさに気付け
0891デフォルトの名無しさん
2015/12/28(月) 19:23:32.98ID:ekUA2Lsj何時頃からヒープ使用量が増えてるのか、gc発生頻度はどのくらいか等の時系列データによって
どれだけの事が分かるか
逆に落ちた時のスナップショットだけあっても仕方無かろうが
それに、今時サーバ機なら256GBとかメモリ乗ってんだけど、
それがメモリリークで落ちた時の仮想イメージを
開発機で動かしてステップ実行すんの?
ステップ実行したいからサーバ機と同じメモリを開発機に下さい、って?w
0892デフォルトの名無しさん
2015/12/28(月) 21:42:04.14ID:VijL79y/メモリリークの話なんて全くしてないんだけどw
一体どこから出てきたのやら。
0893デフォルトの名無しさん
2015/12/29(火) 06:19:00.32ID:SDUTcqS5「ぼくはウソつきな上に馬鹿です」
0894デフォルトの名無しさん
2015/12/29(火) 07:07:46.23ID:pIdKf0tH説明できなかったら、逃げたと思ってください!
0895デフォルトの名無しさん
2015/12/29(火) 07:30:34.54ID:5QScXVkF0896デフォルトの名無しさん
2015/12/29(火) 07:52:05.41ID:S7hPg+te「あーだこーだそーだ!」
つまりどういうこと?
「わからないのか?w」
0897デフォルトの名無しさん
2015/12/29(火) 08:23:56.16ID:/0pFLROb0898デフォルトの名無しさん
2015/12/29(火) 10:25:20.46ID:w25+nhsP0899デフォルトの名無しさん
2015/12/29(火) 10:42:36.95ID:S7hPg+te一目瞭然だろw
最初に話を始めたのは>>890だな。
892 自分:デフォルトの名無しさん[sage] 投稿日:2015/12/28(月) 21:42:04.14 ID:VijL79y/ [11/11]
>>890
メモリリークの話なんて全くしてないんだけどw
まったくもってその通りだなw
0900デフォルトの名無しさん
2015/12/29(火) 11:02:19.92ID:pO0KAO0+メモリリークの原因を探すためにはスナップショットのほうが数段便利だ。
実行中のサーバを止めることなくスナップショットだけ取って手元で復元すれば
どのオブジェクトがメモリを占有していて、
そのオブジェクトへの参照が残っているオブジェクトを簡単に見つけることができる。
ちなみに開発機ではメモリが足りないということは、
よほど貧弱な開発機でなければまず起こらない。
0901デフォルトの名無しさん
2015/12/29(火) 11:14:37.65ID:a4Pra08xSwiftとか
0902デフォルトの名無しさん
2015/12/29(火) 11:19:51.72ID:cKcX4pC+0903デフォルトの名無しさん
2015/12/29(火) 12:09:09.23ID:Tk7GRC+0linux なら ulimit 使うなりしてさ。
0904デフォルトの名無しさん
2015/12/29(火) 12:47:18.60ID:QDDW5ibj0905デフォルトの名無しさん
2015/12/29(火) 13:24:54.68ID:S7hPg+te> そのオブジェクトへの参照が残っているオブジェクトを簡単に見つけることができる。
どうやって?
別にスナップショット云々は、これ関係ないのよ。
だってスナップショットとらなくても、
該当マシンでやればいいだけなんだから。
0906デフォルトの名無しさん
2015/12/29(火) 13:29:28.22ID:S7hPg+tehttps://software.fujitsu.com/jp/manual/manualfiles/m140003/b1ws1040/04z200/b1040-a-06-05.html
C#だとこんな感じか?
http://troushoo.blog.fc2.com/blog-entry-131.html
0907デフォルトの名無しさん
2015/12/29(火) 16:47:31.74ID:pO0KAO0+0908デフォルトの名無しさん
2015/12/29(火) 17:35:11.54ID:uPOyITuGトイプログラムしか書いてないんだろうから
無理に業務っぽい話に付き合わなくて良いのに
0909デフォルトの名無しさん
2015/12/29(火) 18:04:16.69ID:S7hPg+teまたでたよw
何も言わないくせに、Smalltalkの方が優れてるっていうやつw
何が優れてるの?ッて聞いたら、
自分で調べろ(逆ギレ)なんでしょう?w
0910デフォルトの名無しさん
2015/12/29(火) 20:13:59.08ID:5QScXVkFProtoObject>>pointersTo でそのオブジェクトへの全ての参照が得られる。
もちろんエスケープしたクロージャにキャプチャされたスタックフレームからの参照も含めて。
0911デフォルトの名無しさん
2015/12/29(火) 20:16:44.20ID:5QScXVkFあなたのようなキチガイがいつまでも相手にされると思わないほうがいいよ。
0912デフォルトの名無しさん
2015/12/29(火) 20:48:51.46ID:uPOyITuGInferが対応するコードはAndroidのJavaとiOSのObjective-C、およびC。現時点ではAndroidとJavaではNullPointerExceptionおよびリソースのリーク。iOSとCコードではメモリーリークを発見してくれます。
http://www.publickey1.jp/m/blog/15/facebook_infer.html
0913デフォルトの名無しさん
2015/12/29(火) 20:55:27.15ID:a4Pra08x0914デフォルトの名無しさん
2015/12/29(火) 21:04:09.67ID:QDDW5ibjわざわざ馬鹿でかいメモリ確保したプロセス実行しないと調べられないなら
Javaのヒープダンプ以下じゃんバカじゃね
0915デフォルトの名無しさん
2015/12/29(火) 21:04:49.17ID:+ubDtqOvあれ?SwiftのGCって素朴参照カウンタ方式なので循環参照を解放できないんじゃなかった?
0916デフォルトの名無しさん
2015/12/29(火) 21:16:32.89ID:a4Pra08x循環参照はそうプログラマが実装したからであってメモリリークではない
0917デフォルトの名無しさん
2015/12/29(火) 21:24:11.66ID:3lUD69g2そのおじさんは「マカー!w出てこい!!www」ってそれっぽいワードを連呼してシャドーしてるだけだから…
0918デフォルトの名無しさん
2015/12/29(火) 21:24:13.02ID:+ubDtqOv循環参照の解消を失敗したらメモリ解放されないってことになるじゃん?
それってメモリリーク起きるってことだと思うの
0919デフォルトの名無しさん
2015/12/29(火) 21:26:18.34ID:+ubDtqOvシャドーボクサーなのか、じゃあしょうがない。
0920デフォルトの名無しさん
2015/12/29(火) 21:53:55.37ID:TkQKXDX9それはプログラマの意図通りの動作だから問題ない。
やはりMacは最強やで。
0921デフォルトの名無しさん
2015/12/29(火) 22:06:59.32ID:+ubDtqOvさようか、ならば拙者の出番はござらんな
食パンをかじるとしようか
0922デフォルトの名無しさん
2015/12/30(水) 00:22:58.02ID:wAoiK+Arキチガイ
0923デフォルトの名無しさん
2015/12/30(水) 00:42:06.75ID:vy2SBag00924uy ◆Qawu9.2l1E
2015/12/30(水) 00:52:45.09ID:LyNr/J1x0925デフォルトの名無しさん
2015/12/30(水) 03:13:52.72ID:gralCRA10926デフォルトの名無しさん
2015/12/30(水) 03:21:56.86ID:uNQALYUcなんか悔しそうだなw
俺も晒し上げておこう
0927デフォルトの名無しさん
2015/12/30(水) 09:54:14.97ID:CpjDneg5動的vs静的でもなくなって
アラン・ケイかぶれのSmalltalkerを弄るスレになってる
0928デフォルトの名無しさん
2015/12/30(水) 10:27:37.76ID:pdPeyHKo0929デフォルトの名無しさん
2015/12/30(水) 11:34:54.78ID:CpjDneg5apiは好きな言語で書いたら良いよ
0930デフォルトの名無しさん
2015/12/31(木) 17:45:37.66ID:Sddj+QCE「これは釣りだ!これは釣りだ!!」って子
相手にするのみんな飽きたっぽい。
0931デフォルトの名無しさん
2015/12/31(木) 19:49:47.40ID:xdIQXsvmせっかく覚えた技術だからってなってしまう。
0932デフォルトの名無しさん
2015/12/31(木) 20:49:23.71ID:CMQb/rzM0933デフォルトの名無しさん
2016/01/01(金) 11:18:10.89ID:5V2XLG/V相手の力量も自分の力量も見えてはいない
ただし、自分が通ってきた道にまだ居るやつのことはなんとなくわかる
0934デフォルトの名無しさん
2016/01/01(金) 13:06:36.54ID:jvRJIema0935uy ◆Qawu9.2l1E
2016/01/01(金) 19:58:04.75ID:xHNmPQBx覚えてる知識を使って何か作る事に重点置き始めるから
もうついてこれてないよ
本人のほうは何故か「過去に自分が通った道にまだいるのか・・・」みたいな事思ってる
0936デフォルトの名無しさん
2016/01/01(金) 21:31:11.46ID:aa4Vn7fEキミは周回遅れを自覚しよう
0937uy ◆Qawu9.2l1E
2016/01/02(土) 04:14:26.00ID:o7gA3Oghしかし、老害PGは「なんでこの初心者たちはいつまでも自分のレベルに追いついてこないんだ?」と、思ってる
まぁITに限らず老人でそういう病気発症してる奴って割と多いから
みんな分かって放置してると思う
良いです?
今の時代は他人の作ったツールのインストールと設定をするスキルが重要だから
オブジェクト指向の細かいところなんて余暇でやっとけば良い事なのに
それの細かい部分を覚えている事に価値を見出してるアホは多い
大学で一時期ブームになってたJAVA世代かな?って思う
自分が学生時代に教わった事が、もはや大部分無意味になりかけてるなんて、思いたくはないだろうけど真実
オブジェクト指向がゴミになったという事ではなく、
○○指向とか、一々意識しなくてもアプリが完成する時代
アルゴリズムの内部実装を見ないで最上位をコーディングするように
○○指向という部分を見ない、さらに最上位(設定ファイル記入とマウスポチポチ)で、完成してしまう
ゆえに「オブジェクト指向」よりも上位のレイヤー。設定ファイルマウスポチポチ指向が出来た今、
今まで最上位だったものがひとつ下になり、そこの知識の詳細を
いくら老害PGが重要だと叫ぼうと、それはかつてのアセンブラ/C言語のエキスパートの断末魔のような叫びでしかない
まとめると、
オブジェクト指向とかもうどうでも良い
0938デフォルトの名無しさん
2016/01/02(土) 05:15:23.75ID:6gE2bY5L0939デフォルトの名無しさん
2016/01/02(土) 09:14:36.51ID:Dnf2flaMプロが仕事で扱う技術に興味ないし、2chで話題にすることじゃないから出ていってほしいな
0940デフォルトの名無しさん
2016/01/02(土) 10:13:19.29ID:By+Z3RvH=> 設定ファイルで設定可能な項目がドンドン細かく詳細になる
=> 設定ファイルの記述言語がついにチューリング完全になる
=> 普通の開発と変わらなくなる
いままでの歴史はこれの繰り返し
0941デフォルトの名無しさん
2016/01/02(土) 11:16:24.48ID:yVCWJ6yH> いままでの歴史はこれの繰り返し
例えば?
0942デフォルトの名無しさん
2016/01/02(土) 12:12:13.20ID:uD+WV8wT0943デフォルトの名無しさん
2016/01/02(土) 12:14:26.09ID:bBqG9oIx0944デフォルトの名無しさん
2016/01/02(土) 12:22:58.34ID:uD+WV8wT0945デフォルトの名無しさん
2016/01/02(土) 12:34:30.17ID:s06XmGKrluaやpythonがよく使われる
0946デフォルトの名無しさん
2016/01/02(土) 12:39:42.04ID:wx4DxJpHSmalltalk環境の設定は70年代からSmalltalkで書かれてるけどな。
0947デフォルトの名無しさん
2016/01/02(土) 12:39:57.90ID:VM0jeeLd久しぶりに触ったら超クソだった、ぐぐっても古い情報ばっかだし
やっぱりVagrantで貰ってくるのがええな
0948デフォルトの名無しさん
2016/01/02(土) 12:58:28.15ID:s06XmGKr設定ファイルを書くスクリプトの選択に失敗すると
アプリ自体が使われなくなるって事を
Smalltalker以外は歴史から学んだよ
0949デフォルトの名無しさん
2016/01/02(土) 14:25:54.16ID:wq9oS32EPythonの創始者はSmalltalkから学んだらしいよ。
学んでいないのはあなたのほうだね。
http://python-history.blogspot.jp/2013/10/origin-of-metaclasses-in-python.html
Smalltalk's bytecode was a bigger influence of Python's bytecode though.
I'd read about it in a book by Adele Goldberg and others, I believe
"Smalltalk-80: The Language and its Implementation"
0950デフォルトの名無しさん
2016/01/02(土) 14:42:01.72ID:s06XmGKrSmalltalkの構文が一般受けしないのは歴史的に明らかだったから
0951デフォルトの名無しさん
2016/01/02(土) 14:50:11.87ID:EIjeZ5je毎回ソース貼るのは偉いけどなんか論点ズレてるんだよな
0952デフォルトの名無しさん
2016/01/02(土) 14:50:12.97ID:wq9oS32E本当に何も学んでいないねw
0953デフォルトの名無しさん
2016/01/02(土) 14:59:24.77ID:rRDwNu+sただのAppleのゴリ押しやん
0954デフォルトの名無しさん
2016/01/02(土) 15:07:13.82ID:6gE2bY5LCが普及したのもUnixのゴリ押しだし
登場時にはCとの互換性を売りにしたC++も同罪だし
MLもMilnerの型理論によるゴリ押しだし
その派生言語であるOCamlも同罪だし
きりがないだろ。
正直、バッカじゃねーのとしか言いようがない。
正月から馬鹿晒しておめでとう。
0955デフォルトの名無しさん
2016/01/02(土) 15:14:52.72ID:JOPuE3fj出てきたんじゃないかと思わせる必然性がある。
まあシンタックスは変わってたかもしれんが。
0956デフォルトの名無しさん
2016/01/02(土) 15:25:30.97ID:TGliTIeD仕様もない糞蠅どもだ
0957デフォルトの名無しさん
2016/01/02(土) 15:28:09.21ID:gWTZIavc実際Bとかそうだろ
0958デフォルトの名無しさん
2016/01/02(土) 15:36:15.19ID:F8jCIFTt今はまさにそのシンタックスの話だな
0959デフォルトの名無しさん
2016/01/02(土) 15:37:27.22ID:F8jCIFTt今はまさにそのシンタックスの話だな
0960デフォルトの名無しさん
2016/01/02(土) 16:33:04.71ID:oYZFkiTOトップ10圏内から大幅に落ちた上にSwiftにも抜かれた
Objective-Cがどうしたの?
http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
0961デフォルトの名無しさん
2016/01/02(土) 16:53:54.23ID:wq9oS32E0962デフォルトの名無しさん
2016/01/02(土) 17:16:09.12ID:Dz9NJ2ny[ ] のなかでメッセージ式が書けるってだけで
Objective-C を Smalltalk と絡めて語ら(騙ら)ないで欲しい
0963デフォルトの名無しさん
2016/01/03(日) 00:07:21.72ID:qiKwbZ3eアセンブラwww
0964デフォルトの名無しさん
2016/01/03(日) 02:31:26.65ID:mP6eBLwcいちおーゆーとくとObjective-Cのランク低下は昨秋ランキングアルゴリズム変えて
オンラインリファレンスへのアクセスを計算から外したからなので。
ネットで話題の言語という意味では原点回帰ではあるけれど
オフィシャル系を計算から外したら
逆にそれはネットのどこで何を話題にしてる人々を計算してるんだろう?
という気もせんでもない。
0965デフォルトの名無しさん
2016/01/03(日) 02:49:42.24ID:zEXG4Enn0966デフォルトの名無しさん
2016/01/03(日) 02:51:53.93ID:IPqSvD5Qhttp://www.tiobe.com/index.php/content/paperinfo/tpci/Objective_C.html
アルゴリズム変更で一気に減ったというより、
徐々に減ってるようにしか見えないけど
0967デフォルトの名無しさん
2016/01/03(日) 09:49:24.29ID:jofq69+tグラフ見れば一目瞭然
しょせんAppleのゴリ押しで使われてた言語だから、ハシゴ外されたらそりゃ逃げ出すわな
Cは相変わらず人気だから、要するにSmalltalk由来のキモいメッセージ式に
皆がNoを突きつけてるんだね
0968デフォルトの名無しさん
2016/01/03(日) 10:16:30.86ID:43bxFPSU0969デフォルトの名無しさん
2016/01/03(日) 10:36:43.03ID:lX/fUZIn0970デフォルトの名無しさん
2016/01/03(日) 10:59:34.96ID:AcAiI181CをPascalの焼きまはし
0971デフォルトの名無しさん
2016/01/03(日) 18:55:56.78ID:xRSYAQBp逆に良い具体例を思いつく能力がなくて抽象論で済まそうとする奴のが多いと思うが。
0972デフォルトの名無しさん
2016/01/03(日) 19:35:49.76ID:SliObw4t大人ってずるいよね
0973デフォルトの名無しさん
2016/01/03(日) 20:54:23.23ID:RgnbI7tp現実は〜
Smalltalkerは〜
0974デフォルトの名無しさん
2016/01/03(日) 21:53:42.64ID:72y0mus1日本人は〜
現実は〜
smalltalkこそ〜
0975デフォルトの名無しさん
2016/01/03(日) 22:20:33.26ID:RgnbI7tp0976デフォルトの名無しさん
2016/01/03(日) 23:43:02.17ID:mP6eBLwc0977デフォルトの名無しさん
2016/01/04(月) 17:16:32.24ID:3ZgV6wyG0978デフォルトの名無しさん
2016/01/04(月) 17:18:16.68ID:2J2/85DZ0979デフォルトの名無しさん
2016/01/04(月) 17:26:48.98ID:5zLqhTS30980デフォルトの名無しさん
2016/01/04(月) 18:00:32.11ID:RY1Mzif40981デフォルトの名無しさん
2016/01/04(月) 18:09:04.30ID:gy+jtI5Z0982uy ◆Qawu9.2l1E
2016/01/04(月) 18:15:40.14ID:zTvWipKl0983デフォルトの名無しさん
2016/01/04(月) 18:49:11.00ID:eUmPlviF0984デフォルトの名無しさん
2016/01/04(月) 18:54:33.40ID:CWcw2pew0985デフォルトの名無しさん
2016/01/04(月) 19:17:55.99ID:WGHaUWWrそれにuyってコテハンも追加しておくと吉
0986デフォルトの名無しさん
2016/01/04(月) 19:18:26.04ID:RY1Mzif40987デフォルトの名無しさん
2016/01/04(月) 19:32:16.26ID:WGHaUWWr「1+1」よりは「3+4」だな。初期のSmalltalk-72で最初に評価された式らしいので。
0988デフォルトの名無しさん
2016/01/04(月) 19:43:44.60ID:RY1Mzif40989デフォルトの名無しさん
2016/01/04(月) 19:46:16.51ID:u97FRQbxそのとおりだ
抽象的/総称的に void * を使えるようになったらしめたもの
標準ライブラリにある qsort() を実装してみるといいだろう
0990デフォルトの名無しさん
2016/01/04(月) 20:43:11.15ID:bvuJFWqO>gotoとvoid *を使えばどんなプログラム言語でも書けない様なプログラムが
聞き捨てならんな。w たとえばどんな?
0991デフォルトの名無しさん
2016/01/04(月) 21:00:40.38ID:RY1Mzif40992uy ◆Qawu9.2l1E
2016/01/04(月) 21:31:38.10ID:M6WjdqoS0993デフォルトの名無しさん
2016/01/05(火) 02:11:54.24ID:hJUQcrklオブジェクト指向は愚かな考え。この世は計算式 ★3
http://peace.2ch.net/test/read.cgi/tech/1451927425/
0994デフォルトの名無しさん
2016/01/06(水) 11:55:28.58ID:nQqbz+/u乙
0995uy ◆Qawu9.2l1E
2016/01/07(木) 03:27:34.74ID:VBUUQOGk0996デフォルトの名無しさん
2016/01/07(木) 12:06:35.18ID:6ZkPklY8クラスのインスタンス全体をmemset 0相当できる言語ってある?
0997デフォルトの名無しさん
2016/01/07(木) 20:59:56.11ID:90bWN72u結局多態は、ポインタか参照使って呼び出す場合しか意味ないんだから
オブジェクトがvtalbeを持つのではなくて
ポインタや参照に入っているオブジェクトの該当vtableを一緒に保持させれば良いんじゃないかってね
そうすればCの構造体のように本来vtableを持たないものにメソッドを追加したり多態させたりもできる
0998デフォルトの名無しさん
2016/01/07(木) 21:00:47.85ID:90bWN72ustruct ptr_t
{
0999デフォルトの名無しさん
2016/01/07(木) 21:02:38.75ID:90bWN72ustruct ptr_t
{
void *object;
void *v_table;
};
1000デフォルトの名無しさん
2016/01/08(金) 13:12:26.75ID:QFsBcVlK10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
10021002
Over 1000Thread運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 2ちゃんねる専用ブラウザからの広告除去
★ 2ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
http://premium.2ch.net/
http://pink-chan-store.myshopify.com/
レス数が1000を超えています。これ以上書き込みはできません。