オブジェクト指向は愚かな考え。この世は計算式 ★2at TECH
オブジェクト指向は愚かな考え。この世は計算式 ★2 - 暇つぶし2ch211:デフォルトの名無しさん
15/12/19 01:36:22.40 P/E9W26M.net
>>204
どうやんの?

212:デフォルトの名無しさん
15/12/19 01:47:54.86 +ddvqKbr.net
>>208
出来ないコード出してみ
>>209
jedi-vim

213:デフォルトの名無しさん
15/12/19 02:13:01.48 APSLa6hA.net
>>210
Java
void func(String str) {
  str. ← 補完できる
}
Python
def func(str):
  str. ←補完できない

214:デフォルトの名無しさん
15/12/19 02:38:39.06 wzwqX1ml.net
>>211
それは無理だけど、動的型は関係なかったね
静的型でも型推論に必要な情報ないからね
def func(str: str) なら出来るよ

215:デフォルトの名無しさん
15/12/19 02:42:51.49 VdM6quSm.net
それはwww

216:デフォルトの名無しさん
15/12/19 02:45:46.18 APSLa6hA.net
>>212
型推論っていうのは、型が断定できるときに記述を省略できる
"追加機能" であって、型推論を持ち出す意味が無いんだが。
で、動的型むりでしょ?w
静的型はできるでしょw
ほら、言ったとおり。

217:デフォルトの名無しさん
15/12/19 02:55:03.23 APSLa6hA.net
動的型の「できる」っていうのは、ローカル変数など
大概狭い範囲での話なんだよね。
どちらかと言えば、狭い範囲のものは、その場所だけ
注意してみればいいからそこまで必要ない。
静的型の型チェックが便利なのは、広い範囲の依存関係の矛盾を暴き出すことだから
こういうのは単体テストが主である自動テストではテストがしづらい部分。
つまり、関数の引数とかクラスの継承関係とかオブジェクトのメソッドとか
そういう「インターフェース」に関わる部分の矛盾のテストができる。

218:デフォルトの名無しさん
15/12/19 02:58:01.15 OdWxPmQd.net
haskellやocamlでは、取り敢えず関数名と引数だけ書いて(型は書かない)
中身はundefinedやassert falseにしておき(つまり、まだ実装しない)
関数を呼び出す側を先に実装する手法をとる事が良くある。
いわゆるトップダウン型の実装ね。関数型と相性が良いけど、仕様が明確な大規模開発にも向いてる。
で、そのときは呼び出し側の使われ方から型推論できるから
引数の型を書かなくても型推論できる。
ドカタ言語使いには想像も出来ないだろうけど、そういう世界もあるってこと。

219:デフォルトの名無しさん
15/12/19 02:59:35.78 APSLa6hA.net
Javaでは、取り敢えず関数名と引数だけ書いて(型はObjectにしておく)
関数を呼び出す側を先に実装する手法をとる事が良くある。
それと何も変わらないNE!

220:デフォルトの名無しさん
15/12/19 03:01:04.70 OdWxPmQd.net
>>217
それObjectのメソッドだけしか補完出来ないけど?

221:デフォルトの名無しさん
15/12/19 03:02:59.96 APSLa6hA.net
>>216
その文章から、どういった理由でドカタ言語なのかわからないのは、
お前が、ドカタということで心の安定を保つためだと思ってるYO!

222:デフォルトの名無しさん
15/12/19 03:05:24.53 APSLa6hA.net
>>218
呼び出し側の使われ方から推論できるよ?
正確には「呼び出し側が使われた時」っていうのは
呼び出し側の型も決定したってことだから、
関数の実装をするときにその型に書きなおすだけでいい。
関数の実装するんだから、すぐ上の行を編集するだけ。

223:デフォルトの名無しさん
15/12/19 03:06:46.74 OdWxPmQd.net
>>219
どういった理由かも分からないのに、ドカタ言語と言われて
君はJavaを連想してしまったんだね。
話の流れ的にpythonでもsmalltalkでもおかしくなかったのに。

224:デフォルトの名無しさん
15/12/19 03:09:08.23 APSLa6hA.net
>>221
へ? Javaの話を今までしていたその続きをしただけだけどw
うわー、やっぱりこう他の言語をディスることで
心の安定を(笑)うわーwww

225:デフォルトの名無しさん
15/12/19 03:09:11.65 OdWxPmQd.net
>>220
計算機が正しく自動的にやってくれることを
手で書くのはアホのする事ですよ
typoしてIDEに赤線引かれちゃうかもよ?

226:デフォルトの名無しさん
15/12/19 03:10:20.46 APSLa6hA.net
>>223
> 計算機が正しく自動的にやってくれることを
呼び出し側を間違えたら、計算機は間違いますよw
計算機は、書いた通りに動く。
何が正しいかはプログラマが決めるもの。

227:デフォルトの名無しさん
15/12/19 03:12:18.93 APSLa6hA.net
呼び出し側から推論すると言っても、
呼び出し側が矛盾することだってあるしね。
fooという関数をintを引数にして呼び出している場所と
stringを引数にして呼び出している場所があったらどうなるのか。
定義は一箇所にするもの。
関数の定義こそが一箇所に絞り込める唯一の場所。
使ってる場所で、決めるっていうのは
間違いの元にしかならないよ。

228:デフォルトの名無しさん
15/12/19 03:15:03.21 OdWxPmQd.net
>>224
コンパイラが型推論して自動生成した型を見ても間違いに気がつかないなら
手で書いても間違ってるだろうね

229:デフォルトの名無しさん
15/12/19 03:16:20.72 OdWxPmQd.net
あ、もしかして型推論した結果を出力できるって知らなかったかな?
ゴメンね分からない話して。

230:デフォルトの名無しさん
15/12/19 03:20:44.63 APSLa6hA.net
静的型の型推論って機能はコンパイラが推論して
型が決定できた時に、記述を省略してくれる機能。
だから(推論が)正しいか、推論できないかの2つに別れる。
推論できた時、それは正しい。
だけど動的型の場合、推論は本当に推論でしか無いんだよね。
こうじゃないか?って思いました。コンパイラがいう。
だから、計算機は正しく自動的にやってくれるわけじゃない。
所詮、推論でしかない。

231:デフォルトの名無しさん
15/12/19 03:21:26.48 APSLa6hA.net
>>227
やっぱり正しく自動的にやってくれるんじゃないんですねwwww

232:デフォルトの名無しさん
15/12/19 03:24:05.57 srVmyYNw.net
>>228 静的型の型推論は推論できた時、それは正しい と 動的型の場合、所詮、推論でしかない この二つは整合するのかい?



234:デフォルトの名無しさん
15/12/19 03:30:45.67 OdWxPmQd.net
>>228
最後まで書き込んでたら勝ちってゲームしてるつもりかな?
もうちょっと中身のある事を書こうね。
関数型言語の型推論だと、複数の場所で矛盾する型を書いたら即座にエラーになるから間違いを早く発見できるし(>>217は型を書く段階まで発見できない)、
間違っていたときも型推論の出力を見ながら修正できる。
たしか、早くより少ない労力でエラーを発見できる方が優れてるんだよな?

235:デフォルトの名無しさん
15/12/19 04:45:37.26 ysM2oFx/.net
動的型の場合、型が矛盾することはない。
なぜなら、どんな型でも入れることが可能だからだ。
なお型が矛盾しないからといって、正しく動くわけじゃないw

236:デフォルトの名無しさん
15/12/19 05:08:30.90 srVmyYNw.net
型って厳密には何の型の話をしてる?
入れるって書いてるから変数型かな

237:デフォルトの名無しさん
15/12/19 05:20:10.46 ysM2oFx/.net
変数もだけど、それ以上に重要なのは
関数の引数の型。

238:デフォルトの名無しさん
15/12/19 06:11:42.29 uwvw3g3I.net
>>232
一方、静的型付言語でも、型が矛盾しないからといって、正しく動くわけでもないw

239:デフォルトの名無しさん
15/12/19 06:13:31.81 uwvw3g3I.net
>>231
静的型付関数型言語で型エラーの本当の原因を探すよりも
Smalltalkで実行時エラーの本当の原因を探すほうが遥かに簡単で間違えにくい。

240:デフォルトの名無しさん
15/12/19 07:30:05.05 TW2fFhuS.net
そもそも静的型付けのヒトは、コンパイルが通れば
型の不整合によるエラーはぜったい起こらないという前提なの?
そんなちゃんとした型システムの言語、あんたら使ったことないだろ

241:デフォルトの名無しさん
15/12/19 07:51:26.41 ysM2oFx/.net
>>237
1か0じゃない。出来る限りコンパイル時に解決してくれれば
動的に解決する問題が減る。
静的型で型の不整合が起きるコードなんて限られてるんだから、
その影響範囲を小さくすることで、動的なものを静的に
解決できるように設計するんだよ。
静的に解決するのと動的に解決するのとの差は大きく、
動的だとすべての実行パスを、実際に実行しないと信頼出来ないが
静的だと実行する必要が無いから、すべての実行パスを実行するコストが0になる。

242:デフォルトの名無しさん
15/12/19 09:07:04.58 P/E9W26M.net
>>210
俺もJedi-vim使ってるけどこれってどうやって配列の中身に補完かけんの?
何回やっても出来なくてPythonゴミだと思ってた

243:デフォルトの名無しさん
15/12/19 09:33:28.96 TW2fFhuS.net
>>238
> 1か0じゃない。
あんたらの言ってることは1か0かでしかないよ。w
ここでもすでに2つもやってる
> すべての実行パス
> コストが0

244:デフォルトの名無しさん
15/12/19 09:33:42.26 QugsHy5+.net
typo、typo言ってる奴が何を言ってるのか分かってきた
オブジェクト指向とか、関数型とかいう前に、構造化プログラミングが出来てないからtypoで困るのか

245:デフォルトの名無しさん
15/12/19 09:34:15.15 u/d4wrI0.net
>203
こいつまじでテスト書かないんだろうな。。
適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
型があってなけりゃ大概まともになんて動かんわ。
>そもそも、完璧なテストは書けるのか?って話もある。
テストでもプログラムでも「完璧な」なんてありえないんだよ。
確率や効率をいかにあげるかって話だ。
>テストを書く=時間がかかる だ。
当たり前だ。それなりの精度のもの作るならそうなる。
プロトで作るくらいの規模のもので型エラーでほとんど動かんもの作る奴なんてどっちにしろ
まともなものなんて作れんわ。

246:デフォルトの名無しさん
15/12/19 09:35:02.37 ysM2oFx/.net
なんで構造化プログラミングとtypoが関係有るんだ?
無関係なものを結びつけたがるよなw
まるで、そういう印象をあたえるのが目的かのようだwww

247:デフォルトの名無しさん
15/12/19 09:36:58.29 ysM2oFx/.net
>>242
> 適当にその型のオブジェクト生成して引数で突っ込んでメソッドなり関数なり呼べばいいだけだろ。
> 型があってなけりゃ大概まともになんて動かんわ。
わかってないねw
適当にその型のオブジェクト生成して突っ込むというテストコードを書いたからといって、
そのテストコード以外の部分には、当てはまらないんだよ。
テストコードだけがうまく動作するwww

> 型があってなけりゃ大概まともになんて動かんわ。
問題はそこからだな。まともに動かない。原因は何か?
デバッグ大変だぁw

248:デフォルトの名無しさん
15/12/19 09:38:45.80 ysM2oFx/.net
引数が違うっていうのは、呼び出し元と呼び出し先の
インターフェースの問題なのだから
単体テストでは見つけることが出来ないんだよ。
これは結合テストの範疇。

249:デフォルトの名無しさん
15/12/19 09:41:53.19 TW2fFhuS.net
結局、静的型付けのヒトの主張は
- 動的型付けで静的型付けのような完全なチェックは不可能
- 完全なチェックを妨げる言語機能は自分達には無価値
- 静的型付きはすばらしい。だからおまえ等が使わない理由が分からない。バカなの?
ただこれだけのこと

250:デフォルトの名無しさん
15/12/19 09:45:53.67 P/E9W26M.net
あと補完が素晴らしい

251:デフォルトの名無しさん
15/12/19 09:47:41.17 8SzZHE5V.net
動的型はダックタイピングを期待して故意に複数の型を許すこともある
だから、仕組み的に静的型付けより正確な補完ができることはありえない
>>216
戻り値にShowとかCloseとかのよくあるメソッド呼ぶだけだとどうしても補完は不足する
C#とかの補完は、加不足なく表示されるのがポイントで、リファレンスを参照する手間がないのがありがたい
>>181
dynamic型とかでできるよ
でも補完が効かないし、遅くなって静的コンパイル言語の利点を潰しちゃうからあんまり使われない

