アカウント名:
パスワード:
静的型付けがあると機械的に検証しやすいのでバグ削減効果があるのはわかるが、それも程度問題じゃないかな?文法的にも記述的にもなんの問題もないが、その動作では都合が悪いという仕様バグの方がよほど大きな問題であるケースが多数派だと思うのです。
:wq
静的型付けな言語の方がIDEのサポートが強力に作用するってのもある。Rubyなんかは実行上は型安全だけどIDEがサポートしやすい型安全性が全力で否定されてるのでだいぶキツい。
rubyでプログラム組んでるけど、rubyで開発するのは正直地獄だと思う・実行してみたら、メソッドがないと言われて落ちる・ある機能を実装→うまくいかない→あるメソッドで渡す型がメソッドの期待するものと違っていたなんてことが良く起こるし…
ruby推進派に言わせればテスト書けというけど、テスト書くのって面倒なんですよ(中にはテスト書けないやつもあるし)
上の人とは別人ですが。ある程度の規模ならテストを書いたほうがいいのは当然ですが、書いたところで>実行してみたら、メソッドがないと言われて落ちる>ある機能を実装→うまくいかない→あるメソッドで渡す型がメソッドの期待するものと違っていたというのはあまり有効に排除できませんからねぇ。テストケース自動生成とかがもっと発達すればどうなるか分かりませんが、そういうのは静的型付けのお家芸ですし。
結局コード内にドキュメントとして型を書くとか、関数の入り口で型チェックするとかいう話になって、それなら静的型付けでいいんじゃないかということに・・・
個人的にRubyはPythonなどに比べて特に動的型付けの暗黒面が強い印象がありますが、なんででしょうね。DSLみたいなアクロバティックな部分が多いからでしょうか。# javascriptはほとんど触ったことないですがあれも大変そう
わたしは Python より Ruby のブロックの方に魅力感じますけどねぇ。Python、書き方よく分からんというのもあるけど。配列に突っ込むときの型チェックというけど、動的言語のチェックは、静的言語における型チェックとは違いますよねぇ。メソッドのあるかなしかのチェックで、型チェックじゃない。すると、配列に適応する処理の抽出の仕方が、そもそも動的言語と静的言語とはまったく違う。同じメソッドがあり、その結果が期待通りでさえあれば、型は違っていていい。それと相まって、ブロックでの処理ぶん回しって、なかなか魅力あると思うんですけど。まあ、用もないところでの黒魔術は止めてくれというのは、同意します。テストは、致命的バグ仕込まない程度の要所要所でいいのでは?足りない分は、リファクタするとき、慌てて追加www
VBが一番理想的だなと思ったVal型なら動的言語として振る舞い、必要なら型を指定できるという
javaのrequestクラスや、関数プログラムのモナドみたいに、大枠は静的だけど、内部の各メンバは動的やり放題とか、スクリプト言語でも、オブジェクト拡張時には性的だとかドッチもドッチにしか見えないですが、、
もううろ覚えだけど、String 型の a = "1", b = "2" に対して、a + b と書くとコンパイルエラーにも実行時エラーにもならずに 3 になるような言語が理想的なんですか?
>スクリプト言語でも、オブジェクト拡張時には性的だとか
拡張時には性的……(ゴクリ)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
それでも銀の弾丸ではない (スコア:3, 興味深い)
静的型付けがあると機械的に検証しやすいのでバグ削減効果があるのはわかるが、それも程度問題じゃないかな?
文法的にも記述的にもなんの問題もないが、その動作では都合が悪いという仕様バグの方がよほど大きな問題であるケースが多数派だと思うのです。
:wq
Re: (スコア:2, 興味深い)
静的型付けな言語の方がIDEのサポートが強力に作用するってのもある。
Rubyなんかは実行上は型安全だけどIDEがサポートしやすい型安全性が全力で否定されてるのでだいぶキツい。
Re: (スコア:0)
rubyでプログラム組んでるけど、rubyで開発するのは正直地獄だと思う
・実行してみたら、メソッドがないと言われて落ちる
・ある機能を実装→うまくいかない→あるメソッドで渡す型がメソッドの期待するものと違っていた
なんてことが良く起こるし…
ruby推進派に言わせればテスト書けというけど、テスト書くのって面倒なんですよ
(中にはテスト書けないやつもあるし)
Re: (スコア:0)
上の人とは別人ですが。
ある程度の規模ならテストを書いたほうがいいのは当然ですが、書いたところで
>実行してみたら、メソッドがないと言われて落ちる
>ある機能を実装→うまくいかない→あるメソッドで渡す型がメソッドの期待するものと違っていた
というのはあまり有効に排除できませんからねぇ。
テストケース自動生成とかがもっと発達すればどうなるか分かりませんが、そういうのは静的型付けのお家芸ですし。
結局コード内にドキュメントとして型を書くとか、関数の入り口で型チェックするとかいう話になって、
それなら静的型付けでいいんじゃないかということに・・・
個人的にRubyはPythonなどに比べて特に動的型付けの暗黒面が強い印象がありますが、なんででしょうね。
DSLみたいなアクロバティックな部分が多いからでしょうか。
# javascriptはほとんど触ったことないですがあれも大変そう
Re: (スコア:0)
わたしは Python より Ruby のブロックの方に魅力感じますけどねぇ。
Python、書き方よく分からんというのもあるけど。
配列に突っ込むときの型チェックというけど、
動的言語のチェックは、静的言語における型チェックとは違いますよねぇ。
メソッドのあるかなしかのチェックで、型チェックじゃない。
すると、配列に適応する処理の抽出の仕方が、
そもそも動的言語と静的言語とはまったく違う。
同じメソッドがあり、その結果が期待通りでさえあれば、型は違っていていい。
それと相まって、ブロックでの処理ぶん回しって、なかなか魅力あると思うんですけど。
まあ、用もないところでの黒魔術は止めてくれというのは、同意します。
テストは、致命的バグ仕込まない程度の要所要所でいいのでは?
足りない分は、リファクタするとき、慌てて追加www
Re:それでも銀の弾丸ではない (スコア:1)
VBが一番理想的だなと思った
Val型なら動的言語として振る舞い、必要なら型を指定できるという
Re: (スコア:0)
javaのrequestクラスや、関数プログラムのモナドみたいに、
大枠は静的だけど、内部の各メンバは動的やり放題とか、
スクリプト言語でも、オブジェクト拡張時には性的だとか
ドッチもドッチにしか見えないですが、、
Re: (スコア:0)
もううろ覚えだけど、String 型の a = "1", b = "2" に対して、a + b と書くとコンパイルエラーにも
実行時エラーにもならずに 3 になるような言語が理想的なんですか?
Re:それでも銀の弾丸ではない (スコア:1)
>スクリプト言語でも、オブジェクト拡張時には性的だとか
拡張時には性的……(ゴクリ)