1 名前:デフォルトの名無しさん [2015/12/15(火) 13:23:08.06 ID:Rib62xXq.net] オブジェクト指向は愚かな考え。排便メソッドを実装した人間クラスから美少女クラスが作れない。 https://twitter.com/ProgrammingMono/status/665702678006140928 研究グループは、血管新生注において血管が伸長する際の血管内皮細胞注運動を制御するしくみを、生物学と数理モデル・ コンピュータシミュレーションを融合させた先端的な研究手法により明らかにしました。 生物は、最小の機能単位である細胞が寄り集まった多細胞体です。しかし、細胞の集まりが、組織や器官といった 秩序ある形態や構造をつくり機能するしくみはほとんど分かっていません。中でも血管は、体中の全組織に十分な 酸素や栄養源を効率よく供給するため、組織や組織の間に入り込み、血管外の環境との相互作用により、巧妙な 枝分かれ構造をとっています。 これまでに本研究グループは、新しく血管がつくられる(血管新生)際の細胞の動きに着目し、特に血管内皮細胞の 動きをリアルタイムで可視化し、定量的に捉えることを可能にしてきました。 今回さらに、血管の伸長を制御するしくみについて、細胞が自発的に自らを制御して動く過程(自律的過程)と、 隣接した細胞から適宜影響を受けて動く過程(協調的過程)がうまく共存することで、全体の動きが巧みに統制 されていることを世界に先駆けて実証しました。 興味深いことに、血管内皮細胞が前後したり、お互いに追い抜きあったりという血管新生で見られる複雑な細胞集団の 動きを制御している中枢部分は、細胞一つ一つの動き(スピードと方向性)の「確率的な変化」として十分説明できる ことをコンピュータシミュレーションで実証しました。 www.jst.go.jp/pr/announce/20151120-2/#YOUGO3 前スレ オブジェクト指向は愚かな考え。この世は計算式 peace.2ch.net/test/read.cgi/tech/1447990379/
232 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 03:24:05.57 ID:srVmyYNw.net] >>228 静的型の型推論は推論できた時、それは正しい と 動的型の場合、所詮、推論でしかない この二つは整合するのかい? [] [ここ壊れてます]
234 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 03:30:45.67 ID:OdWxPmQd.net] >>228 最後まで書き込んでたら勝ちってゲームしてるつもりかな? もうちょっと中身のある事を書こうね。 関数型言語の型推論だと、複数の場所で矛盾する型を書いたら即座にエラーになるから間違いを早く発見できるし(>>217 は型を書く段階まで発見できない)、 間違っていたときも型推論の出力を見ながら修正できる。 たしか、早くより少ない労力でエラーを発見できる方が優れてるんだよな?
235 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 04:45:37.26 ID:ysM2oFx/.net] 動的型の場合、型が矛盾することはない。 なぜなら、どんな型でも入れることが可能だからだ。 なお型が矛盾しないからといって、正しく動くわけじゃないw
236 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 05:08:30.90 ID:srVmyYNw.net] 型って厳密には何の型の話をしてる? 入れるって書いてるから変数型かな
237 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 05:20:10.46 ID:ysM2oFx/.net] 変数もだけど、それ以上に重要なのは 関数の引数の型。
238 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 06:11:42.29 ID:uwvw3g3I.net] >>232 一方、静的型付言語でも、型が矛盾しないからといって、正しく動くわけでもないw
239 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 06:13:31.81 ID:uwvw3g3I.net] >>231 静的型付関数型言語で型エラーの本当の原因を探すよりも Smalltalkで実行時エラーの本当の原因を探すほうが遥かに簡単で間違えにくい。
240 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 07:30:05.05 ID:TW2fFhuS.net] そもそも静的型付けのヒトは、コンパイルが通れば 型の不整合によるエラーはぜったい起こらないという前提なの? そんなちゃんとした型システムの言語、あんたら使ったことないだろ
241 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 07:51:26.41 ID:ysM2oFx/.net] >>237 1か0じゃない。出来る限りコンパイル時に解決してくれれば 動的に解決する問題が減る。 静的型で型の不整合が起きるコードなんて限られてるんだから、 その影響範囲を小さくすることで、動的なものを静的に 解決できるように設計するんだよ。 静的に解決するのと動的に解決するのとの差は大きく、 動的だとすべての実行パスを、実際に実行しないと信頼出来ないが 静的だと実行する必要が無いから、すべての実行パスを実行するコストが0になる。
242 名前:デフォルトの名無しさん [2015/12/19(土) 09:07:04.58 ID:P/E9W26M.net] >>210 俺もJedi-vim使ってるけどこれってどうやって配列の中身に補完かけんの? 何回やっても出来なくてPythonゴミだと思ってた
243 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:33:28.96 ID:TW2fFhuS.net] >>238 > 1か0じゃない。 あんたらの言ってることは1か0かでしかないよ。w ここでもすでに2つもやってる > すべての実行パス > コストが0
244 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:33:42.26 ID:QugsHy5+.net] typo、typo言ってる奴が何を言ってるのか分かってきた オブジェクト指向とか、関数型とかいう前に、構造化プログラミングが出来てないからtypoで困るのか
245 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:34:15.15 ID:u/d4wrI0.net] >203 こいつまじでテスト書かないんだろうな。。 適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。 型があってなけりゃ大概まともになんて動かんわ。 >そもそも、完璧なテストは書けるのか?って話もある。 テストでもプログラムでも「完璧な」なんてありえないんだよ。 確率や効率をいかにあげるかって話だ。 >テストを書く=時間がかかる だ。 当たり前だ。それなりの精度のもの作るならそうなる。 プロトで作るくらいの規模のもので型エラーでほとんど動かんもの作る奴なんてどっちにしろ まともなものなんて作れんわ。
246 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:35:02.37 ID:ysM2oFx/.net] なんで構造化プログラミングとtypoが関係有るんだ? 無関係なものを結びつけたがるよなw まるで、そういう印象をあたえるのが目的かのようだwww
247 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:36:58.29 ID:ysM2oFx/.net] >>242 > 適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。 > 型があってなけりゃ大概まともになんて動かんわ。 わかってないねw 適当にその型のオブジェクト生成して突っ込むというテストコードを書いたからといって、 そのテストコード以外の部分には、当てはまらないんだよ。 テストコードだけがうまく動作するwww > 型があってなけりゃ大概まともになんて動かんわ。 問題はそこからだな。まともに動かない。原因は何か? デバッグ大変だぁw
248 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:38:45.80 ID:ysM2oFx/.net] 引数が違うっていうのは、呼び出し元と呼び出し先の インターフェースの問題なのだから 単体テストでは見つけることが出来ないんだよ。 これは結合テストの範疇。
249 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:41:53.19 ID:TW2fFhuS.net] 結局、静的型付けのヒトの主張は - 動的型付けで静的型付けのような完全なチェックは不可能 - 完全なチェックを妨げる言語機能は自分達には無価値 - 静的型付きはすばらしい。だからおまえ等が使わない理由が分からない。バカなの? ただこれだけのこと
250 名前:デフォルトの名無しさん [2015/12/19(土) 09:45:53.67 ID:P/E9W26M.net] あと補完が素晴らしい
251 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:47:41.17 ID:8SzZHE5V.net] 動的型はダックタイピングを期待して故意に複数の型を許すこともある だから、仕組み的に静的型付けより正確な補完ができることはありえない >>216 戻り値にShowとかCloseとかのよくあるメソッド呼ぶだけだとどうしても補完は不足する C#とかの補完は、加不足なく表示されるのがポイントで、リファレンスを参照する手間がないのがありがたい >>181 dynamic型とかでできるよ でも補完が効かないし、遅くなって静的コンパイル言語の利点を潰しちゃうからあんまり使われない
252 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:49:18.71 ID:ysM2oFx/.net] >>246 > 結局、静的型付けのヒトの主張は なるほどw 動的型の人の主張はそういう反論しかできないから 話をこれだけにしてくださいってことだなw
253 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 09:50:10.54 ID:ysM2oFx/.net] この3つ以外の点には反論しなかったなーw 面白い反応だwww
254 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:09:02.79 ID:QugsHy5+.net] >>243 typoが発見できないような広い範囲をテストするなんてことは基本的に有り得ない
255 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:10:22.76 ID:l6AIqaac.net] 静的型のヒトはいったい何が目的なんだ? 自分が理解できない動的な考え方の排斥か? 自分たちの土俵での優位性を主張したいだけなのか?
256 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:13:36.72 ID:uwvw3g3I.net] >>248 >動的型はダックタイピングを期待して故意に複数の型を許すこともある >だから、仕組み的に静的型付けより正確な補完ができることはありえない ちがうなw 特定の型の引数しか扱えないような低性能な静的型と違って、 動的型は任意の型を取る能力を持っているから、 動的型のほうがより「正確に」可能な型に関係した補完が可能なんだよ。
257 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:21:30.79 ID:8SzZHE5V.net] >>253 え?どういう補完を指して優れてるって言ってるの? 型にしばられすぎないことが利点の動的言語で静的言語並の補完したら良さを潰してるとしか思えないんだが
258 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:26:19.12 ID:dtnFGkzr.net] 補完なんて必要ない。IDEを使っていたころ補完にばかり頼っていたらforの書き方さえ分からなくなってた。漢字と一緒で読めるのと変換するのと、漢字を書けるのとは 全く別のことだと言うことがわかったよ。それ以降、補完に頼ることを止めて以来コードの質が上がったということは言うまでもない。
259 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:51:48.54 ID:oOYHp+m9.net] 補完に助けられてコンパイラの型エラーをつぶしつぶしでないとまともにコードすら書けない、それが土方。
260 名前:デフォルトの名無しさん [2015/12/19(土) 10:56:29.09 ID:P/E9W26M.net] 補完ないとクラスのメソッド名全部覚えないといけないじゃん……
261 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 10:59:35.33 ID:eeFVwRM7.net] 補完とかタイポにそこまで拘る人って 一日二万行くらいコード書いてるのかな? プログラミングの本質はタイピングじゃなくて設計なんだけどな 俺はemacsとabbrevだけで十数年食ってるよ
262 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 11:07:06.94 ID:t89iAcrU.net] 職業プログラマが2chに来て議論している...
263 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 11:07:11.55 ID:l6AIqaac.net] >>249 読解力 and/or 論理的思考 も欠如して、かわいそうに… ただ煽るだけしか能がないのか。そんなんでよくまともなコードを書けるな。 それともあれか、俺たちも我慢して型情報を書いて、それと引き替えに型安全と補完というメリットを得ている お前らそれを馬鹿にして否定したり、あまつさえ俺には必要ない別のメリットを享受することなど許さないってか
264 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 12:35:58.10 ID:wzwqX1ml.net] >>239 普通に配列の中身も補完できたよなーと思って試したらやっぱり出来たから、 そっちの環境がおかしいんじゃね?
265 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:21:35.87 ID:dNXWfsX0.net] >>212 のような機能は動的型言語が静的型言語から輸入した機能だから静的型の機能なわけだけど 動的型界隈においても静的型のメリットが評価されてきたってことでもあるが それはともかくとして、>>212 のような書き方をするとfuncはstrと派生クラスしか受け付けなくなるから 動的型の柔軟性が全く損なわれるわけだけどね 動的型言語なのにメタプログラミングもクソもないC言語レベルのコーディングを強いられるのはなんとも 一方で静的型言語で>>211 のような型を指定しない書き方をするときは ジェネリックやテンプレートを使うわけだけど、この場合コード補完こそ効かないけれど 静的に解決するので少なくとも型のミスやtypoのミスはコンパイルエラーになる 静的型言語のタイプセーフはジェネリックでも健在ということ これは動的型言語の取ってつけたような貧弱な静的型システムでは実現できていない しかし静的型のジェネリックは静的に解決するので動的なダックタイピングは出来ない でも、動的なダックタイピングのような危険な行為は本当に必要なのかどうなのか 殆どの場合は静的なダックタイピングだけで十分だし、コンパイルエラーで検出できたほうが良い 動的な多態をしたければ、インターフェースを介して行ったほうが安全
266 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:24:08.37 ID:dNXWfsX0.net] > >そもそも、完璧なテストは書けるのか?って話もある。 > テストでもプログラムでも「完璧な」なんてありえないんだよ。 > 確率や効率をいかにあげるかって話だ。 そこで静的型言語の出番 少しでもバグを減らすためには静的型言語が有用
267 名前:デフォルトの名無しさん [2015/12/19(土) 13:38:36.46 ID:a/6r0NiU.net] 静的型付け言語の潜在開発生産性は今の100倍 ×5 peace.2ch.net/test/read.cgi/tech/1385273168/ もうこっちでよくないか?
268 名前:デフォルトの名無しさん [2015/12/19(土) 13:41:55.99 ID:XdSebzRf.net] マイナンバー制度は受け取り拒否をすることで、破壊できます。 任意である通知カードの受け取りを政府広報が受け取れとCM https://www.youtube.com/watch?v=69cC29ZwXyw マイナンバー通知カードを受け取ってしまっても、市町村に送り返そうhttps://www.youtube.com/watch?v=_f3I2RTC17s 311東日本大震災は人口地震テロ さゆふらっとまうんど(平塚正幸)https://m.youtube.com/watch?v=XiK9DeIMt14 マイナンバー通知カードの受け取りを拒否しようhttps://www.youtube.com/watch?v=xSt6jiOKh_I
269 名前:デフォルトの名無しさん [2015/12/19(土) 13:43:56.73 ID:a/6r0NiU.net] >>265 拒否する理由がない。 拒否するだけじゃただの反抗期。 すごくダサい。
270 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 13:54:09.76 ID:dNXWfsX0.net] ここまで来て静的型言語のメリットは散々語られているが動的型言語のメリットはあまり語られていない事実 大体は動的にクラスを書き換え出来る、とかといった危険なメリットが有るぐらい 最近は動的型言語にも静的型の機能(の中途半端なもの)が どんどん導入されてきていることから考えると 動的型言語界隈の人にとっても静的型のメリットは大きいということ ただし、取ってつけたようなものなので、ジェネリックが無いわけだが・・ 人間は完璧じゃないのでテストも完璧とは限らない 機械的に検出できるエラーは多ければ多いほどよい 俺らはコンピュータを使って普段色々なことを自動化するためにプログラムを書いているわけだから 我が身自身のエラーの検出も出来るだけ多くコンピュータで自動化しようというのは当然の事の流れ 他人の仕事は自動化しているのに、自分たちの仕事のエラー検出を自動化しないのは変な話 動的型言語は時代に逆行しているわけだ 最先端と勘違いしていた人たち、可哀想
271 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 14:06:24.99 ID:srVmyYNw.net] できるだけ良い設計をしたいから動は静の機能を取り込む できるだけ早く動作を確認したいから静は動の機能を取り込む 動作の確認はどう設計されたかの確認とも言える
272 名前:デフォルトの名無しさん [2015/12/19(土) 14:08:42.41 ID:a/6r0NiU.net] >>267 ruby on railsとか一時期流行ったよねー。 これからはlightweight languageだとか言ってね。 人力で型チェックのコード書くのだりーってことに気がついて下火になった。
273 名前:デフォルトの名無しさん [2015/12/19(土) 14:19:06.48 ID:6Pr5+KRd.net] 動的なんて局所でスクリプト組み込めばいいだろ。 全部動的言語とか初心者かよ。
274 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 14:26:41.75 ID:srVmyYNw.net] 全部静的言語も設計が甘いと仕様変更に弱いところがある 静的言語でしっかり設計して動的に仕様に追従できるようにしたいものだ
275 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 16:05:53.13 ID:QugsHy5+.net] ここまでで分かった静的言語の利点typo
276 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 17:18:06.84 ID:TmayNbxK.net] javascriptはエラーを放置するからストレスなくインターネットをモザイク出来るんだよ
277 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 17:40:05.11 ID:ysM2oFx/.net] > ここまでで分かった静的言語の利点typo 意訳 静的言語の利点はtypoだけなんだって思い込みたい だって、それ以外の利点に反論することが出来ないんだもん。
278 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 17:58:11.97 ID:xOPNzksg.net] なぜそう解釈したいの?w
279 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:11:56.47 ID:ysM2oFx/.net] 静的言語の利点はいろいろ出てるのに、 typoしか指摘してないからだよw
280 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:44:52.65 ID:OdWxPmQd.net] smalltalkのような動的言語もhaskellのような静的型付け関数型言語も、 設計上のトレードオフで異なる方向性に進んだだけであって、 どちらにも良いところは一杯あるよ。それで良いじゃないか。 もちろんJavaにも良いところはある。ドカタでもコードらしき物が書けるところとか。
281 名前:デフォルトの名無しさん [2015/12/19(土) 18:49:17.24 ID:a/6r0NiU.net] >>277 Javaが普及した理由って文法がシンプルだから?
282 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:54:52.90 ID:dNXWfsX0.net] VMのおかげ
283 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:55:37.15 ID:srVmyYNw.net] たくさん使われたから普及しただけだし たくさん使われたからドカタが生まれたよ
284 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:56:01.89 ID:ysM2oFx/.net] 能力が劣る人でも使える言語=その言語は優れている こういう矛盾があるんだよなw
285 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:57:07.90 ID:ysM2oFx/.net] >>280 その理屈だと、たくさん使われてる言語を使ってる人=ドカタってことになって なぜドカタなのか?の理由がなくなるぞw
286 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 18:58:09.44 ID:ysM2oFx/.net] 自分が好きな言語が普及しないと悔しいだろう? 自分が嫌いな言語が普及すると悔しいだろ? 悔しかったら、叫べばいいんだよ。 お前のカーチャンデーべそ!
287 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 19:02:44.62 ID:99cf/LSi.net] Windowsを使ってる奴はドカタ それでいいじゃないか。
288 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 19:04:44.99 ID:ysM2oFx/.net] 本来のドカタの定義からは外れて、 低能な悪口になってしまってるよなw ドカタとする理由はない。 単にドカタと呼ばれれば気分悪いだろう? っていう気持ちだけで言ってるw やーい、ドカタ(笑)、ドカタ(笑) 俺はドカタじゃないもん!
289 名前:デフォルトの名無しさん [2015/12/19(土) 20:54:40.24 ID:9zezTTvK.net] >>274 静的言語の利点はコードコントラクト monobook.org/wiki/%E5%A5%91%E7%B4%84%E3%81%AB%E3%82%88%E3%82%8B%E8%A8%AD%E8%A8%88
290 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 21:32:04.90 ID:VDGaUBLZ.net] スレタイの議論は興味あるし読みたいのだが、 静的か動的か(やっぱり静的サイキョ)みたいな 議論は適材適所という話でしかないしどうでもいいや。
291 名前:デフォルトの名無しさん [2015/12/19(土) 22:54:29.05 ID:9zezTTvK.net] 学習コストとシングルスレッド性能でいえばオブジェクト指向 副作用の低減とマルチスレッド性能でいえば関数型 大事なのはバランス感覚。 中間が素晴らしい。 オブジェクト指向で関数型で基本静的で動的も使えunsafeも使えるC#が最強なんだな。
292 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:15:07.87 ID:0/RlvyV4.net] Objective-Cはクソ これだけは間違いない
293 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:15:59.92 ID:25MZJC6Y.net] 純粋関数型ってstaticオジサンと何が違うの?
294 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:46:59.99 ID:99cf/LSi.net] C#なんてマイナー言語誰が使ってんだよ
295 名前:デフォルトの名無しさん mailto:sage [2015/12/19(土) 23:55:31.17 ID:GM3q6wlH.net] そらMS系とUnityユーザあたりでしょ
296 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 01:22:59.25 ID:ei3pb2OR.net] クリスマスなのでXamarinが無料らしいぞ realtime.search.yahoo.co.jp/search?fr=applep2&ei=utf-8&p=xamarin
297 名前:uy ◆Qawu9.2l1E [2015/12/20(日) 01:23:00.97 ID:I1JEaeeo.net] >>288 バランスwwwwwwwwwwwwwwwww?WwWWWwWw 低能特有の曖昧でふわふわした表現ワロタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
298 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 01:27:54.27 ID:ei3pb2OR.net] 基本はキッチリカッチリだろうけJSONなんかを扱う場面ではアホくさいしバランス感覚は重要じゃね。
299 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 02:21:28.75 ID:IuSUOMsB.net] バランス大事だよほんとw 求められてる範疇で都合
300 名前:よく使えるいいんだ。百点の理想郷なんかなんかいらんのよ クライアントないし上長の要望に立ち向かうってこと自体、曖昧でふわふわしたところにやんわりと釘を刺し続ける行為だしね 90点もいらない、10点の仕事を最安で求められたなら10点できっちり済ませるのが土方クオリティ [] [ここ壊れてます]
301 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 02:24:10.18 ID:jqjYNF9z.net] 曖昧な要望で10点なんてきっかり分かるわけ無いだろ。 矛盾したこと言ってるなよ。
302 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 02:39:17.80 ID:IuSUOMsB.net] おお済まない。クライアントじゃなく、こちらの想定上の理想を100点という意味で書いてたつもりだった。
303 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 07:15:36.12 ID:2L75ZkE+.net] いまだに「関数型はマルチスレッド(マルチプロセス)に強い」と思い込んでいる人がいるんだな。 20年前にはそんなものは神話だということがバレているわけだが。
304 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 07:17:27.87 ID:2L75ZkE+.net] >>286 もしかして、動的型言語では契約プログラミングができないとでも思い込んでいる?
305 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 07:54:40.31 ID:jqjYNF9z.net] なんでもそうだが、動的言語のできるは、 静的言語でできることの「一部」しかできない。 いっつもできるできないの話に持ち込んで 同じことができると錯覚させようとするんだよなぁw
306 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 08:43:25.14 ID:gr0U1KS4.net] >>299 神話じゃなくってそれはどうすればいいのか知らないだけのことで、少なくとも完全にパッケージングされていれば きにならないことだ
307 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 08:49:50.37 ID:fsY0id6u.net] C# + EF使うとSQLのtypoすらほとんど無くなる あれは感動
308 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 09:30:42.11 ID:hK9ny108.net] なんでもそうだが、静的言語の「動的」にできるは、 動的言語でできることの「一部」ですらないまがいもん。 いっつもできるできないの話に持ち込んで 同じことができると錯覚させようとするんだよなぁw それでそのことを指摘すると、動的な機能なんていらないとか typoの修正が完全じゃなくなるとか、補完の精度が落ちるとか 挙げ句の果ては、動的だと動かさないと型チェックできないとか 0か1かの極論を展開して煙に巻こうとするんだよなぁw で、さらにそれを指摘すると、それしか反論がなかったからとか開き直る。 さんざん動的のメリットを言ってもユースケース想像できなくて頭ごなしに拒否。 ドカタは世界が狭いから、静的型だとダメだから動的に移る人もいるって わかんないんだよね
309 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 09:35:11.37 ID:jqjYNF9z.net] それで言い返したつもりなんだろうけど、 静的言語でなんでも動的にできるなんて言ってないがねw 逆に静的に決めることが利点なわけで、動的でやろうとは思わない。 そりゃ動的にすることも出来なくはないけど、できればやりたくない。
310 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 10:57:03.24 ID:bx1tuSu0.net] そうなんだよね C#には動的型言語みたいな機能のdynamicがあるけど 静的型言語を使っておいて全部の変数をdynamicで書こうとは思わないよね キャストもなるべくしないようにすべし、というのが静的型の文化 一方で最近の動的型言語は静的型の機能を吸収していっているが とても中途半端でジェネリックが無い まさに、動的型の静的機能は静的型言語でできることの一部ですら無いまがい物だね
311 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:15:20.03 ID:NKmQ5FTU.net] >>304 想像はできてない、かも分からんが お前も言えてないよ
312 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:29:25.89 ID:OjtiikyN.net] 動的の利点はプロトを素早く書けるってところだろ。 あとは稼働を止めずにリプレースできるとか。。 静的言語の問題点は 静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。
313 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:47:57.68 ID:jqjYNF9z.net] > あとは稼働を止めずにリプレースできるとか。。 "その方法" は、クラウドの時代になって様変わりしたけどねw 今はサーバーにログインして、一台一台ソースコードを更新なんて 危険なやり方でリプレースしたりしませんw 新しいバージョンにしたVMを作成して最終確認した後 接続先を新しいVMに切り替えるんですよ。 このやり方に動的の利点なんかありません。
314 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:49:22.93 ID:jqjYNF9z.net] × 静的言語の問題点は静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。 ○ 静的言語の問題点は静的解析してりゃテストはいらんとか言い出すんでしょう? とかいいだす、動的馬鹿が発生し易いってことかなw 静的だとテストはいらんと言ってるのは動的厨だけ。
315 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 11:56:38.95 ID:ZootpjTa.net] 静的でも値に対するテストはするよな?それは型チェックで分からないからな で、値に対するテストに通れば、型チェックも通ってると思うんだけど、 なぜか静的ドカタは動的だと型のテストコードも必要と思い込んでるみたいなんだよね なんで?
316 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 12:49:50.49 ID:jqjYNF9z.net] >>311 いろいろと勘違いしてるねw 重要なのは、テストも含めた開発のコスト。問題点は早く見つかる方がコストは低くなる。 そしてもう一つ。型チェックというのは正確にはインターフェースのチェック。 引数(シグネチャ)が正しいこと。クラスの継承関係などが正しいこと。 インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。 (ほぼというのは意図的に静的型の型安全性を捨てた場合を除くから) テストコードというのは、単体テストが主で、これはインターフェースのテストではない。 単体テストでインターフェースのテストを静的型と同等レベルまで動的型でテストするには 漏れがないといえるレベル(少なくともカバッジ100%)の完全なテストが必要になる。 しかし漏れがないことを証明する方法はないし、そもそもテストに問題がないことを証明する方法もない。 ちなみに、カバレッジ100%を目指せと言うと、それはやめろと言われる(笑) テストを書くというのはコストがかかる。メンテナンスするのにもコストは掛かる。 テストを書かなくてもテストを書いたのと同じ効果が得られるのであれば、それに越したことはない それがテストの一部であったとしても、テストのコストを下げることになる。 テストはどれだけやっても十分とはいえないんだから多ければ多いほどいい。コストがかからない方法(静的)ならなおさらだ。 動的型は完璧なテストがあれば十分だというが、そのような完璧なテストは存在しない。 TDD再考 (1) ? テストファーストとユニットテストへの死刑宣告 ( ubiteku.oinker.me/2015/07/21/tdd-is-dead-long-live-testing/ ) TDD再考 (2) ? 何故、ほとんどのユニットテストは無駄なのか? ( ubiteku.oinker.me/2015/07/27/why-most-unit-testing-is-waste/ ) テスト駆動開発(TDD)はもう終わっているのか? ( Part 1 postd.cc/is-tdd-dead-part1/ ) テスト駆動開発(TDD)はもう終わっているのか? ( Part 2 postd.cc/is-tdd-dead-part-2/ )
317 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 12:51:46.50 ID:akw4ximt.net] なんだかよくわからんがVisualC#™️を信仰するおっさんが 自分がVisualC#™️推しだってことは隠して Microsoft™️ .NETフレームワーク専用言語の 「静的言語(=Visual C#™️)は世界一なんだぞぉ!」 って主張するスレってことでいいかね?
318 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 12:55:58.25 ID:Ava23gur.net] >>312 あ、ドカタ界隈ではインターフェースのテストはしてないんだ なるほどね
319 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:00:45.19 ID:jqjYNF9z.net] >>314 インターフェースのテストをしてるんだw 書いてみてよ。
320 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:05:09.23 ID:jqjYNF9z.net] インターフェースのテストの意味がわからないお馬鹿さんがいるようなので 具体的に説明する。 foo(TypeA a, TypeB b, TypeC c) という関数がある。 この関数を使っている所がソースコードのあちこちに存在する。 静的型付けであれば、このインターフェース、つまり引数の型が違うものを 全て教えてくれる。 >>314 はこのインターフェースのテストを書くらしいw 俺は実行して見る以外のやり方を知らないよ。 実行すればわかる? そうだね。”漏れがなく完璧なテストがあればね" さあテストを書くお仕事だ。テストを書くのはコストは掛かるぞ。 テストをメンテナンスするのにもコストは掛かるぞ。 静的型付けでは、このインターフェースのテストにはコストはかからない。
321 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:10:54.30 ID:hK9ny108.net] >>312 > インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。 逆だろ 静的型ではほぼ完全にチェックできることしか書けないように、 本来ソフトウエアにできることに制限を設けてるだけ
322 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:11:34.10 ID:Ava23gur.net] >>316 ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ なるほどね
323 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:22:25.74 ID:jqjYNF9z.net] >>317 > 静的型ではほぼ完全にチェックできることしか書けないように、 > 本来ソフトウエアにできることに制限を設けてるだけ プログラミングの進化に伴い、なんでもできるアセンブラから制限をかけることで、 より安全なコードが書けるように進化しているという事実をどう考えてるのか? >>318 > ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ だからいったろ? 静的型のインターフェースのテストと同等レベルのテストを行うには 完璧なテスト(カバレッジ100%)が必要。だがテストが完璧だと保証する方法はない。 テストにバグがないことを保証する方法もない。 そしてカバレッジ100%を目指せというと、それはやめとけと言われる(笑) もちろんカバレッジ100%では完璧ではない。特に動的型付けでは コードパスによって引数は大胆に変わる可能性があるし、コード自体も変わる可能性がある。 あるコードを実行したら、オレオレパッチで関数のシグネチャが変わることさえも。 テストはどれだけやっても確実にはならない。ソースコードの単体テストに加えて 静的型付けのコンパイルチェックがあれば、単体テストだけよりもさらに完璧になる。 鬼に金棒ってやつだ。 所詮お前は、単体テストがあれば十分だって考えてる あまちゃんってこと。
324 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:43:19.63 ID:GK0ijEpp.net] >>319 つまり値に対するテストはロクにやらずに 本番でエラーが出ないことをガクブルしながら祈ってるわけね なるほどね
325 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 13:44:12.09 ID:dp1zfJIT.net] 動的型付けに於いて、継承は不要
326 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 14:52:31.49 ID:hK9ny108.net] >>319 > より安全なコードが書けるように進化しているという事実をどう考えてるのか? 抽象化=制限 じゃあない。
327 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 15:56:38.30 ID:+uShK3RK.net] JavaScriptが最強のプログラミング言語。全ての言語はJavaScriptを模範として構成されるべきである。
328 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:28:07.52 ID:bx1tuSu0.net] >>322 自動車にも自動ブレーキがつく時代だぞ ファンヒーターやコンロも付けっぱなし防止機能が付いているし 電車なんかの制御も安全機能だらけだろ 初めから危ない動作はしないように制御されている セーフティーは重要 お前らの書くプログラムも明らかに矛盾した入力は受け付けないようにしているだろ ユーザーは何を入力するか分からんからな 普段そういう安全機能がついたものを使っておいて、また、作っておいて どうしてそういう安全に関する考えを自分の
329 名前:使う言語にまで発展させて考えられないの? 頭硬いの?どうして安全装置が無いことでドヤ顔できるの? [] [ここ壊れてます]
330 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:31:01.73 ID:+uShK3RK.net] 競輪選手の自転車にはブレーキついてないよ。
331 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:38:13.00 ID:bx1tuSu0.net] あれはレース用だろ そういう意味ではメガデモをアセンブリで作るような場合は安全は関係ないだろう 仕事で使うもの、あまたある業務用装置に 安全装置がついてないとでも言うか? なまじ危ないことをするから安全装置だらけだぞ ただし業務用装置にはコストの関係もあるから付いてない場合もあるが それは劣っているというだけで、コストかけられるなら安全装置はついていたほうが良いのは当たり前 安全装置がついていないことをドヤ顔する人はいない
332 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:41:55.89 ID:+uShK3RK.net] プロの使うコンロには安全装置ついてないよ。
333 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:46:14.53 ID:0rzi2y0b.net] 今後も0か1かの議論に固執するなら、他者の立場を理解することなんて永久にできないよ。 まあ、する気もないんだろうけど。 動的遅延結合性を大事にする人間は別に型は否定してない。 たまたま今の型システムは不自由だから、次善の策として動的型を使っているだけだ。
334 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:51:13.35 ID:bx1tuSu0.net] お前らが普段作っている業務ソフトetcには安全装置がついてないのか? 誤った入力が有ってもそのまま実行するのか? それか初めから誤った入力は出来ないように 無効なボタンは灰色表示にして押せないようにしているんじゃないのか? 当たり前だよな? 普段そういうものを作っておいて、作らされておいて どうして自分の使っている言語に安全装置が足りてないことに気づかないの?
335 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 16:55:40.40 ID:+uShK3RK.net] 別に死ぬわけじゃないんで、プログラムに安全装置いらない人でも綱渡りするときは命綱は付けるでしょ。
336 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 17:27:57.19 ID:9YX+2XWA.net] 完璧を求めるなら依存型言語とか証明駆動開発をやってみるといいんでないか。まだ未開拓部分が多いんで人が増えると面白い。 正直、smalltalkはlispやprologと同じくらい極北なイメージがある。 Cのマクロしか知らずにマクロを批判してたらLisperに囲まれてボコボコにされるのと同じように、 Javaのオブジェクト指向しか知らずにOOPを批判してたらSmalltalkerにボコボコにされる雰囲気がある。 そして誰か、「この世は計算式」ってどういう意味なのか教えてください。 それがオブジェクト指向とどう対立するのかも分からん。
337 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 17:48:36.25 ID:m7Ghdsbn.net] >>328 "型がわかんねぇから食えないもの食って死ぬ"ってぇなら 「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って 答えるようにすればいいだけだよなー
338 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 17:54:30.03 ID:m7Ghdsbn.net] >>331 >そして誰か、「この世は計算式」ってどういう意味なのか教えてください。 建てた奴はオブジェクト指向vs関数型にしてやろうと思ってたけど C#ジハードおじさんが来て「俺がいるところこそが唯一絶対の真理である!」って やってるから皆でテキトーにそれつついて遊んでんじゃないの。
339 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 18:17:46.11 ID:noY3begs.net] >>326 安全装置はついていれば便利なことも多いけど、必ずしもよいことばかりではないよ。 不完全な安全装置や安易な判断で設置された安全装置は、人の命を奪うことすらある。 もちろん程度問題で、すべてが悪と言う気はないよ。たぶん、それで助かる人は困る人より はるかに多いだろうし。でも、それでいいと思う人ばかりじゃないことは理解をしないと。 現状の静的型が目的以外の使用を許さないところは、車に例えれば、安全装置のせいで セルモーターを使った踏み切り脱出ができなくなったと嘆く教習所の教官の言葉を思い起こさせる。
340 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 18:22:06.62 ID:rV5TNjST.net] あなたはだんだんずれていく...
341 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 19:19:03.42 ID:+uShK3RK.net] 安全装置のついた人生なんて何も面白くないからな。人生を危険に晒せだよな。
342 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 19:37:44.93 ID:Ava23gur.net] Javaドカタはヌルポ例外を見過ぎたせいで 例外を必要以上に危険視する傾向があるという
343 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 19:39:46.66 ID:+uShK3RK.net] 素人が扱うM4ライフルとかよりMP5的なサブマシンガンのほうが殺傷率高いって事だろうな。
344 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 20:02:45.31 ID:IBlQGaN+.net] >>304 >>なんでもそうだが、静的言語の「動的」にできるは、 >>動的言語でできることの「一部」ですらないまがいもん。 一部ですらって、何ができないの? 大方の動的言語に近いことはできるとおもってるんだけど・・・
345 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 20:32:36.37 ID:jqjYNF9z.net] >>332 > 「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って > 答えるようにすればいいだけだよなー 型に聞く必要があるのなら、なおのこと、 型があったほうがいいんじゃないの?w
346 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 20:52:12.77 ID:hK9ny108.net] 静的型でも構造的部分型とかならだいぶマシなんだけどね。
347 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:01:07.39 ID:ILSUiSxT.net] >>301 >なんでもそうだが、動的言語のできるは、 >静的言語でできることの「一部」しかできない。 逆。原理的に静的型言語は動的言語の「一部」しかできない。 ばか?
348 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:05:03.98 ID:ILSUiSxT.net] >>319 おまえは本当にばかだなあ。 静的型言語は型検査を通らないと型安全を確保できないが、 動的型言語は型検査などなくても型安全を確保できているんだよ。
349 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:11:05.33 ID:IBlQGaN+.net] >>342 C#、VB.NETだと必要なところにだけ動的型を導入できる TypeScriptではjavascriptに合わせて動的型にする場面も多い Javaでもバイトコードでは対応したみたいだから、将来的に導入されるかも? C/C++ではそんな不自然な機能には対応しない
350 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:12:53.77 ID:HeaJTNm+.net] 型が重要な箇所があるなら、その部分で型チェックすればいいじゃない
351 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:34:01.48 ID:+uShK3RK.net] クッキーじゃないんだから型々いうなよ。日本人なら餅を食え。
352 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 21:37:01.46 ID:eaGEBgum.net] 煎餅食う
353 名前:デフォルトの名無しさん [2015/12/20(日) 21:59:10.73 ID:ywvYIxL3.net] C/C++でもポインタをフルに使ったら動的と同じ処理を出来なくもないけどな
354 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 22:09:54.59 ID:akw4ximt.net] そりゃそうだ。オブジェクト指向も関数型もアセンブラでできるんだよ!なんだから。
355 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 22:13:03.00 ID:hK9ny108.net] チューリングの泥沼に注意せよ。それは何事も可能であり、何事も容易に非ず
356 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 22:15:16.86 ID:l3TBRkh9.net] クッキーの型で煎餅を焼くことも出来るわけですね!
357 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:15:04.42 ID:3zlmhSVS.net] テストのコストとかビジネスライクなこと言うなよな
358 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:24:35.18 ID:JMy37Egb.net] このリストがマストだ
359 名前:デフォルトの名無しさん mailto:sage [2015/12/20(日) 23:46:56.43 ID:akw4ximt.net] エビデンスを示したまえ
360 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:05:30.65 ID:K9YQZ40/.net] 319 みたいな馬鹿のいるプロジェクトは大変だろうな。。 ことあるごとに 100% じゃねーからとか言い訳してテストしなさそうだ。
361 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:20:21.16 ID:wKrNpYiO.net] >>342 > 逆。原理的に静的型言語は動的言語の「一部」しかできない。 > ばか? 話の流れがわかってないw 原理的に動的言語は静的型言語でわかることの「一部」しか「静的に」判断できないできない。 静的型言語はなんでもできる動的言語の危険性を抑えるために 実行時にできることが制限されている。それが安全性につながる。
362 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:21:30.20 ID:wKrNpYiO.net] >>343 > 動的型言語は型検査などなくても型安全を確保できているんだよ。 じゃあ、TypeAしか入れられない型にTypeBを入れて それでどうやって静的に(実行せずに)型安全性を確保しているか教えて。 実行して落ちるのは型安全じゃないからねw
363 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:23:07.92 ID:wKrNpYiO.net] >>345 > 型が重要な箇所があるなら、その部分で型チェックすればいいじゃない それだと、どんな型を渡しても正しく扱えることはまず無いから、 殆どの部分で型チェックが必要になるぞw 特定の型固有のメソッドを呼んだ時点で、落ちてしまう。
364 名前:デフォルトの名無しさん [2015/12/21(月) 00:48
] [ここ壊れてます]
365 名前::12.97 ID:wV5Rx1o6.net mailto: >>337 そのヌルポに大した危険はなくても偉い人がヌルポだと騒ぎ出すから、結局なんかしなきゃいけない。 [] [ここ壊れてます]
366 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 00:59:07.29 ID:qoXEI4gu.net] 静的型のチェックの「完全さ」が本当なら、このコンパイルが通る理由が分からん import 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); } } }
367 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 01:48:05.01 ID:B3EXamn3.net] 正直に白状するが、Javaは静的型付け言語としては貧弱で、たぶんSmallTalkerから見たらOOPの機能も貧弱。 nullはあるわisInstanceOfはあるわ後方互換性のせいで汚いメソッドがあるわで、潔癖な人にはおすすめできん。 現在に至るまでの資産が無ければ触りたくもならんです。 自分はML系の型システムでようやく静的型付けの有り難みが分かるようになった。
368 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 02:47:46.56 ID:wKrNpYiO.net] >>360 IntegerとLongは共にNumberを継承しているから
369 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 04:14:30.72 ID:7dJZ8TPE.net] >>357 本物のバカ? まともな動的型言語なら、そもそも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 でも読んでろバカ。 わかりまちたか、おばかちゃん? 静的厨はほんと型システムに関する知識が薄いね。だからバカなんじゃないかなあ。
370 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 04:52:19.75 ID:wKrNpYiO.net] > メソッドが見つからなければ言語仕様通りに「正しく」例外を投げる。 言語仕様通りに「正しく」例外を投げる。 だけど、これはアプリの仕様からしたらバグだ。 話の前提わかってる? 言語を作る側の話じゃなくて 言語を使ってアプリを作る側の話をしてる。
371 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 05:10:51.36 ID:ouS7hqFY.net] イライラジャップw
372 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 05:36:24.60 ID:7dJZ8TPE.net] >>364 例外を捕捉しないのはアプリのバグであって言語のバグじゃないよw 自分のバカさを動的型のせいにするなってww 話の前提どうこう以前に、まずは自分のバカさを自覚しろw
373 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 05:39:43.68 ID:wKrNpYiO.net] >>366 あんたは動的言語では例外が出るといった。 実行されるまでわからないということだ。 静的言語だと静的にメソッドが無いことを調べられる。 だからアプリのバグを減らすことができる。 少なくとも実行しなくてもわかるから、 早くバグを修正できる。アプリ開発のコストが下がる。
374 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 05:45:26.20 ID:YADl95dr.net] なんだかすげえなw
375 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:16:48.64 ID:7dJZ8TPE.net] >>367 そうでちゅね、静的型言語ではアプリをテストせずに開発できちゃうんでちゅね、すごいでちゅねwww バカ丸出しw
376 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:19:38.14 ID:7dJZ8TPE.net] こういうバカな静的厨に限って、 普通にレコード定義すればいいところでMap型を使って アプリがキーエラーで落ちるw
377 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:39:28.24 ID:G65zLFaz.net] >>362 すげーな。 コンパイルが通るってことは、このコード、ランタイムエラー吐かずに正しく動くんだな?
378 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 06:50:22.82 ID:7dJZ8TPE.net] >>367 >少なくとも実行しなくてもわかるから、 >早くバグを修正できる。アプリ開発のコストが下がる。 HM型検査を実行するのと、ほんの数個の単体テストを実行するのと、 どちらが早くバグを修正できるでしょうかね? ばーかw
379 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:01:32.16 ID:wKrNpYiO.net] 静的言語のテストは、単体テスト+静的解析からなる。 単体テストだけの動的よりも信頼性が高い。
380 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:02:38.27 ID:wKrNpYiO.net] 単体テストは完璧ではない。全てをテストするわけではない。 単体テストでテストできなかった部分も静的解析でテストできる。 鬼に金棒
381 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:03:44.31 ID:wKrNpYiO.net] >>371 すげーな。単体テストさえあれば、バグは一個もない。 他にテストは要らないと思ってるのかw
382 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:18:53.80 ID:7dJZ8TPE.net] バカだなあ… メソッドがあるかないかぐらい単体テストでC0カバレッジで十分わかることじゃないかw 本物のバカだなw
383 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:19:42.76 ID:7dJZ8TPE.net] ねえ、静的厨ってみんなこんなバカなの?
384 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:22:03.68 ID:wKrNpYiO.net] > メソッドがあるかないかぐらい単体テストでC0カバレッジで十分わかることじゃないかw カバレッジ100なのかい? d.hatena.ne.jp/ku-ma-me/20110526/p1 > ■ コードカバレッジ 100 % の難しさ > マイクロソフトの面接試験とかいう噂の問題。のバリエーション。 > > 水槽に 100 匹の魚がいます。98 % はグッピーです。 > では水槽にいる魚の 99 % をグッピーにするには、何匹のグッピーを水槽に足せばいいでしょう? > 知らない人は一瞬だけ考えてみてください。 > > > > > > 答えは「100 匹」です。直感より多いですよね? > > これは、コードカバレッジ 100 % の難しさに似ています。グッピーがテストされた行で、 > パーセントがその割合 (カバレッジ) だと考えてください。カバレッジが 98 % のプロジェクトがあれば、99 % にするにはおよそ倍の労力が必要なわけです。 > > 自分でテストを書かない人は、したり顔で「C0 カバレッジは 100 % で当然 (キリッ)」などと > 言うのですが、世の中そんなに甘くないんですよね。
385 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:24:23.17 ID:wKrNpYiO.net] C0カバレッジを100%にしてもバグは0にはならない。 これぐらい常識だろう?
386 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 07:41:17.41 ID:wZBXbgJl.net] バグがゼロになるっていう話だっけ…
387 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 08:30:07.58 ID:dc09zofZ.net] 値エラー以外でテストするのはめんどくさいな。 メソッドがあるかないかで動的に条件分岐するところのテストなんてやりたくない。
388 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 08:36:09.75 ID:dc09zofZ.net] 型エラーの「可能性」まで事前に検知したいのか、 型エラーの「発生」をその時に検知できればいい、 というスタンスの違いってことか。なら理解できる。
389 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:01:27.79 ID:7dJZ8TPE.net] >>379 メソッドがみつからない問題はC0カバレッジ100%で解決できるよ。 実際にはメソッドを叩いてる箇所のみが問題だから、厳密にはC0カバレッジ100%いかなくても網羅できるよ。 そんなことも知らずにテスト手法を叩いてたの?ばか?
390 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:03:29.84 ID:7dJZ8TPE.net] >>382 正確には、コンパイラによる静的型検査では「事前に」検知できないよ。 型検査という一種の証明手続きの「実行」によってしか検知できない。 にもかかわらずバカな静的型厨は「実行前」「実行前」とバカのように連呼する。 バカだから仕方ないけど、バカ丸出し。
391 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:08:42.38 ID:G+qBG4+k.net] ゴキブリ韓国(ゴキ韓) 日本は国交断絶せよ 民主主義は無理 世界一民度低い国 goo.gl/cchGqh
392 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:10:23.98 ID:dc09zofZ.net] >>384 >型検査という一種の証明手続きの「実行」 それは一般的に言うところの「コンパイル」もしくは「リンク」に相当するもの?
393 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:22:48.80 ID:+DYxsHCL.net] 動的型付けでオブジェクトを作ったら使用者がそのオブジェクトのクラスを覚えていたら手動の静的型付けなんだよね。だから忘れなければいけない。 次にそのオブジェクトを使おうとするとき、それが何か忘れてるから、そのオブジェクトがどういうメソッドを持っているかなどの チェックをするから絶対間違えることはない。すなわち動的型付けが悪いという批判の全ては実は 手動静的型付けという名の静的型付けが悪いということだったんだね。
394 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 09:26:23.10 ID:K9YQZ40/.net] >単体テストは完璧ではない。全てをテストするわけではない。 >単体テストでテストできなかった部分も静的解析でテストできる。 >鬼に金棒 正しいこと言ってるけれど、こいつは絶対テスト書いてないと思わせるところが凄いw
395 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:04:08.74 ID:XjOZdx5G.net] 動的言語でもテストすれば問題はないだろうけど、入力するときにメソッド名を確実に補完してくれたほうが書くときもテスト作る時も快適 その程度の違い javascriptでブラウザのコンソールで補完使いながら書いてると実感する あんまり触れられてないけど、スクリプトと比べて静的に型を解決してコンパイルする言語のほうが速度面で圧倒有利というのもでかいと思う
396 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:29:34.55 ID:7dJZ8TPE.net] >>387 ポエムはお花畑板でどうぞ。
397 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 10:36:36.12 ID:vg4j58Ti.net] ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
398 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:42:30.54 ID:atu8DMrc.net] >>375 静的型付けでコンパイル通っても「型に関する」バグも有り得るって言われてるの分かってる? 馬鹿だから分かってないんだろうなぁ
399 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:51:13.05 ID:x6st9rMu.net] 動的でも問題ないって言っている人たちは 最近の動的型言語がどんどん静的型の型チェックの機能を取り入れているのは どう考えているんだろうね メリットがないなら導入する意味ないよね でもどんどん導入されていっているよね あのRubyですら3.0で静的型を導入したいと言っているよね この事実をどうするの?
400 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 10:52:41.41 ID:+DYxsHCL.net] ruby3以外に例を挙げてみろよ
401 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:05:22.17 ID:x6st9rMu.net] qiita.com/t2y/items/f11032f98d57bc7fc5da 動的型言語の型システムしょぼー >Python 3 の型アノテーション構文の組み合わせが Python における型付けの標準になると宣言されました。 >正直なところ、多くの理由でこれはまったく良い決断ではないと私は考えています。 >その最大の理由は Python は優れた型システムをまさに持っていないことに苦しんでいるからです。 >静的型付けが意味をなすには、型システムが良いものである必要があります。 こういったショボい使いものにならない静的型システムは なまじ有るだけ使わないと行儀が悪いような気がするが 使いまくるとジェネリックも何もないので汎用性が落ちてCレベルのコーディングになって苦しい 使えば使うほどそういう矛盾が浮き彫りになって、もやもやしてくるだろう この型システムしょべーって なまじ有るから使わないと行儀が悪いような気がするってのもポイントだな プログラムを書いてる本人が気持ち悪くなってきて、動的型言語宗教から改心する きっかけになるのであれば、中途半端な静的型を導入することにも意味があるっちゃ意味がある
402 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:08:23.42 ID:x6st9rMu.net] >>394 hrnabi.com/2015/05/12/7035/ >一方、最近出てきた言語であるScalaやDart、Goといったプログラミング言語は静的型付け言語に分類される。 >そして、Rubyとは色々な面で似た言語と言えるPythonでアノテーションを付ける文法の導入が検討されているなど、 >動的言語でも静的型付けの良さを取り入れる動きがあるという。 gihyo.jp/news/report/01/rubykaigi2014/0002 >一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような >使い方をされながらも静的な型を持っています。 >このことについて,まつもとさんは「悔しいからRubyに静的な型を導入してみようか」 ほらよ
403 名前:デフォルトの名無しさん [2015/12/21(月) 11:09:20.16 ID:wV5Rx1o6.net] >>392 ないよ。マヌケ。 なぜなら、コンパイラによりタイプセーフを保証されているから。 まず、例を出せよ?? 静的でもリフレクションとか動的機能使えるからそれ使った時だよね。 でもそれは、動的のバグだよね。
404 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:10:39.25 ID:+DYxsHCL.net] インターネットの日本語の記事ばっか観てると馬鹿になるよ。英語の記事の誤植とか意訳ばかりだからな。最近日本語読んだのはこのスレくらいかな。
405 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:10:46.95 ID:atu8DMrc.net] >>395 pythonの型は動的型の中では出来損ないの部類だが、そいつにはジェネリックくらいある 無知が批判するとポイントがボヤけるからやめれ https://docs.python.org/3/library/typing.html
406 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:11:54.59 ID:atu8DMrc.net] >>397 >>360
407 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:14:11.40 ID:x6st9rMu.net] 新しく言語を作るとき、静的型システムをどういう風に発展させていくかというのが一つの大きな見どころであり 一番手間のかかる部分だ 今は最低でも型推論とジェネリックが当たり前で、これからもっと発展していくかもしれない タイプセーフでありながら柔軟性も持たせ、記述量も減らす方向へね 安全性と柔軟性を両立させるという、ある種矛盾しているかのような命題へのチャレンジだ 動的型言語はそれを放棄してしまっているのだから、全く面白みがないね
408 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:27:11.60 ID:+DYxsHCL.net] 日本語が不自由なようで
409 名前:デフォルトの名無しさん [2015/12/21(月) 11:27:25.95 ID:wV5Rx1o6.net] >>400 ごめんjavaはクソだから使ってねーんだわ。 やめてくれよ、そんな欠陥言語持ち出してくるの。 c#以外の言語は静的と呼ぶほど完成度高くねーんだわ。
410 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:30:16.62 ID:dc09zofZ.net] 動的言語使うなら受け取る側で型チェックはしないなー。 型による分岐はそれが直接目的に適うならばあり。
411 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 11:32:36.19 ID:dc09zofZ.net] 静的言語ならC++でいいじゃんか
412 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 14:09:45.86 ID:7dJZ8TPE.net] >>396 >>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような >>使い方をされながらも Scalaをスクリプト言語に分類するような記事を信じるバカですか?
413 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 14:29:58.27 ID:2nRQSJGH.net] Matzが静的型の導入を〜 って、あれ10年くらい前から言ってる事が二転三転してる戯言だからスルーしたほうが良いよ 浅い信者はMatzの寝言と本音が見極められないようで
414 名前:uy ◆Qawu9.2l1E [2015/12/21(月) 14:41:43.33 ID:E4VHpoC/.net] 実際この手の問題は多数決のようなもので未来が確定してしまう類のものでは? 動的言語が勝つなら、世界が「動的言語で作られたもので満足」するように作り替えられていく 例えば電子機器のすべてを プログラムにバグがあろうと後から無線で修正可能なようにすればいいんだよ 動的言語は静的言語以上にバグが入ることは確実だ しかし「バグっても問題にならない状況作り」が出来るのであればそれで良い
415 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 16:46:29.69 ID:FpThLLao.net] >>403 > javaはクソだから 具体的に
416 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 16:56:57.21 ID:+DYxsHCL.net] 基本的に企業が作り出した言語はJavascriptを除いてすべて糞。
417 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 17:20:52.96 ID:XjOZdx5G.net] javaは実行環境というか、バイトコードに手を加えずにジェネリックを実装したせいで、パフォーマンスやら型安全を失ってる 静的型言語とかではなく、互換性重視から生まれた言語の欠陥
418 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 17:33:12.08 ID:atu8DMrc.net] >>403 一緒や!c#も! ideone.com/yFcW0Y
419 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 17:40:24.04 ID:qIaAVv7y.net] しかしホントーに"静的言語なら〜"って言ってる奴って 『プログラムは自分の身内で組んだもので完結する』前提なのな。 おれらの決めた内々の決まりを組む奴が徹底すれば問題は生じないはず!(キリッ)って… オブジェクト指向はsmalltalkのむかしから 多くのコンピュータプログラムが相互の通信する未来ではそんなことはできないと看破して オブジェクトが自分の属性を答える機能とかを基底クラスに組み込んでるってのに 偽オブジェクト指向たちは最初から間違ったところより始めてるせいで いつまで経っても偽のオブジェクト指向から抜け出せない。
420 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 18:43:03.63 ID:mofV3EhK.net] > しかしホントーに"静的言語なら〜"って言ってる奴って > 『プログラムは自分の身内で組んだもので完結する』前提なのな。 そんな前提に立てるものを教えてほしいぐらいなんだが(笑) 他人が使るものを使うからこそ、決められたインターフェースを守り それらを動的に書き換えないようにするんだよ。 勝手にクラスとか書き換えたら動作保証ないからな。 バージョンアップしたらすぐに動かなくなる。 自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから 動的である必要はない。
421 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 19:24:39.60 ID:qIaAVv7y.net] >自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから メンテ地獄は楽しいか。 つべがflvやめてhtml5にしたり通信先が小変更する度に システムフル再コンパイルしてそうだなおまえら。
422 名前:デフォルトの名無しさん [2015/12/21(月) 19:25:06.67 ID:dWRO7mc6.net] しかしなんでこのスレってこんなにsmalltalkerいるんだ 本スレすら過疎ってるオワコン言語やぞ
423 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 19:45:02.82 ID:dc09zofZ.net] なんでこんなことにこだわっているんだ?
424 名前:デフォルトの名無しさん [2015/12/21(月) 19:51:20.56 ID:wV5Rx1o6.net] >>412 あー共編性、反変性使わない人かー。 例えば、家の玄関に土足で上がらないでくださいって注意書きしないのはなぜだと思う? そんなことする馬鹿な人に会ったことないからだよ。
425 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 19:55:46.35 ID:B3EXamn3.net] OCamlをやるんだ。 JavaやC#じゃ法螺扱いされる「コンパイルが通ればランタイムで型に関するエラーは起きない」世界が待ってるぞ。
426 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 20:28:52.54 ID:7dJZ8TPE.net] 動的型付言語でも「ランタイムで型に関するエラーは起きない」世界が実現されているが? というとメソッドが見つからないとか言う厨房がいるが、 それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと どう違うのだ? ゼロ除算して例外が発生するのとどう違うのだ? 結局、静的型言語ユーザがいう「ランタイムで型に関するエラーは起きない」というのはマッチポンプでしかない。
427 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 20:41:15.90 ID:mofV3EhK.net] >>415 > つべがflvやめてhtml5にしたり通信先が小変更する度に > システムフル再コンパイルしてそうだなおまえら。 分割コンパイルって知ってる? 依存関係を小さく保つから、影響があるところも局所化され 実際にはシステムフル再コンパイルではなく、依存しているところのみ 再コンパイルが必要になるだけ。 そういったことも知らずに叩くんだよなぁ(笑)
428 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 20:42:13.79 ID:etCoLxJ5.net] そもそも"型"ってなにかね? なんか静的おじさんはintとかstrとかそういうプログラム言語規約上の取り決めぐらいしか想像できてないみたいだけれども 実際はデータ構造そのもの、構造体やクラスが受け渡されてくるのだからその種類の数だけ型がある。 pictureというクラスの型はBMPだから!と決め打ちして、jpgが追加されたら俺にもjpgの展開エンジン教えろ pngが追加されたら俺にもpngの展開エンジン教えろと言って毎回自分のプログラムを再コンパイルして備えるつもりか。 そうしないと自分が食えなくてバグ吐いて止まるから。 そういうくだらない車輪の再発明を防ぐためにオブジェクト指向は生まれてpictureオブジェクトに 展開エンジンが含まれてるから、受け手は考えなくていい。そして、すべての型はオブジェクトだから "世界のすべてオブジェクトの名前と内容を予め知るのは不可能"なので動的に処理するしかない。 動的に処理することで作ったものをいちいち毎度メンテして弄り回すプログラマーのメンテ無限地獄を回避してるっつーのに 「おれらのやり方はあらかじめ世界のすべてを知ってからその決まりでやってるから問題は生じない!」とかバカか。 なんでネットワーク関連で動的が主流で、ちんまりした閉システムでしか静的が流行らないのかちゃんと理解しろ、ジジイ。
429 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 20:46:53.08 ID:mofV3EhK.net] >>420 > それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと > どう違うのだ? 図にすればわかる? わかりやすく簡略化して書くけど | 型の問題 | 空リストの問題 | ゼロ除算の問題 | 静的 | なし | あり | あり | 動的 | あり | あり | あり | 問題が多いのはどっち? 答え 動的 重要なのは、問題がどれだけ "多いか" だからさ。 静的・動的、両方に発生する問題を持ってきても、 動的だけにある問題がある以上、動的のほうが問題が多いわけで
430 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 20:49:47.79 ID:mofV3EhK.net] >>422 > そもそも"型"ってなにかね? インターフェースの取り決めだね。 巨大なシステムは複雑にならざるをえない。 だから、公開している部分と、公開してない部分をしっかりわけ、 公開している部分は仕様をきっちり明確にする。 その仕様がインターフェースであり型なんだ。 LinuxもWindowsも仮想マシンもコンテナも 大きなシステムは静的言語を使って作られている。
431 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 20:52:58.26 ID:mofV3EhK.net] >>422 > 毎回自分のプログラムを再コンパイルして備えるつもりか。 だから毎回全部を再コンパイルしてないってばw Linuxの動的ライブラリの仕組みとかドライバの読み込みとか Apacheのモジュールの仕組みとかしらないの?w インターフェース(≒型)をきっちり決め、そのインターフェースに合わせることで 再コンパイルすること無く組み込み可能にしている。 こういったことを知らないんだもんなぁ(笑)
432 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:01:51.63 ID:7dJZ8TPE.net] >>423 だーかーらー、動的型付言語に型の問題なんてないんだって。 コンパイル時型検査なんてしなくても型安全を確保できているから。 型エラーではないものを勝手に静的型では型エラーとして扱われるからといって 勝手に「型の問題」扱いしないでもらえるかなあ?
433 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:04:46.50 ID:mofV3EhK.net] >>426 静的型は型エラーであるもの、つまりアプリのバグ。 そのアプリのバグを静的型は実行すること無く検出できる。 それに対して動的型では、アプリのバグが見つからない。 アプリのバグが見つからないが型安全なんだから、 いいじゃないか。って言ってるわけだよね? 型安全=アプリのバグがない ということではないよ?知ってる?
434 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:05:35.35 ID:7dJZ8TPE.net] >>425 そうだね、静的型情報をリンカに渡せば静的型でも必ずしも全てを再コンパイルする必要はない。 そもそも動的型ならば全く再コンパイルする必要ないんだがなw そうやって動的型ならそもそも問題が存在すらしていないものを 静的型では問題になるからといって「静的型では解決できたスゲー」しないでくれる?
435 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:07:13.91 ID:mofV3EhK.net] > そうだね、静的型情報をリンカに渡せば静的型でも必ずしも全てを再コンパイルする必要はない。 > そもそも動的型ならば全く再コンパイルする必要ないんだがなw 全く再コンパイルする必要ない!?それは大変だ。 インターフェースに不整合があったとしても、 その不整合を検出できないじゃないかw
436 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:07:55.23 ID:7dJZ8TPE.net] >>427 で、「動的型ではアプリのバグを見つけることができない」という珍説はどこから湧いて出てきたのかね? 静的型付言語と同じ方法で見つけるわけではないというだけの話を、 どうして「見つけることができない」なんて捏造をするんだね?
437 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:08:48.82 ID:7dJZ8TPE.net] >>429 静的型付と違って、インターフェースが必ず適合するから問題ないんだよ。ぷ
438 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:09:52.92 ID:mofV3EhK.net] > そうやって動的型ならそもそも問題が存在すらしていないものを 意味不明。 インターフェース不整合があってエラーで例外を吐いてシステムが 正常に動かなくても型安全だから問題がない。 そう言ってるわけだよね? そう、ユーザーにさんに言ってるわけだよね? Q. ある機能を実行すると、エラーで例外を吐いて落ちます。機能が使えません。 A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。 うははははw
439 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:12:34.78 ID:GVmX1WAG.net] 列車とトラックの比較にしか思えない
440 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:12:49.27 ID:7dJZ8TPE.net] >>432 だーかーらー、 動的型付言語の世界ではインターフェイスに不整合が発生しないの。 引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、 必ず同じ形式でメッセージとしてパッケージングされるの。 静的型システムについては多少知っているようだけど、 動的型付言語の仕組みはまるでわかっていないようだね。
441 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:13:39.02 ID:7dJZ8TPE.net] 例のおバカさんよりは若干マシだと思っていたが、買いかぶりすぎていたようだ。
442 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:15:10.99 ID:mofV3EhK.net] >434 > 引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、 > 必ず同じ形式でメッセージとしてパッケージングされるの。 その後は? 重要なのはパッケージングされた後でしょう? 例外吐いて落ちるんでしたねw うははははw
443 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:15:36.10 ID:7dJZ8TPE.net] 静的型付言語を使っていると、動的型付言語を静的型付言語のメカニズムでしか理解できなくなってしまうらしい。 まさにバカ製造機だな。
444 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:16:30.67 ID:mofV3EhK.net] Q. ある機能を実行すると、エラーで例外を吐いて落ちます。機能が使えません。 A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。 これを否定しないのは、否定出来ないからだろうなw
445 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:16:44.57 ID:B3EXamn3.net] まずどの動的型付け言語について喋っているのか言及しなよ。 実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、 原理的に起こせない、っていう意味で言ったんだけど、分かる? やたらと例外とエラーを別物にしたいみたいだけど、そんなはっきり区別して扱っている界隈ってあるの? 全然メジャーな使い分けじゃないからちょっと説明してよ。 「例外を投げる動作は言語仕様通りだから、wikipediaでいうところの型安全」っていうは、 関数型言語に言及している中での型安全より遥かに低いレベルの安全性であることは分かってる? 全体的に卑怯者だよ。「ボク間違った言葉遣いしてないもん!」以外全部間違っているよ。
446 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:17:03.21 ID:7dJZ8TPE.net] >>436 落ちないけど? どうして例外が投げられると落ちると思い込んだの? たとえ例外ハンドラが設定されていなくてもアプリケーションが異常終了しない言語/環境は普通に存在するよ? 自分の無知を動的型付のせいにしないでくれる?
447 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:17:58.88 ID:7dJZ8TPE.net] >>438 ぜーんぶ君の無知からくる妄想。正直言って、出てくる感想は「バカ」。
448 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:18:59.25 ID:mofV3EhK.net] >>440 なるほど! じゃあ訂正するよ Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。 A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。 うあははははwww
449 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:20:42.70 ID:mofV3EhK.net] な? インターフェースに不整合があってエラーで動かなくても 落ちなければ、不具合ではないっていう考え方なわけさ。 動的のアプリの質が悪い理由がわかるだろう。 こんな感じでいっつもいきあたりばったり 無計画に修正してるんだよ。
450 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:21:32.67 ID:7dJZ8TPE.net] >>439 >実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、 >原理的に起こせない、っていう意味で言ったんだけど、分かる? 実行時型エラーという概念が存在しない言語(動的型付言語)では、原理的に実行時型エラーなんて起こせませんが、何か?
451 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:23:57.49 ID:7dJZ8TPE.net] >>442 >Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。 >A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。 はい、これも間違い。 メソッドが見つからなくても例外を抑制することもできるし、デフォルト動作を変更することもできる。 当然、「画面にエラーを出す」必要もない。 実行を継続して、機能を利用することができます。 残念でしたw
452 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:24:24.57 ID:7dJZ8TPE.net] >>443 というわけで、やっぱり君は自分の無知を動的型付言語のせいにしているだけでした。
453 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:25:33.03 ID:7dJZ8TPE.net] >>443 というわけで、静的型付言語の世界観で勝手に動的型付言語を誤解して、 間違いだらけの妄想を振りまいているのは君でした。 お・ば・か・さ・ん
454 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:27:09.59 ID:mofV3EhK.net] >>445 じゃあこういうことか Q. ある機能を実行すると、エラーで
455 名前:瘧Oを吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。 A. バージョンアップして修正しました。 画面にエラーを出さないようにエラーを握りつぶしました。 該当の機能は正しく動きませんが、 他の機能が動いているんだからいいじゃないか? うははははwwww [] [ここ壊れてます]
456 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:27:32.36 ID:7dJZ8TPE.net] 静的型付と動的型付はそれぞれ別のアプローチを取っているだけなのに、 静的型付しか知らないばっかりに動的型付を否定しなければ静的型付のメリットを説明できない。 これって静的型付言語ユーザとしても恥ずかしいことだと思うよ。
457 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:28:05.77 ID:7dJZ8TPE.net] >>448 もちろん、それも大間違い。自分の無知をさらすのって、そんなに楽しいの?
458 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:28:51.88 ID:mofV3EhK.net] 静的型付と動的型付はそれぞれ別のアプローチを取っているだけなのに、 動的型付しか知らないばっかりに静的型付を否定しなければ動的型付のメリットを説明できない。 これって動的型付言語ユーザとしても恥ずかしいことだと思うよ。 たしかに! 動的型付けのメリットは出てない!
459 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:29:13.17 ID:wZBXbgJl.net] 静的の人、論点ずらしまくりすぎ。 しかも関係ないところぶったたいて回収される、の繰り返しじゃん。 こんなこといくらやっても余計に惨めになるだけだと思うが。
460 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:29:18.17 ID:mofV3EhK.net] >>450 おや?手詰まりですかw 今度は何もいいませんでしたねwww
461 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:30:09.24 ID:+DYxsHCL.net] Rubyなどのスクリプト言語はトランスレーターでインタープリターが理解できる言語に変換するだけだから実行自体するという概念自体存在しないよな。
462 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:32:14.81 ID:mofV3EhK.net] >>452 なんもずらしてないよ? より確実に堅牢なシステムを作るには静的がいいと言ってる。 静的型は、単体テスト+型チェックの二重のチェックの 仕組みによりより堅牢なシステムが作れる。 動的型は 単体テストしか 出来ない。 型チェックは機械的で矛盾がないチェックシステムだから 低いコストで大きなメリットを得られる。 動的だと、インターフェースに不整合でも、例外が出て それを捉えて画面に表示したりしなかったりするから システムが動かなくてもいいじゃないかって言ってるだろう?w
463 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:41:33.25 ID:w/TLv4VO.net] >>433 >列車とトラックの比較にしか思えない まぁ、そうだね。 トラックが自由に移動できるのを利点として使われてるとこを 「トラックは事故を起こす!レールを走ってないからだ!」 「えー?なにそれ。つか、列車は自由に配送できないじゃん」 「列車も駅から配送するシステムがあるからできる!」 「え…それちがくね?」みたいなやりとりをずっとw
464 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:44:22.27 ID:mofV3EhK.net] >>456 あぁ、でも静的で作れないものはなにもないよ。 目的はシステムを作ることであって 動的にクラスを変えたりすることじゃないんだ。
465 名前:デフォルトの名無しさん [2015/12/21(月) 21:48:12.37 ID:2gy+Cq/9.net] すまん、動的静的両方やったことない雑魚おる?
466 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:48:24.54 ID:wZBXbgJl.net] それほど明らかでないことを断定しているだけで議論になってないと思いますが、、、 まあいいでしょう。 で、それがオブジェクト指向か関数型かという議論にどう関係あるんですか?
467 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:54:01.30 ID:VzjtfJRf.net] >>443 >動的のアプリの質が悪い理由がわかるだろう。 どうやらこの人はemacsよりも拡張性が高く安定したエディタを 静的言語でいとも簡単に実装してしまうスーパーハカーらしい ()
468 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 21:54:11.30 ID:+DYxsHCL.net] 型とは何かから始めないといけないようだな。ここで提案なのだが、これからの議論は定義から命題を評価する証明形式の厳格な議論にしようではないか。
469 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 22:18:22.42 ID:mofV3EhK.net] >>460 > どうやらこの人はemacsよりも拡張性が高く安定したエディタを emacsはC言語だったね。 git.savannah.gnu.org/cgit/emacs.git/tree/lib?h=emacs-25
470 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 22:19:39.20 ID:XjOZdx5G.net] 結局、動的だろうと静的だろうとインターフェースが一致してれば簡単に処理を変えられるし、インターフェースが想定外に変わるならそれに合わせて書き換えが必要というだけでしょ?
471 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 22:23:11.82 ID:mofV3EhK.net] >>463 そうそう。できることは変わらない。 それをするためのコストが違う。 静的であれば、単体テスト+静的解析があるから 少ないコストで品質の高いアプリが作れる
472 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 22:37:06.08 ID:K9YQZ40/.net] c++ をめちゃくちゃ否定する linus の気持ちがよくわかる例になってるな。
473 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 23:20:00.93 ID:pll+pxvz.net] だから、型が重要なら、型チェックをすればいいだけだろ 動的型付けな言語は大抵の場合、インタープリタ型の言語なんだから、テストしたい部分だけ、テスト出来るんだしなんの問題もないよ
474 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 23:38:13.37 ID:mofV3EhK.net] > だから、型が重要なら、型チェックをすればいいだけだろ だからコストの問題。 静的解析にコストはほとんどかからないから 静的言語の単体テスト+静的解析はコストが同じで 単体テストだけの動的言語よりも高い品質になる。
475 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 23:55:15.47 ID:w/TLv4VO.net] なにがなんでも貨物列車がいちばんコストが安いんだってさー
476 名前:デフォルトの名無しさん mailto:sage [2015/12/21(月) 23:56:05.45 ID:GVmX1WAG.net] コストコストうるせーよ
477 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 00:33:15.91 ID:EKiu80aU.net] >>467 どんなにテストしても、バグが存在しない証明にはならない 単体テストと静的解析を行っているから、バグが少ない気がしているだけ
478 名前:デフォルトの名無しさん [2015/12/22(火) 00:38:03.90 ID:3ywPhKdj.net] 証明できないならテストしなくてよくね?
479 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 01:28:00.98 ID:cWRmjQVf.net] Javaドカタが開発に1月かかる機能が Smalltalkでは単体テストの作成込みで数時間で終わる それくらい生産性に差がある事を忘れちゃいけないよ Javaドカタが時間に追われてマトモにテストしてないコードと Smalltalkerが悠々とテストしたコードでは 後者の方が品質高いよ
480 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 01:30:05.05 ID:+ulsEic8.net] 「列車はレールが決まってるからダイヤ解析で事故はなくなる トラックは道を気ままに走るから知らないとこ走って事故る」的な 鉄ちゃんみたいなキチ主張だろう。 鉄道以外じゃルート計算できないと思い込んでる。
481 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 01:30:46.89 ID:nHx61Hkp.net] Javaドカタが開発に1月かかる機能が Smalltalkでは単体テストの作成込みで数時間で終わる 証拠はなないが、これはただしい。 だからSmalltalkの勝ち!
482 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 01:31:47.61 ID:+ulsEic8.net] >>472 なりすましてムリすんな。 おまえは昨日20回も顔真っ赤レスしたばっかなんだからw
483 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 01:32:46.10 ID:nHx61Hkp.net] >>473 鉄オタかよw ほんと鉄道に例えるのが好きだな。 鉄道使えば、より安全に高速に目的を達成できるって話だろう。 目的は、目的地につくことであって、 いろんな道を通ることじゃねーよw
484 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 01:35:42.53 ID:bkvH7oDt.net] 遠くまで運ぶなら鉄道使って最後だけトラックとかが一番いいと思うけど
485 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 01:35:42.57 ID:nHx61Hkp.net] 静的解析を使えば、レールに乗ったようにスムーズに開発ができる。 これを静的解析onRailsという。
486 名前:デフォルトの名無しさん [2015/12/22(火) 05:30:44.16 ID:Cv+dIUET.net] ニイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイップwwwwwwwwwwwwwwwwwwwwwwwwwwwww
487 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 08:50:57.91 ID:h3Yx9vGx.net] 静的解析に夢見過ぎ。 そこまでバグ発見に役立つケースなんてめったにない。 しかもいうほど動的言語での静的解析も手間ってほどではない。 少なくともコンパイル言語での開発に比べればよっぽど低コストだな。 コスト意識が致命的におかしい奴が居るな。
488 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 09:04:13.39 ID:fvYXJdnq.net] >>480 が結論でOK
489 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 09:04:28.25 ID:t0KrzUg4.net] >>476 そんなだからドカタは新しいものやサービスが作れないんだよ 既に多くの人が通ってレールまで敷かれた場所しか行けないんだから
490 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 09:05:44.03 ID:fvYXJdnq.net] このままじゃ462が可哀想だよ...
491 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 09:06:00.38 ID:71TpXAZk.net] コストコストってうるせーな
492 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 10:23:52.98 ID:nHx61Hkp.net] >>480 > そこまでバグ発見に役立つケースなんてめったにない。 それはバグとして換算してないからだろ。 どうせエラーで落ちて修正したのをバグと認識してないんだろ? 静的解析は普段の開発でしっかり役に立ってる。 どう考えても
493 名前:落ちるコードが、いちいち実行しなくてもわかるからな。 実行しなくても修正できる。この時点で修正のコストが下がってる。 もちろんそれだけでないのは言うまでもない。 インターフェースに不整合をすぐに修正できるし、 特定の関数に依存している部分をすぐに調べることもできる。 動的言語だとgrepで調べるしかないからな。同じ名前だと 全く違うものでもヒット、冗長な名前にしないといけない。 こういう普段の開発でもコストが下がる。 コードが成長するにつれて、最初の設計では無理が出てきても、 それを自然な形に直すことができる。 動的だと変化が怖くて、大胆な修正ができない。 どんどんコードは古くなっていき、すぐに手がつけられないようになる。 [] [ここ壊れてます]
494 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 10:28:44.26 ID:Hf0cXCbq.net] 作文は得意だけれど算数は苦手みたいですね。
495 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 10:31:06.94 ID:lJMFjOKo.net] そういう具体性のない煽りが、信用を無くすんですよw
496 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 12:30:06.51 ID:fvYXJdnq.net] >>485 >動的だと変化が怖くて、大胆な修正ができない。 ここが笑うポイントですか? すごいですね、あなたプロのコメディアンになったらきっと売れますよ。
497 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 12:43:42.29 ID:bkvH7oDt.net] 小さい規模でパフォーマンスをそこまで気にしないなら動的型のスクリプト言語 規模が大きくなったり速度重視なら静的型のコンパイル言語 動的型のフットワークの軽さとかもいいし、静的型の実行速度と優れた補完やエラー表示も便利 結局適材適所
498 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 12:58:50.30 ID:lJMFjOKo.net] >>488 何も間違ってないよ? 動的は、実行時に変化することは得意でも ソースコードを修正することは不得意。 少しの修正があちこちに影響して、それがわかりづらいから 修正が怖くなる。
499 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 13:26:08.65 ID:fVb6IQsc.net] その程度の規模のコードすら書いたことないから わからないんだろ
500 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 13:56:00.22 ID:/QaJe51w.net] 規模ねぇw 使いモンになるOSを書いたことがあるような人いるのかな? 5000万行〜8000万行規模らしいが これはお前らにとって大きいの?それとも小さいの?w
501 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 14:30:13.32 ID:lJMFjOKo.net] >>492 少しは計算しろよ 5000万行、仮に1日に1万行(1000行/時の10時間労働) 書いたとして5000日(約13.7年)だ
502 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 14:38:13.03 ID:cB2HLJLU.net] Objective-Cで作ってるMacOSX(->iOS)と C++で作ってるWindowsみりゃどっちが 開発苦戦してるかすぐわかりそーなもんだが
503 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 14:41:56.77 ID:lJMFjOKo.net] そういう間違った比較するやつは あたまが悪いと言わざるをえないね。
504 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 15:04:38.37 ID:npw19McH.net] 規模とか言っちゃってるのは 何行書いたことある奴が何行書いたことあるやつに言ってるんだろうかw 1000が100に言ってるんだろうか? 10000が1000に言ってるんだろうか? 十万行ほど書いた奴はもう「規模」とかって言う言い方しない気がする わざわざ規模で話をしようとしない気がする
505 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 15:09:30.07 ID:cB2HLJLU.net] いや? 基本的にこっちもMac/iOS/Objective-C触って7~8年てとこだけど 下のドキュメントの最初の10ページみたいな 90年にこんな実装なんか提唱したら空論だと笑われたようなことを 25年前から仕込んでたNeXTが最終的に勝ってんだなぁと感心したし。 Objective-Cプログラミングの概念(日本語ドキュメント) https://developer.apple.com/jp/documentation/CocoaEncyclopedia.pdf あきらかにきみが棲んでる付け焼き刃の帝国の方が 効率が悪くてトータルコストがかかってる。 プログラマーに賽の河原で石を積む仕事を与え続けてるって点では その効率の悪さで雇用の創出にはなってるとは思うけどね。
506 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 15:14:07.59 ID:71TpXAZk.net] しょうもない業界だなあ。
507 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 16:41:01.82 ID:VCjn0gZS.net] ここに限らんよ サボる奴がいるから成り立つ生態系もある
508 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 16:47:52.67 ID:bkvH7oDt.net] Macって、UNIXだし大部分はCとかC++なんじゃね? 開発言語よりも近代になってから互換性を完全放棄してもともと安定感の高いUNIXに強制移行したアドバンテージの方が大きいと思う あと、動的型付けは遅いからOSの中核には向かないと思うけど
509 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 18:31:48.05 ID:cB2HLJLU.net] >>500 OSXそのものがMachとかマイクロカーネル (サービスを適宜呼び出してロードすることでOSの巨大化を防ぐ)UNIXの流れだから コア部はCで各サービス呼び出しはObjective-Cのメッセージじゃないかな。 https://ja.m.wikipedia.org/wiki/マイクロカーネル https://ja.m.wikipedia.org/wiki/XNU
510 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/22(火) 18:48:58.47 ID:T3Xhdrtc.net] このスレアスペが会話混じってるよね 何言ってるか分からん奴が常にいてダメだわこのスレ
511 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 18:54:47.38 ID:fvYXJdnq.net] C++で実装されたgnomeやWindowsと Objective-Cで実装されたCocoaのUIの質を比較すれば 静的型付言語でUI環境を構築することは愚策中の愚策だな。 素人目には静的型付のほうが大規模なソースを変更しやすく見えるのだろうが 実際には動的型付のほうが大規模で質の高いソースを維持できるという実例。
512 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 21:49:46.57 ID:lJMFjOKo.net] というか、世の中大規模なものは殆ど静的なんですが?
513 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 21:51:48.35 ID:h2+OmYvg.net] インターネットが?
514 名前:デフォルトの名無しさん [2015/12/22(火) 22:28:45.56 ID:PMk1cnKT.net] このスレはなんのスレですか?
515 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 22:43:09.44 ID:lJMFjOKo.net] >>505 インターネットを実現している技術はほとんど静的ですね。 OSはもとより、基本のTCP/IPスタック。Apacheやnginxなどのウェブサーバー sendmail、postfixなどのメールサーバー、クラウドに使われる仮想マシン技術 動画・音楽配信を支えるエンコード技術、きりがないぐらいですね。
516 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 23:03:34.39 ID:7zsabTQH.net] >>506 お気に入りの言語を擁護しつつC#をdisるスレ
517 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 23:16:12.47 ID:c/oP9Kt2.net] 2chもPerlか何かで書かれていたけどサーバーの負荷が問題になって C言語で書きなおされたんだったっけか?
518 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 23:32:12.42 ID:cWRmjQVf.net] >>507 C言語が神すぎるからね 仕方ないね
519 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 23:33:08.49 ID:h3Yx9vGx.net] まあ速度出すなら型情報があった方がいいだろうね。 数値計算なんかで配列にまっすぐアクセスする場合は明らかに型があった方が有利。 そりゃ開発効率考えたら動的のがいいだろうけれど。
520 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 23:44:58.21 ID:lJMFjOKo.net] 動的が開発効率いい理由は何だ? 普通は、動的にクラスを作ったり、しないだろう?
521 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/22(火) 23:46:55.76 ID:DEhMkplY.net] >>506 アスペの日記帖
522 名前:デフォルトの名無しさん mailto:sage [2015/12/22(火) 23:59:05.73 ID:h2+OmYvg.net] >>512 まだ、自分の身内以外が外の世界で新しいクラスを作って送ってくることがある 現実世界が理解できないんだな。
523 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 00:12:46.47 ID:B7iIvlVa.net] > まだ、自分の身内以外が外の世界で新しいクラスを作って送ってくることがある それをライブラリっていうんですよ? 分割コンパイルも、サードパーティライブラリも ずっと前からの常識です。 なんでこんなことを指摘してドヤ顔してるんだろうか?
524 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 00:15:50.43 ID:IHjjwtj5.net] プラグイン
525 名前:みたいなのもあるけど 大体はDLLとかだから結局静的なんだよな [] [ここ壊れてます]
526 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 00:55:02.76 ID:+daiOjD/.net] 自分の身内以外がクラスを作るって、それプラグインの話だよなぁ なんで静的じゃ作れないと思ってるんだろうか? 圧倒的に無知。
527 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 01:02:39.62 ID:oeWwCbV9.net] また、駅から配送するシステムがあるから大丈夫!ですか… 列車が時代遅れでいらないっていいかげんわかりましょうよ?w
528 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 01:09:24.49 ID:+daiOjD/.net] これが時代の流れなんだよなぁ。 時代遅れにならないようにしようよね。 gihyo.jp/news/report/01/rubykaigi2014/0002 > Ruby 3のアイデア > > まつもとさんは,Ruby 3へ向けて実装したいアイデアとして,次の3つを挙げました。 > > Concurrency > JIT > 静的型付け > > このうち今回の講演で取り上げたのは静的型付けについてでした。
529 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 01:11:06.80 ID:+daiOjD/.net] gihyo.jp/news/report/01/rubykaigi2014/0002?page=2 > 静的型付けのメリット > > 静的型付けはRuby以外の言語でも注目されています。では,静的型付けを > 導入することでどのようなメリットがあるのでしょうか。 > よく言われている静的型付けのメリットについて, > まつもとさんは「パフォーマンス」「コンパイル時のチェック」 > 「ドキュメンテーション」の3つを挙げました。 まつもとさんわかってるw
530 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 01:32:02.82 ID:4bnLgUt/.net] それは誰でもわかってるだろ…
531 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 04:51:55.89 ID:9nXG813n.net] >>507 どれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。 色々な言語が「強い静的型付けのシステム記述言語」として作られたが ろくに使われずに消えていったわけだが。 試しに、強い静的型付きの言語で実装されたOSや ネットワーク関連の重要なアプリケーションの例を出してみな?
532 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 05:30:34.30 ID:o1Ym9CfH.net] 大事なことは言語ではなく、タオにつながることなのじゃ。ふぉっふぉっふぉ。
533 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 05:33:17.13 ID:+daiOjD/.net] > 試しに、強い静的型付きの言語で実装されたOSや > ネットワーク関連の重要なアプリケーションの例を出してみな? LinuxやUnix
534 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 05:55:19.92 ID:+daiOjD/.net] >>522 > どれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。 ん?なんか盛大な勘違いをしているね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
535 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 05:57:16.98 ID:+daiOjD/.net] >>525 のリストに、書いてある 「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って いうのなら、ぷぷぷぷぅって言うしかないけどw
536 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 07:29:58.35 ID:0ZC/YhCb.net] >>524 もしかして、Cは「強い静的型付け」の言語だと思ってるの? これはまた…2ちゃんにしてもあまりにも無知すぎないか?
537 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 07:32:15.10 ID:0ZC/YhCb.net] >>526 >「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って > いうのなら、ぷぷぷぷぅって言うしかないけどw Hindley-Milner型推論の言語を推してる人達は 「C言語の安全でない弱い静的型付け」が大嫌いだよw 君はバカすぎるからひっこんでなさいw
538 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 07:37:31.86 ID:+NQ/xqJl.net] >519,520 都合の悪いところは無視ですかw >今のRubyが静的な型を持っていない理由 > >ここまで,まつもとさんは静的な型を持つメリットを取り上げました。では,なぜ今のRubyは静的な型を持っていないのでしょうか。 > >まつもとさんはRubyが静的な型を持っていない理由について,次の3つを挙げました。 > >ダックタイピングとの相性の悪さ >使うかどうかを選択可能(Optional)にしなければいけない >DRYの哲学に反する
539 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 07:54:14.96 ID:+daiOjD/.net] >>528 > Hindley-Milner型推論の言語を推してる人達は だれそれ?w そんな人はお前以外に居ません。
540 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 07:56:06.50 ID:+daiOjD/.net] そもそも、型推論うんぬんじゃなくて、 「静的型付け」大好きですからねw
541 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 07:58:08.92 ID:+NQ/xqJl.net] c が型に対して弱いなんて有名なことだろう。 ストラウストラップが c++ でやりたかった事の一つが c の型をもっときっちりすることだったわけだが、 c の互換性に引っ張られて無理でしたっていう。
542 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 07:59:30.67 ID:+daiOjD/.net] 型に対して弱い=それでも静的型付け なので、動的型付けは静的型付けに劣っているって 主張に一切影響を与えないがなw どうも頭がおかしい奴がいる。
543 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:09:45.69 ID:4flMvpuQ.net] ってか、オブジェクト指向の話に戻そうぜ 動的云々はもう泣いてんだからほっといたれ
544 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:23:44.09 ID:0ZC/YhCb.net] >>533 へー、じゃあ静的厨さんが言ってた ・実行時に型に関するエラーが発生しないことを保証できる ・型さえ合わせればモジュールを安全に結合できる ・型により間違いを検出できるから変更時にデグレしにくい という静的型付けの利点は全て引っ込めるってことだね。 というか、今まで静的厨が言ってた「動的型の欠点」は 全て百倍になってCに跳ね返ってくるわけだがw ほんとバカってバカだなあw
545 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:28:48.27 ID:+daiOjD/.net] × 実行時に型に関するエラーが発生しないことを保証できる ○ 静的時に型に関する不整合があった時にエラーがわかるからバグを早く修正できる。 (例えば弱か型付けでのC言語などに当てはまる) × 型さえ合わせればモジュールを安全に結合できる ○ 問題に関する問題が解決するから、より安全に結合できる。(問題の全てが解決するなんて言っていない) (例えば弱か型付けでのC言語などに当てはまる) × 型により間違いを検出できるから変更時にデグレしにくい ○ その通り。だが問題の全てが解決するなんて言っていない (例えば弱か型付けでのC言語などに当てはまる) 静的型付けだと、単体テスト+型解析によって、 単体テストのみの動的型付けよりも、より安全になる (完璧など無いから、より安全であることが重要) 何度もいいましたよね? なんで勝手に解釈を変更するんですか?
546 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:31:44.33 ID:0ZC/YhCb.net] >>536 つまり前言撤回するわけねw あんた、バカというよりキチガイの領域だよ?
547 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:32:10.02 ID:eRscblyy.net] Cの上位互換のObjective-Cも静的型付けって事になったんだから、もうケンカする必要なくなって良かったじゃ無いか
548 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:32:39.88 ID:+daiOjD/.net] こいつのやり口はいつも同じなんだよな。 こっちは「比べてより安全。よりコストが低い。より信頼性が高い」って 話をしているのに、変ないちゃもんをつけてくるんだよな。 動的厨「静的言語は完璧っていいましたよね?(←言ってない) こういう場合完璧じゃないじゃないですか!」 動的厨「静的言語はバグ無いいましたよね?(←言ってない) こういう場合バグあるじゃないじゃないですか!」 動的厨「動的言語ではできないって言いました?(←言ってない) 動的言語でもできるんですが!」 勝手に他人が言ってないことを、言ったと思い込んで、 その自分の思い込みを叩いてる。
549 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:33:14.42 ID:+daiOjD/.net] >>537 > つまり前言撤回するわけねw 前言も何も、最初から言っていること。 「前言」ってどれだよ?言ってみなw
550 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:44:39.41 ID:0ZC/YhCb.net] 思いっきり書いてあるねえ >>439 > 実行時で型に関するエラーが起きないってのは、 > 起きないよう注意を払ってプログラムを書くことができる、じゃなくて、 > 原理的に起こせない、っていう意味で言ったんだけど、分かる?
551 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:46:51.27 ID:+daiOjD/.net] >>541 そいつ明らかに動的厨じゃないかw
552 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:47:42.61 ID:0ZC/YhCb.net] で、Cのような、コンパイルで型のウォーニングすら出なくても 型安全を破ることができてしまう言語が安全性において優れていると? あんた、完全に頭おかしいよw >>427 > 静的型は型エラーであるもの、つまりアプリのバグ。 > そのアプリのバグを静的型は実行すること無く検出できる。
553 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:47:45.08 ID:+daiOjD/.net] というか、本人かな? マッチポンプってやつだろうなw
554 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:48:34.89 ID:+daiOjD/.net] >>543 だから、完璧な
555 名前:て言ってないって(笑) より安全。より。何度も言うよ? より安全。 [] [ここ壊れてます]
556 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:50:35.73 ID:0ZC/YhCb.net] >>542 バーカ、ちゃんと読めよw 同じIDが>>419 を書いているぞwww
557 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 08:53:32.33 ID:0ZC/YhCb.net] >>545 君は自分が何を言っているのか理解できない類の人らしいね。 君の主張は、 「型安全を確保できない弱い静的型付言語は 型安全を確保できている強い動的型付言語よりも 安全である」だよ? バファオーバランを起こしても 「型に関するエラー」じゃないもん! とか言い出すの? ほんとバカというよりキチガイの極みだなw
558 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 09:17:33.38 ID:MZJ58G0+.net] ほんとにもうこの話題は終わりにしてオブジェクト指向の話に戻してくれ
559 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 10:32:20.23 ID:zDlwL3aM.net] Cが安全でコストが安くて信頼性が高い ちょっと何言ってるのか分からないですね
560 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:02:34.89 ID:GTqqbOlK.net] 自分は最初っから、>>419 でも>>439 でも実行時に型情報がいらない言語OCamlについて話をしていたんだけどな。 JavaもC#も不正なキャストを許す型システムを採用していて、型が保証する安全性は小さいが、 こいつらに当てはまる問題点が静的型付け全部にあるわけじゃない。 それを分かっているくせに今度はCの問題点を静的型付け全般に言及しようとする?卑怯な言い分は変わらないのな。 逆に、静的型付けとひとくくりにして優位性を主張し、動的型付けを無理矢理に貶めようとする卑怯者もいるから面倒。 静的解析の優位性とか型システムが提供する安全性なんて、言語によって大きく違うのにな。 IdrisやCoqやAgdaはテストすら要らないくらいの安全性を持ってるけど、それを静的型付け全部の性質にしちゃ駄目だよな。 だから自分はOCamlやれって言ってる。 静的型付けで型システムが強力で実行時に型エラーが起きない&オブジェクト指向をサポートしている言語だから。 やればオブジェクト指向と関数型は決して対立軸にはならないことが分かるから。
561 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/23(水) 13:14:24.78 ID:uhnrlQdn.net] 飛行機なんて落ちたっていいじゃん
562 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:19:23.85 ID:DDf47SHC.net] 順番が逆。 2パラグラフ目にあるような、オール・オア・ナッシングで動的型付き言語を 罵倒するだけの不毛な状況の反論で、ちょっと行き過ぎてファールラインを 超える奴がでただけの話。 あと、オブジェクト指向と関数型どころか、静的型/動的型だって対立概念じゃない。 多くの言語や処理系は静的型付けと動的型情報の両方を扱う。
563 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:19:25.16 ID:+daiOjD/.net] >>547 > バファオーバランを起こしても 今度は話をバッファーオーバーランにすり替えたか。 本当にこいつは卑怯w
564 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:22:01.38 ID:+daiOjD/.net] >>550 お前の「安全」の定義が違ってるんだよ。 お前は、アプリが不正なエラーで落ちるかどうかの話をしてるだろ。 こっちは最初からそんな話をしていない。 俺が言ってる安全っていうのは、アプリをバグなく 修正できるって話をしてる。 だから、例外で落ちるのも、俺にとっては安全ではない。 アプリが正常に動かないからだ。
565 名前:デフォルトの名無しさん [2015/12/23(水) 13:23:30.17 ID:2bKYe5U2.net] >>551 みつをみたいw
566 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:28:32.11 ID:+daiOjD/.net] あー、また揚げ足取られそうだから修正しておくわ × 例外で落ちるのも ○ 例外でアプリが正常に動作しないのも こいつは、例外がでてトラップして画面にエラーですって表示したり エラーを握りつぶしてログを出さずに動かなくても 仕様通りです。ってユーザーに言うようなやつだからなw
567 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/23(水) 13:36:09.42 ID:xOYwyJJS.net] プログラマが入れたバグのせいで飛行機が落ちました では逆に、プログラマが飛行機を落とす事を考えてはどうだろう? それによって現実世界にある飛行機という乗り物がいかに不備のあるものかが露呈する 飛行機という存在を根底から作り直す必要がある つまりエンジンが止まっても、誤動作しても、人命が助かる作りへと変わっていく どんどん墜落させれば世界は変わる
568 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:50:11.47 ID:WSDJ3sSn.net] 文法的に日本語では曖昧な議論しか出来ない。今から英語で議論しよう。
569 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:52:00.44 ID:IsVfil8S.net] どうして ID:+daiOjD/ は自ら晒されにくるの?
570 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 13:57:58.13 ID:+daiOjD/.net] >>559 うっぜーからID変えるね(笑)
571 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:38:21.71 ID:cD3wXPE+.net] 静的に型検査できる余地が多いから C#が動的型より安全と言ったんだから、 C#よりも静的に型安全なOcaml使いにC#を批判されたら それを認めないとダメだな。矛盾してる。
572 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:46:21.55 ID:+NQ/xqJl.net] こういう輩にいくら矛盾を突きつけてもどうにもならんけどね。
573 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 14:51:05.22 ID:+NQ/xqJl.net] そんなに静的言語のが圧倒的に良いなら 動的言語がこんなに使われる訳ないだろっていう 現実をまず見ようよ。
574 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:00:05.77 ID:v4yXy6ML.net] ウェブ以外の世界では静的型が圧倒的に多いけどな。
575 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:01:46.32 ID:v4yXy6ML.net] >>561 C#の話をしている人って誰だ? 自分でC#を持ってきて自分でC#を批判してるのか?
576 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:12:37.90 ID:oeWwCbV9.net] >>565 いや、きみが自分でIDEが簡単に補完してくれるから静的言語はスゴイ! とか謎の珍説を長々開陳してたから 「なんだそれ?w」「当てはまるのって"VC#をVSでWindows"ぐらいだからそれだなw」 って全員判断しただけじゃw
577 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:16:08.81 ID:v4yXy6ML.net] >>566 が思いついたのがC#だけで、 知識ないのが露呈しているだけだなw
578 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/23(水) 15:20:54.46 ID:y3L2qmhF.net] 死ねアスペ
579 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:43:40.82 ID:oeWwCbV9.net] >>567 では、そのすごい知識で自分が推してる環境をくわしくw IDを変えてはふんわりざっくり 「どこの静的とぼくのかんがえた動的の話だよw」って ツッコミ入りまくりの話しか君しないでしょw
580 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 15:46:57.79 ID:v4yXy6ML.net] 「C#と全員判断した」とか言うけれど、自分以外の人の判断が 何かわかるはずもない。ただ言えるのは>>566 がそう判断したという事実なだけ。 そこから、>>566 が無知であることが見事に証明されたんだよ。 静的言語でIDEで補完できない言語の方が少ないぐらいなのにな。
581 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:14:59.12 ID:hnWS8bx3.net] C#の話をしてたかどうかじゃなく、 C#がOcamlより劣ったゴミ言語と認めるかどうかの 話なんだけどな 必死に話を逸らしてる人がいるね
582 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:18:49.87 ID:v4yXy6ML.net] つまりこういうことけ? Ocaml > C# > 動的言語
583 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:20:24.44 ID:v4yXy6ML.net] 訂正 OCaml(強い静的型付け) > C#(強い静的型付け) >>>>>>> 動的型付け
584 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:31:04.85 ID:hnWS8bx3.net] てわけで、静的型付け派もOcamlがC#, Javaより優れてると認めたんだから これからはOcaml vs Smalltalkでやりなさい 間違ってもC#を攻撃して静的型全体を貶めることの無いようにね
585 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:35:08.21 ID:v4yXy6ML.net] だから誰もC#の話なんてしてねーってのw
586 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 16:50:59.04 ID:uhnrlQdn.net] 1人か2人が周りがどんなレスをしても自分の言いたい事散らばしながら、さらに周囲のレスから用語をピックアップして 無関係の用語同士を繋げて、レス安価したりしてるからごっちゃごちゃ 今までに見た事ないタイプのガイジだな
587 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/23(水) 16:52:15.12 ID:PjxVSF2U.net] 死ねアスペ
588 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 17:02:19.48 ID:iZy07rlJ.net] OCaml vs Smalltalk 、いいね。 同じ厨の意見なら C#厨なんかよりはるかに勉強になる。
589 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 17:05:26.00 ID:v4yXy6ML.net] ほらな。誰もC#の話をしていないって 言ってるのに、さもC#の話をしていたかのような 誤解を与える文章を書くわけさ >>576 ほんとひどいよねw
590 名前:デフォルトの名無しさん [2015/12/23(水) 17:22:26.94 ID:SBD3pGKR.net] そんな誰も使ってない言語同士の対決とか草生える
591 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 17:47:45.23 ID:iZy07rlJ.net] 使ってるし、お前が著しくアンテナ低いか、単に理解不能な低能なだけだろ。 C#だなんて、MS自体が危うい言語の独りよがりな自慢話のほうが痛いよ
592 名前:デフォルトの名無しさん [2015/12/23(水) 17:54:11.80 ID:2bKYe5U2.net] >>581 C#に黒歴史でもあるのか?いい言語じゃないか。使っておやり。
593 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 18:35:00.90 ID:DDf47SHC.net] >>578 どっちもオブジェクト指向じゃねーか
594 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 18:46:04.87 ID:iZy07rlJ.net] 「オブジェクト指向」っても出自の異なる2つの系統があってだな 両者は「クラス」とか「オブジェクト」とかの言語機能は共通しているけど やろうとしていることは静的と動的で真逆なの
595 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/23(水) 18:49:30.03 ID:PjxVSF2U.net] 神オブジェクト指向だろ
596 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/23(水) 18:53:46.61 ID:PjxVSF2U.net] 静的で出来るものは、 本来すべて静的でやるべきなんだよ ただしそれは、アルゴリズムを走らせる事よりも、 難解な初期化作業になる場合あるから そういう部分においてある程度の妥協をして、動的生成をする事で現実的な作業量になる 動的言語とはいわば、世界の妥協の集合知なのです
597 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 19:16:24.47 ID:WSDJ3sSn.net] 4 返信:uy ◆Qawu9.2l1E [sage] 投稿日:2015/12/23(水) 19:11:18.55 ID:PjxVSF2U [2/3] >>3 荒 らしは徹底スルー。厳守 でお願いします。 www wwwwwwwwwww wwwwwwww 荒ら しは徹底スルー。厳 守 でお願いします。 w w wwwwwwwww w wwwwwwwww w 荒らし は徹底スルー。 厳守で お願いします。 www wwwwwww www wwwwwww www 荒らしは 徹底スルー 。厳守でお 願いします 。 wwww wwwww wwwww wwwww wwww w 荒らしは徹 底スル ー。厳守でお願 いしま す。 wwwww www wwwwwww www wwwww w w 荒らしは徹底 ス ルー。厳守でお願い し ます。 wwwwww w wwwwwwwww w wwwwww w w w 荒らしは徹底ス ルー。厳守でお願いしま す。 wwwwwwwww wwwwwwwwwww www w w w w 5 名前:uy ◆Qawu9.2l1E [sage] 投稿日:2015/12/23(水) 19:12:50.88 ID:PjxVSF2U [3/3] _ ト,\ / _j;;;;;〉>'"⌒¨⌒>ー| >'" /| い 死 . / ミ/、 __ 〈;;j い ね 〈 /!ヾ "⌒ヾ < の ば ヽ. { / ト、 ∧ }| に / \Nレベ\ /_ { /ハ ね | /Yxxx \{⌒ヾ/〉 ハ l/∨\ ___ xxx/ 人l\___/ xく||>ゝ ノ--イ/ \ / Z ∧}_ / x=≠ヘ { Vハ {{\V 〃 ∧
598 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 19:20:48.25 ID:XPrkRHFD.net] >>584 もともと、「パーツの使い回し」と「分散処理」なんで趣向がだいぶ違うんだよな。 そして、動的は分散処理が最初から念頭にあるから 実行までに環境が変わることがあるのを最初から考慮に入れて さまざまな設計がなされてるってのに、静的側を這ってた奴らは それをいまごろになって副作用だの実行時解決だの言い出してのたうってるという… そして、その尻尾に至っては「静的にやってれば不具合は存在しない!」とか ここに至って言い張るという池沼ぶり…
599 名前:デフォルトの名無しさん [2015/12/23(水) 21:36:24.75 ID:SBD3pGKR.net] 誰もC#推してないのに一人でC#叩いてるシャドーボクサーおる
600 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 21:37:18.89 ID:L95mHKNc.net] >>586 hissi.org/read.php/tech/20151223/UGp4VlNGMlU.html
601 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 22:20:44.03 ID:i2+b/jX1.net] C#er、粘り強く静的型付け代表として戦ってきたが、C#しか知らないとネタが割れたらあっさり白旗か C#erさえも使っている言語の名前を恥ずかしすぎて出せない。C#って不憫だな…
602 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 22:43:34.79 ID:k0HavgjY.net] 動的型を使っていると性格がおかしくなるみたいですね 静的型の人は静的型のメリットを上げているだけなのにね 最近の動的型言語はどんどん静的型の機能を取り入れていっているというのに その現実を見ないふり
603 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 22:45:49.10 ID:oeWwCbV9.net] 相手にして欲しがりすぎだおまえ。
604 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 22:50:14.84 ID:pxGAUGCw.net] 特定の言語の欠点をあげて全体が悪いっていうのは変だろ 動的言語の中にも比較時に勝手に型変換するとか、必要な語が予約語になってないとか、理不尽な動作をする言語はいくらでもあるわけで
605 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 22:58:52.97 ID:k0HavgjY.net] 型安全を保ちつつ柔軟性も保つという相反するような命題にチャレンジするのは プログラミング言語の最先端の花の話題だ 静的に機械的にどれだけたくさんのバグを検出できるかというね 当然動的型言語界隈の人からも、こういうものはよく見えるし 面白そうな題材だから取り込もうとするわ 時代遅れな動的型一辺倒だけじゃ古臭いから 最先端な静的型システムを取り入れようとするわな C言語しか見当たらなかった時代には動的型は最先端に見えたんだろうけど 今じゃ全く逆だからな 今のトレンドなのに時代に取り残された一部の動的信者は頭が固くて可哀想だね
606 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:03:07.90 ID:pxGAUGCw.net] >>566 知名度の高い中でC#がわりとよくできてるからそれが例に上がるだけだろ 新しかったりしっかり設計されて、しっかり開発されてる静的言語なら程度の違いはあれ対応している
607 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:07:47.18 ID:i2+b/jX1.net] で、ID:k0HavgjY と ID:pxGAUGCw は何言語つかってんの? 言えないってことはC#なんだろうな…
608 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:16:12.53 ID:M5GRmAfS.net] ようよう! キャピュレットの!
609 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:22:43.24 ID:v4yXy6ML.net] > C#しか知らないとネタが割れた むしろC#しらないんだが?
610 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:24:31.14 ID:i2+b/jX1.net] へ? じゃ何を知って静的型付けかたってんの?
611 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:26:52.96 ID:i2+b/jX1.net] つーか、ID みたら、おめーには聞いてねーんだが? しゃしゃり出てくんなバカ
612 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:51:18.06 ID:hnWS8bx3.net] 実はJavaドカタだったら笑える
613 名前:デフォルトの名無しさん mailto:sage [2015/12/23(水) 23:59:12.75 ID:XPrkRHFD.net] コンピュータサイエンス方向に詳しくないC++ドカタ上がりだとは思う
614 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 00:04:57.64 ID:ZIvzfH3j.net] >>597 メインはC#とかだけど、C/C++、Java、VB.NET、F#、TypeScript、ActionScriptとかでも型がきちんと指定されてれば補完とかリファクタリングのサポートとかは使えてる Rubyとかも、補完割と優秀だけど仕組み的に静的型ほどの質にはならないなーとか思いながら使ってる
615 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 00:13:04.51 ID:ndtshwiC.net] OCamlより優れた言語が一つもなくて笑った そりゃ恥ずかしくて言い出し難いわな
616 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 00:25:51.89 ID:TrbcLjcW.net] >595 逆とかじゃなくて動的静的でウゴウゴ言ってる奴自体が時代遅れだっつの。
617 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 00:29:15.71 ID:vhy24jAm.net] >>605 > OCamlより優れた言語が一つもなくて笑った OCamlが優れているっていうのなら、 その優れているところを言っていいんだよ。 君が本当にOCamlを知っているのならね。
618 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 00:31:03.47 ID:ZIvzfH3j.net] >>605 OCamlより素晴らしい言語ってなにをあげればよかったんだ 文法や考え方も重要だけどRubyのgemとか.NETのnugetみたいな豊富なライブラリができる程度に利用者がいない言語って触りにくいんだよなぁ CとかCOBOLとかFortranは過去の遺産使用のためにいまだに使われるし 新しい言語は他言語用のライブラリにただ乗りしていく方式が広まってほしい
619 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 00:37:37.29 ID:TrbcLjcW.net] scala か?あれはどれだけ成功しているんだろうか。
620 名前:デフォルトの名無しさん [2015/12/24(木) 01:02:41.26 ID:Q6U3kr4L.net] その点pythonは素晴らしいな
621 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 01:06:29.65 ID:vhy24jAm.net] >>608 どんな言語でもC言語用ライブラリは使えるでしょ?
622 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 02:05:42.62 ID:y9bYd1Em.net] OCamlやりなさいよと薦めた人間が言うのもアレだが、型システムだけで言語の優劣を判断しろというわけじゃないからね。 メジャーな言語は完成度の高い開発環境や充実したライブラリが沢山あるから、何か作るかってときの選択肢に常に入るし、 OCamlも開発してたら面倒臭い部分が一杯あるからね。 型システムに限って言えば、OCamlを魅力ある言語として挙げ続けるがね。 静的型付けだけど、オブジェクトがnominal subtypingじゃなくてstructual subtypingなのも面白いところだよ。
623 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 02:12:20.43 ID:vhy24jAm.net] それで言語厨はいらないんで、静的型付けのOcamlだと どういうことができるのかの話をしなさいって。 どうこういう言語だから面白いんだっていう言語厨の発言じゃなくて 言語のどうこういう機能が、実際の開発をこのように便利にしてくれるって 話をすれば、それはさらに動的言語に対するアドバンテージにもなるだろ?
624 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 02:50:45.74 ID:0ir5W3Vp.net] 「アドバンテージ」 w
625 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 03:54:04.19 ID:y9bYd1Em.net] 頭が静的/動的型付けの二元論の人には何も言うことないよ。 各言語で型が保証してくれる安全性はスペクトルを描くことが分かっていれば、ガッチガチに型で縛られることのメリットは想像できるはず。 型推論のおかげで型注釈は最小限で済むので、面倒な型注釈も最小限で済むよ。 処理内容についてアタリをつけられる程度に型をつくっていれば、コンパイルできたら大体意図通りに動くっていう安心感も、 objectを使うとメソッドの呼び出しにオーバーヘッドがあるから、late bindingが本当に必要なときだけそのコストを払おうっていうメンタルモデルも、 モジュールを上手に使えばオーバーヘッド無しに実装を置き換えられることも、 Expression Problemが超簡単に解決できることも、興味無いでしょ? REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ?
626 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 04:25:47.27 ID:vhy24jAm.net] >>614 > 「アドバンテージ」 日本語にすると、有利な点,強み,長所 って意味だよ。
627 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 04:40:39.66 ID:0ir5W3Vp.net] そこじゃねーよw笑われてるのはw
628 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 04:50:56.56 ID:vhy24jAm.net] それ以外に笑う理由が見つかりませんが? 英語を使うのが苦手ですか?
629 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 05:55:42.72 ID:0ir5W3Vp.net] まるでわかってない。 君高卒か専門卒でしょう?
630 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 07:34:44.49 ID:UWoYNEvE.net] >>615 >REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ? 無い。 静的型信奉者が、静的型チェックによるケアレスミスの排除とインテリセンスの完全性に過度に執着して すべてを動的遅延的かつシンプルに実現することによるメリットにまったく聞く耳を持たず、 時代遅れだと決めつけてバカにしまくるのと同程度に かくも不自然かつ複雑に多大なコストをかけてやっと実現される、にもかかわらず制限付きまくりの まがい物なんかにはこっちも興味は無い。
631 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 08:09:36.07 ID:j6+iXrTs.net] 「コスト」の時点でお里が知れてるんですが、それは…? 素直にVisualC#™️の宣伝してなさいな、君は
632 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 08:22:19.14 ID:G+GnGNiW.net] 安全性とか効率の話をしているときに「○○が面白い」とか突然言い出す奴って邪魔だよね
633 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 08:39:29.32 ID:CtNlYBZF.net] 動的言語でも型情報追っかけてコンパイルって可能じゃね? c = 1 c = "a" function(c) これを内部で Int c1 = 1 undef_var(c1) String c2 = "a" function(c2) こうやったらコンパイラ側は型知ってるじゃん
634 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 08:44:11.80 ID:TrbcLjcW.net] 江添亮なみの頭の悪さ
635 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 08:45:13.50 ID:PjvgHOdY.net] >>623 hissi.org/read.php/tech/20151223/UGp4VlNGMlU.html hissi.org/read.php/tech/20151223/bGd3LzFLdkk.html hissi.org/read.php/tech/20151223/dWhucmxRZG4.html hissi.org/read.php/tech/20151223/ZHBBcWUzY1o.html hissi.org/read.php/tech/20151223/Y0dyQzdxZWQ.html hissi.org/read.php/tech/20151223/eE9Zd3lKSlM.html hissi.org/read.php/tech/20151223/eTNMMnFtaEY.html hissi.org/read.php/tech/20151223/aDJKTXlFZk8.html hissi.org/read.php/tech/20151223/ZFV6WUFBZlg.html hissi.org/read.php/tech/20151223/UDZmKysxZks.html
636 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 08:57:06.27 ID:QbSnczG6.net] c = 1 if rand(2) == 0 c = "a" end function(c) こういうコードを「型推論エラー」として扱うか、 それともコンパイラ側が関数多態化するかっていう話
637 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 09:01:29.81 ID:yBEC7nO0.net] こういう規則を作る方法もある 「変数の初期化・変更は必ず同一のifブロック内で行う」 if rand(2) == 0 c = "a" else c = 1 end function(c) ↓ if (memo = rand(2) ) == 0 String c = "a" else Int c = 1 end if memo == 0 function_String(c) else function_Int(c) end
638 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 09:02:48.63 ID:TrbcLjcW.net] コードレビューして、そんな糞コード書いた奴を首にするのが一番。
639 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 09:02:53.31 ID:Ecjqx/Av.net] ここまで書いて思ったけど型推論の技術がいずれ逆輸入されて終わりそうだな
640 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 09:07:28.40 ID:IhMbbAWz.net] >>628 アスペはカキコしないでくれますか? 抽象化のコードをコードレビューて
641 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 09:18:48.74 ID:g389+8X2.net] 完全に型をトレースする為にはすべての分岐をメモするしかない で、同じ形の分岐をそのまま持ってきて 条件のところを[ memo ]変数にし、 多態化したメソッドを配置して、 [ memo ]変数の中身に沿って実行していく しかしこれは「型安全性」ではなく、速度問題しか解決されない 型安全性は、動的言語のコンパイラの問題ではなくパラダイムの問題で 動的言語の上では、コンパイラを作り込んでも型安全性は得られない よって>>627 これは規則のプロトタイプでとてもひどいものだが、 型推論を確実に行うための何らかの「コーディング規則」は必要になる
642 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 09:22:51.71 ID:PjvgHOdY.net] >>631 hissi.org/read.php/tech/20151224/UWJTbmN6RzY.html hissi.org/read.php/tech/20151224/RWNqcXgvQXY.html hissi.org/read.php/tech/20151224/ZFVwRGxGWTE.html hissi.org/read.php/tech/20151224/Q3RObFlCWkY.html hissi.org/read.php/tech/20151224/RytHbkdOaVc.html hissi.org/read.php/tech/20151224/eHp0c0pWU3Y.html
643 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 09:39:29.04 ID:yBEC7nO0.net] 無駄無駄
644 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 09:52:39.44 ID:8Q8CNXOF.net] 静的型付きがやっていることって、よく考えると動的が開拓したことの後追いなんだよね
645 名前:デフォルトの名無しさん [2015/12/24(木) 10:12:30.78 ID:P/dN5WcP.net] それを静的のスピードで実行出来るのが偉大なのでは
646 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 10:20:29.98 ID:ZIvzfH3j.net] >>620 動的型の言語のメリットを全く聞く耳持ってない人はほんの一部の行き過ぎな人だけだろ それと同程度ってことは静的言語のメリットは全く理解できないっていう極端な方ですか?
647 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 11:36:16.44 ID:acHF714F.net] >>624 質問ではない。
648 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/24(木) 15:48:25.48 ID:G+GnGNiW.net] 動的生成でやってる事を、静的生成にする事のほうが難しいから 技術を動的言語が開拓していくのは当たり前なんですけど しかし静的生成にする事で計算量が削れてくるから、動的な部分を出来る場所から静的にしていく流れが強いのであって その逆は弱い
649 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 16:23:46.71 ID:7vJ6cUbQ.net] 動的遅延結合的にやっていることを静的型付きで同じようにやろうとすると、 ひどく複雑な方法になる(もちろんその分コストもかかる)という印象の方が強い
650 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 16:24:05.94 ID:lTmsChXg.net] > 動的生成でやってる事 具体的には何?
651 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 16:24:41.70 ID:lTmsChXg.net] > 動的遅延結合的にやっていることを だから具体的には何?
652 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 17:07:23.44 ID:acHF714F.net] >>639 >同じようにやろうとすると 問題はここでは?
653 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 17:55:03.50 ID:J9J3Kh42.net] >>615 >REPLもあるから、LispやSmalltalkには及ばないながらもインタラクティブな開発ができるけど、興味無いでしょ? その「及ばない」程度をどう認識しているかの問題でしょう。 コマンドラインで満足できる人はREPLはインタラクティブと思うのだろうが、 Smalltalkを使う人にとってはREPLのインタラクションは到底我慢ならない。 Smalltalk環境をある程度以上使い込むと、 「この環境を静的型付言語上に実現することは とてつもなく困難(おそらく不可能)だ」と実感するんだよ。
654 名前:デフォルトの名無しさん [2015/12/24(木) 18:47:04.52 ID:ri4CJahT.net] Pythonで何か変更を加えた後、いちいちいろんなテストを書いて実行しないとプログラムが破綻してる場所がないか確認取れないのが腹立たしくて仕方ない この点においてはC++って神だわ
655 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 19:11:30.67 ID:acHF714F.net] 勝利もあれば敗北もある
656 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 19:27:06.30 ID:E5q4kG2K.net] >>644 なんで、変更の影響がそんな外にまで波及すんの。 設計の問題じゃねの。
657 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 19:44:55.51 ID:rA2ypWMt.net] そうか、C++ではロクにテストもせずに「できた」とか思っちゃうのか…こわっ!
658 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 20:08:47.22 ID:E5q4kG2K.net] もともと、大型コンピュータの時代に、ひとつのプロセスが 全CPUパワー使ったまま待ち受けとかしたらすんげぇ無駄だよね? TSS(タイムシェアリング)で複数のプロセスをできるとこから実行させてくとかするし ネットワークで処理分散して別のコンピュータに処理投げるとか いまの"密な関係"を前提としたプログラミングでやり続けるのは泥沼の道だよね? "真のコンピュータサイエンス"が実現するまでは次善の策として モジュール間の接続を疎にして、手続きの順番に強く縛られないプログラミングを やるしかないよね?ってのが40年以上も前のことで、 それが真のコンピュータサイエンスが出るどころかネットは発達するわ 普通の家庭用コンピュータが2コアだ4コアだってなってんのに 『密なプログラミング』の泥沼這ってた奴らはなんでその泥沼から 「キツイから動的からあれ持って来て足したわ、こんどはこれ足したわ これでどんどん"なんでもできるように増築"したから俺スゲー!」って自賛してんだよ。 おまえの棲んでるとこは泥沼なんだよ。泥はね散らかすな。
659 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 20:26:30.06 ID:DECH3WsR.net] >>611 それがそうでも C言語用ライブラリをそのまま使えるようにしようと思うと その言語がC言語のヘッダを理解できる必要がある ヘッダにはプロトタイプ宣言の他にも構造体とか定数とも定義してあるし さらに悪いことにC言語にはマクロが有るからCのソースの断片がそのまま ヘッダファイルに書いてあったりするから C言語のヘッダが理解できるということは、C言語の全部が理解できるということに他ならない C++やObjective-Cみたいな初めからC互換が念頭にある言語じゃないと厳しい 結局Cのヘッダをその言語用に移植してあげないと使えないんだよね windows.hの移植とか、考えただけでぞっとするよな
660 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 20:30:08.49 ID:DECH3WsR.net] >>648 お前の妄言にはなんの根拠もないわけだが 少なくとも最近の動的型界隈は静的型を取り入れるのがトレンドになっているし 実際にそういう言語がどんどん出てきているのは事実 事実は動かしようがない
661 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 20:59:23.91 ID:J9J3Kh42.net] >>649 Cのヘッダを読み込んで自動的に動的型言語用のFFIを定義するぐらい 遅くとも90年頃には実用されてたぞw 何週遅れなんだおまえは
662 名前:デフォルトの名無しさん [2015/12/24(木) 21:32:06.75 ID:Q6U3kr4L.net] >>646 完全に個人用のファイル生成ツールだから設計適当、バグどんとこいって感じで取り敢えず動けばいいって感じなんよ だからしばらく使わない機能とかあって、数ヶ月前に変更したところが変に効いてきたりするんよ ぶっちゃけ設計が悪いのはその通りだと思う
663 名前:デフォルトの名無しさん [2015/12/24(木) 21:41:12.91 ID:Q6U3kr4L.net] >>647 C++の業務プログラマーが適当なんじゃなくて俺が適当なだけなんだけど、もしかしてそんなことも分からず俺がC++代表だと思ってしまう雑魚?
664 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 22:45:00.81 ID:ZIvzfH3j.net] >>651 まじ?移植で純粋に面倒で困ってたんだ C以外ならなんでもいいから実装を見たい WindowsのヘッダならHIDA_GetPIDLItemとかのPIDL操作周りとかある?
665 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 22:57:46.42 ID:DECH3WsR.net] >>651 移植ヘッダがあちこちに上がっているけど 企業はそういうものを使いたがらないんだよね 純正じゃないから [] [ここ壊れてます]
667 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:01:53.68 ID:DECH3WsR.net] C用ヘッダの移植の話ならD言語すら苦しんでいる、というか苦しんでいた もう過去の言語で忘れ去られる存在だから過去形で良いよね とにかく全然普及しなかった C言語のライブラリが使えるっつったって ヘッダがそのまま使えないのであれば結局面倒なので普及しないのさ 結局C++を進化させる方向を時代は選択した
668 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:07:13.77 ID:Xid5FbCP.net] C用のヘッダを書けばブリッジできるSwiftはやはり未来を生きているな C++++の立ち位置はやはりこの言語か
669 名前:デフォルトの名無しさん mailto:sage [2015/12/24(木) 23:08:30.65 ID:DECH3WsR.net] >>654 C以外なら何でも良いならC++だな Cのヘッダをそのまま読めるじゃないか C++のCの互換性は完璧じゃないけど Windowsのヘッダは両方に対応しているから問題ない 殆どのC用ライブラリはC++で使われることも想定しているから 大体は問題ない
670 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 00:08:28.55 ID:pGtNhFfn.net] まあなんでもかんでもコンパイラに任せりゃいいと思ってる馬鹿が熱心になるのが c++ なわけで、そもそもすべての仕様を満たしているコンパイラなんて存在しないっていう。 言ってみれば何でもかんでもプログラマに押し付けて、炎上しまくるクライアントみたいなもんだな。
671 名前:デフォルトの名無しさん [2015/12/25(金) 00:12:57.12 ID:v/Z7kcib.net] コンパイラに任せられるところは多ければ多いほど良いだろ
672 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 00:17:30.47 ID:XvkCqMEu.net]
673 名前:逆に実行時のランタイムに何でもかんでも任せれば良いと思っているバガが動的型言語なわけだが [] [ここ壊れてます]
674 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 00:32:53.45 ID:XvkCqMEu.net] 規格書の件も、規格書が実装に先行しているのは健全だろう 実装してみてあとから規格書を起こすのはXXXだよね 特にC++ならまずはBoostとかで実験して便利そうだったら規格に入れていくって フローが有って上手く行っているよね キッチリしているよね
675 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 02:25:48.96 ID:K0bEU4IZ.net] まあ、作る前にできあがる物がキッチリ決められる程度の物を作るなら静的で十分って話
676 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 02:27:22.36 ID:OJPyRqtL.net] できあがる物がキッチリ決められる程度? 出来上がるものがきっちり決められないものって何? そしてそれがなんで静的じゃ作れないの? 静的でも、コードを修正することで、 ありとあらゆる将来の変更に対応できるんだが? 君は、それじゃ無理という理由を書かないといけないね(笑)
677 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 03:11:44.03 ID:IhSwjExx.net] 人類はそろそろ静的型という野蛮な風習から卒業しなきゃな... 静的型なんて昭和までで見切りをつけるべきだった
678 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 04:07:09.91 ID:K9bgF2wt.net] >>664 じゃあ、非常に単純な例で。以下を忠実に静的型付き言語でやってみせて欲しい。 いい具合に君は今、これから何を作らされるかわからない状態だ。 とりあえずオブジェクト(何のクラスに属していてもいい。いや、クラスに属さずにいられるなら、 それでも構わない)を作ろう。 できたかな? 仮にこいつを x と呼称する。 では x に foo というメッセージを送ったら 'bar' と返してくるように振る舞いを加えてみよう。 他にも二つのオブジェクト、y と z が必要になった。これらも当初の x 同様に、現時点では何者でもない。 その後、両者ともプロパティとして x を保持し、片方は baz、もう一方的には qux というメッセージを送ると、 両者とも x を返すように決まったのでそれに従おう。 さらに x には quux というメッセージにも応答させる必要がここで生じた。 当然、今の段階で y.baz.quux を評価したら例外があがるから、そのままデバッガで 'quuux' を返す quux メソッドを定義しよう。 なんとなく各オブジェクトの輪郭がつかめてきたから、x のクラスは X 、y と z のクラスはそれぞれ Y、Z と名付けることにしよう。 念のため、z.qux.quux も 'quuux' を返すことを確認しておく。 これらは大事なオブジェクトだから、次回起動時にもそれぞれのアイデンティティと関係性を変えることなしに 開発を続けられるように永続化もしておこう。 「メッセージ送信」がお気に召さなければ「メソッド呼び出し」と適宜読み替えてもらって構わない。 メッセージ送信もしくはメソッド呼び出しの記法にもこだわらない。
679 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 04:13:00.59 ID:OJPyRqtL.net] > これから何を作らされるかわからない状態だ。 この時点で現実にありえない話だけどなw > では x に foo というメッセージを送ったら 'bar' と返してくるように振る舞いを加えてみよう。 そのようにコードを修正して完了 > 両者とも x を返すように決まったのでそれに従おう。 そのようにコードを修正して完了 > 当然、今の段階で y.baz.quux を評価したら例外があがるから、そのままデバッガで 'quuux' を返す quux メソッドを定義しよう。 そのようにコードを修正して完了 > 念のため、z.qux.quux も 'quuux' を返すことを確認しておく。 そのようにコードを修正して完了 > これらは大事なオブジェクトだから、次回起動時にもそれぞれのアイデンティティと関係性を変えることなしに > 開発を続けられるように永続化もしておこう。 そのようなことができる機能を追加して完了 何かできないことがある? 言ってることが冗長だよね できないこと「だけ」を指摘しなさい。 なお、目的と手段を履き違えないようにねw
680 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 04:20:04.95 ID:OJPyRqtL.net] 動的のメリットは、結局、やるひつようもない アクロバット開発ができるってことだけらしいよなw 綱渡りをしなさいっていう制約はないのに、 どれだけ綱を降りずに開発できるか。 自動テストを使えば、初期状態からもう一度再実行できるんだから デバッグしながら開発するんだ。デバッグを中断したら駄目だっていう 綱渡りな開発をする必要はないんやで?
681 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 04:26:13.87 ID:IhSwjExx.net] 静的脳は動的はバカ、 動的脳は静的は無能と思い込む。 現実は両方必要なのにねえ。
682 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 04:49:18.25 ID:8VJZxsHL.net] 両方必要なことは動的脳はわかってるだろ。 無理に動的なんかいらなイイイ!とか言ってる珍獣土方をからかってるだけで。
683 名前:ネットワークエンジニア(プロ)です [2015/12/25(金) 05:26:40.51 ID:0vV5tzYe.net] 両方必要とかばかじゃないの。 静的におけるディクショナリをお手軽に使えるのが動的だろ。 動的ってのは局所的に使うんだよ。 Webに収まってろよ。
684 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 06:36:40.94 ID:pGtNhFfn.net] >>662 きっちりしてるのに上手くいってないのがc++なわけだが。
685 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 07:21:54.97 ID:IvmyX9uA.net] >>667 「そのようにコードを修正して完了」の一行で済むのに…
686 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 07:27:52.90 ID:OJPyRqtL.net] >>673 煽るのが目的だからこれでいいw
687 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 07:34:07.95 ID:IvmyX9uA.net] >ありとあらゆる将来の変更に対応できるんだが? って大見得切ったわりにはお粗末だったな。インスタンスは作り直しだがとか苦しい言い訳しつつも クラス名の付け替えくらいは出してくるかと予想したが、まったく無しでコピペ返しとはね。
688 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 07:41:03.64 ID:OJPyRqtL.net] 何がお粗末なのか?事実を言ったまで。 ソースコードを修正で、ありとあらゆる将来の変更に対応できる。
689 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 07:41:38.82 ID:OJPyRqtL.net] > クラス名の付け替え それもソースコード修正で可能。 アクロバット(笑)をするのが 目的じゃないんだよw
690 名前:デフォルトの名無しさん [2015/12/25(金) 08:33:49.83 ID:b/ORJMNc.net] すまん、状況に応じて静的動的使い分けられない雑魚おる? どっちかに固執するアスペみたいな奴おるな
691 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 08:36:13.65 ID:hK6V4eA3.net] ITproでstaticおじさんがまた弄られている もう数年前だというのに、赦されるときは来るのか
692 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 09:09:22.55 ID:0wm6/WOA.net] >>666 Squeak Smalltalk で。 x := Object new. "foo で #bar を返すように動的に変更" x assureUniClass class compile: 'foo ^#bar'. x foo. "=> #bar " y := Object new. z := Object new. "インスタンス変数、アクセッサーを動的に追加" y assureUniClass class addInstVarName: 'baz'. z assureUniClass class addInstVarName: 'qux'. (Browser new setClass: y class selector: nil) createInstVarAccessors. (Browser new setClass: z class selector: nil) createInstVarAccessors. y baz: x. z qux: x. y baz == x. "=> true " z qux == x. "=> true " y baz quux. "(デバッガでの動的メソッド追加作業は割愛。そのまま続行) => #quuux " "クラスの動的な名称変更。変更後もインスタンスは維持" {x. #X. y. #Y. z. #Z} pairsDo: [:inst :className | inst class rename: className]. {x. y. z} collect: #class. "=> {X . Y . Z} " {x. y. z} collect: #identityHash. "=> #(3012 2588 1285) " "永続化" SmalltalkImage current snapshot: true andQuit: true. "再起動後もアイデンティティ等維持" {x. y. z} collect: #identityHash. "=> #(3012 2588 1285) "
693 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 09:13:40.79 ID:OJPyRqtL.net] なぜそれを、デバッガを起動したまま 変更しないといけないのか?という問題が有るよな。 まずそこだよ。論点はw
694 名前:デフォルトの名無しさん [2015/12/25(金) 09:40:26.84 ID:b/ORJMNc.net] >>679 オブジェクト志向は愚かな考えというスレタイによくあった、今よりはいい話題を提供してくれるいい記事だ
695 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 10:24:18.27 ID:IvmyX9uA.net] >>681 静的型付けでは「そのようにコードを修正して完了」なんだろ? いいじゃん、それで。なぜわざわざ蒸し返す?
696 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:15:03.59 ID:OJPyRqtL.net] >>683 そうなんだよね。手段と目的、デバッガを起動したままっていうのは手段であって 目的じゃない。目的はコードを修正することで、 静的型付けでもできることなんだよね。
697 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:22:07.51 ID:zlW/tpNm.net] 手段とか目的とか立場で変わることを言ってもしょうがないじゃんか
698 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:25:41.39 ID:JtKLD9Wt.net] ルビーで開発してる人が言ってたけど型エラーが投げられた事は一度もみたことないって言ってた。
699 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:26:33.01 ID:OJPyRqtL.net] じゃあ俺は言語を使ってアプリやシステムを作る人の立場で言うわw 最近ではシステムは停止することを前提として、クラウドで 多数のマシンを使って切り替えながらシステムを動作させるのが主流だからね。 一箇所を変えれば、修正が終わりって時代じゃなくなってる。 常に実行しながら行うのは技術的に面白いってだけで実用性は無い。
700 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:28:09.42 ID:OJPyRqtL.net] >>686 話しよく聞いてみ。 "型エラー"が投げられたことがないと言ってるだけで "エラー"が投げられたことがないとは言ってないから。 別の名前のエラーが投げられているが、 それは型エラーではないという屁理屈だよ。
701 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:33:07.93 ID:IvmyX9uA.net] >>687 それでいいんじゃない? キミの住む静的な閉じた幸せな世界ことで、これ以上何を議論する必要があるだろうか。いや無い。
702 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:35:15.65 ID:OJPyRqtL.net] >>689 あぁ、同じことが動的にも言えるね(笑) 動的の閉じた世界であーだこーだ言ってればいいんじゃないw どうせ、言語を使ってアプリやシステムを作らない人の オナニーでしょ?w
703 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:39:46.06 ID:JtKLD9Wt.net] ルビーの場合はコードの構造が型エラーを許さないようにできているから型エラーは起きないらしいね。
704 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:43:08.18 ID:OJPyRqtL.net] ちなみに、どのような構造だから型エラーを許さないかを 詳細に語って見せてというと・・・? 言えないんだな、これがw
705 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:48:11.81 ID:IvmyX9uA.net] 静的型付きでは普通やらないことは全部アクロバット そういうことやるやつは皆、アプリやシステムなんか作ってない奴 って妄想もすごいな
706 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:49:13.31 ID:JtKLD9Wt.net] 現実でよく使われてる言語の静的型付けはセキュリティーの助けになってないんだって。
707 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:51:54.57 ID:JtKLD9Wt.net] 型安全の安全は幻想であって、ルビーの型付けは安全かつ生産性が高いんだって。
708 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:52:57.87 ID:OJPyRqtL.net] そりゃセキュリティのためじゃないしw こういう「静的言語は○○が目的なんだ」←動的厨勘違い でも「静的言語は○○の役に立たないんだ!」 という、自分で間違ったことを言って、それは間違いだって 指摘するマッチポンプやめてくれないかね?w
709 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:57:12.88 ID:IvmyX9uA.net] 君はいったい何と戦っているんだい? 世のなか馬鹿ばっかりで、さぞや大変だろうね。そんなに頑張らなくてもいいんだよ。
710 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:58:07.60 ID:OJPyRqtL.net] 戦うというよりかあしらってるって感じだけどなw
711 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 11:59:19.48 ID:JtKLD9Wt.net] 誰もが初めは動的型付けなんて使ったら滅茶苦茶になるって思ってルービーを使ってみると誰もがその自由度に驚きその恐れは間違いだったことに気が付くんだって。
712 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 12:03:49.35 ID:OJPyRqtL.net] > 誰もがその自由度に さっきも、それは具体的にどういうことって聞いたけど、 見事に答えなかったでしょ? また今回も答えないよ。その自由度を。 あ、手段と目的を履き違えないでねw それを使って、何に役立てられるかを答えるように。
713 名前:ネットワークエンジニア(プロ)です [2015/12/25(金) 12:30:08.52 ID:0vV5tzYe.net] ruby? ああ、twitterが誤りに気づいて捨てられたやつか
714 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 13:13:35.65 ID:peTf9jy5.net] >>691 タイポとかで存在しないメソッドを呼んだときに静的型では型エラーになって、動的型では別のエラーになるということでしょ?
715 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 13:33:40.28 ID:H65SAupI.net] >>702 そもそもね。型安全ではないっていうのはC/C++のことを差すんだよ。 C/C++は型はあるけど、型キャストによってどんな不正な型にも変更できる。 そのようなコードを書いた場合、Segmentation faultが発生する。 もしくはメモリ内容によって未定義な変な動作をする。 Segmentation faultが発生し、通常はOSによって不正な動作を 食い止められる。このような自体になることが型安全じゃないってこと。 C#やJavaは不正な型に変更しようとしたら例外が発生する。 これは型安全。 だから4パターンあるんだよ。 1. 静的型:コンパイル時に型チェックが行われるが、型安全ではない。 C/C++など 2. 静的型:コンパイル時に型チェックが行われ、型安全。 Java、C#など 3. 動的型:コンパイル時に型チェックが行われず、型安全 4. 動的型?:コンパイル時に型チェックが行われず、型安全でない。(流石にこんなめちゃくちゃなのは作らないだろう) 静的型の1のパターンは、コンパイル時の型チェックにより、殆どの場合は安全に動作するが 壊そうと思えば壊せてしまう。それができないのが静的型の2のパターン 動的型は型安全にするしかないから型安全。静的型には型安全じゃないものが存在する。 動的厨はそれを利用して型安全じゃない静的型を叩いているだけ。 型安全な静的型の存在を意図的に無視してね。 型安全かつコンパイル時に型チェックが行われる言語は、型安全なのはもとより、 コンパイル時に型チェックが行われるから、実行時に例外(バグ)が発生する可能性も大きく減る。 つまり2のパターンの静的型が一番信頼性が高いソフトウェアを作れるってわけ。
716 名前:デフォルトの名無しさん [2015/12/25(金) 13:39:12.58 ID:b/ORJMNc.net] でも動的厨が叩いてるのC#じゃないっけ?
717 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 13:41:17.94 ID:W214cjQ2.net] 「static-typeおじさん」はなぜ自信満々なのか…
718 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 13:42:41.49 ID:H65SAupI.net] >>704 それは連想ゲームで叩いてるんだよw 動的型は型安全 → 静的型は型安全じゃない → 静的型のC/C++は型安全じゃない → 静的型は型安全じゃない → C#は静的型 → 静的型は型安全じゃない こんな感じでねw
719 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 15:31:05.22 ID:JtKLD9Wt.net] これは針の上の天使問題の一つにだな。
720 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 20:26:11.52 ID:P+AWGo7j.net] >>648 で終わったら性的おじさんが 「終わりじゃねぇ!」って発狂した流れ
721 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 20:32:11.38 ID:RqZZBlSb.net] Swiftのような本当の意味で型安全な言語って他にある?
722 名前:デフォルトの名無しさん [2015/12/25(金) 21:04:06.54 ID:VdtrNDQn.net] static-typeおじさんとかいう頭悪そうなレッテル貼りすこ
723 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 21:17:46.87 ID:XvkCqMEu.net] っても最近の動的型はどんどん静的型の機能を取り入れている現実が有るわけだから レッテル貼りしようにも、自分たちにも降りかかってくるんじゃないかね
724 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 21:19:31.49 ID:JtKLD9Wt.net] 型はカリーハワード対応で証明が出来るから安全なんだけど、C++とかはそういうことできないからな。
725 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 21:23:41.52 ID:pExGh+/O.net] 馬っ鹿野郎カーリーハワード対応なんてやりだしたら型推論もできなくなるじゃねえか。 まだ証明駆動開発に手を出すのは早いというか、現実とのすり合わせが欲しいところ。
726 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 22:45:11.43 ID:cOtvUzth.net] 気分はstatic-type!: 何度聞いても動的のメリットってピンとこないんです!
727 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:05:46.54 ID:ya9ISuTA.net] 極端な話、Cでシングルプロセッサの組み込み機材用の 小さなプログラム組んでる現場しか知らないプログラマが C++もObjective-Cも"自分には必要のない機能"だから 関数で十分だろ!って言い張ってんのといっしょだからな。
728 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:07:42.36 ID:H65SAupI.net] なら必要な理由を言うべきでは?w
729 名前:デフォルトの名無しさん [2015/12/25(金) 23:14:42.64 ID:VdtrNDQn.net] 動的のメリットがピンとこないやつはそうそういないだろ それ以上に静的のメリットが目立ってきただけで
730 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:19:44.67 ID:NwxuBGdr.net] まだやってたのかい おおいぬ座VY星の大きさにくらべたら そんなちっぽけな事なんてどうでもいい話だぞ。
731 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:20:18.82 ID:RqZZBlSb.net] 今から5年後10年後を考えるともうプログラミング言語はSwift以外は必要ないんじゃない?
732 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:24:54.08 ID:Zq2DCqaM.net] >>719 ふぞけんな ガベージコレクション実装してくれたら考える 循環参照うざすぎ
733 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:30:22.04 ID:O7yo+mtd.net] >>715 井の中の蛙に大海原でのサバイバルに必要な知恵を説いたところで、 「技術的に面白いってだけで実用性は無い」って一蹴されるのがオチ。 時間の無駄だと気付よ。www そのカエルが想像力を欠いた思い込みの激しい自信たっぷりの頭の固いオッサンだったらなおさら。
734 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:39:55.58 ID:H65SAupI.net] まず説明するべきだろうw
735 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:43:21.09 ID:fIh1CtOA.net] このLISPロートルもC#を使ってりゃ 200行程度のコードのデバグ()に40時間も無駄にせんでも済んだのにな! cybozushiki.cybozu.co.jp/articles/m000442.html
736 名前:デフォルトの名無しさん mailto:sage [2015/12/25(金) 23:45:19.82 ID:RqZZBlSb.net] >>720 メモリ管理もできない雑魚プログラマにとってGCは生命線なんだろうけど、 あらゆる環境で動作する、これからのIoT時代を考えると、 プログラマの意図しないところで勝手に動作するGCを言語仕様に組み込まなかったのはSwiftの数多くの英断のうちのひとつ
737 名前:デフォルトの名無しさん [2015/12/25(金) 23:59:15.15 ID:ZRRrPEfi.net] >>723 おもしろい!
738 名前:デフォルトの名無しさん [2015/12/26(土) 00:05:35.63 ID:X/dp4KOm.net] >>720 pythonみたいに参照カウントをベースに循環参照も破棄できるようになればいいのにね!
739 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:08:12.89 ID:ZXEkf1l0.net] SwiftもまずはWinとLinuxでしっかり動くようにしないと言語仕様に関係なくお話にならない .NETは今必死に他環境に移植してるけど、結果がどうなるか
740 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:12:29.18 ID:AIAsWwFm.net] Windowsは既にプラットフォームとして終わっているから問題ない OSXは誰もが最新を使っているが、Win10入れてるやつがどれだけいる?
741 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:22:19.00 ID:h8/CI80S.net] >>724 > メモリ管理もできない雑魚プログラマにとってGCは生命線なんだろうけど、 体育会系かな? やらなくてもいいことを頑張っても 評価されないよw
742 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:25:35.01 ID:AIAsWwFm.net] >>729 Swiftには明示的なメモリ管理は必要ないよ 頭の中にマシンを思い描けば、あとは勝手にSwiftがメモリを管理してくれる イマジンからバイトコードを作る、これまでのプログラミング言語と一次元違う生産性を与えてくれる言語だね 循環参照に困ってるようなプログラマは、結局マシンと繋がってない2流なんだよ 何の言語やってもゴミだと思うよ
743 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:27:11.73 ID:h8/CI80S.net] >>730 あんまりおもしろくないかな。
744 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 00:29:13.18 ID:ZXEkf1l0.net] >>728 少し調べるとMacでも最新は半分とかいうデータもあるが・・・ 少し古くなると無言でアップデートが降ってこなくなるのはどうにかしろよ
745 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 02:08:48.33 ID:fgdYsfOp.net] >>731 なんか露骨にシャドーボクサーが敵だと思う相手のモノマネ始めた…って感じだよなぁw
746 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/26(土) 05:47:09.22 ID:FnXDSeGk.net] アスペしかいないなこのスレ
747 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 09:17:49.02 ID:Pbxj7UC/.net] 静的動的のメリットデメリットの項目を挙げていくと 静的型付けが大差をつけて勝ってると思うのに、 自分で実際に開発すると動的型言語を使ったときのほうが 明らかに生産性が高いのが腑に落ちない あ、ちなみに静的動的両方使ってます日常的に
748 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 09:53:04.49 ID:btZXIc4v.net] >>700 「このC#erは、動的機能なんか仕事じゃ使わない。 あれは曲芸のためのもんだと決めつける。 それにLispとかSmalltalkみたいな極端な動的言語でアプリやシステムをきちんと動かしたことがあるって実例を知らないよ。 そもそも、動的言語にはC#にある型チェックや完璧なインテリセンスが理論上作れないもんな。 「このC#erが動的言語を見くだしている時、もちろん彼にはそうしているという自覚がある。 C#よりも型付けの弱い言語は、 明らかに力が弱い。彼が慣れ親しんだ安全性・利便性がないからだ。 しかし、このC#erは反対の立場から見られるとき、彼は自分が見下されているのだということには気付かない。 彼が耳にするのは、自分には無用な変てこりんな機能や使い方ばかり。 どうやらそれらをC#で出来ることと引き換えにできるくらいパワフルと勘違いする馬鹿もいるようだが、 やつらは目的と手段をはき違えている。真摯に耳を傾けようにも俺の現場では有り得ない想定が出てくるばかり、 と思うだろう。 「彼にとってはC#で十分なのだ。何故なら彼にとってC#で十分な仕事がすべてだから。
749 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 09:58:56.71 ID:NGJJ2lD8.net] 静的型付けは処理系のための技術。ベンチマークやエラー検出などカタログスペック的なメリットを挙げやすい。 動的型付けはプログラマのための技術。良さが工学的な指標に直接現れにくい。 だから>>735 は至極自然なこと。 matzがよく言う「書いていて気持ちいい言語」もそういうこと。
750 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 10:16:26.79 ID:h8/CI80S.net] >>736 > このC#erは、動的機能なんか仕事じゃ使わない。 あれは曲芸のためのもんだと決めつける。 決めつけてるんじゃないよ。 お前が曲芸の話しかしないからだろう? 停止して修正しても同じことができる。 停止しないで修正する。以外のことは何一つ言ってない。
751 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 10:17:43.34 ID:h8/CI80S.net] >>737 > 静的型付けは処理系のための技術。ベンチマークやエラー検出などカタログスペック的なメリットを挙げやすい。 客観的にメリットをあげられる。 > 動的型付けはプログラマのための技術。良さが工学的な指標に直接現れにくい。 主観による好みしか無い なるほどねぇw
752 名前:デフォルトの名無しさん [2015/12/26(土) 10:18:26.61 ID:EXUTS9i+.net] Swiftってそんなにすごいのか フォートランぶち転がせるかな
753 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 10:43:34.57 ID:CL7rBGr9.net] >>717 残念ながら多いみたいだよ。 >>739 指標化しずらくても大事な事はあるって言う当たり前のことからまずは目を向けようか。
754 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 10:47:22.39 ID:KNyipM+p.net] このスレのstatic-typeおじさんはプログラム書いたこと無さそうな感じするわ webの記事だけ読んでカタログスペック語っちゃってるってことか
755 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 11:33:23.04 ID:h8/CI80S.net] >>741 まず「大事なことはあるんだ!(完)」じゃなくて 説明することから始めような?
756 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 14:00:14.24 ID:JNqWY34w.net] 説明してもらえる態度から始めような。おっさん。
757 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 14:17:21.38 ID:lwOCx2j3.net] メリット、デメリットと言っても、チューリング完全ならどの言語を使ったって同じだからなぁ ラーメンタイマーを作るのに態々コンパイラを引っ張り出してくるなんて馬鹿らしい事をするのか? EXCELのデータを加工するのに、C#使って加工するのか?
758 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 14:44:09.10 ID:NGJJ2lD8.net] >>738 >停止して修正しても同じことができる。 停止したらできないことは多い。君がそのどれにも気付いていないだけ。 気付かないのは、それだけ経験が浅いということ。 君は素人だから仕方ない。だから責めはしない。 しかし自分の無知は自覚しておきなさい。
759 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 15:16:22.31 ID:cLEQ3vA1.net] 経験が〜ってこれ 言い出すほうがザコっぽいよねいつもw
760 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 15:19:49.45 ID:h8/CI80S.net] > 停止したらできないことは多い。君がそのどれにも気付いていないだけ。 いっつもこればっかりだよなw 具体的な説明はしない(できない) 説明しないくせに、理解できないのは他人のせいw
761 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 15:21:01.87 ID:MxaSLHJT.net] 例えば、乱択アルゴリズムでのコーナーケースのデバッグは、 修正後の動作確認するには元の実行状態を完全に復元しないと無理だわな。
762 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 15:27:36.14 ID:MxaSLHJT.net] 自分の管理下にないサーバとのチャレンジ/レスポンスでのデバッグも 一旦プログラムを実行中断してしまうとサーバ側が同じチャレンジをしてくれないな。 他にも、実行状態を中断せずに修正して動作確認したいケースは多々ある。 1つも挙げられない人って、プログラマとしてどうなんだろうね?
763 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 15:28:32.73 ID:h8/CI80S.net] >>749 元の実行状態を完全に復元したら、 次の乱数の値は同じものが出現するってこと? それでデバッグできるってことは、そういうことなんだろうね。 乱数の値が、前の状態によって決まるのであれば、 一番最初の状態を一つ定義するだけで、同じ状態が復元できるのでは?w
764 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 15:30:11.50 ID:h8/CI80S.net] >>750 > 自分の管理下にないサーバとのチャレンジ/レスポンスでのデバッグも > 一旦プログラムを実行中断してしまうとサーバ側が同じチャレンジをしてくれないな。 では、動的言語にすると、サーバー側は同じチャレンジをしてくれる、というのかね?
765 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 16:08:40.09 ID:sP1JXdgY.net] 職業プログラマが出てこないでよ。 仕事の話しないでよ。
766 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 16:11:36.35 ID:7h5tLOzP.net] だめだこのおっさん。自分の思考が停止してることにぜんぜん気付いてない。www
767 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 16:16:43.64 ID:h8/CI80S.net] 「私はこういう意見がある!(ドンッ)」 ほう、言ってみ? 「自分で考えろ!(ドンッ)」 だめだこりゃwwww
768 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 17:01:59.36 ID:7h5tLOzP.net] 緩募 Aという状況に対処することの必要性を Aという状況を想定できないおっさんに説明する方法 Bという方法で対処できる事態においてBが有効であるということを Bを無意識に選択肢から排除して疑問を持たないおっさんに説明する方法 あるいは 端から話を聞く気がないわりにこまめに絡んでくる痛いアスペのおっさんに退場いただく方法
769 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 17:13:02.19 ID:vJHNtaLI.net] 答 スレタイ嫁 (ここは静的型付の優位性を論じるスレではない)
770 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 17:20:46.23 ID:gCn4MbmU.net] >>757 クソがクソ溜めでクソな話して楽しんでるのに横槍いれんじゃねえ 帰れアスペ野郎
771 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 18:20:09.09 ID:lipwm7l1.net] >>749-750 それができるのは動的型付けだからか?perlでもphpでもできるのか?CommonLispとSmalltalkはできるけど。 CommonLispで>>749-750 ができるのはデバッガが充実してるからで、オブジェクト指向は関係無いな。
772 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 18:40:19.19 ID:AIAsWwFm.net] 今の職業プログラマは10年したら「プログラミングネイティブ」世代に置いてけぼりにされるのにね 今でも、できる中年プログラマはマイコンやMSXでBASICとかやってた人なんだろうとは思うんだけど、 かつては金持ちの道楽だったプログラミングが次世代からはいっきに敷居が下がる 「仕事では使えない言語」という評価は、「その言語を使えるレベルの高い人がいない」という人月による奴隷労働の生む現象だけど、 5年もしたら奴隷階級でも、"流行の言語を10代から遊び感覚で使ってきた"、プログラミングネイティブ世代に置き換わる
773 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 18:55:24.91 ID:h8/CI80S.net] >>759 良い指摘だねw そう。それはデバッガの機能 https://msdn.microsoft.com/ja-jp/library/y740d9d3.aspx > 次に実行されるステートメントを設定する > > デバッガーを中断した後、実行ポイントを移動して、コードの次に > 実行されるステートメントを設定できます。ソース ウィンドウまたは > [逆アセンブル] ウィンドウのマージンに表示される黄色の矢印は、 > 次に実行されるステートメントの位置を示します。 > > この矢印を移動すると、コードの一部をスキップしたり、前に実行した行に戻ったりできます。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > 既知のバグを含むコードのセクションをスキップするなどの場合に利用できます。
774 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 18:56:29.15 ID:OdF2h8JB.net] 構造化プログラミングでのgoto排除ですら 実は"人間の都合"であって最速最良を追求するならgotoあったほうがいいわけで つまり性的おじさんの必死で主張してる効率の良さは 下からどんどんコンパイラ最適化でいままさに 人工知能に機械的に喰われてる部分であって。 アセンブラと動的な抽象化の間でなにをのたうっているのかと…
775 名前:デフォルトの名無しさん [2015/12/26(土) 18:58:53.84 ID:EXUTS9i+.net] (今度は静的言語の速さを話題にシャドーボクシング始めたぞ)
776 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 19:01:08.59 ID:h8/CI80S.net] >>763 そうなんだよねw 上で俺はマッチポンプって書いたけど、 「静的厨はこういうことを言ってるんだ!」と 自分で言っておいて、それを叩くというわけのわからんことをやってる
777 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 19:07:23.46 ID:h8/CI80S.net] 前にも書いたと思うけど、>>761 を出したついでに関連してこれもかいておくか。 エディット コンティニュ https://msdn.microsoft.com/ja-jp/library/bcew296c.aspx > Visual Studio 2015 その他のバージョン > > エディット コンティニュを使用すると、プログラムが中断モードのときにソース コードを > 変更できるため、時間を節約できます。 Continue や Step などの実行コマンドを選択して > プログラムの実行を再開すると、一定の制限の下で、エディット コンティニュがコードの > 変更を自動的に適用します。このため、デバッグ セッション中にコードを変更できます。 > デバッグ セッションをいったん停止し、プログラム全体を再コンパイルしてからデバッグ セッションを再開する必要がありません。 [] [ここ壊れてます]
779 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 19:10:09.63 ID:OdF2h8JB.net] swiftにシャドー挑んだスマホで書き込んで 即座に切り替えて自分で自分に 「そうなんだよね」ワロタ
780 名前:デフォルトの名無しさん [2015/12/26(土) 19:16:55.46 ID:EXUTS9i+.net] 自分が自演してるからって人もしてると思ってんじゃねーよ あとフォートランが死なない理由は速いからと思ってるようだけどどちらかというと遺産が多過ぎるから、老害の使用率が高すぎるからだぞ そしてこれはシャドーとは言わない
781 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 19:37:51.44 ID:E3MIEZFa.net] どちらにしても、動的型がどんどん静的型を取り込んでいる現状があるのにそれを無視してもな 静的型にメリットが無いなら、本来静的型がなくても動く動的型が わざわざ静的型を取り込むわけ無いということぐらい直ぐにわかるのに
782 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 19:40:22.05 ID:OdF2h8JB.net] それが3つめのでしょ?すぐわかんだよね…
783 名前:デフォルトの名無しさん [2015/12/26(土) 19:54:49.37 ID:EXUTS9i+.net] このスレに書き込んでるのは二人だけってマジ?
784 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 20:01:24.61 ID:h8/CI80S.net] >>770 他人にそれを判断することは不可能だよ。 (あったら説明して納得させてみいw) だから思い込みと見て間違いない
785 名前:デフォルトの名無しさん [2015/12/26(土) 20:06:55.31 ID:EXUTS9i+.net] >>771 それも俺なんでしょ?すぐわかるんだよね…
786 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 20:40:10.56 ID:NGJJ2lD8.net] >>759 CLとSTの両方とも動的型付けだというのは偶然ではないと思うぞ。 OCamlのような実行時型情
787 名前:報を持たない言語/処理系で 実行中に修正して継続実行することは非常に困難であり、 かつ、型の制約が強すぎて修正できる部分は非常に限定される。 修正前後での型の一貫性を保てない修正ができないから。 以上の理由から、動的型付けの利点と言っていいと思うが、どうよ? [] [ここ壊れてます]
788 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 20:42:16.15 ID:NGJJ2lD8.net] >>761 コードの実行中でのコード修正&実行継続と 単なるデバッガ中でのステップ実行の区別もつかない人は 黙ってたほうがいいと思うよ?
789 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 21:08:32.92 ID:6DkdQBNB.net] エディット コンティニュはデバッグ ビルドでのみ動作します。wwwww エディット コンティニュは 64 ビット コードでは使用できない wwwww
790 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 21:09:02.33 ID:KNyipM+p.net] OCamlのデバッガに1ステップ前に戻る(ステップ実行の反対の)操作があるのスゴイ
791 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 21:11:28.36 ID:MxaSLHJT.net] >>765 動的言語の単なるアクロバットの実用価値がやっとわかって静的言語にも取り込もうとしている現状にやっと気付きはじめたんだねw 実行時変更にメリットがないなら静的型がわざわざ実行時変更を取り込むわけ無いことぐらい直ぐにわかるのにwww
792 名前:デフォルトの名無しさん [2015/12/26(土) 21:16:27.69 ID:EXUTS9i+.net] >>777 ちなみにこれも俺なんです。すぐにわかるんだよね…
793 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 21:16:30.94 ID:6DkdQBNB.net] https://msdn.microsoft.com/ja-jp/library/ms164927.aspx デバッグ セッション中に C# コードに適用できない変更は、次のとおりです。 - 現在のステートメントまたはその他のアクティブ ステートメントに対する変更。 - アクティブ ステートメントには、現在のステートメントを取得するために呼び出される、 呼び出し履歴上の関数内に存在するすべてのステートメントが含まれます。 - ソース ウィンドウ内では、現在のステートメントは黄色の背景で示されます。 その他のアクティブ ステートメント (読み取り専用) は、網かけの背景で示されます。 これらの既定の色は、[オプション] ダイアログ ボックスで変更できます。 - 型のシグネチャの変更 - 以前にキャプチャされていない変数をキャプチャする匿名メソッドの追加。 - 属性の追加、削除、変更。 - using ディレクティブの追加、削除、変更。 - アクティブ ステートメントの周囲への foreach、using、または lock の追加。 じゃあ、なになら出来るんだよwwwwww
794 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 21:44:49.52 ID:gbQMSnGA.net] >>776 >1ステップ前に戻る(ステップ実行の反対の)操作がある すごいな。 d.hatena.ne.jp/mzp/20081225/ocamldebug ほんとだ。実行時コンテキストはどうやって巻き戻しているの?
795 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/26(土) 22:25:14.87 ID:4ahr08St.net] このスレの奴12/25までケンカしてたんだな・・・ お疲れとしか
796 名前:デフォルトの名無しさん mailto:sage [2015/12/26(土) 22:58:18.55 ID:lipwm7l1.net] >>773 多分、プログラミングとは何か、実行環境とは何かっていう部分が違うんだと思う。 超強力なデバッガを持っているCLやSTだと、絶賛稼働中の環境でも修正できるのが単なるメリットではなく、 そういうやり方も当然あるものとして開発を続けるのが普通、だと考えているのではないか。 根底にあるのは、プログラムを実行する人と開発者が分かれていない、分かれていてもそんなに遠くない関係のままであり続ける(べき)というスタンスなんじゃないかと。 特にSmallTalkは(というよりアラン・ケイが)そういう考え方の元で作られた言語+環境だから、 SmallTalkerにとっては実行時の型情報が重要だし、動的型付けも必須だと思う。むしろ空気のようなもんになっているんじゃないかと。 一方で、実行者にプログラミングの素養を期待しない、開発者は遠くの人、みたいな場合はデバッガなんて実行時にあるだけ無駄だし、 開発者はバグが無いよう細心の注意を払うべきだし、言語はそれをサポートする機能を持つべき、っていう考え方の人もいる。 そういう人は強い静的型付けで型システムが豊かな言語が魅力的に見える。 コードの再利用のために継承を欲しがり、ついでにオブジェクト指向も入れてしまった言語…黙秘します。語るべきじゃない。
797 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 00:25:42.92 ID:LQildC0d.net] >>775 現在では64bitにも相当まで対応してるはず リリースビルドは動的型と比べて自由度と柔軟性を捨てて速度を選ぶんだから、しょうがない やってみるとわかるけど、VisualStudioの出来の良さも含めて案外使い物になるよ
798 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 00:45:39.53 ID:K/y89QOU.net] >>782 議論の参考になるか分かりませんが、アラン・ケイが出してた 動的にやれることのメリットとしてはこんなのがあります。 例えば、あるプロジェクトを一年以上続けていて、 沢山の大切な物が出来上がっているとする。 何万もの動いているオブジェクトがあるクラスに、 システムを破壊せずにいくつかのインスタンス変数を追加して、 動的にそれらを再構成する事は出来るだろうか? ただあくまで彼は早期結合に批判的なのであって、(静的)型に必ずしも反対しているわけではないようです。 きっと遅延結合をサポートできる柔軟で賢い型システムが出てくれば歓迎するでしょう。
799 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/27(日) 00:50:00.24 ID:Dbb+2cjN.net] https://www.ruby-lang.org/ja/news/2015/12/25/ruby-2-3-0-released/
800 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 01:10:47.29 ID:si7ncwl4.net] まあこのスレみてて一番の収穫は 静的、動的に異常にこだわる馬鹿はプロジェクトから排除するべき っていうことがよくわかったってことだな。
801 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 03:45:03.72 ID:DLk3aEoT.net] 少しPharo Smalltalkを触ってみた感じでは、Pharoだけで閉じたシステムなら稼働中のシステムの改修も簡単にできるように見えた。 来歴の異なる2つのアイデアに同じオブジェクト指向という名前を使うのはやめて欲しいと思った。批判がぼやけるし、反論もぼやける。 Smalltalkの徹底している(ように見える)メッセージ指向は面白い。 ただ、速度を稼ぎたいっていう需要は相変わらずあるし、速度も安全性も欲しいっていう需要もある。 Smalltalkで頑張るより最初っから速い言語で書く方が楽な部分もある。 >>784 アラン・ケイのその例はちょいとSmalltalk過ぎて、自分の好きな言語でどう言い直せる問題なのかすぐに出てこない。すまん。
802 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 10:55:29.62 ID:iIeA3jAx.net] インテリセンスのためにコメントに型を書いてる言語みると笑いが込み上げるよね
803 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 17:28:53.36 ID:Uc9cUKER.net] 型にこだわる奴はB型なんだけどな。
804 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 17:52:14.76 ID:Uc9cUKER.net] 以下の文はソース >B型の特徴 マイルールで動きわけのわからないこだわり持つ
805 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 17:54:46.05 ID:6NYNO2+5.net] お前が一番「型」にこだわってるじゃねーか
806 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 18:22:52.04 ID:1oZy+T7E.net] 最低なのはアホで愚鈍でキチガイのO型 手続き型のA型は実直だけど神経質 おおらかでダイナミックだけど個性的なB型 ハイブリッドマルチパラダイムで最強のAB型
807 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 18:55:00.45 ID:LQildC0d.net] >>788 たしかに、動的型でコメントに型を書くぐらいなら言語の機能でかければいいのにと思う反面、それやると全てに型を書くように言うやつが出て動的の利点が失われるというジレンマ
808 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 19:09:57.62 ID:qllk89hj.net] O型はA型やB型に輸血すると動的に型が変わる最強型 A型は他の血液型入れるとすぐクラッシュして死ぬ愚鈍
809 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 19:45:26.36 ID:/O53e43E.net] >>788 pythonのことか…
810 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 19:45:47.84 ID:si7ncwl4.net] オブジェクト指向のスレかと思ってたらいつのまに血液型スレになってた。。 何を言っているのかわからねーと思うが おれも何をされたのわからなかった。。
811 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 20:02:57.80 ID:r1oeWZPX.net] >>794 うお!血液型って変化するんか今更知ったわ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
812 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 20:30:46.78 ID:1oZy+T7E.net] >>794 原始人なんじゃねO型って
813 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 20:52:21.13 ID:si7ncwl4.net] ほんとにプログラム書く上で役に立たないどころか害になりそうな議論しかないところが凄いね。
814 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 21:29:05.69 ID:AYt5UEwr.net] SmalltalkやCommon Lisp(?)で何作ってんの? ていうか本当に使ってんの?
815 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 22:29:14.19 ID:NuWA0y2P.net] C#erのオッサンが、たいして知りもしないSmalltalkとかCommon Lispに難癖つけてて草
816 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 22:47:34.86 ID:g/r0v/P2.net] >>800 CLerはともかくSmalltalkerは 一匹やってくるとワサワサ増殖して空気読まないレス連発するので不用意に呼び寄せないで欲しい
817 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 23:13:17.05 ID:Yse7GotI.net] Objective-Cだとなんでもクラスというかちょっとデータ数あったらすぐ NSObjectを継承して動的に生成され管理されるクラスにデータ入れて渡すから 言語的に言語仕様で定められた"型"の判別がどーとかより 現在使ってるフレームワークで"クラス"がどう定義されてるかになって 話が言語の方にこないっつか。 >>784 の想定してる問題がよくわからんがクラスで受け渡してるものに なにか新しいデータ要素を足すってのは、Obj-C的には トラックの荷台に新しく置くものが増えるぐらいの感じで 別にそれでどこか別の部分に問題が出たりするシステムの方が 逆によくわからない。それの積み下ろしに関係してないとこはもともと利害ないし 新しく積み下ろす関連のとこだけ直せば動作に問題出ないし。 ちなみにクラス自体は内部的にはポインタ渡しのメモリブロック扱い。
818 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 23:29:58.30 ID:f7J7LqC1.net] ちっ
819 名前:デフォルトの名無しさん mailto:sage [2015/12/27(日) 23:48:44.46 ID:K/y89QOU.net] >>803 >トラックの荷台に新しく置くものが増えるぐらいの感じ 論よりコードで、とりあえずSmalltalkの>>680 をObj-Cでやるとどんな感じ?
820 名前:デフォルトの名無しさん [2015/12/27(日) 23:54:26.71 ID:TQTcd7lL.net] なんでゴキブリって全員がゴキブリ語を解する前提なんだろ
821 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:03:12.16 ID:CKLu8anb.net] ゴキブリがしゃべってるのが見えるんですね? お薬ちゃんと飲んでますかー?
822 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:11:06.21 ID:02492xEu.net] >>806 低レベルと見下した意味での「ゴキブリ」なら、解するのもわけないのでは? そもそも、解する、解さない以前に気にする必要自体ないでしょう? 役立つ情報がないんだから。 得体が知れないという意味なら、Smalltalkはすごくシンプルな言語なので(マクロがない分、Lispよりシンプル)、 さして苦労はせずに読むことくらいはできるようになれますよ。 amber-lang.net/learn.html
823 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:12:56.26 ID:KeqGm6Du.net] Smalltalkerにとって>>680 は相当にお気に入りみたいだね ああいうトイコードを書いてはニヤニヤしちゃってるのかな
824 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:20:38.75 ID:02492xEu.net] >>809 基本的にSmalltalkのコードはシステムブラウザを使って書くので、こういうことをあえてすることはないですね。 ただ、内部的にはやはりこうした動きなのと、動的遅延結合性の要素がそれなりに盛り込まれているので こういうことが無理なく出来る言語なら、使ってもストレスはあまり感じずに済むかなとは思います。
825 名前:デフォルトの名無しさん [2015/12/28(月) 00:24:42.85 ID:ESQO+1YW.net] >>800 ホントにこれ Lispはmathematica様の原料だからわからんでもないけど 実際どこで役立ってるのか紹介せずにアンテナ弱いとかの煽りしか飛んでこないのホント害悪
826 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:38:13.00 ID:w2hqGr/u.net] 絞り出したのが「Lispはmathematica様の原料」って、そりゃあんたさすがにアンテナ低すぎだろ… せめてルンバがLispで動いている(噂レベル)とか、Yahoo!Storeが当初Lispで書かれてたくらいは出そうよ
827 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 00:40:37.42 ID:i875NmCw.net] 動的遅延結合性なんかいらんだろ エラーが分かるのが遅くなるだけ だいたい粒度の問題というものは常々なんにでも付きまとっていて 要するに、オブジェクトという細かな粒度でそんな機能は必要とされてないのだ >>309 でも指摘されているだろ
828 名前:デフォルトの名無しさん [2015/12/28(月) 00:45:15.64 ID:ESQO+1YW.net] かなり分かりやすい具体例をあげたらそっちからアンテナ低いと叩かれるとか頭おかしい
829 名前:デフォルトの名無しさん [2015/12/28(月) 00:47:03.54 ID:ESQO+1YW.net] Mathematical じゃなくてmaximaだったか これは叩かれても致し方なし
830 名前:デフォルトの名無しさん [2015/12/28(月) 00:54:33.76 ID:ESQO+1YW.net] とはいえやっぱりlispみたいなラテン語並みの言語の使い道知らなくても叩かれるいわれはないぞ
831 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 01:07:18.94 ID:02492xEu.net] LispでMaximaの例がわかりやすいのなら、Smalltalkの場合たとえば Rubyの処理系のひとつがSmalltalkで書かれているとかではどうですか? maglev.github.io/ 言語処理系では他に SlateとかNewspeakとか、Scratch(1.4まで)とかありますが、まあ、 Smalltalk よりマイナーな言語だと挙げても意味ないかとも。 スマホ向けソフトでも、そう多くはないですが Smalltalk で書かれているものがあります。 www.drgeo.eu/ ネットサービスでPharoを使っているとかならスタートアップでいくつかあるのですがやはりマイナーな用途ですよね? pharo.org/success 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活用 smalltalk.cincom.jp/main/successes/shipping/ とか J.P.モルガンの VisualWorks活用 smalltalk.cincom.jp/main/successes/financial-services/ とか が有名どころです。参考まで。
832 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 01:09:54.97 ID:KeqGm6Du.net] (1)無停止が要求されるシステムで (2)プログラマが本番稼働中のシステムに直接パッチ当てることが許されてて (3)Smalltalkで開発されてる (1)と(2)が両立するだけでも信じ難いレベルなのに、3つ全部揃ってるってどんだけレアなの
833 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 01:36:15.43 ID:02492xEu.net] >>818 Smalltalk が目指す無停止っていうのは、サーバーの無停止とはちょっと意味合いが違うんですよね。 インターネットが(ノードレベルでは停止することはあっても)全体として無停止とか、そういうのに似ています。 OS だと、アップデートで再起動がいらないとか以前に、そもそも再起動を想定しないシステム作りとかそういう方向性です。
834 名前:デフォルトの名無しさん [2015/12/28(月) 01:56:46.03 ID:ESQO+1YW.net] >>817 すごいなあこれ Smalltalkを勉強するメリットはあんまり伝わってこなかったけど、Smalltalkに関する情熱はすごくよく伝わってきた ID:02492xEuさんの主張がまだよく分からないのですが、Smalltalkは学ぶべき実用言語なのですか?それとも敬意を払うべき古典なのですか?それまた考え方の基礎として知っておくべき教養なのですか?
835 名前:デフォルトの名無しさん [2015/12/28(月) 02:01:33.32 ID:9w43khSU.net] 20年前はどうだった? どいつもこいつの禿様、オブジェクト指向様と拝んでたくせに 糞共が
836 名前:デフォルトの名無しさん [2015/12/28(月) 02:05:36.29 ID:9w43khSU.net] どいつもこいつの → どいつもこいつも
837 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/28(月) 03:03:19.88 ID:9q5IGdq7.net] マイナー言語で何かが作られてたとしても、 その言語が凄いってわけじゃなくて、 その言語を得意としてる奴の中に凄いのが混ざってただけ 人によって使いやすい言語構文は違うというuyの主張
838 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 03:04:13.01 ID:8sKUVUhj.net] 使いやすいかどうかは、慣れでしかない。
839 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 03:06:45.15 ID:02492xEu.net] >>820 Smalltalkは我々使い手にとっても「来なかった未来」なので、それが何かを知らない人があえて学ぶ価値はないです。^^; ただ処理系のアップデートは続いていますので、よく知らないくせに「(役目を終えた)教育向け」とか「さび付いた 言語」とかレッテルを貼って馬鹿にされると、いささかむかつきますけどね。 歴史的には、WIMPなGUIとか、MVCとか、IDE、XP/TDD/アジャイルとか、最近ではTraitsとかClassboxesとか 流行になる程度に影響がある技術や手法のゆりかごや先駆けみたいな存在ではあるので、 それらの出自やメリットデメリット、デメリットに対して試みられた対策をきちんと知っておこうという意識高い系には 教養・基礎知識として学習しておくのはありかと思います。 あと、徹底した動的結合性の(失敗して、アラン・ケイに見捨てられたりはしましたが)チャレンジの一応の成果ではあるので、 繰り返し同じ失敗をしないための反面教師であったり、さらにこのチャレンジを進めるためのたたき台としては 大いに学ぶ価値はあるかと。もちろんそこまで背負い込まなくても、落ち穂拾いとか宝探し(ゴミあさり?)感覚で、 まだ手垢の付いていない有用な技術や機能、ノウハウのネタ元を探す目的で学ぶというスタンスも面白いと思います。
840 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 03:09:49.59 ID:8sKUVUhj.net] じゃあレッテルじゃない事実を SmalltalkはOSとIDEとエディタと言語を統合させてしまうという 間違った設計をしたため(言語ではなく)運用面で柔軟性にかける言語
841 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 03:10:28.44 ID:8sKUVUhj.net] 訂正 SmalltalkはOSとIDEとデバッガと言語を統合させてしまうという
842 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/28(月) 03:23:50.08 ID:7qtNlkA2.net] 今でこそ間違いだと分かるものの 黎明期に作られた言語なんて、何と何を分離したらいいか分からなかったんだろう その中でたまたま目瞑って石投げたら当たったみたいな言語が生き残った感じ
843 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 03:31:14.07 ID:8sKUVUhj.net] 動的言語の特徴とSmalltalkの特徴がごっちゃになってる人がいるんだよからなぁw Smalltalkはこういうことができる!これは動的言語だからできるんだ。と 言い出すが、これは他の動的言語では出来ず。 IDE(エディタ+デバッガ)の機能だよねそれ? Visual Studioでもデバッグ中にソースコード編集できたり 好きな行から再実行とかできるから、静的言語でも実現可能な機能だし。 https://msdn.microsoft.com/ja-jp/library/y740d9d3.aspx > 次に実行されるステートメントを設定する > > デバッガーを中断した後、実行ポイントを移動して、コードの次に > 実行されるステートメントを設定できます。ソース ウィンドウまたは > [逆アセンブル] ウィンドウのマージンに表示される黄色の矢印は、 > 次に実行されるステートメントの位置を示します。 > > この矢印を移動すると、コードの一部をスキップしたり、前に実行した行に戻ったりできます。 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > 既知のバグを含むコードのセクションをスキップするなどの場合に利用できます。 それで、エディタやデバッガの機能じゃなくて、動的言語どれにでもあてはまる 動的言語の特徴は何なの?というと結局答えは出てないし。
844 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:07:47.35 ID:02492xEu.net] >>826 はて。それこそ Smalltalk をたんなる処理系と誤解した人が好んで貼りがちなレッテルのひとつですよね? Smalltalk は Smalltalk-72 のごく初期の時点で今で言うスクリプト言語のようなスタイルでこそありましたが その後は 70年代を通じ、一貫して OS(ダイナブック向けを想定していたので風変わりではありますが) として作られたソフトウエアです。 web.archive.org/web/20041016084842/http://marimpod.homeip.net/chomswiki/24# 仮想マシンベースになってから、移植性が高まり他の OS 内で仮想環境(VMwareのような)として 動作できるようになったのは処理系や IDE が固まった後の話であり、処理系や IDE は、OS の機能の一環として その OS 上に当然のごとく構築されたものにすぎません。 OS の構造を、将来他の OS の仮想環境のひとつとして機能させるためにモジュラリティーを持たせておく 設計にしなかったから駄目だ、という指摘なら分かりますが、ある OS 上に(それ自身を記述する)処理系や IDE を 構築したことを設計ミスと断じるのは、いささか無理があるように思いますがいかがでしょう。 もちろん現状で専用のハードを持たない以上、他の OS を渡り歩く仮想環境として運用されることが運命づけられた今、 モジュラリティーに欠ける点が言語処理系として振る舞う際に運用上のデメリットとして明らかなことには異論ありません。
845 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:12:26.80 ID:WNJ7FWNN.net] >>823 > その言語を得意としてる奴の中に凄いのが混ざってただけ その「凄いの」がなぜその言語を選択したのかを無視して 目先の流行の表層だけを見てその背後にある本質に目を閉ざしているから 君はいつまでも初心者レベルだということにいい加減気付け。
846 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:20:58.33 ID:WNJ7FWNN.net] >>829 特定の言語機能が単体で可能なことしかその言語機能の利点と認めないことの愚かさに気づかないの? プログラミング言語では複数の言語機能の相互作用で可能になることも多いし、 STやCLの利点は言語と環境とライブラリが総合的にデザインされているところ。 君にはその利点を理解する能力が欠如している。それだけの話。 > IDE(エディタ+デバッガ)の機能だよねそれ? 静的型付け言語向けに作ってみたら制限だらけの劣化コピーになっちゃいました、という実例だよなー。
847 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:24:42.29 ID:WNJ7FWNN.net] >>829 >それで、エディタやデバッガの機能じゃなくて、動的言語どれにでもあてはまる >動的言語の特徴は何なの?というと結局答えは出てないし。 じゃあ、エディタやコンパイラや型推論の機能じゃなくて、 静的型付言語どれにでもあてはまる静的型付言語の特徴は何なの? FORTRANにもOcamlにもCにも当てはまる利点を挙げてみろよw
848 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:28:38.00 ID:WNJ7FWNN.net] 言語機能を個別に切り出して評価できると思ってる時点で 言語設計が何もわかってないってことだw
849 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:42:40.88 ID:WNJ7FWNN.net] 言語と環境とライブラリを統合することが間違いだという人達は もちろんemacsなんて使ってないよね? もちろんIDE(「統合」開発環境)なんて使わないよね? 記述対象の言語を想定したエディタ機能なんて使わないよね? シンタックスハイライトも構文チェックもフォーマッタも使わないよね? ソース上の識別子の型情報を見る機能なんて利用しないよね? cabalやgemのような対象言語に特化したパッケージ管理ツールなんて使わないよね? 仮想マシンのディスクイメージを構成するために言語ごとのランタイム環境を指定して 自動的にデプロイしたりしないよね? 言語と環境とライブラリを統合することが間違いなら、上記はどれも当然のことだよね?
850 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:44:48.24 ID:8sKUVUhj.net] >>833 > 静的型付言語どれにでもあてはまる静的型付言語の特徴は何なの? システム全体のモジュールの結合性、インターフェースの不一致を 実行前に検出することができる。
851 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:45:33.44 ID:WNJ7FWNN.net] >>836 Cで?
852 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:47:15.02 ID:8sKUVUhj.net] > 言語と環境とライブラリを統合することが間違いだという人達は > もちろんemacsなんて使ってないよね? emacs使ってないし、それは関係ない。 emacsはC言語で作られているが、それはそれとして emacsはOSとは統合されていない。IDEも一緒。 OSと言語は統合してはならない。 OSはSmalltalk以外の言語も動くものでなければならない。 そしてOSはいろんな言語で作られたアプリを相互に連携させて 動かす事ができないといけない
853 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:48:34.11 ID:8sKUVUhj.net] >>837 できるよw 言っておくけど、あんたが出来ない例を示したとしても、 全体的にできるならば「できる」とみなす。 どんなものでも例外はある。
854 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:51:56.55 ID:WNJ7FWNN.net] >>838 > OSと言語は統合してはならない。 まさか、Unixなんて使ってないよね?
855 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 04:54:39.35 ID:8sKUVUhj.net] >>840 UnixはOSと言語は統合されていない。
856 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 05:00:26.10 ID:8sKUVUhj.net] 例えば、プログラミングをする時のエディタは 好みのエディタを使えなければいけない。 言語専用のエディタを用意するのは構わないが、 その他のエディタ、例えばメモ帳であっても プログラミングできないといけない。 SmalltalkはSmalltalk専用の使い慣れていないエディタを 強要されてしまう。こういう密結合なシステムはよくない。 柔軟な変更に耐えられなくなる。 言語ではなくて、システム全体の柔軟性が欠けている言語
857 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 05:03:48.42 ID:WNJ7FWNN.net] Smalltalk環境上でもSmalltalk以外の言語を使えるし、 エディタもSmalltalk専用のエディタなんて使う必要ないし、 君、本当にSmalltalk使ったことあるの?
858 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 05:07:09.65 ID:8sKUVUhj.net] 当たり前だがソフトウェアの開発とバージョン管理システムは切り離せない。 そしてソフトウェアの開発は複数の人でやるものである。 つまりはgitを使う。マージを行う。 (内部的に)ソースコードの差分を出してパッチを当てるような形で 複数の人が書いた複数のコードを統合していく。 いつからバグが入ったのかかを調べるために、特定のコードに巻き戻して再実行したり 複数のブランチで複数のバージョンを平行して開発したり こういった当たり前の作業がSmalltalkでは非常にやりづらい。 言語ではなくて、システム全体の柔軟性が欠けている言語
859 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 05:09:49.64 ID:WNJ7FWNN.net] Unix環境上でシステムコールの呼出し規約を守れば色々な言語のコンパイラを使えるのと同じように、 Smalltalk環境上でも仮想マシンの仕様に則ったバイトコードを出力するコンパイラを書けばいいだけだし。 例えば tinlizzie.org/ometa/ とかあるし。 そういうこと知った上で 「Smalltalkは言語とOSが統合されてるからだめ」 「UnixはCと統合されていない」 とか言っちゃうのかなあ?
860 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 05:10:40.73 ID:WNJ7FWNN.net] もしかして、Smalltalkではgitを使えないと思い込んでる人?
861 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 05:17:53.48 ID:WNJ7FWNN.net] Smalltalkにも向かない応用というのは、確かにある。 例えば、Smalltalkはお客さん根性全開なプログラマーには向かない。 自分で解決する気はないが文句を言っておけば誰かが解決してくれると思っている人には向かない。
862 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:09:02.56 ID:tjw+19nB.net] WindowsやLinuxで動く他言語のプログラムをわざわざSmalltalk仮想環境上で動かすメリットって存在するか? >>845 のリストにある言語もどれだけマトモに動くか分からんし そんで例えば、他のいろんな言語と同じくソースはgitで管理します、CIツールにJenkins使います、アプリはDockerで動かします ってなったら、このスレで書かれてるSmalltalk固有のメリットって何一つ発揮できないと思うよ
863 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:29:47.14 ID:teguHjPL.net] あんまり言語仕様がいろいろ混じってると上手く行かない印象だけどね。 c や javascriptくらいスモールに作っておけばツールなんかは後から誰かが作ってくれる。
864 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:37:56.90 ID:WNJ7FWNN.net] >>848 どうしてこのスレで書かれてるSmalltalk固有のメリットって何一つ発揮できないと思うのかな? むしろDockerなどで遠隔サーバに自動デプロイした時のデバッグで Smalltalkのように問題発生時に自動的にスナップショットを保存して 実行状態を手元の開発機でほぼ完全に再現できる環境はとても便利なんだけど?
865 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:42:56.78 ID:WNJ7FWNN.net] このスレの静的厨の書き込みを読んでいると、 「生まれてこのかたウンコしか食ったことない人は 他人がどんなに旨い料理を出してきても 自分が気に入っている最高のウンコと見た目が違っているという理由で こんなものが旨いわけがないと思ってしまうのだろうな」 と思わざるをえないw
866 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:43:55.33 ID:WNJ7FWNN.net] 好きなだけウンコを食べて生きていけばよろしいw
867 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:45:55.52 ID:MpvL/SZu.net] 反対の意見を言うというアルゴリズムで動いているだけ。
868 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:46:14.25 ID:tjw+19nB.net] Dockerイメージだけから実行状態を再現できないってことは、アプリが稼働中に何か状態を持ってしまってるってこと? それじゃハードウェアやネットワーク障害が起きた時に別のノードに切り替えられないじゃん 使い方間違ってるよ
869 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:55:09.76 ID:MpvL/SZu.net] 頭悪いんだから無理しなくていいよ
870 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 09:59:04.88 ID:teguHjPL.net] 自分が使ってないツールは馬鹿だから使ってるとでも思ってるんだろう。 そういう傲慢さが見える。
871 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 12:16:47.06 ID:VijL79y/.net] >>850 > むしろDockerなどで遠隔サーバに自動デプロイした時のデバッグで だからDockerがあれば十分でしょw つーか、自動テストしてるんだよね。だから、同じ状態を作るのは簡単。 テストを再実行するだけでいい。 だいたいさ、デバッグっていうのはバグでおかしくなった "原因" を 取り除く行為であって、バグでおかしくなった "状態" を修復することじゃない。 バグが起きたあとの情報を保存しても意味ないんだよ。 具体例出す? バグで100を加える所に、200を加えてしまった。 数値がおかしい!と気づいた時には、もう手遅れでその状態を保存することに意味は無い。 異常な状態になる前を保存するならまだ意味はわかるけどさ。 異常状態になったら、その結果を破棄して、最初から同じことを繰り返す。 つまり自動テストな。これが必要なものであって、異常データの保存じゃないから。 Dockerもそう。Dockerは今の状態を保存するものではなくて、 Dockerfileという定義ファイルから、ゼロの状態から同じ実行環境を作り出すもの。
872 名前:デフォルトの名無しさん [2015/12/28(月) 12:35:09.10 ID:Tl4NM7En.net] つーか実際死んでるだしこれ以上死体叩きしても意味ないだろ ネクロマンサーもネクロマンサーでみんながそれに興味ないのにムカつくのは分かるけど、いくらその死体が高貴だからと言って死んでるのを認めずに生者の世界に持ち込むもんじゃない
873 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:30:49.05 ID:WNJ7FWNN.net] > つーか、自動テストしてるんだよね。だから、同じ状態を作るのは簡単。 > テストを再実行するだけでいい。 ああ、やっぱり問題をまるで理解していないw 同じ状態をつくるのは本当に簡単なのかな? 簡単って言ってるうちはド初心者だよw
874 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:35:19.93 ID:VijL79y/.net]
875 名前:ef="../test/read.cgi/tech/1450153388/859" target="_blank">>>859 理解してないのはお前だろ。 > 同じ状態をつくるのは本当に簡単なのかな? 同じ状態を作れないとテストにならん。 バグった状態のデータを持ってこられても意味ない。 同じ状態になる手順を再現できんとバグの修正なんぞできん。 それにそもそも異常な状態を保存した所で 意味は無いといったばかりだ。 > 簡単って言ってるうちはド初心者だよw またいつものやつだねw 「俺が正しい、なぜならば・・・その説明はしない!」 [] [ここ壊れてます]
876 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:35:24.50 ID:WNJ7FWNN.net] でも死体から派生してきたTraitsとか、スクリプトによる仮想イメージ構築とかは、 「わーい、最新技術だー」とか飛びつくんでしょ? くすくす
877 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 13:37:51.01 ID:VijL79y/.net] 話をすり替え始めたかw 自分で、Dockerを持ってきて、Dockerの話に 俺がついてこれるもんだから、 自分が持ってきた最新技術(笑)を叩き始めたな。
878 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/28(月) 13:44:54.53 ID:FI1ndW8l.net] そこのアスペ2人はコテつけてくんない?
879 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/28(月) 13:45:25.55 ID:KRgYgwWB.net] アスペ2人がレスバトルしてるのはスレの最初のほうから分かってるけど流れがわかりにくい
880 名前:デフォルトの名無しさん [2015/12/28(月) 13:56:26.18 ID:Ieq5nvcS.net] >>861 そりゃそうだろ。それが本当に最新技術なのかはさておき偉大なる歴史上の死人から得るものは使うだろ ただ、まるでその人がまだ現役であるかのように語るから話がこじれるわけで
881 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 14:01:17.54 ID:gtimbSrX.net] >>845 >Unix環境上でシステムコールの呼出し規約を守れば色々な言語のコンパイラを使えるのと同じように、 >Smalltalk環境上でも仮想マシンの仕様に則ったバイトコードを出力するコンパイラを書けばいいだけだし。 ふーん。そーなんだー。 で、出てきた例がこれ >例えば tinlizzie.org/ometa/ とかあるし。 ショボすぎるw Unixでどれだけの言語が動くと思ってんだ 絵に描いた餅で対抗しようとすんな 誰も使ってないSmalltalk環境でSmalltalkの為だけの仮想イメージを作れても意味ないんだよ 色んな言語の色んなアプリが動くLinuxで作れることに価値がある
882 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 14:22:51.43 ID:WNJ7FWNN.net] >>860 > 同じ状態を作れないとテストにならん。 で、サーバ内のプログラムの実行コンテキストがどういう状態だったかをどうやって知るのかな? どういう状態だったかがわかったとしてもそれを実行コンテキスト上に再現するのは簡単じゃないけどなw それにしても「同じ状態をつくる」なんて簡単に言っちゃうなんて、 君はプログラミングを習いはじめて3秒目ぐらいの初心者かい? 初心者としてもバカすぎてお話にならないw
883 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 14:27:53.96 ID:WNJ7FWNN.net] >>866 君の言う通りだよ。Smalltalkはもう死んだということで結構だよ。 だから君は消費者としてMSやAppleの開発環境でモンスタークレーマーになっていなさい。 君はただ上を向いて口をポカーンと開けて、処理系開発者様がスプーンで食べ物を与えてくれるのを ブーブーと文句を言いながら待ち続けていなさい。 間違ってもプログラマーなんて名乗らないように。
884 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 14:35:23.75 ID:i875NmCw.net] Smalltalkの人がいくら遅延結合がどうとか生態系がどうとか言っても 世間で使われてないということは現実に合っていないということ、これが全て Smalltalkの人は現実の生態系の話を持ちだしてアレコレ言うが、それはマヤカシで そんなに現実に有っているならもっと使われているはずということ つまりは生態系云々の話はプロセスとかサービスとかサーバーとか そういう大きな粒度で扱う物事であってオブジェクトのような小さな粒度に持ち込んでも 現実に合っていない、人間社会の仕事の流れにマッチしていない、だから使われない 極端な話、1+1のようなプリミティブな計算に生態系のような壮大な理屈は必要ない ということは、バカにでも分かる 何度も言うが現実に合っていないから使われていないのだ これはまさに一般的なサラリーマンの家庭に4トントラックを売り込んで居るようなもので 生活スタイルにマッチしていないから売れないし、そんなことは当たり前でバカにでも分かる マッチしていれば売れるし、マッチしていなければ売れない 大きさとか、粒度とか、そういう問題は何にでも存在していて、ラジコンを拡大しても乗用車にはならない ラジコンにはラジコンのやり方、乗用車には乗用車のやり方がある そんなバカにでも分かる簡単なんことが分からないのが、このスレで暴れているSmalltalker こんな調子だから世間でSmalltalkは使われてないし 使われていないのは現実にマッチしていないから、ということすらわからない 現実世界の生態系を模範したつもりが、粒度やスケールを間違っていてアンマッチになった悲しい言語
885 名前:デフォルトの名無しさん [2015/12/28(月) 15:00:43.88 ID:kIejf3VS.net] >>868 便利を求める奴はプログラマーじゃないということ?
886 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:06:42.69 ID:VijL79y/.net] >>867 > で、サーバ内のプログラムの実行コンテキストがどういう状態だったかをどうやって知るのかな? > どういう状態だったかがわかったとしてもそれを実行コンテキスト上に再現するのは簡単じゃないけどなw だから実行された後の状態を保存したって、何の意味もないだろ。 おかしくなったデータを再現したって、それでどうするんだよ。 ログって知ってるか?ログって。デバッグするためには、 実行結果じゃなくて、実行の仮定が記録されてないと意味ないんだよ。 だいたい、いつどうやってデータ保存するんだ?おかしくなったデータを 保存しているサーバーに入って、実行プロセスを停止してデバッグでも始めるのか? 俺なら普通にデータベースのデータ見るわw
887 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:10:28.69 ID:VijL79y/.net] >>867 > それにしても「同じ状態をつくる」なんて簡単に言っちゃうなんて、 同じ状態を作るのが簡単なんて言った覚え無いけど?w お前はすぐに思い込む、俺が言ったことにするよな? 俺が言ってるのは、同じ状態を作っても、それでデバッグするのは難しいってこと。 状態をすべてのリアルタイム記録し続けてるわけじゃないだろ。 バグを実行して、おかしくなったデータの状態を取るのが精一杯だろ。 (ログは状態の一部とはいえ、記録し続けてるからデバッグの役に立つ) それと同じ状態を作るのが難しかろうが、それをやってバグになる手順を再現できないとダメ 難しいから何? 難しいのをやるのがプロってもんだ。
888 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:17:13.08 ID:pElGsOOM.net] >>805 >論よりコードで、とりあえずSmalltalkの>>680 をObj-Cでやるとどんな感じ? Objective-Cはsmalltalk式のクラス取り回しができるCだから NSObjectのxを宣言してメソッドも値もない空のオブジェクト作って〜から >>666 の「そのままデバッガで〜」辺りまでは書き方違うだけでいっしょかなぁ。 動的にシステムデバッガ?でやらないで段階ごとにコンパイルしながらだけど。 むしろそのあたりまでは>>666 のなにが他の言語だとできないのかがピンとこない。 例外が〜あたりはメソッドだけ書いてreturn @"quuuex"とかしとけばいいのかしら… 「xをXに〜」あたりはデバッガでクラス名を一括で変えてるってこと? 永続化はたぶんcoredataフレームワークあたりだろうけどiOSアプリ程度だと システムのwillterminateメッセージに対応して最終情報をセーブぐらいで済んでるから あんまり使ってる人見ないなぁ… coredata自体はレジュームとかiOSの背後に回ったアプリのフリーズドライ (休眠アプリを圧縮してテンポラリ退避してメモリ空ける)でOSには大規模に使われてるけど。
889 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:26:59.27 ID:VijL79y/.net] Smalltalkはデータを保存できるというけれど、 それはSmalltalkプロセスのメモリ内だけの話。 データはデータベースに保存する。 RDBMSだったりNoSQLだったりAmazonのs3だったり。 Smalltalk内だけプロセスの状態を保存できても意味は殆ど無い。
890 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:32:46.87 ID:MpvL/SZu.net] 長くて中身スカスカのコード書いてるとこうなる。
891 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:40:15.68 ID:2PxLG9dT.net] >>872 > 同じ状態を作るのが簡単なんて言った覚え無いけど?w > お前はすぐに思い込む、俺が言ったことにするよな? ウ ソ つ き m9( ̄ー ̄) >>857 >>>850 >> むしろDockerなどで遠隔サーバに自動デプロイした時のデバッグで > >だからDockerがあれば十分でしょw > >つーか、自動テストしてるんだよね。だから、同じ状態を作るのは簡単。 >テストを再実行するだけでいい。
892 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:41:16.89 ID:on1WoP30.net] > 極端な話、1+1のようなプリミティブな計算に生態系のような壮大な理屈は必要ない > ということは、バカにでも分かる バカだからこそ、そう「分かる」のだよ
893 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 15:48:25.44 ID:VijL79y/.net] >>876 おや?w 「自動テストしてるから」って文字が見えない? 自動テストしてるから同じ状態を作るのが簡単って言ったんだよ? あんた、自動テストしてるのに、同じ状態作れないの? そして自動テストをしていなければ、同じ状態を作るのは大変だよ? テストコードを書いてテストデータを用意しなければいけない。 でもそれは、プロなら当たり前にやることなんだよね。
894 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:07:25.43 ID:5gREh2gG.net] >>873 いろいろ説明してもらっているのをむげにするようで申し訳ないのですが、どうも齟齬があるようなのと、 それを含め「論」より「コード」の方がはっきりするので、Objective-C の動作するコードを示してもらえますか? もしおっしゃるとおり Objective-C が Smalltalk と同じようなことを単に書き方が違うだけで書けるのなら、 たかだか 2〜30行程度だと思うので、ぜひ、お願いします。デバッガでの作業と永続化は無視して残りの > なにが他の言語だとできないのかがピンとこない という部分をベタに main に書いてもらってかまいません。忠実でなくとも、インスタンス特異的なメソッドおよび プロパティの動的追加、そのインスタンスに特異的なクラスに名前をつけて参照できるようにする手続きを 新たに書き下ろしもらうのでもかまいません。よろしくお願いします。
895 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:09:29.00 ID:ylUAFX7e.net] プロ降臨ですかwww 動的言語の話題になってからはずっと傍観してたが、もう業界全体が狂ってるな!
896 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:12:08.36 ID:VijL79y/.net] >>878 > という部分をベタに main に書いてもらってかまいません。忠実でなくとも、インスタンス特異的なメソッドおよび > プロパティの動的追加、そのインスタンスに特異的なクラスに名前をつけて参照できるようにする手続きを > 新たに書き下ろしもらうのでもかまいません。よろしくお願いします。 もちろん、静的言語だからソースコードを 修正して対応するのも全然OKですよね!
897 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:16:22.55 ID:VijL79y/.net] そういやPythonで特異メソッドできたっけと思って検索したら doloopwhile.hatenablog.com/entry/20090705/1275175768 > しかし「Pythonで特異メソッドはこう書く!」といった記事はそれなりに見かけますが、 > > 「Pythonで特異メソッドを使えばこんなにハッピーですよ!」という記事は見たことがありません(僕は)。 > > 新しいメソッドが必要なら、クラスを継承して新しいクラスを作ればいいだけなので、特異メソッドはさほど重要ではないのかもしれません。 ワロタw 全くもってそのとおりなんだよなw
898 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:29:19.49 ID:MpvL/SZu.net] そんなつまらないことで笑えるなんて人生幸せだな。
899 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:33:18.43 ID:5gREh2gG.net] >>878 横ですが、 自動テストで再現できる程度のバグなら、Smalltalkでもいちいちイメージを保存する必要はないと思います。 自動テストでは出てきにくい、めったに出会えないバグに出くわすことってありますよね。 あまり適切な例を思いつきませんが、たとえば100時間動かさないと出ないバグとか。 そういうのを捕まえて潰すときに実効コンテキストがオブジェクトでその永続化もデフォになっていると助かるんです。
900 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:39:23.46 ID:f/yDa8Ky.net] MOO(目を覆いたくなるような汚物)
901 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:40:26.91 ID:5gREh2gG.net] >>881 いえ、この方は Objective-C のランタイムの柔軟性に言及しておられるので、 当方としては、それがどの程度のものかに大変興味があり、できれば main に過程を順次記述していただきたいところです。 C# にはこのような動作はいっさい必要ないことを表明していただけているので、お手を煩わせる必要はなさそうです。 ありがとうございます。
902 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:41:37.60 ID:MpvL/SZu.net] 話す相手がいなくて寂しいのかな。
903 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 16:46:15.15 ID:pElGsOOM.net] >>879 「えっ?スマホからコードを!?」 だいたいそんな感じ。 昨日もテキストエディット開いたけどめんどくさくなって寝た。 https://developer.apple.com/jp/documentation/ObjC.pdf
904 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 17:09:04.61 ID:VijL79y/.net] >>884 > あまり適切な例を思いつきませんが、たとえば100時間動かさないと出ないバグとか。 100時間待たないとテストできない事自体が良くないだろ? 待たずにできるような設計にするんだよ。
905 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 18:04:56.19 ID:2PxLG9dT.net] >>889 待たずにできるような設計をしたらメモリリークは絶対に発生しないのか? いいかげん自分のみっともなさに気付け
906 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 19:23:32.98 ID:ekUA2Lsj.net] メモリリークならスナップショットよりgcログの方が100倍役立つよ 何時頃からヒープ使用量が増えてるのか、gc発生頻度はどのくらいか等の時系列データによって どれだけの事が分かるか 逆に落ちた時のスナップショットだけあっても仕方無かろうが それに、今時サーバ機なら256GBとかメモリ乗ってんだけど、 それがメモリリークで落ちた時の仮想イメージを 開発機で動かしてステップ実行すんの? ステップ実行したいからサーバ機と同じメモリを開発機に下さい、って?w
907 名前:デフォルトの名無しさん mailto:sage [2015/12/28(月) 21:42:04.14 ID:VijL79y/.net] >>890 メモリリークの話なんて全くしてないんだけどw 一体どこから出てきたのやら。
908 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 06:19:00.32 ID:SDUTcqS5.net] >>892 の
909 名前:モ訳 「ぼくはウソつきな上に馬鹿です」 [] [ここ壊れてます]
910 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 07:07:46.23 ID:pIdKf0tH.net] その証拠にメモリリークがどこから来たのか説明してみせます! 説明できなかったら、逃げたと思ってください!
911 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 07:30:34.54 ID:5QScXVkF.net] わからないのかw
912 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 07:52:05.41 ID:S7hPg+te.net] 基本ですよね。 「あーだこーだそーだ!」 つまりどういうこと? 「わからないのか?w」
913 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 08:23:56.16 ID:/0pFLROb.net] 後で面倒なことになったら人のせいにできる素晴らしい戦略ですね
914 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:25:20.46 ID:w25+nhsP.net] わからない人もいるっていう諦めみたいなものも重要
915 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 10:42:36.95 ID:S7hPg+te.net] メモリリークで検索すれば、誰が話を始めたのかなんて 一目瞭然だろw 最初に話を始めたのは>>890 だな。 892 自分:デフォルトの名無しさん[sage] 投稿日:2015/12/28(月) 21:42:04.14 ID:VijL79y/ [11/11] >>890 メモリリークの話なんて全くしてないんだけどw まったくもってその通りだなw
916 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 11:02:19.92 ID:pO0KAO0+.net] >>891 メモリリークの原因を探すためにはスナップショットのほうが数段便利だ。 実行中のサーバを止めることなくスナップショットだけ取って手元で復元すれば どのオブジェクトがメモリを占有していて、 そのオブジェクトへの参照が残っているオブジェクトを簡単に見つけることができる。 ちなみに開発機ではメモリが足りないということは、 よほど貧弱な開発機でなければまず起こらない。
917 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 11:14:37.65 ID:a4Pra08x.net] 最初からメモリリークしない言語使えば? Swiftとか
918 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 11:19:51.72 ID:cKcX4pC+.net] ウチのサーバはメモリ2テラあるけど
919 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 12:09:09.23 ID:Tk7GRC+0.net] 普通1プロセスがそこまでメモリ食わないように何らかの処置はするだろ。 linux なら ulimit 使うなりしてさ。
920 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 12:47:18.60 ID:QDDW5ibj.net] Smalltalkおじさんは仮想イメージをダンプする前にプロセス殺されてオロオロしてそうなイメージ
921 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 13:24:54.68 ID:S7hPg+te.net] >>900 > そのオブジェクトへの参照が残っているオブジェクトを簡単に見つけることができる。 どうやって? 別にスナップショット云々は、これ関係ないのよ。 だってスナップショットとらなくても、 該当マシンでやればいいだけなんだから。
922 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 13:29:28.22 ID:S7hPg+te.net] ちなみにJavaだとこんな感じみたいやな https://software.fujitsu.com/jp/manual/manualfiles/m140003/b1ws1040/04z200/b1040-a-06-05.html C#だとこんな感じか? troushoo.blog.fc2.com/blog-entry-131.html
923 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 16:47:31.74 ID:pO0KAO0+.net] どっちのツールもSmalltalkの機能限定劣化コピーだなw
924 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 17:35:11.54 ID:uPOyITuG.net] どうせSmalltalkでfizzbuzzとかクイックソートとか素数判定とか竹内関数とかの トイプログラムしか書いてないんだろうから 無理に業務っぽい話に付き合わなくて良いのに
925 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 18:04:16.69 ID:S7hPg+te.net] >>907 またでたよw 何も言わないくせに、Smalltalkの方が優れてるっていうやつw 何が優れてるの?ッて聞いたら、 自分で調べろ(逆ギレ)なんでしょう?w
926 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 20:13:59.08 ID:5QScXVkF.net] >>905 ProtoObject>>pointersTo でそのオブジェクトへの全ての参照が得られる。 もちろんエスケープしたクロージャにキャプチャされたスタックフレームからの参照も含めて。
927 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 20:16:44.20 ID:5QScXVkF.net] >>909 あなたのようなキチガイがいつまでも相手にされると思わないほうがいいよ。
928 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 20:48:51.46 ID:uPOyITuG.net] Facebookはコードを解析してバグを発見する静的コード解析ツール「Infer」をオープンソースで公開しました。 Inferが対応するコードはAndroidのJavaとiOSのObjective-C、およびC。現時点ではAndroidとJavaではNullPointerExceptionおよびリソースのリーク。iOSとCコードではメモリーリークを発見してくれます。 www.publickey1.jp/m/blog/15/facebook_infer.html
929 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 20:55:27.15 ID:a4Pra08x.net] Swiftでは理論的にnullバグやメモリリークが起きないので解析ツールも不要
930 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 21:04:09.67 ID:QDDW5ibj.net] >>910 わざわざ馬鹿でかいメモリ確保したプロセス実行しないと調べられないなら Javaのヒープダンプ以下じゃんバカじゃね
931 名前:デフォルトの名無しさん [2015/12/29(火) 21:04:49.17 ID:+ubDtqOv.net] >>913 あれ?SwiftのGCって素朴参照カウンタ方式なので循環参照を解放できないんじゃなかった?
932 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 21:16:32.89 ID:a4Pra08x.net] >>915 循環参照はそうプログラマが実装したからであってメモリリークではない
933 名前:デフォルトの名無しさん mailto:sage [2015/12/29(火) 21:24:11.66 ID:3lUD69g2.net] >>915 そのおじさんは「マカー!w出てこい!!www」ってそれっぽいワードを連呼してシャドーしてるだけだから…
934 名前:デフォルトの名無しさん [2015/12/29(火) 21:24:13.02 ID:+ubDtqOv.net] >>916 循環参照の解消を失敗したらメモリ解放されないってことになるじゃん? それってメモリリーク起きるってことだと思うの
935 名前:デフォルトの名無しさん [2015/12/29(火) 21:26:18.34 ID:+ubDtqOv.net] >>917 シャドーボクサーなのか、じゃあしょうがない。
936 名前:デフォルトの名無しさん [2015/12/29(火) 21:53:55.37 ID:TkQKXDX9.net] >>918 それはプログラマの意図通りの動作だから問題ない。 やはりMacは最強やで。
937 名前:デフォルトの名無しさん [2015/12/29(火) 22:06:59.32 ID:+ubDtqOv.net] >>920 さようか、ならば拙者の出番はござらんな 食パンをかじるとしようか
938 名前:デフォルトの名無しさん [2015/12/30(水) 00:22:58.02 ID:wAoiK+Ar.net] >>911 キチガイ
939 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 00:42:06.75 ID:vy2SBag0.net] どや?メモリリークは動的言語じゃないと検出できないやろが?
940 名前:uy ◆Qawu9.2l1E mailto:sage [2015/12/30(水) 00:52:45.09 ID:LyNr/J1x.net] 年末までイライラしてる奴みると、やはりプログラマってカスだなって
941 名前:デフォルトの名無しさん [2015/12/30(水) 03:13:52.72 ID:gralCRA1.net] 912-924 を読むと静的言語使う奴は頭悪いんだなってわかるから晒しageておこう
942 名前:デフォルトの名無しさん [2015/12/30(水) 03:21:56.86 ID:uNQALYUc.net] >>925 なんか悔しそうだなw 俺も晒し上げておこう
943 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 09:54:14.97 ID:CpjDneg5.net] オブジェクト指向vs関数型でも 動的vs静的でもなくなって アラン・ケイかぶれのSmalltalkerを弄るスレになってる
944 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 10:27:37.76 ID:pdPeyHKo.net] ドヤー言いたいだけの糞スレ
945 名前:デフォルトの名無しさん mailto:sage [2015/12/30(水) 11:34:54.78 ID:CpjDneg5.net] RESTful APIこそが分散・動的遅延結合・関数型を全て満たす技術なんだよね apiは好きな言語で書いたら良いよ
946 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 17:45:37.66 ID:Sddj+QCE.net] さすがに裸でちんこブラブラさせながら 「これは釣りだ!これは釣りだ!!」って子 相手にするのみんな飽きたっぽい。
947 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 19:49:47.40 ID:xdIQXsvm.net] プログラマの最大の問題点は技術貧乏性に陥ってしまうこと。 せっかく覚えた技術だからってなってしまう。
948 名前:デフォルトの名無しさん mailto:sage [2015/12/31(木) 20:49:23.71 ID:CMQb/rzM.net] 作りたいものが無いと特にそうなりがちだね
949 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 11:18:10.89 ID:5V2XLG/V.net] 最大の問題は力量が見えないことだと思う 相手の力量も自分の力量も見えてはいない ただし、自分が通ってきた道にまだ居るやつのことはなんとなくわかる
950 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 13:06:36.54 ID:jvRJIema.net] せっかくだから板のオブジェクト指向スレ全部消費してくれんかね
951 名前:uy ◆Qawu9.2l1E mailto:sage [2016/01/01(金) 19:58:04.75 ID:xHNmPQBx.net] 老害PGは新たに技術覚える事よりも 覚えてる知識を使って何か作る事に重点置き始めるから もうついてこれてないよ 本人のほうは何故か「過去に自分が通った道にまだいるのか・・・」みたいな事思ってる
952 名前:デフォルトの名無しさん mailto:sage [2016/01/01(金) 21:31:11.46 ID:aa4Vn7fE.net] >>935 キミは周回遅れを自覚しよう
953 名前:uy ◆Qawu9.2l1E mailto:sage [2016/01/02(土) 04:14:26.00 ID:o7gA3Ogh.net] 「時代によって高めるべきスキル」は違うのだから、もうそっちには誰もいかないよ しかし、老害PGは「なんでこの初心者たちはいつまでも自分のレベルに追いついてこないんだ?」と、思ってる まぁITに限らず老人でそういう病気発症してる奴って割と多いから みんな分かって放置してると思う 良いです? 今の時代は他人の作ったツールのインストールと設定をするスキルが重要だから オブジェクト指向の細かいところなんて余暇でやっとけば良い事なのに それの細かい部分を覚えている事に価値を見出してるアホは多い 大学で一時期ブームになってたJAVA世代かな?って思う 自分が学生時代に教わった事が、もはや大部分無意味になりかけてるなんて、思いたくはないだろうけど真実 オブジェクト指向がゴミになったという事ではなく、 ○○指向とか、一々意識しなくてもアプリが完成する時代 アルゴリズムの内部実装を見ないで最上位をコーディングするように ○○指向という部分を見ない、さらに最上位(設定ファイル記入とマウスポチポチ)で、完成してしまう ゆえに「オブジェクト指向」よりも上位のレイヤー。設定ファイルマウスポチポチ指向が出来た今、 今まで最上位だったものがひとつ下になり、そこの知識の詳細を いくら老害PGが重要だと叫ぼうと、それはかつてのアセンブラ/C言語のエキスパートの断末魔のような叫びでしかない まとめると、 オブジェクト指向とかもうどうでも良い
954 名前:デフォルトの名無しさん [2016/01/02(土) 05:15:23.75 ID:6gE2bY5L.net] 3周遅れかよw
955 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 09:14:36.51 ID:Dnf2flaM.net] >>937 プロが仕事で扱う技術に興味ないし、2chで話題にすることじゃないから出ていってほしいな
956 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 10:13:19.29 ID:By+Z3RvH.net] 設定ファイルを書くだけで完成するラッパーが開発される => 設定ファイルで設定可能な項目がドンドン細かく詳細になる => 設定ファイルの記述言語がついにチューリング完全になる => 普通の開発と変わらなくなる いままでの歴史はこれの繰り返し
957 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 11:16:24.48 ID:yVCWJ6yH.net] >>940 > いままでの歴史はこれの繰り返し 例えば?
958 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 12:12:13.20 ID:uD+WV8wT.net] シューティングゲームで設定ファイルを読み込むんじゃなくてスクリプトを読み込ますようにした話は聞いたことある。
959 名前:デフォルトの名無しさん [2016/01/02(土) 12:14:26.09 ID:bBqG9oIx.net] 普通ゲームはスクリプトでレベルデザインするだろ
960 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 12:22:58.34 ID:uD+WV8wT.net] >>943 例えば?
961 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 12:34:30.17 ID:s06XmGKr.net] 歴史から学んでる人達は最初から設定ファイルをスクリプトで書けるようにしてる luaやpythonがよく使われる
962 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 12:39:42.04 ID:wx4DxJpH.net] 歴史から学ぶまでもなく、そんなのはちょっと考えれば分かることで、 Smalltalk環境の設定は70年代からSmalltalkで書かれてるけどな。
963 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 12:39:57.90 ID:VM0jeeLd.net] Apacheの設定ファイルはなんであんなにクソなんだろう 久しぶりに触ったら超クソだった、ぐぐっても古い情報ばっかだし やっぱりVagrantで貰ってくるのがええな
964 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 12:58:28.15 ID:s06XmGKr.net] >>946 設定ファイルを書くスクリプトの選択に失敗すると アプリ自体が使われなくなるって事を Smalltalker以外は歴史から学んだよ
965 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 14:25:54.16 ID:wq9oS32E.net] >>948 Pythonの創始者はSmalltalkから学んだらしいよ。 学んでいないのはあなたのほうだね。 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"
966 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 14:42:01.72 ID:s06XmGKr.net] bytecodeは参考にしても構文なんかは似せなかった Smalltalkの構文が一般受けしないのは歴史的に明らかだったから
967 名前:デフォルトの名無しさん [2016/01/02(土) 14:50:11.87 ID:EIjeZ5je.net] キレッキレの>>948 に対して>>949 はあまりにもお粗末 毎回ソース貼るのは偉いけどなんか論点ズレてるんだよな
968 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 14:50:12.97 ID:wq9oS32E.net] まさかObj-Cがあんなに使われることになるなんて思わなかったわけだ. 本当に何も学んでいないねw
969 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 14:59:24.77 ID:rRDwNu+s.net] iOS開発で他の選択肢を選ばせなかったObj-Cを持ち出すとか無いわー ただのAppleのゴリ押しやん
970 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 15:07:13.82 ID:6gE2bY5L.net] Objective-CはAppleのゴリ押しだから除外とか言ってたら Cが普及したのもUnixのゴリ押しだし 登場時にはCとの互換性を売りにしたC++も同罪だし MLもMilnerの型理論によるゴリ押しだし その派生言語であるOCamlも同罪だし きりがないだろ。 正直、バッカじゃねーのとしか言いようがない。 正月から馬鹿晒しておめでとう。
971 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 15:14:52.72 ID:JOPuE3fj.net] c みたいなメモリだけ意識したアセンブラ風言語は c が登場しなくても 出てきたんじゃないかと思わせる必然性がある。 まあシンタックスは変わってたかもしれんが。
972 名前:デフォルトの名無しさん [2016/01/02(土) 15:25:30.97 ID:TGliTIeD.net] 言語がどうたらチャラチャラしてる奴が、数匹いるな。 仕様もない糞蠅どもだ
973 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 15:28:09.21 ID:gWTZIavc.net] >>955 実際Bとかそうだろ
974 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 15:36:15.19 ID:F8jCIFTt.net] >まあシンタックスは変わってたかもしれんが。 今はまさにそのシンタックスの話だな
975 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 15:37:27.22 ID:F8jCIFTt.net] > まあシンタックスは変わってたかもしれんが。 今はまさにそのシンタックスの話だな
976 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 16:33:04.71 ID:oYZFkiTO.net] Swiftが出たら速攻でランク下がりまくって トップ10圏内から大幅に落ちた上にSwiftにも抜かれた Objective-Cがどうしたの? www.tiobe.com/index.php/content/paperinfo/tpci/index.html
977 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 16:53:54.23 ID:wq9oS32E.net] 幼稚w
978 名前:デフォルトの名無しさん mailto:sage [2016/01/02(土) 17:16:09.12 ID:Dz9NJ2ny.net] 動的遅延結合性厨としては [ ] のなかでメッセージ式が書けるってだけで Objective-C を Smalltalk と絡めて語ら(騙ら)ないで欲しい
979 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 00:07:21.72 ID:qiKwbZ3e.net] >>960 アセンブラwww
980 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 02:31:26.65 ID:mP6eBLwc.net] >>960 いちおーゆーとくとObjective-Cのランク低下は昨秋ランキングアルゴリズム変えて オンラインリファレンスへのアクセスを計算から外したからなので。 ネットで話題の言語という意味では原点回帰ではあるけれど オフィシャル系を計算から外したら 逆にそれはネットのどこで何を話題にしてる人々を計算してるんだろう? という気もせんでもない。
981 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 02:49:42.24 ID:zEXG4Enn.net] CORBAとか憎しみしか湧かないんでJavaオワコンになって欲しい
982 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 02:51:53.93 ID:IPqSvD5Q.net] >>964 www.tiobe.com/index.php/content/paperinfo/tpci/Objective_C.html アルゴリズム変更で一気に減ったというより、 徐々に減ってるようにしか見えないけど
983 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 09:49:24.29 ID:jofq69+t.net] いくら現実から目を背けても、Swiftの発表後にObj-Cのランクが急下降してるのは グラフ見れば一目瞭然 しょせんAppleのゴリ押しで使われてた言語だから、ハシゴ外されたらそりゃ逃げ出すわな Cは相変わらず人気だから、要するにSmalltalk由来のキモいメッセージ式に 皆がNoを突きつけてるんだね
984 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 10:16:30.86 ID:43bxFPSU.net] オブジェクト指向のスレってどれも途中でsmalltalkの人が出てきて言語スレになっちゃうよね
985 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 10:36:43.03 ID:lX/fUZIn.net] 日本人は抽象的に物事を捉えるのが苦手ですぐに実例を持ち出したがるからな。
986 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 10:59:34.96 ID:AcAiI181.net] Objective-CてObjectPascalジャン CをPascalの焼きまはし
987 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 18:55:56.78 ID:xRSYAQBp.net] >>969 逆に良い具体例を思いつく能力がなくて抽象論で済まそうとする奴のが多いと思うが。
988 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 19:35:49.76 ID:SliObw4t.net] 実例を敢えて隠したまま抽象論で煙にまくパターンもあるよね 大人ってずるいよね
989 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 20:54:23.23 ID:RgnbI7tp.net] 日本人は〜 現実は〜 Smalltalkerは〜
990 名前:デフォルトの名無しさん [2016/01/03(日) 21:53:42.64 ID:72y0mus1.net] ミス 日本人は〜 現実は〜 smalltalkこそ〜
991 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 22:20:33.26 ID:RgnbI7tp.net] ?
992 名前:デフォルトの名無しさん mailto:sage [2016/01/03(日) 23:43:02.17 ID:mP6eBLwc.net] なりすますよねw
993 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 17:16:32.24 ID:3ZgV6wyG.net] 結局1スレまるまる消費してSmalltalkのゴミっぷりを確認しただけか...
994 名前:デフォルトの名無しさん [2016/01/04(月) 17:18:16.68 ID:2J2/85DZ.net] Smalltalkのゴミっぷりなんて確認するまでもなく、今回我々が確認したことはSmalltalkに固執するよくわからない人種の生態である
995 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 17:26:48.98 ID:5zLqhTS3.net] オブジェクト施工より関数施工の方が強度がいいん?
996 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:00:32.11 ID:RY1Mzif4.net] そろそろ次スレのタイトル考えようか。
997 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:09:04.30 ID:gy+jtI5Z.net] 「1+1まで動的遅延結合にするのは愚かな考え。1+1は計算式」かな
998 名前:uy ◆Qawu9.2l1E mailto:sage [2016/01/04(月) 18:15:40.14 ID:zTvWipKl.net] Smalltalk・Haskell・Prologあたりは変な奴が多いから即NG推奨
999 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:49:11.00 ID:eUmPlviF.net] 1+1はコンパイラが最適化して定数2にするのでは?
1000 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 18:54:33.40 ID:CWcw2pew.net] いいからocaml使ってみろよ
1001 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 19:17:55.99 ID:WGHaUWWr.net] >>982 それにuyってコテハンも追加しておくと吉
1002 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 19:18:26.04 ID:RY1Mzif4.net] なんか最近Cが気になりだしてきたvoid *型があれば何でもできる気がしてきた。
1003 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 19:32:16.26 ID:WGHaUWWr.net] >>981 「1+1」よりは「3+4」だな。初期のSmalltalk-72で最初に評価された式らしいので。
1004 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 19:43:44.60 ID:RY1Mzif4.net] ラムダ計算ではgotoを使ったプログラムは絶対に掛けないからな。 gotoとvoid *を使えばどんなプログラム言語でも書けない様なプログラムが掛ける、assemblerはつかいたくないけれどC使いたければ。
1005 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 19:46:16.51 ID:u97FRQbx.net] >>986 そのとおりだ 抽象的/総称的に void * を使えるようになったらしめたもの 標準ライブラリにある qsort() を実装してみるといいだろう
1006 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 20:43:11.15 ID:bvuJFWqO.net] >>988 >gotoとvoid *を使えばどんなプログラム言語でも書けない様なプログラムが 聞き捨てならんな。w たとえばどんな?
1007 名前:デフォルトの名無しさん mailto:sage [2016/01/04(月) 21:00:40.38 ID:RY1Mzif4.net] 掛けない様なとはいってるけれど書けないとはいってないだろ。
1008 名前:uy ◆Qawu9.2l1E [2016/01/04(月) 21:31:38.10 ID:M6WjdqoS.net] 即逃げワロタ
1009 名前:デフォルトの名無しさん mailto:sage [2016/01/05(火) 02:11:54.24 ID:hJUQcrkl.net] 次スレ オブジェクト指向は愚かな考え。この世は計算式 ★3 peace.2ch.net/test/read.cgi/tech/1451927425/
1010 名前:デフォルトの名無しさん [2016/01/06(水) 11:55:28.58 ID:nQqbz+/u.net] >>993 乙
1011 名前:uy ◆Qawu9.2l1E mailto:sage [2016/01/07(木) 03:27:34.74 ID:VBUUQOGk.net] ts
1012 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 12:06:35.18 ID:6ZkPklY8.net] 仮想関数テーブルが別管理で クラスのインスタンス全体をmemset 0相当できる言語ってある?
1013 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 20:59:56.11 ID:90bWN72u.net] それは俺も考えたことあるな 結局多態は、ポインタか参照使って呼び出す場合しか意味ないんだから オブジェクトがvtalbeを持つのではなくて ポインタや参照に入っているオブジェクトの該当vtableを一緒に保持させれば良いんじゃないかってね そうすればCの構造体のように本来vtableを持たないものにメソッドを追加したり多態させたりもできる
1014 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 21:00:47.85 ID:90bWN72u.net] イメージとしてはこんな感じ struct ptr_t {
1015 名前:デフォルトの名無しさん mailto:sage [2016/01/07(木) 21:02:38.75 ID:90bWN72u.net] イメージとしてはこんな感じ struct ptr_t { void *object; void *v_table; };
1016 名前:デフォルトの名無しさん mailto:sage [2016/01/08(金) 13:12:26.75 ID:QFsBcVlK.net] 一千。
1017 名前:1001 [Over 1000 Thread.net] このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。
1018 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています