アカウント名:
パスワード:
>あればいいんじゃないかなぁ。つかどうしてないんだろ。
それれが有る言語を「高級言語」と呼びます。
いささか乱暴な言い方ですが、高級とはおおむねそういう方角を向くことを言います。
一方で、そういうモノを見事に動かすには結構な実行時コストがかかるわけで、そのコストを嫌って「自己責任でやってね」という方針にしてるのが「低級言語」。
まず何が起きるか判ったもんじゃないC言語のレベル。Javaはもう少し上のレベルで、未定義とまでは言わないものの、すごく扱いづらい挙動をするだけ。Rubyは更に少し上のレベルで、nilもまたオブジェクトであり、かつ振る舞いが好きなようにカスタマイズできる。method_missingとか使えば「状況ごとに」振る舞いを変えることも出来る。
まあいろいろな高級度にそれぞれの言語が位置しているわけです。
参照はがしてもSEGVらず、数値として評価したら0、文字列として評価したら空文字、代入しても何も起きず、関数としてコールしたらすぐ戻り値0で帰ってきて、パス名とかネットワークアドレスとして開いたら/dev/null
はたしてそれは安全でしょうか。
操作するべき対象ではないものを操作しても、一見正しく動作しているかのように動作してしまい、しかもその動作は決して本来の期待された動作ではないなんて。
いったいどれほど紛らわしく、発見し難い欠陥となることやら。
つObjective-C
本質的にバグならなんとなく動くよりその場でクラッシュしたほうが幾分マシ。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
犯人は巨人ファンでA型で眼鏡をかけている -- あるハッカー
NULLがない世界 (スコア:0)
# え?NULLがあっても、NULLなんかでは初期化しませんか。そうなんですか。
Re:NULLがない世界 (スコア:1, 興味深い)
参照はがしてもSEGVらず、数値として評価したら0、文字列として評価したら空文字、代入しても何も起きず、関数としてコールしたらすぐ戻り値0で帰ってきて、パス名とかネットワークアドレスとして開いたら/dev/nullみたいな。
Re:NULLがない世界 (スコア:2, 参考になる)
>あればいいんじゃないかなぁ。つかどうしてないんだろ。
それれが有る言語を「高級言語」と呼びます。
いささか乱暴な言い方ですが、高級とはおおむねそういう方角を向くことを言います。
一方で、そういうモノを見事に動かすには結構な実行時コストがかかるわけで、
そのコストを嫌って「自己責任でやってね」という方針にしてるのが「低級言語」。
まず何が起きるか判ったもんじゃないC言語のレベル。
Javaはもう少し上のレベルで、未定義とまでは言わないものの、すごく扱いづらい挙動をするだけ。
Rubyは更に少し上のレベルで、nilもまたオブジェクトであり、かつ振る舞いが好きなようにカスタマイズできる。method_missingとか使えば「状況ごとに」振る舞いを変えることも出来る。
まあいろいろな高級度にそれぞれの言語が位置しているわけです。
Re:NULLがない世界 (スコア:1, 興味深い)
言語標準として付いて欲しいという話かもしれませんが。理想のnullってのはケースバイケースなので難しいかも。
Re: (スコア:0)
はたしてそれは安全でしょうか。
操作するべき対象ではないものを操作しても、
一見正しく動作しているかのように動作してしまい、
しかもその動作は決して本来の期待された動作ではないなんて。
いったいどれほど紛らわしく、発見し難い欠陥となることやら。
Re: (スコア:0)
だからCより改善されたいくつかの言語は、自動変数を0なりnullなり初期化したり、nullオブジェクトにメッセージを送ったときの挙動を言語仕様で規定したりしているわけで。
Re: (スコア:0)
Re: (スコア:0)
つObjective-C
Re: (スコア:0)
本質的にバグならなんとなく動くより
その場でクラッシュしたほうが幾分マシ。