252:デフォルトの名無しさん
15/12/19 09:49:18.71 ysM2oFx/.net
>>246
> 結局、静的型付けのヒトの主張は
なるほどw 動的型の人の主張はそういう反論しかできないから
話をこれだけにしてくださいってことだなw

253:デフォルトの名無しさん
15/12/19 09:50:10.54 ysM2oFx/.net
この3つ以外の点には反論しなかったなーw
面白い反応だwww

254:デフォルトの名無しさん
15/12/19 10:09:02.79 QugsHy5+.net
>>243
typoが発見できないような広い範囲をテストするなんてことは基本的に有り得ない

255:デフォルトの名無しさん
15/12/19 10:10:22.76 l6AIqaac.net
静的型のヒトはいったい何が目的なんだ?
自分が理解できない動的な考え方の排斥か?
自分たちの土俵での優位性を主張したいだけなのか?

256:デフォルトの名無しさん
15/12/19 10:13:36.72 uwvw3g3I.net
>>248
>動的型はダックタイピングを期待して故意に複数の型を許すこともある
>だから、仕組み的に静的型付けより正確な補完ができることはありえない
ちがうなw
特定の型の引数しか扱えないような低性能な静的型と違って、
動的型は任意の型を取る能力を持っているから、
動的型のほうがより「正確に」可能な型に関係した補完が可能なんだよ。

257:デフォルトの名無しさん
15/12/19 10:21:30.79 8SzZHE5V.net
>>253
え?どういう補完を指して優れてるって言ってるの?
型にしばられすぎないことが利点の動的言語で静的言語並の補完したら良さを潰してるとしか思えないんだが

258:デフォルトの名無しさん
15/12/19 10:26:19.12 dtnFGkzr.net
補完なんて必要ない。IDEを使っていたころ補完にばかり頼っていたらforの書き方さえ分からなくなってた。漢字と一緒で読めるのと変換するのと、漢字を書けるのとは
全く別のことだと言うことがわかったよ。それ以降、補完に頼ることを止めて以来コードの質が上がったということは言うまでもない。

259:デフォルトの名無しさん
15/12/19 10:51:48.54 oOYHp+m9.net
補完に助けられてコンパイラの型エラーをつぶしつぶしでないとまともにコードすら書けない、それが土方。

260:デフォルトの名無しさん
15/12/19 10:56:29.09 P/E9W26M.net
補完ないとクラスのメソッド名全部覚えないといけないじゃん……

261:デフォルトの名無しさん
15/12/19 10:59:35.33 eeFVwRM7.net
補完とかタイポにそこまで拘る人って
一日二万行くらいコード書いてるのかな?
プログラミングの本質はタイピングじゃなくて設計なんだけどな
俺はemacsとabbrevだけで十数年食ってるよ

262:デフォルトの名無しさん
15/12/19 11:07:06.94 t89iAcrU.net
職業プログラマが2chに来て議論している...

263:デフォルトの名無しさん
15/12/19 11:07:11.55 l6AIqaac.net
>>249
読解力 and/or 論理的思考 も欠如して、かわいそうに…
ただ煽るだけしか能がないのか。そんなんでよくまともなコードを書けるな。
それともあれか、俺たちも我慢して型情報を書いて、それと引き替えに型安全と補完というメリットを得ている
お前らそれを馬鹿にして否定したり、あまつさえ俺には必要ない別のメリットを享受することなど許さないってか

264:デフォルトの名無しさん
15/12/19 12:35:58.10 wzwqX1ml.net
>>239
普通に配列の中身も補完できたよなーと思って試したらやっぱり出来たから、
そっちの環境がおかしいんじゃね?

265:デフォルトの名無しさん
15/12/19 13:21:35.87 dNXWfsX0.net
>>212のような機能は動的型言語が静的型言語から輸入した機能だから静的型の機能なわけだけど
動的型界隈においても静的型のメリットが評価されてきたってことでもあるが
それはともかくとして、>>212のような書き方をするとfuncはstrと派生クラスしか受け付けなくなるから
動的型の柔軟性が全く損なわれるわけだけどね
動的型言語なのにメタプログラミングもクソもないC言語レベルのコーディングを強いられるのはなんとも
一方で静的型言語で>>211のような型を指定しない書き方をするときは
ジェネリックやテンプレートを使うわけだけど、この場合コード補完こそ効かないけれど
静的に解決するので少なくとも型のミスやtypoのミスはコンパイルエラーになる
静的型言語のタイプセーフはジェネリックでも健在ということ
これは動的型言語の取ってつけたような貧弱な静的型システムでは実現できていない
しかし静的型のジェネリックは静的に解決するので動的なダックタイピングは出来ない
でも、動的なダックタイピングのような危険な行為は本当に必要なのかどうなのか
殆どの場合は静的なダックタイピングだけで十分だし、コンパイルエラーで検出できたほうが良い
動的な多態をしたければ、インターフェースを介して行ったほうが安全

266:デフォルトの名無しさん
15/12/19 13:24:08.37 dNXWfsX0.net
> >そもそも、完璧なテストは書けるのか?って話もある。
> テストでもプログラムでも「完璧な」なんてありえないんだよ。
> 確率や効率をいかにあげるかって話だ。
そこで静的型言語の出番
少しでもバグを減らすためには静的型言語が有用

267:デフォルトの名無しさん
15/12/19 13:38:36.46 a/6r0NiU.net
静的型付け言語の潜在開発生産性は今の100倍 ×5
スレリンク(tech板)
もうこっちでよくないか?

268:デフォルトの名無しさん
15/12/19 13:41:55.99 XdSebzRf.net
マイナンバー制度は受け取り拒否をすることで、破壊できます。
任意である通知カードの受け取りを政府広報が受け取れとCM
URLリンク(www.youtube.com)
マイナンバー通知カードを受け取ってしまっても、市町村に送り返そうURLリンク(www.youtube.com)
311東日本大震災は人口地震テロ さゆふらっとまうんど(平塚正幸)URLリンク(m.youtube.com)
マイナンバー通知カードの受け取りを拒否しようURLリンク(www.youtube.com)

269:デフォルトの名無しさん
15/12/19 13:43:56.73 a/6r0NiU.net
>>265
拒否する理由がない。
拒否するだけじゃただの反抗期。
すごくダサい。

270:デフォルトの名無しさん
15/12/19 13:54:09.76 dNXWfsX0.net
ここまで来て静的型言語のメリットは散々語られているが動的型言語のメリットはあまり語られていない事実
大体は動的にクラスを書き換え出来る、とかといった危険なメリットが有るぐらい
最近は動的型言語にも静的型の機能(の中途半端なもの)が
どんどん導入されてきていることから考えると
動的型言語界隈の人にとっても静的型のメリットは大きいということ
ただし、取ってつけたようなものなので、ジェネリックが無いわけだが・・
人間は完璧じゃないのでテストも完璧とは限らない
機械的に検出できるエラーは多ければ多いほどよい
俺らはコンピュータを使って普段色々なことを自動化するためにプログラムを書いているわけだから
我が身自身のエラーの検出も出来るだけ多くコンピュータで自動化しようというのは当然の事の流れ
他人の仕事は自動化しているのに、自分たちの仕事のエラー検出を自動化しないのは変な話
動的型言語は時代に逆行しているわけだ
最先端と勘違いしていた人たち、可哀想

271:デフォルトの名無しさん
15/12/19 14:06:24.99 srVmyYNw.net
できるだけ良い設計をしたいから動は静の機能を取り込む
できるだけ早く動作を確認したいから静は動の機能を取り込む
動作の確認はどう設計されたかの確認とも言える

272:デフォルトの名無しさん
15/12/19 14:08:42.41 a/6r0NiU.net
>>267
ruby on railsとか一時期流行ったよねー。
これからはlightweight languageだとか言ってね。
人力で型チェックのコード書くのだりーってことに気がついて下火になった。

273:デフォルトの名無しさん
15/12/19 14:19:06.48 6Pr5+KRd.net
動的なんて局所でスクリプト組み込めばいいだろ。
全部動的言語とか初心者かよ。

274:デフォルトの名無しさん
15/12/19 14:26:41.75 srVmyYNw.net
全部静的言語も設計が甘いと仕様変更に弱いところがある
静的言語でしっかり設計して動的に仕様に追従できるようにしたいものだ

275:デフォルトの名無しさん
15/12/19 16:05:53.13 QugsHy5+.net
ここまでで分かった静的言語の利点typo

276:デフォルトの名無しさん
15/12/19 17:18:06.84 TmayNbxK.net
javascriptはエラーを放置するからストレスなくインターネットをモザイク出来るんだよ

277:デフォルトの名無しさん
15/12/19 17:40:05.11 ysM2oFx/.net
> ここまでで分かった静的言語の利点typo
意訳
静的言語の利点はtypoだけなんだって思い込みたい
だって、それ以外の利点に反論することが出来ないんだもん。

278:デフォルトの名無しさん
15/12/19 17:58:11.97 xOPNzksg.net
なぜそう解釈したいの?w

279:デフォルトの名無しさん
15/12/19 18:11:56.47 ysM2oFx/.net
静的言語の利点はいろいろ出てるのに、
typoしか指摘してないからだよw

280:デフォルトの名無しさん
15/12/19 18:44:52.65 OdWxPmQd.net
smalltalkのような動的言語もhaskellのような静的型付け関数型言語も、
設計上のトレードオフで異なる方向性に進んだだけであって、
どちらにも良いところは一杯あるよ。それで良いじゃないか。
もちろんJavaにも良いところはある。ドカタでもコードらしき物が書けるところとか。

281:デフォルトの名無しさん
15/12/19 18:49:17.24 a/6r0NiU.net
>>277
Javaが普及した理由って文法がシンプルだから?

282:デフォルトの名無しさん
15/12/19 18:54:52.90 dNXWfsX0.net
VMのおかげ

283:デフォルトの名無しさん
15/12/19 18:55:37.15 srVmyYNw.net
たくさん使われたから普及しただけだし
たくさん使われたからドカタが生まれたよ

284:デフォルトの名無しさん
15/12/19 18:56:01.89 ysM2oFx/.net
能力が劣る人でも使える言語=その言語は優れている
こういう矛盾があるんだよなw

285:デフォルトの名無しさん
15/12/19 18:57:07.90 ysM2oFx/.net
>>280
その理屈だと、たくさん使われてる言語を使ってる人=ドカタってことになって
なぜドカタなのか?の理由がなくなるぞw

286:デフォルトの名無しさん
15/12/19 18:58:09.44 ysM2oFx/.net
自分が好きな言語が普及しないと悔しいだろう?
自分が嫌いな言語が普及すると悔しいだろ?

悔しかったら、叫べばいいんだよ。
お前のカーチャンデーべそ!

287:デフォルトの名無しさん
15/12/19 19:02:44.62 99cf/LSi.net
Windowsを使ってる奴はドカタ
それでいいじゃないか。

288:デフォルトの名無しさん
15/12/19 19:04:44.99 ysM2oFx/.net
本来のドカタの定義からは外れて、
低能な悪口になってしまってるよなw
ドカタとする理由はない。
単にドカタと呼ばれれば気分悪いだろう?
っていう気持ちだけで言ってるw
やーい、ドカタ(笑)、ドカタ(笑)
俺はドカタじゃないもん!

289:デフォルトの名無しさん
15/12/19 20:54:40.24 9zezTTvK.net
>>274
静的言語の利点はコードコントラクト
URLリンク(monobook.org)

290:デフォルトの名無しさん
15/12/19 21:32:04.90 VDGaUBLZ.net
スレタイの議論は興味あるし読みたいのだが、
静的か動的か(やっぱり静的サイキョ)みたいな
議論は適材適所という話でしかないしどうでもいいや。

291:デフォルトの名無しさん
15/12/19 22:54:29.05 9zezTTvK.net
学習コストとシングルスレッド性能でいえばオブジェクト指向
副作用の低減とマルチスレッド性能でいえば関数型
大事なのはバランス感覚。
中間が素晴らしい。
オブジェクト指向で関数型で基本静的で動的も使えunsafeも使えるC#が最強なんだな。

292:デフォルトの名無しさん
15/12/19 23:15:07.87 0/RlvyV4.net
Objective-Cはクソ
これだけは間違いない

293:デフォルトの名無しさん
15/12/19 23:15:59.92 25MZJC6Y.net
純粋関数型ってstaticオジサンと何が違うの?

294:デフォルトの名無しさん
15/12/19 23:46:59.99 99cf/LSi.net
C#なんてマイナー言語誰が使ってんだよ

295:デフォルトの名無しさん
15/12/19 23:55:31.17 GM3q6wlH.net
そらMS系とUnityユーザあたりでしょ

296:デフォルトの名無しさん
15/12/20 01:22:59.25 ei3pb2OR.net
クリスマスなのでXamarinが無料らしいぞ
URLリンク(realtime.search.yahoo.co.jp)

