アカウント名:
パスワード:
有意でも影響が大きくないなら、別にいいかな。実際、タイプミス程度だったら、テストで見つかるし。
どんな言語でもテストをしていないコードに対して品質を語るなんて論外であり、言語仕様の不思議な力でバグがなるなるなんてことはないでしょう。
そう考えると、テスト周りのツール(プロファイラ、トレーサーetc)やデバッガの充実度が重要ではないでしょうか。ただ、言語仕様と関係ない層で動作するものも多いので、非常にオフトピック気味です。
テストやデバッグに関係する言語仕様というと、例外処理が思いつくが、それらが品質に有意な差を有無か生むかというと、疑問符が付く。
強力な型システムを持つ言語であれば、一部の仕様レベルのバグでさえ発見可能になり、その状態ではコンパイルすら出来ません。型システムは不思議な力ではなく銀の弾丸でもありませんが、無駄に自分の脚を吹き飛ばす可能性を大いに減らします。バグを無くす機能というより、バグを生み出す可能性を減らす機能と考えるべきです。
例外については戻り値によるエラー通達と比べれば、例外の方がエラーを扱いやすくなるので、品質に貢献すると思います。(goのように多値を返す機能によって例外と同じことが出来るようにするアプローチもありますが)
問題は強力な機能ほど使いこなすのが難しいという点ですね。特に例外は、newしてthrowするだけですぐ書けるので、出来ない人が使うと悲惨な事になりやすいです。強力な型はそこまでお手軽ではないし、定義部分だけでいろいろ推測出来るので、それほど悲惨なことにはならない印象。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
テスト周りのツールとデバッガ (スコア:1)
有意でも影響が大きくないなら、別にいいかな。
実際、タイプミス程度だったら、テストで見つかるし。
どんな言語でもテストをしていないコードに対して品質を語るなんて論外であり、
言語仕様の不思議な力でバグがなるなるなんてことはないでしょう。
そう考えると、テスト周りのツール(プロファイラ、トレーサーetc)や
デバッガの充実度が重要ではないでしょうか。ただ、言語仕様と関係ない層で
動作するものも多いので、非常にオフトピック気味です。
テストやデバッグに関係する言語仕様というと、例外処理が思いつくが、
それらが品質に有意な差を有無か生むかというと、疑問符が付く。
Re: (スコア:0)
強力な型システムを持つ言語であれば、一部の仕様レベルのバグでさえ発見可能になり、その状態ではコンパイルすら出来ません。
型システムは不思議な力ではなく銀の弾丸でもありませんが、無駄に自分の脚を吹き飛ばす可能性を大いに減らします。
バグを無くす機能というより、バグを生み出す可能性を減らす機能と考えるべきです。
例外については戻り値によるエラー通達と比べれば、例外の方がエラーを扱いやすくなるので、品質に貢献すると思います。
(goのように多値を返す機能によって例外と同じことが出来るようにするアプローチもありますが)
問題は強力な機能ほど使いこなすのが難しいという点ですね。
特に例外は、newしてthrowするだけですぐ書けるので、出来ない人が使うと悲惨な事になりやすいです。
強力な型はそこまでお手軽ではないし、定義部分だけでいろいろ推測出来るので、それほど悲惨なことにはならない印象。