web-dev-qa-db-ja.com

Javaブールプリミティブ型名が「ブール」ではないのはなぜですか?

Javaは

  • intおよびInteger
  • booleanおよびBoolean

これは少し矛盾しているようです、なぜか

  • bool vs Booleanプリミティブ型に確立された短い名前を使用するには?

または

  • integerIntegerを使用して型名の整合性を維持しますか?

I think C++はboolを使用することを決定しましたJavaよりも少し前にbooleanを使用することを決定しました。当時の標準ですか?)C拡張機能もあるので、boolには歴史的な優先順位がありました。最初はboolを本能的に使用しようとすることがよくありました(現代の編集者はすぐにこれを見つけずに追加のコンパイルラウンド)なので、現在の状況の背後にある理論的根拠を知っておくといいでしょう。

誰かがその話の一部()を覚えているか、ネットで関連する歴史的議論を見つけてリンクすることができれば、それは素晴らしいことです。

28
hyde

これらの設計上の決定に実際に関与した人々と連絡を取らない限り、決定的な答えを見つけることはできないでしょう。ただし、JavaとC++の両方の開発のタイムラインに基づいて、Javaのbooleanは、C++へのboolの導入前、またはそれと同時に、そして確かにboolが入る前に選択されたと推測します幅広い用途。booleanは、その長い使用履歴(ブール代数など)、またはすでにboolean型を持っている他の言語(Pascalなど)に一致するために選択された可能性があります。

歴史的背景

現実世界における言語の進化:C++ 1991-2006 によると、bool型は1993年にC++に導入されました。

Javaは、1995年の最初のリリースにbooleanを含めました( Java言語仕様1. )。私が見つけることができる最も古い言語仕様は Oak 0.2仕様 です( Oakは後にJavaに名前が変更されました )。そのオークの仕様は「著作権1994」とマークされていますが、プロジェクト自体は1991年に開始され、どうやら 1992年の夏までに動作するデモがありました

20

実際、Javaは、ここでの履歴に対してより正確です。真と偽の値の理論は George Boole によって発明され、一般的に Boolean Algebra と呼ばれています。

boolは実際には長い名前を避けるためのショートカットにすぎませんが、最近のIDEのオートコンプリートサポートを考えると、これはもはや正当な理由ではありません(かつてJavaはbooleanに行くことにしました。

私はJavaの決定プロセスの一部ではありませんが、誰かが歴史に関心がある場合は、「ブール代数」が関連する歴史的優先順位であり、C/C++の決定に疑問を投げかけ、なぜ彼らがブールの名前を切り捨てたことを疑うかもしれません。 e

12
Frank