297:uy ◆Qawu9.2l1E
15/12/20 01:23:00.97 I1JEaeeo.net
>>288
バランスwwwwwwwwwwwwwwwww?WwWWWwWw
低能特有の曖昧でふわふわした表現ワロタwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

298:デフォルトの名無しさん
15/12/20 01:27:54.27 ei3pb2OR.net
基本はキッチリカッチリだろうけJSONなんかを扱う場面ではアホくさいしバランス感覚は重要じゃね。

299:デフォルトの名無しさん
15/12/20 02:21:28.75 IuSUOMsB.net
バランス大事だよほんとw
求められてる範疇で都合


300:よく使えるいいんだ。百点の理想郷なんかなんかいらんのよ クライアントないし上長の要望に立ち向かうってこと自体、曖昧でふわふわしたところにやんわりと釘を刺し続ける行為だしね 90点もいらない、10点の仕事を最安で求められたなら10点できっちり済ませるのが土方クオリティ



301:デフォルトの名無しさん
15/12/20 02:24:10.18 jqjYNF9z.net
曖昧な要望で10点なんてきっかり分かるわけ無いだろ。
矛盾したこと言ってるなよ。

302:デフォルトの名無しさん
15/12/20 02:39:17.80 IuSUOMsB.net
おお済まない。クライアントじゃなく、こちらの想定上の理想を100点という意味で書いてたつもりだった。

303:デフォルトの名無しさん
15/12/20 07:15:36.12 2L75ZkE+.net
いまだに「関数型はマルチスレッド(マルチプロセス)に強い」と思い込んでいる人がいるんだな。
20年前にはそんなものは神話だということがバレているわけだが。

304:デフォルトの名無しさん
15/12/20 07:17:27.87 2L75ZkE+.net
>>286
もしかして、動的型言語では契約プログラミングができないとでも思い込んでいる?

305:デフォルトの名無しさん
15/12/20 07:54:40.31 jqjYNF9z.net
なんでもそうだが、動的言語のできるは、
静的言語でできることの「一部」しかできない。
いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw

306:デフォルトの名無しさん
15/12/20 08:43:25.14 gr0U1KS4.net
>>299
神話じゃなくってそれはどうすればいいのか知らないだけのことで、少なくとも完全にパッケージングされていれば
きにならないことだ

307:デフォルトの名無しさん
15/12/20 08:49:50.37 fsY0id6u.net
C# + EF使うとSQLのtypoすらほとんど無くなる
あれは感動

308:デフォルトの名無しさん
15/12/20 09:30:42.11 hK9ny108.net
なんでもそうだが、静的言語の「動的」にできるは、
動的言語でできることの「一部」ですらないまがいもん。
いっつもできるできないの話に持ち込んで
同じことができると錯覚させようとするんだよなぁw
それでそのことを指摘すると、動的な機能なんていらないとか
typoの修正が完全じゃなくなるとか、補完の精度が落ちるとか
挙げ句の果ては、動的だと動かさないと型チェックできないとか
0か1かの極論を展開して煙に巻こうとするんだよなぁw
で、さらにそれを指摘すると、それしか反論がなかったからとか開き直る。
さんざん動的のメリットを言ってもユースケース想像できなくて頭ごなしに拒否。
ドカタは世界が狭いから、静的型だとダメだから動的に移る人もいるって
わかんないんだよね

309:デフォルトの名無しさん
15/12/20 09:35:11.37 jqjYNF9z.net
それで言い返したつもりなんだろうけど、
静的言語でなんでも動的にできるなんて言ってないがねw
逆に静的に決めることが利点なわけで、動的でやろうとは思わない。
そりゃ動的にすることも出来なくはないけど、できればやりたくない。

310:デフォルトの名無しさん
15/12/20 10:57:03.24 bx1tuSu0.net
そうなんだよね
C#には動的型言語みたいな機能のdynamicがあるけど
静的型言語を使っておいて全部の変数をdynamicで書こうとは思わないよね
キャストもなるべくしないようにすべし、というのが静的型の文化
一方で最近の動的型言語は静的型の機能を吸収していっているが
とても中途半端でジェネリックが無い
まさに、動的型の静的機能は静的型言語でできることの一部ですら無いまがい物だね

311:デフォルトの名無しさん
15/12/20 11:15:20.03 NKmQ5FTU.net
>>304
想像はできてない、かも分からんが
お前も言えてないよ

312:デフォルトの名無しさん
15/12/20 11:29:25.89 OjtiikyN.net
動的の利点はプロトを素早く書けるってところだろ。
あとは稼働を止めずにリプレースできるとか。。
静的言語の問題点は
静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。

313:デフォルトの名無しさん
15/12/20 11:47:57.68 jqjYNF9z.net
> あとは稼働を止めずにリプレースできるとか。。
"その方法" は、クラウドの時代になって様変わりしたけどねw
今はサーバーにログインして、一台一台ソースコードを更新なんて
危険なやり方でリプレースしたりしませんw
新しいバージョンにしたVMを作成して最終確認した後
接続先を新しいVMに切り替えるんですよ。
このやり方に動的の利点なんかありません。

314:デフォルトの名無しさん
15/12/20 11:49:22.93 jqjYNF9z.net
× 静的言語の問題点は静的解析してりゃテストはいらんとか言い出す馬鹿が発生し易いってことかな。
○ 静的言語の問題点は静的解析してりゃテストはいらんとか言い出すんでしょう?
とかいいだす、動的馬鹿が発生し易いってことかなw
静的だとテストはいらんと言ってるのは動的厨だけ。

315:デフォルトの名無しさん
15/12/20 11:56:38.95 ZootpjTa.net
静的でも値に対するテストはするよな?それは型チェックで分からないからな
で、値に対するテストに通れば、型チェックも通ってると思うんだけど、
なぜか静的ドカタは動的だと型のテストコードも必要と思い込んでるみたいなんだよね
なんで?

316:デフォルトの名無しさん
15/12/20 12:49:50.49 jqjYNF9z.net
>>311
いろいろと勘違いしてるねw
重要なのは、テストも含めた開発のコスト。問題点は早く見つかる方がコストは低くなる。
そしてもう一つ。型チェックというのは正確にはインターフェースのチェック。
引数(シグネチャ)が正しいこと。クラスの継承関係などが正しいこと。
インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
(ほぼというのは意図的に静的型の型安全性を捨てた場合を除くから)
テストコードというのは、単体テストが主で、これはインターフェースのテストではない。
単体テストでインターフェースのテストを静的型と同等レベルまで動的型でテストするには
漏れがないといえるレベル(少なくともカバッジ100%)の完全なテストが必要になる。
しかし漏れがないことを証明する方法はないし、そもそもテストに問題がないことを証明する方法もない。
ちなみに、カバレッジ100%を目指せと言うと、それはやめろと言われる(笑)
テストを書くというのはコストがかかる。メンテナンスするのにもコストは掛かる。
テストを書かなくてもテストを書いたのと同じ効果が得られるのであれば、それに越したことはない
それがテストの一部であったとしても、テストのコストを下げることになる。
テストはどれだけやっても十分とはいえないんだから多ければ多いほどいい。コストがかからない方法(静的)ならなおさらだ。
動的型は完璧なテストがあれば十分だというが、そのような完璧なテストは存在しない。
TDD再考 (1) ? テストファーストとユニットテストへの死刑宣告 ( URLリンク(ubiteku.oinker.me) )
TDD再考 (2) ? 何故、ほとんどのユニットテストは無駄なのか? ( URLリンク(ubiteku.oinker.me) )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 1 URLリンク(postd.cc) )
テスト駆動開発(TDD)はもう終わっているのか? ( Part 2 URLリンク(postd.cc) )

