パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

null参照の考案は10億ドル単位の過ち?」記事へのコメント

  • Curlの例 (スコア:2, 興味深い)

    by Anonymous Coward

    もしかしたら「Spec#」がやっている事と同じ事の紹介かも知れませんが,ちょっと Spec# は詳しくないので,代わりに Curl の例を紹介させてくださいませ.

    Curl は HTML の代わりだからプログラミング言語とは違うのでは?とか言われる事がありますが,とんでもない,れっきとした関数型チックでオブジェクト指向的なプログラミング言語であります.
    「nullの無い世界」とはちょっと違いますが,Curl には,ある変数が null か否かをコーディングの段階ではっきり意識せざるを得ない仕組みが搭載されています.

    || ←これはコメントです.
    || Something クラスの変数 obj を宣言し,初期

    • by Anonymous Coward on 2009年03月06日 1時27分 (#1525831)

      もうちょっと古典的な例でいえば、
      (リレーショナル)DBには「NOT NULL」という概念が普通に存在してますね。

      それはそうと、
      NULLもそうだし、あと別件だが例えばStringの長さとかもそうなんだけど、
      それらは「型」の概念にいれてしまっていいんじゃないか?と思う。

      そういう意味では、

      >Java でも @NonNull アノテーションが

      アノーテーションなんてメタな仕組みに逃げるんじゃなく、言語仕様からきちんと磨きなおして欲しいもんだ、と、たとえばJavaについては頻繁に思いますね。

      注:「型が違う」ことと「代入互換でなくなる」こととはイコールではありません。
      ただ、「代入が片道切符になる」ケースは非常に多くなりますけどね。大きい文字列に小さい文字列は代入できてもいいけど逆は明らかに駄目だ。(OOPの親子クラスな変数のあいだでの代入可能性もそうだね。)

      ああ。そういやRDBのNOT NULLも、必ずしも実行前(コンパイル時)に教えてくれるとは限りませんでしたね。そういう意味ではちょっとハズレだったかな。残念。

      (というかRDBについてはNULLつまり「データが無いかどうか」だけじゃなく「ある検索が返す行数が最大1件か複数件か」もまた型であって欲しいのだが、そうなってないので凄く不便だ。ふつうのプログラム言語ならXかX配列かという大きな違いになるのが普通なんだが、データを手堅く操作するのが売りのはずのRDBにその区別が無いってのは結構怖い。)

      親コメント
      • by Anonymous Coward
        (真の)RDBとSQLDBを混同していませんか?
        というか、RDBとは何かちゃんと分かっていますか?
        • by Anonymous Coward
          あなたが元ACの間違いを指摘しRDBとは何かを説明しないのはなぜですか?
          一知半解を書いて突っ込まれるのが嫌だからですか?

私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson

処理中...