アカウント名:
パスワード:
もしかしたら「Spec#」がやっている事と同じ事の紹介かも知れませんが,ちょっと Spec# は詳しくないので,代わりに Curl の例を紹介させてくださいませ.
Curl は HTML の代わりだからプログラミング言語とは違うのでは?とか言われる事がありますが,とんでもない,れっきとした関数型チックでオブジェクト指向的なプログラミング言語であります. 「nullの無い世界」とはちょっと違いますが,Curl には,ある変数が null か否かをコーディングの段階ではっきり意識せざるを得ない仕組みが搭載されています.
|| ←これはコメントです.|| Something クラスの変数 obj を宣言し,初期
もうちょっと古典的な例でいえば、(リレーショナル)DBには「NOT NULL」という概念が普通に存在してますね。
それはそうと、NULLもそうだし、あと別件だが例えばStringの長さとかもそうなんだけど、それらは「型」の概念にいれてしまっていいんじゃないか?と思う。
そういう意味では、
>Java でも @NonNull アノテーションが
アノーテーションなんてメタな仕組みに逃げるんじゃなく、言語仕様からきちんと磨きなおして欲しいもんだ、と、たとえばJavaについては頻繁に思いますね。
注:「型が違う」ことと「代入互換でなくなる」こととはイコールではありません。ただ、「代入が片道切符になる」ケースは非常に多くなりますけどね。大きい文字列に小さい文字列は代入できてもいいけど逆は明らかに駄目だ。(OOPの親子クラスな変数のあいだでの代入可能性もそうだね。)
ああ。そういやRDBのNOT NULLも、必ずしも実行前(コンパイル時)に教えてくれるとは限りませんでしたね。そういう意味ではちょっとハズレだったかな。残念。
(というかRDBについてはNULLつまり「データが無いかどうか」だけじゃなく「ある検索が返す行数が最大1件か複数件か」もまた型であって欲しいのだが、そうなってないので凄く不便だ。ふつうのプログラム言語ならXかX配列かという大きな違いになるのが普通なんだが、データを手堅く操作するのが売りのはずのRDBにその区別が無いってのは結構怖い。)
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
私はプログラマです。1040 formに私の職業としてそう書いています -- Ken Thompson
Curlの例 (スコア:2, 興味深い)
もしかしたら「Spec#」がやっている事と同じ事の紹介かも知れませんが,ちょっと Spec# は詳しくないので,代わりに Curl の例を紹介させてくださいませ.
Curl は HTML の代わりだからプログラミング言語とは違うのでは?とか言われる事がありますが,とんでもない,れっきとした関数型チックでオブジェクト指向的なプログラミング言語であります.
「nullの無い世界」とはちょっと違いますが,Curl には,ある変数が null か否かをコーディングの段階ではっきり意識せざるを得ない仕組みが搭載されています.
Re:Curlの例 (スコア:0)
もうちょっと古典的な例でいえば、
(リレーショナル)DBには「NOT NULL」という概念が普通に存在してますね。
それはそうと、
NULLもそうだし、あと別件だが例えばStringの長さとかもそうなんだけど、
それらは「型」の概念にいれてしまっていいんじゃないか?と思う。
そういう意味では、
>Java でも @NonNull アノテーションが
アノーテーションなんてメタな仕組みに逃げるんじゃなく、言語仕様からきちんと磨きなおして欲しいもんだ、と、たとえばJavaについては頻繁に思いますね。
注:「型が違う」ことと「代入互換でなくなる」こととはイコールではありません。
ただ、「代入が片道切符になる」ケースは非常に多くなりますけどね。大きい文字列に小さい文字列は代入できてもいいけど逆は明らかに駄目だ。(OOPの親子クラスな変数のあいだでの代入可能性もそうだね。)
ああ。そういやRDBのNOT NULLも、必ずしも実行前(コンパイル時)に教えてくれるとは限りませんでしたね。そういう意味ではちょっとハズレだったかな。残念。
(というかRDBについてはNULLつまり「データが無いかどうか」だけじゃなく「ある検索が返す行数が最大1件か複数件か」もまた型であって欲しいのだが、そうなってないので凄く不便だ。ふつうのプログラム言語ならXかX配列かという大きな違いになるのが普通なんだが、データを手堅く操作するのが売りのはずのRDBにその区別が無いってのは結構怖い。)
Re: (スコア:0)
というか、RDBとは何かちゃんと分かっていますか?
Re: (スコア:0)
一知半解を書いて突っ込まれるのが嫌だからですか?