317:デフォルトの名無しさん
15/12/20 12:51:46.50 akw4ximt.net
なんだかよくわからんがVisualC#™️を信仰するおっさんが
自分がVisualC#™️推しだってことは隠して
Microsoft™️ .NETフレームワーク専用言語の
「静的言語(=Visual C#™️)は世界一なんだぞぉ!」
って主張するスレってことでいいかね?

318:デフォルトの名無しさん
15/12/20 12:55:58.25 Ava23gur.net
>>312
あ、ドカタ界隈ではインターフェースのテストはしてないんだ
なるほどね

319:デフォルトの名無しさん
15/12/20 13:00:45.19 jqjYNF9z.net
>>314
インターフェースのテストをしてるんだw
書いてみてよ。

320:デフォルトの名無しさん
15/12/20 13:05:09.23 jqjYNF9z.net
インターフェースのテストの意味がわからないお馬鹿さんがいるようなので
具体的に説明する。
foo(TypeA a, TypeB b, TypeC c) という関数がある。
この関数を使っている所がソースコードのあちこちに存在する。
静的型付けであれば、このインターフェース、つまり引数の型が違うものを
全て教えてくれる。
>>314はこのインターフェースのテストを書くらしいw
俺は実行して見る以外のやり方を知らないよ。
実行すればわかる? そうだね。”漏れがなく完璧なテストがあればね"
さあテストを書くお仕事だ。テストを書くのはコストは掛かるぞ。
テストをメンテナンスするのにもコストは掛かるぞ。
静的型付けでは、このインターフェースのテストにはコストはかからない。

321:デフォルトの名無しさん
15/12/20 13:10:54.30 hK9ny108.net
>>312
> インターフェースのチェックだけに限れば、静的型はほぼ完全にテストできている。
逆だろ
静的型ではほぼ完全にチェックできることしか書けないように、
本来ソフトウエアにできることに制限を設けてるだけ

322:デフォルトの名無しさん
15/12/20 13:11:34.10 Ava23gur.net
>>316
ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
なるほどね

323:デフォルトの名無しさん
15/12/20 13:22:25.74 jqjYNF9z.net
>>317
> 静的型ではほぼ完全にチェックできることしか書けないように、
> 本来ソフトウエアにできることに制限を設けてるだけ
プログラミングの進化に伴い、なんでもできるアセンブラから制限をかけることで、
より安全なコードが書けるように進化しているという事実をどう考えてるのか?
>>318
> ドカタ界隈ではその関数を使ってるソースコードの単体テストはしないんだ
だからいったろ?
静的型のインターフェースのテストと同等レベルのテストを行うには
完璧なテスト(カバレッジ100%)が必要。だがテストが完璧だと保証する方法はない。
テストにバグがないことを保証する方法もない。
そしてカバレッジ100%を目指せというと、それはやめとけと言われる(笑)
もちろんカバレッジ100%では完璧ではない。特に動的型付けでは
コードパスによって引数は大胆に変わる可能性があるし、コード自体も変わる可能性がある。
あるコードを実行したら、オレオレパッチで関数のシグネチャが変わることさえも。
テストはどれだけやっても確実にはならない。ソースコードの単体テストに加えて
静的型付けのコンパイルチェックがあれば、単体テストだけよりもさらに完璧になる。
鬼に金棒ってやつだ。
所詮お前は、単体テストがあれば十分だって考えてる
あまちゃんってこと。

324:デフォルトの名無しさん
15/12/20 13:43:19.63 GK0ijEpp.net
>>319
つまり値に対するテストはロクにやらずに
本番でエラーが出ないことをガクブルしながら祈ってるわけね
なるほどね

325:デフォルトの名無しさん
15/12/20 13:44:12.09 dp1zfJIT.net
動的型付けに於いて、継承は不要

326:デフォルトの名無しさん
15/12/20 14:52:31.49 hK9ny108.net
>>319
> より安全なコードが書けるように進化しているという事実をどう考えてるのか?
抽象化=制限 じゃあない。

327:デフォルトの名無しさん
15/12/20 15:56:38.30 +uShK3RK.net
JavaScriptが最強のプログラミング言語。全ての言語はJavaScriptを模範として構成されるべきである。

328:デフォルトの名無しさん
15/12/20 16:28:07.52 bx1tuSu0.net
>>322
自動車にも自動ブレーキがつく時代だぞ
ファンヒーターやコンロも付けっぱなし防止機能が付いているし
電車なんかの制御も安全機能だらけだろ
初めから危ない動作はしないように制御されている
セーフティーは重要
お前らの書くプログラムも明らかに矛盾した入力は受け付けないようにしているだろ
ユーザーは何を入力するか分からんからな
普段そういう安全機能がついたものを使っておいて、また、作っておいて
どうしてそういう安全に関する考えを自分の


329:使う言語にまで発展させて考えられないの? 頭硬いの?どうして安全装置が無いことでドヤ顔できるの?



330:デフォルトの名無しさん
15/12/20 16:31:01.73 +uShK3RK.net
競輪選手の自転車にはブレーキついてないよ。

331:デフォルトの名無しさん
15/12/20 16:38:13.00 bx1tuSu0.net
あれはレース用だろ
そういう意味ではメガデモをアセンブリで作るような場合は安全は関係ないだろう
仕事で使うもの、あまたある業務用装置に
安全装置がついてないとでも言うか?
なまじ危ないことをするから安全装置だらけだぞ
ただし業務用装置にはコストの関係もあるから付いてない場合もあるが
それは劣っているというだけで、コストかけられるなら安全装置はついていたほうが良いのは当たり前
安全装置がついていないことをドヤ顔する人はいない

332:デフォルトの名無しさん
15/12/20 16:41:55.89 +uShK3RK.net
プロの使うコンロには安全装置ついてないよ。

333:デフォルトの名無しさん
15/12/20 16:46:14.53 0rzi2y0b.net
今後も0か1かの議論に固執するなら、他者の立場を理解することなんて永久にできないよ。
まあ、する気もないんだろうけど。
動的遅延結合性を大事にする人間は別に型は否定してない。
たまたま今の型システムは不自由だから、次善の策として動的型を使っているだけだ。

334:デフォルトの名無しさん
15/12/20 16:51:13.35 bx1tuSu0.net
お前らが普段作っている業務ソフトetcには安全装置がついてないのか?
誤った入力が有ってもそのまま実行するのか?
それか初めから誤った入力は出来ないように
無効なボタンは灰色表示にして押せないようにしているんじゃないのか?
当たり前だよな?
普段そういうものを作っておいて、作らされておいて
どうして自分の使っている言語に安全装置が足りてないことに気づかないの?

335:デフォルトの名無しさん
15/12/20 16:55:40.40 +uShK3RK.net
別に死ぬわけじゃないんで、プログラムに安全装置いらない人でも綱渡りするときは命綱は付けるでしょ。

336:デフォルトの名無しさん
15/12/20 17:27:57.19 9YX+2XWA.net
完璧を求めるなら依存型言語とか証明駆動開発をやってみるといいんでないか。まだ未開拓部分が多いんで人が増えると面白い。
正直、smalltalkはlispやprologと同じくらい極北なイメージがある。
Cのマクロしか知らずにマクロを批判してたらLisperに囲まれてボコボコにされるのと同じように、
Javaのオブジェクト指向しか知らずにOOPを批判してたらSmalltalkerにボコボコにされる雰囲気がある。
そして誰か、「この世は計算式」ってどういう意味なのか教えてください。
それがオブジェクト指向とどう対立するのかも分からん。

337:デフォルトの名無しさん
15/12/20 17:48:36.25 m7Ghdsbn.net
>>328
"型がわかんねぇから食えないもの食って死ぬ"ってぇなら
「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って
答えるようにすればいいだけだよなー

338:デフォルトの名無しさん
15/12/20 17:54:30.03 m7Ghdsbn.net
>>331
>そして誰か、「この世は計算式」ってどういう意味なのか教えてください。
建てた奴はオブジェクト指向vs関数型にしてやろうと思ってたけど
C#ジハードおじさんが来て「俺がいるところこそが唯一絶対の真理である!」って
やってるから皆でテキトーにそれつついて遊んでんじゃないの。

339:デフォルトの名無しさん
15/12/20 18:17:46.11 noY3begs.net
>>326
安全装置はついていれば便利なことも多いけど、必ずしもよいことばかりではないよ。
不完全な安全装置や安易な判断で設置された安全装置は、人の命を奪うことすらある。
もちろん程度問題で、すべてが悪と言う気はないよ。たぶん、それで助かる人は困る人より
はるかに多いだろうし。でも、それでいいと思う人ばかりじゃないことは理解をしないと。
現状の静的型が目的以外の使用を許さないところは、車に例えれば、安全装置のせいで
セルモーターを使った踏み切り脱出ができなくなったと嘆く教習所の教官の言葉を思い起こさせる。

340:デフォルトの名無しさん
15/12/20 18:22:06.62 rV5TNjST.net
あなたはだんだんずれていく...

341:デフォルトの名無しさん
15/12/20 19:19:03.42 +uShK3RK.net
安全装置のついた人生なんて何も面白くないからな。人生を危険に晒せだよな。

342:デフォルトの名無しさん
15/12/20 19:37:44.93 Ava23gur.net
Javaドカタはヌルポ例外を見過ぎたせいで
例外を必要以上に危険視する傾向があるという

343:デフォルトの名無しさん
15/12/20 19:39:46.66 +uShK3RK.net
素人が扱うM4ライフルとかよりMP5的なサブマシンガンのほうが殺傷率高いって事だろうな。

344:デフォルトの名無しさん
15/12/20 20:02:45.31 IBlQGaN+.net
>>304
>>なんでもそうだが、静的言語の「動的」にできるは、
>>動的言語でできることの「一部」ですらないまがいもん。
一部ですらって、何ができないの?
大方の動的言語に近いことはできるとおもってるんだけど・・・

345:デフォルトの名無しさん
15/12/20 20:32:36.37 jqjYNF9z.net
>>332
> 「おまえ誰だよ?」って型に聞けば「俺はこういう構造だよ」って
> 答えるようにすればいいだけだよなー
型に聞く必要があるのなら、なおのこと、
型があったほうがいいんじゃないの?w

346:デフォルトの名無しさん
15/12/20 20:52:12.77 hK9ny108.net
静的型でも構造的部分型とかならだいぶマシなんだけどね。

347:デフォルトの名無しさん
15/12/20 21:01:07.39 ILSUiSxT.net
>>301
>なんでもそうだが、動的言語のできるは、
>静的言語でできることの「一部」しかできない。
逆。原理的に静的型言語は動的言語の「一部」しかできない。
ばか?

348:デフォルトの名無しさん
15/12/20 21:05:03.98 ILSUiSxT.net
>>319
おまえは本当にばかだなあ。
静的型言語は型検査を通らないと型安全を確保できないが、
動的型言語は型検査などなくても型安全を確保できているんだよ。

349:デフォルトの名無しさん
15/12/20 21:11:05.33 IBlQGaN+.net
>>342
C#、VB.NETだと必要なところにだけ動的型を導入できる
TypeScriptではjavascriptに合わせて動的型にする場面も多い
Javaでもバイトコードでは対応したみたいだから、将来的に導入されるかも?
C/C++ではそんな不自然な機能には対応しない

350:デフォルトの名無しさん
15/12/20 21:12:53.77 HeaJTNm+.net
型が重要な箇所があるなら、その部分で型チェックすればいいじゃない

351:デフォルトの名無しさん
15/12/20 21:34:01.48 +uShK3RK.net
クッキーじゃないんだから型々いうなよ。日本人なら餅を食え。

352:デフォルトの名無しさん
15/12/20 21:37:01.46 eaGEBgum.net
煎餅食う

353:デフォルトの名無しさん
15/12/20 21:59:10.73 ywvYIxL3.net
C/C++でもポインタをフルに使ったら動的と同じ処理を出来なくもないけどな

354:デフォルトの名無しさん
15/12/20 22:09:54.59 akw4ximt.net
そりゃそうだ。オブジェクト指向も関数型もアセンブラでできるんだよ!なんだから。

355:デフォルトの名無しさん
15/12/20 22:13:03.00 hK9ny108.net
チューリングの泥沼に注意せよ。それは何事も可能であり、何事も容易に非ず

356:デフォルトの名無しさん
15/12/20 22:15:16.86 l3TBRkh9.net
クッキーの型で煎餅を焼くことも出来るわけですね!

357:デフォルトの名無しさん
15/12/20 23:15:04.42 3zlmhSVS.net
テストのコストとかビジネスライクなこと言うなよな

358:デフォルトの名無しさん
15/12/20 23:24:35.18 JMy37Egb.net
このリストがマストだ

359:デフォルトの名無しさん
15/12/20 23:46:56.43 akw4ximt.net
エビデンスを示したまえ

360:デフォルトの名無しさん
15/12/21 00:05:30.65 K9YQZ40/.net
319 みたいな馬鹿のいるプロジェクトは大変だろうな。。
ことあるごとに 100% じゃねーからとか言い訳してテストしなさそうだ。

361:デフォルトの名無しさん
15/12/21 00:20:21.16 wKrNpYiO.net
>>342
> 逆。原理的に静的型言語は動的言語の「一部」しかできない。
> ばか?
話の流れがわかってないw
原理的に動的言語は静的型言語でわかることの「一部」しか「静的に」判断できないできない。
静的型言語はなんでもできる動的言語の危険性を抑えるために
実行時にできることが制限されている。それが安全性につながる。

362:デフォルトの名無しさん
15/12/21 00:21:30.20 wKrNpYiO.net
>>343
> 動的型言語は型検査などなくても型安全を確保できているんだよ。
じゃあ、TypeAしか入れられない型にTypeBを入れて
それでどうやって静的に(実行せずに)型安全性を確保しているか教えて。
実行して落ちるのは型安全じゃないからねw

363:デフォルトの名無しさん
15/12/21 00:23:07.92 wKrNpYiO.net
>>345
> 型が重要な箇所があるなら、その部分で型チェックすればいいじゃない
それだと、どんな型を渡しても正しく扱えることはまず無いから、
殆どの部分で型チェックが必要になるぞw
特定の型固有のメソッドを呼んだ時点で、落ちてしまう。

364:デフォルトの名無しさん
15/12/21 00:48


365::12.97 ID:wV5Rx1o6.net



366:デフォルトの名無しさん
15/12/21 00:59:07.29 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:デフォルトの名無しさん
15/12/21 01:48:05.01 B3EXamn3.net
正直に白状するが、Javaは静的型付け言語としては貧弱で、たぶんSmallTalkerから見たらOOPの機能も貧弱。
nullはあるわisInstanceOfはあるわ後方互換性のせいで汚いメソッドがあるわで、潔癖な人にはおすすめできん。
現在に至るまでの資産が無ければ触りたくもならんです。
自分はML系の型システムでようやく静的型付けの有り難みが分かるようになった。

368:デフォルトの名無しさん
15/12/21 02:47:46.56 wKrNpYiO.net
>>360
IntegerとLongは共にNumberを継承しているから

369:デフォルトの名無しさん
15/12/21 04:14:30.72 7dJZ8TPE.net
>>357
本物のバカ?
まともな動的型言語なら、そもそもTypeAしかいれられない型なんて存在しないから。
メソッドが見つからなければ言語仕様通りに「正しく」例外を投げる。
例外ハンドラが設定されていなければ終了する。
静的型言語で例外を投げた時にハンドラがなければ終了するのと同じだ。
言語仕様通りに動作しているのだから、型安全は確保できている。
もし「実行したらメソッドが見つからないだけで落ちた」のは型安全じゃないというのなら、
URLリンク(ja.wikipedia.org)
でも読んでろバカ。
わかりまちたか、おばかちゃん?
静的厨はほんと型システムに関する知識が薄いね。だからバカなんじゃないかなあ。

370:デフォルトの名無しさん
15/12/21 04:52:19.75 wKrNpYiO.net
> メソッドが見つからなければ言語仕様通りに「正しく」例外を投げる。
言語仕様通りに「正しく」例外を投げる。
だけど、これはアプリの仕様からしたらバグだ。
話の前提わかってる?
言語を作る側の話じゃなくて
言語を使ってアプリを作る側の話をしてる。

371:uy ◆Qawu9.2l1E
15/12/21 05:10:51.36 ouS7hqFY.net
イライラジャップw

372:デフォルトの名無しさん
15/12/21 05:36:24.60 7dJZ8TPE.net
>>364
例外を捕捉しないのはアプリのバグであって言語のバグじゃないよw
自分のバカさを動的型のせいにするなってww
話の前提どうこう以前に、まずは自分のバカさを自覚しろw

373:デフォルトの名無しさん
15/12/21 05:39:43.68 wKrNpYiO.net
>>366
あんたは動的言語では例外が出るといった。
実行されるまでわからないということだ。
静的言語だと静的にメソッドが無いことを調べられる。
だからアプリのバグを減らすことができる。
少なくとも実行しなくてもわかるから、
早くバグを修正できる。アプリ開発のコストが下がる。

374:デフォルトの名無しさん
15/12/21 05:45:26.20 YADl95dr.net
なんだかすげえなw

375:デフォルトの名無しさん
15/12/21 06:16:48.64 7dJZ8TPE.net
>>367
そうでちゅね、静的型言語ではアプリをテストせずに開発できちゃうんでちゅね、すごいでちゅねwww

バカ丸出しw

376:デフォルトの名無しさん
15/12/21 06:19:38.14 7dJZ8TPE.net
こういうバカな静的厨に限って、
普通にレコード定義すればいいところでMap型を使って
アプリがキーエラーで落ちるw

377:デフォルトの名無しさん
15/12/21 06:39:28.24 G65zLFaz.net
>>362
すげーな。
コンパイルが通るってことは、このコード、ランタイムエラー吐かずに正しく動くんだな?

378:デフォルトの名無しさん
15/12/21 06:50:22.82 7dJZ8TPE.net
>>367
>少なくとも実行しなくてもわかるから、
>早くバグを修正できる。アプリ開発のコストが下がる。
HM型検査を実行するのと、ほんの数個の単体テストを実行するのと、
どちらが早くバグを修正できるでしょうかね?
ばーかw

379:デフォルトの名無しさん
15/12/21 07:01:32.16 wKrNpYiO.net
静的言語のテストは、単体テスト+静的解析からなる。
単体テストだけの動的よりも信頼性が高い。

380:デフォルトの名無しさん
15/12/21 07:02:38.27 wKrNpYiO.net
単体テストは完璧ではない。全てをテストするわけではない。
単体テストでテストできなかった部分も静的解析でテストできる。
鬼に金棒

381:デフォルトの名無しさん
15/12/21 07:03:44.31 wKrNpYiO.net
>>371
すげーな。単体テストさえあれば、バグは一個もない。
他にテストは要らないと思ってるのかw

382:デフォルトの名無しさん
15/12/21 07:18:53.80 7dJZ8TPE.net
バカだなあ…
メソッドがあるかないかぐらい単体テストでC0カバレッジで十分わかることじゃないかw
本物のバカだなw

383:デフォルトの名無しさん
15/12/21 07:19:42.76 7dJZ8TPE.net
ねえ、静的厨ってみんなこんなバカなの?

384:デフォルトの名無しさん
15/12/21 07:22:03.68 wKrNpYiO.net
> メソッドがあるかないかぐらい単体テストでC0カバレッジで十分わかることじゃないかw
カバレッジ100なのかい?
URLリンク(d.hatena.ne.jp)
> ■ コードカバレッジ 100 % の難しさ
> マイクロソフトの面接試験とかいう噂の問題。のバリエーション。
>
> 水槽に 100 匹の魚がいます。98 % はグッピーです。
> では水槽にいる魚の 99 % をグッピーにするには、何匹のグッピーを水槽に足せばいいでしょう?
> 知らない人は一瞬だけ考えてみてください。
>
>
>
>
>
> 答えは「100 匹」です。直感より多いですよね?
>
> これは、コードカバレッジ 100 % の難しさに似ています。グッピーがテストされた行で、
> パーセントがその割合 (カバレッジ) だと考えてください。カバレッジが 98 % のプロジェクトがあれば、99 % にするにはおよそ倍の労力が必要なわけです。
>
> 自分でテストを書かない人は、したり顔で「C0 カバレッジは 100 % で当然 (キリッ)」などと
> 言うのですが、世の中そんなに甘くないんですよね。

385:デフォルトの名無しさん
15/12/21 07:24:23.17 wKrNpYiO.net
C0カバレッジを100%にしてもバグは0にはならない。
これぐらい常識だろう?

386:デフォルトの名無しさん
15/12/21 07:41:17.41 wZBXbgJl.net
バグがゼロになるっていう話だっけ…

387:デフォルトの名無しさん
15/12/21 08:30:07.58 dc09zofZ.net
値エラー以外でテストするのはめんどくさいな。
メソッドがあるかないかで動的に条件分岐するところのテストなんてやりたくない。

388:デフォルトの名無しさん
15/12/21 08:36:09.75 dc09zofZ.net
型エラーの「可能性」まで事前に検知したいのか、
型エラーの「発生」をその時に検知できればいい、
というスタンスの違いってことか。なら理解できる。

389:デフォルトの名無しさん
15/12/21 09:01:27.79 7dJZ8TPE.net
>>379
メソッドがみつからない問題はC0カバレッジ100%で解決できるよ。
実際にはメソッドを叩いてる箇所のみが問題だから、厳密にはC0カバレッジ100%いかなくても網羅できるよ。
そんなことも知らずにテスト手法を叩いてたの?ばか?

390:デフォルトの名無しさん
15/12/21 09:03:29.84 7dJZ8TPE.net
>>382
正確には、コンパイラによる静的型検査では「事前に」検知できないよ。
型検査という一種の証明手続きの「実行」によってしか検知できない。
にもかかわらずバカな静的型厨は「実行前」「実行前」とバカのように連呼する。
バカだから仕方ないけど、バカ丸出し。

391:デフォルトの名無しさん
15/12/21 09:08:42.38 G+qBG4+k.net
 
ゴキブリ韓国(ゴキ韓) 日本は国交断絶せよ
   民主主義は無理  世界一民度低い国
        URLリンク(goo.gl)
 

392:デフォルトの名無しさん
15/12/21 09:10:23.98 dc09zofZ.net
>>384
>型検査という一種の証明手続きの「実行」
それは一般的に言うところの「コンパイル」もしくは「リンク」に相当するもの?

393:デフォルトの名無しさん
15/12/21 09:22:48.80 +DYxsHCL.net
動的型付けでオブジェクトを作ったら使用者がそのオブジェクトのクラスを覚えていたら手動の静的型付けなんだよね。だから忘れなければいけない。
次にそのオブジェクトを使おうとするとき、それが何か忘れてるから、そのオブジェクトがどういうメソッドを持っているかなどの
チェックをするから絶対間違えることはない。すなわち動的型付けが悪いという批判の全ては実は
手動静的型付けという名の静的型付けが悪いということだったんだね。

394:デフォルトの名無しさん
15/12/21 09:26:23.10 K9YQZ40/.net
>単体テストは完璧ではない。全てをテストするわけではない。
>単体テストでテストできなかった部分も静的解析でテストできる。
>鬼に金棒
正しいこと言ってるけれど、こいつは絶対テスト書いてないと思わせるところが凄いw

395:デフォルトの名無しさん
15/12/21 10:04:08.74 XjOZdx5G.net
動的言語でもテストすれば問題はないだろうけど、入力するときにメソッド名を確実に補完してくれたほうが書くときもテスト作る時も快適
その程度の違い
javascriptでブラウザのコンソールで補完使いながら書いてると実感する
あんまり触れられてないけど、スクリプトと比べて静的に型を解決してコンパイルする言語のほうが速度面で圧倒有利というのもでかいと思う

396:デフォルトの名無しさん
15/12/21 10:29:34.55 7dJZ8TPE.net
>>387
ポエムはお花畑板でどうぞ。

397:uy ◆Qawu9.2l1E
15/12/21 10:36:36.12 vg4j58Ti.net
ジャアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアアwwwwwwwwwwwwwwwwwwwwwwwwwwwwww

398:デフォルトの名無しさん
15/12/21 10:42:30.54 atu8DMrc.net
>>375
静的型付けでコンパイル通っても「型に関する」バグも有り得るって言われてるの分かってる?
馬鹿だから分かってないんだろうなぁ

399:デフォルトの名無しさん
15/12/21 10:51:13.05 x6st9rMu.net
動的でも問題ないって言っている人たちは
最近の動的型言語がどんどん静的型の型チェックの機能を取り入れているのは
どう考えているんだろうね
メリットがないなら導入する意味ないよね
でもどんどん導入されていっているよね
あのRubyですら3.0で静的型を導入したいと言っているよね
この事実をどうするの?

400:デフォルトの名無しさん
15/12/21 10:52:41.41 +DYxsHCL.net
ruby3以外に例を挙げてみろよ

401:デフォルトの名無しさん
15/12/21 11:05:22.17 x6st9rMu.net
URLリンク(qiita.com)
動的型言語の型システムしょぼー
>Python 3 の型アノテーション構文の組み合わせが Python における型付けの標準になると宣言されました。
>正直なところ、多くの理由でこれはまったく良い決断ではないと私は考えています。
>その最大の理由は Python は優れた型システムをまさに持っていないことに苦しんでいるからです。
>静的型付けが意味をなすには、型システムが良いものである必要があります。
こういったショボい使いものにならない静的型システムは
なまじ有るだけ使わないと行儀が悪いような気がするが
使いまくるとジェネリックも何もないので汎用性が落ちてCレベルのコーディングになって苦しい
使えば使うほどそういう矛盾が浮き彫りになって、もやもやしてくるだろう
この型システムしょべーって
なまじ有るから使わないと行儀が悪いような気がするってのもポイントだな
プログラムを書いてる本人が気持ち悪くなってきて、動的型言語宗教から改心する
きっかけになるのであれば、中途半端な静的型を導入することにも意味があるっちゃ意味がある

402:デフォルトの名無しさん
15/12/21 11:08:23.42 x6st9rMu.net
>>394
URLリンク(hrnabi.com)
>一方、最近出てきた言語であるScalaやDart、Goといったプログラミング言語は静的型付け言語に分類される。
>そして、Rubyとは色々な面で似た言語と言えるPythonでアノテーションを付ける文法の導入が検討されているなど、
>動的言語でも静的型付けの良さを取り入れる動きがあるという。
URLリンク(gihyo.jp)
>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>使い方をされながらも静的な型を持っています。
>このことについて,まつもとさんは「悔しいからRubyに静的な型を導入してみようか」
ほらよ

403:デフォルトの名無しさん
15/12/21 11:09:20.16 wV5Rx1o6.net
>>392
ないよ。マヌケ。
なぜなら、コンパイラによりタイプセーフを保証されているから。
まず、例を出せよ??
静的でもリフレクションとか動的機能使えるからそれ使った時だよね。
でもそれは、動的のバグだよね。

404:デフォルトの名無しさん
15/12/21 11:10:39.25 +DYxsHCL.net
インターネットの日本語の記事ばっか観てると馬鹿になるよ。英語の記事の誤植とか意訳ばかりだからな。最近日本語読んだのはこのスレくらいかな。

405:デフォルトの名無しさん
15/12/21 11:10:46.95 atu8DMrc.net
>>395
pythonの型は動的型の中では出来損ないの部類だが、そいつにはジェネリックくらいある
無知が批判するとポイントがボヤけるからやめれ
URLリンク(docs.python.org)

406:デフォルトの名無しさん
15/12/21 11:11:54.59 atu8DMrc.net
>>397
>>360

407:デフォルトの名無しさん
15/12/21 11:14:11.40 x6st9rMu.net
新しく言語を作るとき、静的型システムをどういう風に発展させていくかというのが一つの大きな見どころであり
一番手間のかかる部分だ
今は最低でも型推論とジェネリックが当たり前で、これからもっと発展していくかもしれない
タイプセーフでありながら柔軟性も持たせ、記述量も減らす方向へね
安全性と柔軟性を両立させるという、ある種矛盾しているかのような命題へのチャレンジだ
動的型言語はそれを放棄してしまっているのだから、全く面白みがないね

408:デフォルトの名無しさん
15/12/21 11:27:11.60 +DYxsHCL.net
日本語が不自由なようで

409:デフォルトの名無しさん
15/12/21 11:27:25.95 wV5Rx1o6.net
>>400
ごめんjavaはクソだから使ってねーんだわ。
やめてくれよ、そんな欠陥言語持ち出してくるの。
c#以外の言語は静的と呼ぶほど完成度高くねーんだわ。

410:デフォルトの名無しさん
15/12/21 11:30:16.62 dc09zofZ.net
動的言語使うなら受け取る側で型チェックはしないなー。
型による分岐はそれが直接目的に適うならばあり。

411:デフォルトの名無しさん
15/12/21 11:32:36.19 dc09zofZ.net
静的言語ならC++でいいじゃんか

412:デフォルトの名無しさん
15/12/21 14:09:45.86 7dJZ8TPE.net
>>396
>>一方で,ScalaやTypeScript,Dartなど最近生まれた言語はスクリプト言語のような
>>使い方をされながらも
Scalaをスクリプト言語に分類するような記事を信じるバカですか?

413:uy ◆Qawu9.2l1E
15/12/21 14:29:58.27 2nRQSJGH.net
Matzが静的型の導入を~
って、あれ10年くらい前から言ってる事が二転三転してる戯言だからスルーしたほうが良いよ
浅い信者はMatzの寝言と本音が見極められないようで

414:uy ◆Qawu9.2l1E
15/12/21 14:41:43.33 E4VHpoC/.net
実際この手の問題は多数決のようなもので未来が確定してしまう類のものでは?
動的言語が勝つなら、世界が「動的言語で作られたもので満足」するように作り替えられていく
例えば電子機器のすべてを
プログラムにバグがあろうと後から無線で修正可能なようにすればいいんだよ

動的言語は静的言語以上にバグが入ることは確実だ
しかし「バグっても問題にならない状況作り」が出来るのであればそれで良い

415:デフォルトの名無しさん
15/12/21 16:46:29.69 FpThLLao.net
>>403
> javaはクソだから
具体的に

416:デフォルトの名無しさん
15/12/21 16:56:57.21 +DYxsHCL.net
基本的に企業が作り出した言語はJavascriptを除いてすべて糞。

417:デフォルトの名無しさん
15/12/21 17:20:52.96 XjOZdx5G.net
javaは実行環境というか、バイトコードに手を加えずにジェネリックを実装したせいで、パフォーマンスやら型安全を失ってる
静的型言語とかではなく、互換性重視から生まれた言語の欠陥

418:デフォルトの名無しさん
15/12/21 17:33:12.08 atu8DMrc.net
>>403
一緒や!c#も!
URLリンク(ideone.com)

419:デフォルトの名無しさん
15/12/21 17:40:24.04 qIaAVv7y.net
しかしホントーに"静的言語なら~"って言ってる奴って
『プログラムは自分の身内で組んだもので完結する』前提なのな。
おれらの決めた内々の決まりを組む奴が徹底すれば問題は生じないはず!(キリッ)って…
オブジェクト指向はsmalltalkのむかしから
多くのコンピュータプログラムが相互の通信する未来ではそんなことはできないと看破して
オブジェクトが自分の属性を答える機能とかを基底クラスに組み込んでるってのに
偽オブジェクト指向たちは最初から間違ったところより始めてるせいで
いつまで経っても偽のオブジェクト指向から抜け出せない。

420:デフォルトの名無しさん
15/12/21 18:43:03.63 mofV3EhK.net
> しかしホントーに"静的言語なら~"って言ってる奴って
> 『プログラムは自分の身内で組んだもので完結する』前提なのな。
そんな前提に立てるものを教えてほしいぐらいなんだが(笑)
他人が使るものを使うからこそ、決められたインターフェースを守り
それらを動的に書き換えないようにするんだよ。
勝手にクラスとか書き換えたら動作保証ないからな。
バージョンアップしたらすぐに動かなくなる。
自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから
動的である必要はない。

421:デフォルトの名無しさん
15/12/21 19:24:39.60 qIaAVv7y.net
>自分で作る部分は動的に変えなくても、ソースコード変えればいいわけだから
メンテ地獄は楽しいか。
つべがflvやめてhtml5にしたり通信先が小変更する度に
システムフル再コンパイルしてそうだなおまえら。

422:デフォルトの名無しさん
15/12/21 19:25:06.67 dWRO7mc6.net
しかしなんでこのスレってこんなにsmalltalkerいるんだ
本スレすら過疎ってるオワコン言語やぞ

423:デフォルトの名無しさん
15/12/21 19:45:02.82 dc09zofZ.net
なんでこんなことにこだわっているんだ?

424:デフォルトの名無しさん
15/12/21 19:51:20.56 wV5Rx1o6.net
>>412
あー共編性、反変性使わない人かー。
例えば、家の玄関に土足で上がらないでくださいって注意書きしないのはなぜだと思う?
そんなことする馬鹿な人に会ったことないからだよ。

425:デフォルトの名無しさん
15/12/21 19:55:46.35 B3EXamn3.net
OCamlをやるんだ。
JavaやC#じゃ法螺扱いされる「コンパイルが通ればランタイムで型に関するエラーは起きない」世界が待ってるぞ。

426:デフォルトの名無しさん
15/12/21 20:28:52.54 7dJZ8TPE.net
動的型付言語でも「ランタイムで型に関するエラーは起きない」世界が実現されているが?
というとメソッドが見つからないとか言う厨房がいるが、
それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと
どう違うのだ?
ゼロ除算して例外が発生するのとどう違うのだ?
結局、静的型言語ユーザがいう「ランタイムで型に関するエラーは起きない」というのはマッチポンプでしかない。

427:デフォルトの名無しさん
15/12/21 20:41:15.90 mofV3EhK.net
>>415
> つべがflvやめてhtml5にしたり通信先が小変更する度に
> システムフル再コンパイルしてそうだなおまえら。
分割コンパイルって知ってる?
依存関係を小さく保つから、影響があるところも局所化され
実際にはシステムフル再コンパイルではなく、依存しているところのみ
再コンパイルが必要になるだけ。
そういったことも知らずに叩くんだよなぁ(笑)

428:デフォルトの名無しさん
15/12/21 20:42:13.79 etCoLxJ5.net
そもそも"型"ってなにかね?
なんか静的おじさんはintとかstrとかそういうプログラム言語規約上の取り決めぐらいしか想像できてないみたいだけれども
実際はデータ構造そのもの、構造体やクラスが受け渡されてくるのだからその種類の数だけ型がある。
pictureというクラスの型はBMPだから!と決め打ちして、jpgが追加されたら俺にもjpgの展開エンジン教えろ
pngが追加されたら俺にもpngの展開エンジン教えろと言って毎回自分のプログラムを再コンパイルして備えるつもりか。
そうしないと自分が食えなくてバグ吐いて止まるから。
そういうくだらない車輪の再発明を防ぐためにオブジェクト指向は生まれてpictureオブジェクトに
展開エンジンが含まれてるから、受け手は考えなくていい。そして、すべての型はオブジェクトだから
"世界のすべてオブジェクトの名前と内容を予め知るのは不可能"なので動的に処理するしかない。
動的に処理することで作ったものをいちいち毎度メンテして弄り回すプログラマーのメンテ無限地獄を回避してるっつーのに
「おれらのやり方はあらかじめ世界のすべてを知ってからその決まりでやってるから問題は生じない!」とかバカか。
なんでネットワーク関連で動的が主流で、ちんまりした閉システムでしか静的が流行らないのかちゃんと理解しろ、ジジイ。

429:デフォルトの名無しさん
15/12/21 20:46:53.08 mofV3EhK.net
>>420
> それは静的型付言語で空リストの先頭要素を取り出そうとして例外が発生するのと
> どう違うのだ?
図にすればわかる? わかりやすく簡略化して書くけど
    | 型の問題 | 空リストの問題 | ゼロ除算の問題 |
静的 |  なし   |  あり     | あり        |
動的 | あり    |  あり      | あり        |
問題が多いのはどっち? 答え 動的
重要なのは、問題がどれだけ "多いか" だからさ。
静的・動的、両方に発生する問題を持ってきても、
動的だけにある問題がある以上、動的のほうが問題が多いわけで

430:デフォルトの名無しさん
15/12/21 20:49:47.79 mofV3EhK.net
>>422
> そもそも"型"ってなにかね?
インターフェースの取り決めだね。
巨大なシステムは複雑にならざるをえない。
だから、公開している部分と、公開してない部分をしっかりわけ、
公開している部分は仕様をきっちり明確にする。
その仕様がインターフェースであり型なんだ。
LinuxもWindowsも仮想マシンもコンテナも
大きなシステムは静的言語を使って作られている。

431:デフォルトの名無しさん
15/12/21 20:52:58.26 mofV3EhK.net
>>422
> 毎回自分のプログラムを再コンパイルして備えるつもりか。
だから毎回全部を再コンパイルしてないってばw
Linuxの動的ライブラリの仕組みとかドライバの読み込みとか
Apacheのモジュールの仕組みとかしらないの?w
インターフェース(≒型)をきっちり決め、そのインターフェースに合わせることで
再コンパイルすること無く組み込み可能にしている。
こういったことを知らないんだもんなぁ(笑)

432:デフォルトの名無しさん
15/12/21 21:01:51.63 7dJZ8TPE.net
>>423
だーかーらー、動的型付言語に型の問題なんてないんだって。
コンパイル時型検査なんてしなくても型安全を確保できているから。
型エラーではないものを勝手に静的型では型エラーとして扱われるからといって
勝手に「型の問題」扱いしないでもらえるかなあ?

433:デフォルトの名無しさん
15/12/21 21:04:46.50 mofV3EhK.net
>>426
静的型は型エラーであるもの、つまりアプリのバグ。
そのアプリのバグを静的型は実行すること無く検出できる。
それに対して動的型では、アプリのバグが見つからない。
アプリのバグが見つからないが型安全なんだから、
いいじゃないか。って言ってるわけだよね?
型安全=アプリのバグがない
ということではないよ?知ってる?

434:デフォルトの名無しさん
15/12/21 21:05:35.35 7dJZ8TPE.net
>>425
そうだね、静的型情報をリンカに渡せば静的型でも必ずしも全てを再コンパイルする必要はない。
そもそも動的型ならば全く再コンパイルする必要ないんだがなw
そうやって動的型ならそもそも問題が存在すらしていないものを
静的型では問題になるからといって「静的型では解決できたスゲー」しないでくれる?

435:デフォルトの名無しさん
15/12/21 21:07:13.91 mofV3EhK.net
> そうだね、静的型情報をリンカに渡せば静的型でも必ずしも全てを再コンパイルする必要はない。
> そもそも動的型ならば全く再コンパイルする必要ないんだがなw
全く再コンパイルする必要ない!?それは大変だ。
インターフェースに不整合があったとしても、
その不整合を検出できないじゃないかw

436:デフォルトの名無しさん
15/12/21 21:07:55.23 7dJZ8TPE.net
>>427
で、「動的型ではアプリのバグを見つけることができない」という珍説はどこから湧いて出てきたのかね?
静的型付言語と同じ方法で見つけるわけではないというだけの話を、
どうして「見つけることができない」なんて捏造をするんだね?

437:デフォルトの名無しさん
15/12/21 21:08:48.82 7dJZ8TPE.net
>>429
静的型付と違って、インターフェースが必ず適合するから問題ないんだよ。ぷ

438:デフォルトの名無しさん
15/12/21 21:09:52.92 mofV3EhK.net
> そうやって動的型ならそもそも問題が存在すらしていないものを
意味不明。
インターフェース不整合があってエラーで例外を吐いてシステムが
正常に動かなくても型安全だから問題がない。
そう言ってるわけだよね?
そう、ユーザーにさんに言ってるわけだよね?
Q. ある機能を実行すると、エラーで例外を吐いて落ちます。機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。

うははははw

439:デフォルトの名無しさん
15/12/21 21:12:34.78 GVmX1WAG.net
列車とトラックの比較にしか思えない

440:デフォルトの名無しさん
15/12/21 21:12:49.27 7dJZ8TPE.net
>>432
だーかーらー、
動的型付言語の世界ではインターフェイスに不整合が発生しないの。
引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、
必ず同じ形式でメッセージとしてパッケージングされるの。
静的型システムについては多少知っているようだけど、
動的型付言語の仕組みはまるでわかっていないようだね。

441:デフォルトの名無しさん
15/12/21 21:13:39.02 7dJZ8TPE.net
例のおバカさんよりは若干マシだと思っていたが、買いかぶりすぎていたようだ。

442:デフォルトの名無しさん
15/12/21 21:15:10.99 mofV3EhK.net
>434
> 引数がいくつあっても、引数の中身がなんであっても、機能名が何であっても、
> 必ず同じ形式でメッセージとしてパッケージングされるの。
その後は? 重要なのはパッケージングされた後でしょう?
例外吐いて落ちるんでしたねw
うははははw

443:デフォルトの名無しさん
15/12/21 21:15:36.10 7dJZ8TPE.net
静的型付言語を使っていると、動的型付言語を静的型付言語のメカニズムでしか理解できなくなってしまうらしい。
まさにバカ製造機だな。

444:デフォルトの名無しさん
15/12/21 21:16:30.67 mofV3EhK.net
Q. ある機能を実行すると、エラーで例外を吐いて落ちます。機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。

これを否定しないのは、否定出来ないからだろうなw

445:デフォルトの名無しさん
15/12/21 21:16:44.57 B3EXamn3.net
まずどの動的型付け言語について喋っているのか言及しなよ。
実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
原理的に起こせない、っていう意味で言ったんだけど、分かる?
やたらと例外とエラーを別物にしたいみたいだけど、そんなはっきり区別して扱っている界隈ってあるの?
全然メジャーな使い分けじゃないからちょっと説明してよ。
「例外を投げる動作は言語仕様通りだから、wikipediaでいうところの型安全」っていうは、
関数型言語に言及している中での型安全より遥かに低いレベルの安全性であることは分かってる?
全体的に卑怯者だよ。「ボク間違った言葉遣いしてないもん!」以外全部間違っているよ。

446:デフォルトの名無しさん
15/12/21 21:17:03.21 7dJZ8TPE.net
>>436
落ちないけど?
どうして例外が投げられると落ちると思い込んだの?
たとえ例外ハンドラが設定されていなくてもアプリケーションが異常終了しない言語/環境は普通に存在するよ?
自分の無知を動的型付のせいにしないでくれる?

447:デフォルトの名無しさん
15/12/21 21:17:58.88 7dJZ8TPE.net
>>438
ぜーんぶ君の無知からくる妄想。正直言って、出てくる感想は「バカ」。

448:デフォルトの名無しさん
15/12/21 21:18:59.25 mofV3EhK.net
>>440
なるほど!
じゃあ訂正するよ
Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。
A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。

うあははははwww

449:デフォルトの名無しさん
15/12/21 21:20:42.70 mofV3EhK.net
な? インターフェースに不整合があってエラーで動かなくても
落ちなければ、不具合ではないっていう考え方なわけさ。
動的のアプリの質が悪い理由がわかるだろう。
こんな感じでいっつもいきあたりばったり
無計画に修正してるんだよ。

450:デフォルトの名無しさん
15/12/21 21:21:32.67 7dJZ8TPE.net
>>439
>実行時で型に関するエラーが起きないってのは、起きないよう注意を払ってプログラムを書くことができる、じゃなくて、
>原理的に起こせない、っていう意味で言ったんだけど、分かる?
実行時型エラーという概念が存在しない言語(動的型付言語)では、原理的に実行時型エラーなんて起こせませんが、何か?

451:デフォルトの名無しさん
15/12/21 21:23:57.49 7dJZ8TPE.net
>>442
>Q. ある機能を実行すると、エラーで例外を吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。
>A. 型安全なので不具合ではありません。言語仕様通りです。なので修正しません。
はい、これも間違い。
メソッドが見つからなくても例外を抑制することもできるし、デフォルト動作を変更することもできる。
当然、「画面にエラーを出す」必要もない。
実行を継続して、機能を利用することができます。
残念でしたw

452:デフォルトの名無しさん
15/12/21 21:24:24.57 7dJZ8TPE.net
>>443
というわけで、やっぱり君は自分の無知を動的型付言語のせいにしているだけでした。

453:デフォルトの名無しさん
15/12/21 21:25:33.03 7dJZ8TPE.net
>>443
というわけで、静的型付言語の世界観で勝手に動的型付言語を誤解して、
間違いだらけの妄想を振りまいているのは君でした。
お・ば・か・さ・ん

454:デフォルトの名無しさん
15/12/21 21:27:09.59 mofV3EhK.net
>>445
じゃあこういうことか
Q. ある機能を実行すると、エラーで�


455:瘧Oを吐いて(落ちます⇒訂正) 落ちずに画面にエラーが出て、機能が使えません。 A. バージョンアップして修正しました。 画面にエラーを出さないようにエラーを握りつぶしました。 該当の機能は正しく動きませんが、 他の機能が動いているんだからいいじゃないか? うははははwwww



456:デフォルトの名無しさん
15/12/21 21:27:32.36 7dJZ8TPE.net
静的型付と動的型付はそれぞれ別のアプローチを取っているだけなのに、
静的型付しか知らないばっかりに動的型付を否定しなければ静的型付のメリットを説明できない。
これって静的型付言語ユーザとしても恥ずかしいことだと思うよ。

457:デフォルトの名無しさん
15/12/21 21:28:05.77 7dJZ8TPE.net
>>448
もちろん、それも大間違い。自分の無知をさらすのって、そんなに楽しいの?

458:デフォルトの名無しさん
15/12/21 21:28:51.88 mofV3EhK.net
静的型付と動的型付はそれぞれ別のアプローチを取っているだけなのに、
動的型付しか知らないばっかりに静的型付を否定しなければ動的型付のメリットを説明できない。
これって動的型付言語ユーザとしても恥ずかしいことだと思うよ。

たしかに! 動的型付けのメリットは出てない!

459:デフォルトの名無しさん
15/12/21 21:29:13.17 wZBXbgJl.net
静的の人、論点ずらしまくりすぎ。
しかも関係ないところぶったたいて回収される、の繰り返しじゃん。
こんなこといくらやっても余計に惨めになるだけだと思うが。

460:デフォルトの名無しさん
15/12/21 21:29:18.17 mofV3EhK.net
>>450
おや?手詰まりですかw
今度は何もいいませんでしたねwww

461:デフォルトの名無しさん
15/12/21 21:30:09.24 +DYxsHCL.net
Rubyなどのスクリプト言語はトランスレーターでインタープリターが理解できる言語に変換するだけだから実行自体するという概念自体存在しないよな。

462:デフォルトの名無しさん
15/12/21 21:32:14.81 mofV3EhK.net
>>452
なんもずらしてないよ?
より確実に堅牢なシステムを作るには静的がいいと言ってる。
静的型は、単体テスト+型チェックの二重のチェックの
仕組みによりより堅牢なシステムが作れる。
動的型は 単体テストしか 出来ない。
型チェックは機械的で矛盾がないチェックシステムだから
低いコストで大きなメリットを得られる。
動的だと、インターフェースに不整合でも、例外が出て
それを捉えて画面に表示したりしなかったりするから
システムが動かなくてもいいじゃないかって言ってるだろう?w

463:デフォルトの名無しさん
15/12/21 21:41:33.25 w/TLv4VO.net
>>433
>列車とトラックの比較にしか思えない
まぁ、そうだね。
トラックが自由に移動できるのを利点として使われてるとこを
「トラックは事故を起こす!レールを走ってないからだ!」
「えー?なにそれ。つか、列車は自由に配送できないじゃん」
「列車も駅から配送するシステムがあるからできる!」
「え…それちがくね?」みたいなやりとりをずっとw

464:デフォルトの名無しさん
15/12/21 21:44:22.27 mofV3EhK.net
>>456
あぁ、でも静的で作れないものはなにもないよ。
目的はシステムを作ることであって
動的にクラスを変えたりすることじゃないんだ。

465:デフォルトの名無しさん
15/12/21 21:48:12.37 2gy+Cq/9.net
すまん、動的静的両方やったことない雑魚おる?

466:デフォルトの名無しさん
15/12/21 21:48:24.54 wZBXbgJl.net
それほど明らかでないことを断定しているだけで議論になってないと思いますが、、、
まあいいでしょう。
で、それがオブジェクト指向か関数型かという議論にどう関係あるんですか?

467:デフォルトの名無しさん
15/12/21 21:54:01.30 VzjtfJRf.net
>>443
>動的のアプリの質が悪い理由がわかるだろう。
どうやらこの人はemacsよりも拡張性が高く安定したエディタを
静的言語でいとも簡単に実装してしまうスーパーハカーらしい ()

468:デフォルトの名無しさん
15/12/21 21:54:11.30 +DYxsHCL.net
型とは何かから始めないといけないようだな。ここで提案なのだが、これからの議論は定義から命題を評価する証明形式の厳格な議論にしようではないか。

469:デフォルトの名無しさん
15/12/21 22:18:22.42 mofV3EhK.net
>>460
> どうやらこの人はemacsよりも拡張性が高く安定したエディタを
emacsはC言語だったね。
URLリンク(git.savannah.gnu.org)

470:デフォルトの名無しさん
15/12/21 22:19:39.20 XjOZdx5G.net
結局、動的だろうと静的だろうとインターフェースが一致してれば簡単に処理を変えられるし、インターフェースが想定外に変わるならそれに合わせて書き換えが必要というだけでしょ?

471:デフォルトの名無しさん
15/12/21 22:23:11.82 mofV3EhK.net
>>463
そうそう。できることは変わらない。
それをするためのコストが違う。
静的であれば、単体テスト+静的解析があるから
少ないコストで品質の高いアプリが作れる

472:デフォルトの名無しさん
15/12/21 22:37:06.08 K9YQZ40/.net
c++ をめちゃくちゃ否定する linus の気持ちがよくわかる例になってるな。

473:デフォルトの名無しさん
15/12/21 23:20:00.93 pll+pxvz.net
だから、型が重要なら、型チェックをすればいいだけだろ
動的型付けな言語は大抵の場合、インタープリタ型の言語なんだから、テストしたい部分だけ、テスト出来るんだしなんの問題もないよ

474:デフォルトの名無しさん
15/12/21 23:38:13.37 mofV3EhK.net
> だから、型が重要なら、型チェックをすればいいだけだろ
だからコストの問題。
静的解析にコストはほとんどかからないから
静的言語の単体テスト+静的解析はコストが同じで
単体テストだけの動的言語よりも高い品質になる。

475:デフォルトの名無しさん
15/12/21 23:55:15.47 w/TLv4VO.net
なにがなんでも貨物列車がいちばんコストが安いんだってさー

476:デフォルトの名無しさん
15/12/21 23:56:05.45 GVmX1WAG.net
コストコストうるせーよ

477:デフォルトの名無しさん
15/12/22 00:33:15.91 EKiu80aU.net
>>467
どんなにテストしても、バグが存在しない証明にはならない
単体テストと静的解析を行っているから、バグが少ない気がしているだけ

478:デフォルトの名無しさん
15/12/22 00:38:03.90 3ywPhKdj.net
証明できないならテストしなくてよくね?

479:デフォルトの名無しさん
15/12/22 01:28:00.98 cWRmjQVf.net
Javaドカタが開発に1月かかる機能が
Smalltalkでは単体テストの作成込みで数時間で終わる
それくらい生産性に差がある事を忘れちゃいけないよ
Javaドカタが時間に追われてマトモにテストしてないコードと
Smalltalkerが悠々とテストしたコードでは
後者の方が品質高いよ

480:デフォルトの名無しさん
15/12/22 01:30:05.05 +ulsEic8.net
「列車はレールが決まってるからダイヤ解析で事故はなくなる
トラックは道を気ままに走るから知らないとこ走って事故る」的な
鉄ちゃんみたいなキチ主張だろう。
鉄道以外じゃルート計算できないと思い込んでる。

481:デフォルトの名無しさん
15/12/22 01:30:46.89 nHx61Hkp.net
Javaドカタが開発に1月かかる機能が
Smalltalkでは単体テストの作成込みで数時間で終わる
証拠はなないが、これはただしい。
だからSmalltalkの勝ち!

482:デフォルトの名無しさん
15/12/22 01:31:47.61 +ulsEic8.net
>>472
なりすましてムリすんな。
おまえは昨日20回も顔真っ赤レスしたばっかなんだからw

483:デフォルトの名無しさん
15/12/22 01:32:46.10 nHx61Hkp.net
>>473
鉄オタかよw ほんと鉄道に例えるのが好きだな。

鉄道使えば、より安全に高速に目的を達成できるって話だろう。
目的は、目的地につくことであって、
いろんな道を通ることじゃねーよw

484:デフォルトの名無しさん
15/12/22 01:35:42.53 bkvH7oDt.net
遠くまで運ぶなら鉄道使って最後だけトラックとかが一番いいと思うけど

485:デフォルトの名無しさん
15/12/22 01:35:42.57 nHx61Hkp.net
静的解析を使えば、レールに乗ったようにスムーズに開発ができる。
これを静的解析onRailsという。

486:デフォルトの名無しさん
15/12/22 05:30:44.16 Cv+dIUET.net
ニイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイイップwwwwwwwwwwwwwwwwwwwwwwwwwwwww

487:デフォルトの名無しさん
15/12/22 08:50:57.91 h3Yx9vGx.net
静的解析に夢見過ぎ。
そこまでバグ発見に役立つケースなんてめったにない。
しかもいうほど動的言語での静的解析も手間ってほどではない。
少なくともコンパイル言語での開発に比べればよっぽど低コストだな。
コスト意識が致命的におかしい奴が居るな。

488:デフォルトの名無しさん
15/12/22 09:04:13.39 fvYXJdnq.net
>>480 が結論でOK

489:デフォルトの名無しさん
15/12/22 09:04:28.25 t0KrzUg4.net
>>476
そんなだからドカタは新しいものやサービスが作れないんだよ
既に多くの人が通ってレールまで敷かれた場所しか行けないんだから

490:デフォルトの名無しさん
15/12/22 09:05:44.03 fvYXJdnq.net
このままじゃ462が可哀想だよ...

491:デフォルトの名無しさん
15/12/22 09:06:00.38 71TpXAZk.net
コストコストってうるせーな

492:デフォルトの名無しさん
15/12/22 10:23:52.98 nHx61Hkp.net
>>480
> そこまでバグ発見に役立つケースなんてめったにない。
それはバグとして換算してないからだろ。
どうせエラーで落ちて修正したのをバグと認識してないんだろ?
静的解析は普段の開発でしっかり役に立ってる。
どう考えても


493:落ちるコードが、いちいち実行しなくてもわかるからな。 実行しなくても修正できる。この時点で修正のコストが下がってる。 もちろんそれだけでないのは言うまでもない。 インターフェースに不整合をすぐに修正できるし、 特定の関数に依存している部分をすぐに調べることもできる。 動的言語だとgrepで調べるしかないからな。同じ名前だと 全く違うものでもヒット、冗長な名前にしないといけない。 こういう普段の開発でもコストが下がる。 コードが成長するにつれて、最初の設計では無理が出てきても、 それを自然な形に直すことができる。 動的だと変化が怖くて、大胆な修正ができない。 どんどんコードは古くなっていき、すぐに手がつけられないようになる。



494:デフォルトの名無しさん
15/12/22 10:28:44.26 Hf0cXCbq.net
作文は得意だけれど算数は苦手みたいですね。

495:デフォルトの名無しさん
15/12/22 10:31:06.94 lJMFjOKo.net
そういう具体性のない煽りが、信用を無くすんですよw

496:デフォルトの名無しさん
15/12/22 12:30:06.51 fvYXJdnq.net
>>485
>動的だと変化が怖くて、大胆な修正ができない。
ここが笑うポイントですか?
すごいですね、あなたプロのコメディアンになったらきっと売れますよ。

497:デフォルトの名無しさん
15/12/22 12:43:42.29 bkvH7oDt.net
小さい規模でパフォーマンスをそこまで気にしないなら動的型のスクリプト言語
規模が大きくなったり速度重視なら静的型のコンパイル言語
動的型のフットワークの軽さとかもいいし、静的型の実行速度と優れた補完やエラー表示も便利
結局適材適所

498:デフォルトの名無しさん
15/12/22 12:58:50.30 lJMFjOKo.net
>>488
何も間違ってないよ?
動的は、実行時に変化することは得意でも
ソースコードを修正することは不得意。
少しの修正があちこちに影響して、それがわかりづらいから
修正が怖くなる。

499:デフォルトの名無しさん
15/12/22 13:26:08.65 fVb6IQsc.net
その程度の規模のコードすら書いたことないから
わからないんだろ

500:デフォルトの名無しさん
15/12/22 13:56:00.22 /QaJe51w.net
規模ねぇw
使いモンになるOSを書いたことがあるような人いるのかな?
5000万行~8000万行規模らしいが
これはお前らにとって大きいの?それとも小さいの?w

501:デフォルトの名無しさん
15/12/22 14:30:13.32 lJMFjOKo.net
>>492
少しは計算しろよ
5000万行、仮に1日に1万行(1000行/時の10時間労働)
書いたとして5000日(約13.7年)だ

502:デフォルトの名無しさん
15/12/22 14:38:13.03 cB2HLJLU.net
Objective-Cで作ってるMacOSX(->iOS)と
C++で作ってるWindowsみりゃどっちが
開発苦戦してるかすぐわかりそーなもんだが

503:デフォルトの名無しさん
15/12/22 14:41:56.77 lJMFjOKo.net
そういう間違った比較するやつは
あたまが悪いと言わざるをえないね。

504:デフォルトの名無しさん
15/12/22 15:04:38.37 npw19McH.net
規模とか言っちゃってるのは
何行書いたことある奴が何行書いたことあるやつに言ってるんだろうかw
1000が100に言ってるんだろうか?
10000が1000に言ってるんだろうか?
十万行ほど書いた奴はもう「規模」とかって言う言い方しない気がする
わざわざ規模で話をしようとしない気がする

505:デフォルトの名無しさん
15/12/22 15:09:30.07 cB2HLJLU.net
いや?
基本的にこっちもMac/iOS/Objective-C触って7~8年てとこだけど
下のドキュメントの最初の10ページみたいな
90年にこんな実装なんか提唱したら空論だと笑われたようなことを
25年前から仕込んでたNeXTが最終的に勝ってんだなぁと感心したし。
Objective-Cプログラミングの概念(日本語ドキュメント)
URLリンク(developer.apple.com)
あきらかにきみが棲んでる付け焼き刃の帝国の方が
効率が悪くてトータルコストがかかってる。
プログラマーに賽の河原で石を積む仕事を与え続けてるって点では
その効率の悪さで雇用の創出にはなってるとは思うけどね。

506:デフォルトの名無しさん
15/12/22 15:14:07.59 71TpXAZk.net
しょうもない業界だなあ。

507:デフォルトの名無しさん
15/12/22 16:41:01.82 VCjn0gZS.net
ここに限らんよ
サボる奴がいるから成り立つ生態系もある

508:デフォルトの名無しさん
15/12/22 16:47:52.67 bkvH7oDt.net
Macって、UNIXだし大部分はCとかC++なんじゃね?
開発言語よりも近代になってから互換性を完全放棄してもともと安定感の高いUNIXに強制移行したアドバンテージの方が大きいと思う
あと、動的型付けは遅いからOSの中核には向かないと思うけど

509:デフォルトの名無しさん
15/12/22 18:31:48.05 cB2HLJLU.net
>>500
OSXそのものがMachとかマイクロカーネル
(サービスを適宜呼び出してロードすることでOSの巨大化を防ぐ)UNIXの流れだから
コア部はCで各サービス呼び出しはObjective-Cのメッセージじゃないかな。
URLリンク(ja.m.wikipedia.org)マイクロカーネル
URLリンク(ja.m.wikipedia.org)

510:uy ◆Qawu9.2l1E
15/12/22 18:48:58.47 T3Xhdrtc.net
このスレアスペが会話混じってるよね
何言ってるか分からん奴が常にいてダメだわこのスレ

511:デフォルトの名無しさん
15/12/22 18:54:47.38 fvYXJdnq.net
C++で実装されたgnomeやWindowsと
Objective-Cで実装されたCocoaのUIの質を比較すれば
静的型付言語でUI環境を構築することは愚策中の愚策だな。
素人目には静的型付のほうが大規模なソースを変更しやすく見えるのだろうが
実際には動的型付のほうが大規模で質の高いソースを維持できるという実例。

512:デフォルトの名無しさん
15/12/22 21:49:46.57 lJMFjOKo.net
というか、世の中大規模なものは殆ど静的なんですが?

513:デフォルトの名無しさん
15/12/22 21:51:48.35 h2+OmYvg.net
インターネットが?

514:デフォルトの名無しさん
15/12/22 22:28:45.56 PMk1cnKT.net
このスレはなんのスレですか?

515:デフォルトの名無しさん
15/12/22 22:43:09.44 lJMFjOKo.net
>>505
インターネットを実現している技術はほとんど静的ですね。
OSはもとより、基本のTCP/IPスタック。Apacheやnginxなどのウェブサーバー
sendmail、postfixなどのメールサーバー、クラウドに使われる仮想マシン技術
動画・音楽配信を支えるエンコード技術、きりがないぐらいですね。

516:デフォルトの名無しさん
15/12/22 23:03:34.39 7zsabTQH.net
>>506
お気に入りの言語を擁護しつつC#をdisるスレ

517:デフォルトの名無しさん
15/12/22 23:16:12.47 c/oP9Kt2.net
2chもPerlか何かで書かれていたけどサーバーの負荷が問題になって
C言語で書きなおされたんだったっけか?

518:デフォルトの名無しさん
15/12/22 23:32:12.42 cWRmjQVf.net
>>507
C言語が神すぎるからね
仕方ないね

519:デフォルトの名無しさん
15/12/22 23:33:08.49 h3Yx9vGx.net
まあ速度出すなら型情報があった方がいいだろうね。
数値計算なんかで配列にまっすぐアクセスする場合は明らかに型があった方が有利。
そりゃ開発効率考えたら動的のがいいだろうけれど。

520:デフォルトの名無しさん
15/12/22 23:44:58.21 lJMFjOKo.net
動的が開発効率いい理由は何だ?
普通は、動的にクラスを作ったり、しないだろう?

521:uy ◆Qawu9.2l1E
15/12/22 23:46:55.76 DEhMkplY.net
>>506
アスペの日記帖

522:デフォルトの名無しさん
15/12/22 23:59:05.73 h2+OmYvg.net
>>512
まだ、自分の身内以外が外の世界で新しいクラスを作って送ってくることがある
現実世界が理解できないんだな。

523:デフォルトの名無しさん
15/12/23 00:12:46.47 B7iIvlVa.net
> まだ、自分の身内以外が外の世界で新しいクラスを作って送ってくることがある
それをライブラリっていうんですよ?
分割コンパイルも、サードパーティライブラリも
ずっと前からの常識です。
なんでこんなことを指摘してドヤ顔してるんだろうか?

524:デフォルトの名無しさん
15/12/23 00:15:50.43 IHjjwtj5.net
プラグイン


525:みたいなのもあるけど 大体はDLLとかだから結局静的なんだよな



526:デフォルトの名無しさん
15/12/23 00:55:02.76 +daiOjD/.net
自分の身内以外がクラスを作るって、それプラグインの話だよなぁ
なんで静的じゃ作れないと思ってるんだろうか?
圧倒的に無知。

527:デフォルトの名無しさん
15/12/23 01:02:39.62 oeWwCbV9.net
また、駅から配送するシステムがあるから大丈夫!ですか…
列車が時代遅れでいらないっていいかげんわかりましょうよ?w

528:デフォルトの名無しさん
15/12/23 01:09:24.49 +daiOjD/.net
これが時代の流れなんだよなぁ。
時代遅れにならないようにしようよね。
URLリンク(gihyo.jp)
> Ruby 3のアイデア
>
> まつもとさんは,Ruby 3へ向けて実装したいアイデアとして,次の3つを挙げました。
>
> Concurrency
> JIT
> 静的型付け
>
> このうち今回の講演で取り上げたのは静的型付けについてでした。

529:デフォルトの名無しさん
15/12/23 01:11:06.80 +daiOjD/.net
URLリンク(gihyo.jp)
> 静的型付けのメリット
>
> 静的型付けはRuby以外の言語でも注目されています。では,静的型付けを
> 導入することでどのようなメリットがあるのでしょうか。
> よく言われている静的型付けのメリットについて,
> まつもとさんは「パフォーマンス」「コンパイル時のチェック」
> 「ドキュメンテーション」の3つを挙げました。
まつもとさんわかってるw

530:デフォルトの名無しさん
15/12/23 01:32:02.82 4bnLgUt/.net
それは誰でもわかってるだろ…

531:デフォルトの名無しさん
15/12/23 04:51:55.89 9nXG813n.net
>>507
どれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。
色々な言語が「強い静的型付けのシステム記述言語」として作られたが
ろくに使われずに消えていったわけだが。
試しに、強い静的型付きの言語で実装されたOSや
ネットワーク関連の重要なアプリケーションの例を出してみな?

532:デフォルトの名無しさん
15/12/23 05:30:34.30 o1Ym9CfH.net
大事なことは言語ではなく、タオにつながることなのじゃ。ふぉっふぉっふぉ。

533:デフォルトの名無しさん
15/12/23 05:33:17.13 +daiOjD/.net
> 試しに、強い静的型付きの言語で実装されたOSや
> ネットワーク関連の重要なアプリケーションの例を出してみな?
LinuxやUnix

534:デフォルトの名無しさん
15/12/23 05:55:19.92 +daiOjD/.net
>>522
> どれも静的型厨が大嫌いな「弱い型付け」の言語なんだけど。
ん?なんか盛大な勘違いをしているねw
弱い型付けは静的型付けのことを意味していて、
動的型付けのことじゃないよ。
弱くても型付けなんだから。
はい、一覧
URLリンク(ja.wikipedia.org)

535:デフォルトの名無しさん
15/12/23 05:57:16.98 +daiOjD/.net
>>525のリストに、書いてある
「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って
いうのなら、ぷぷぷぷぅって言うしかないけどw

536:デフォルトの名無しさん
15/12/23 07:29:58.35 0ZC/YhCb.net
>>524
もしかして、Cは「強い静的型付け」の言語だと思ってるの?
これはまた…2ちゃんにしてもあまりにも無知すぎないか?

537:デフォルトの名無しさん
15/12/23 07:32:15.10 0ZC/YhCb.net
>>526
>「C言語の安全でない弱い静的型付け」が静的型厨が大嫌いな(略って
> いうのなら、ぷぷぷぷぅって言うしかないけどw
Hindley-Milner型推論の言語を推してる人達は
「C言語の安全でない弱い静的型付け」が大嫌いだよw
君はバカすぎるからひっこんでなさいw

538:デフォルトの名無しさん
15/12/23 07:37:31.86 +NQ/xqJl.net
>519,520
都合の悪いところは無視ですかw
>今のRubyが静的な型を持っていない理由
>
>ここまで,まつもとさんは静的な型を持つメリットを取り上げました。では,なぜ今のRubyは静的な型を持っていないのでしょうか。
>
>まつもとさんはRubyが静的な型を持っていない理由について,次の3つを挙げました。
>
>ダックタイピングとの相性の悪さ
>使うかどうかを選択可能(Optional)にしなければいけない
>DRYの哲学に反する

539:デフォルトの名無しさん
15/12/23 07:54:14.96 +daiOjD/.net
>>528
> Hindley-Milner型推論の言語を推してる人達は
だれそれ?w
そんな人はお前以外に居ません。

540:デフォルトの名無しさん
15/12/23 07:56:06.50 +daiOjD/.net
そもそも、型推論うんぬんじゃなくて、
「静的型付け」大好きですからねw

541:デフォルトの名無しさん
15/12/23 07:58:08.92 +NQ/xqJl.net
c が型に対して弱いなんて有名なことだろう。
ストラウストラップが c++ でやりたかった事の一つが c の型をもっときっちりすることだったわけだが、
c の互換性に引っ張られて無理でしたっていう。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch