JavaがAndroidに選ばれたのはなぜですか?


46

C ++のようなものではなく、JavaがAndroidに選ばれたのはなぜですか?Javaは非常に多くのメモリを使用すると聞いていますが、モバイルデバイスではメモリの使用量が少ないことが非常に重要だと思います。モバイルデバイスでC ++のような言語の代わりにJavaを使用することに本当の利点はありますか?


29
些細な点として、AndroidはGoogleによって開始されたのではありません。GoogleはJavaの使用を含むAndroidを買収しました。
ワールドエンジニア

2
@ZJR:Googleで使用されている主な言語は、常にJava、Python、C ++でした。JavaはAndroidよりも前から常に存在していました。
-UncleZeiv

15
AndroidはJavaの使用言語をしてないで、Java仮想マシンを、そこにある大きな違いは、それも、独自のバイトコード形式を使用しています。この質問はその意図に欠陥があり、どちらの方法でも建設的ではありません!

8
... @JarrodRoberson私はそれは長い間、それはflamewarに委譲しないようとして建設的であると思いますが、コミュニティは語る
maple_shaft

5
私は歴史的重要な質問についてのメタディスカッションに基づいて再開しています。ソフトウェア開発の歴史と関連するトピックに関する質問は、ここで話題となり、付加価値があります。この質問とその回答の文言を考えると、この質問はこのコミュニティに適していると思います。
トーマスオーエンズ

回答:


40

この記事では、状況を明らかにします。その記事内で最も適切なリンクはこちらです。そのため、言語を知っている多くのプログラマーがいる大規模なインストールベースがあり、大学で広く教えられています。C ++は私の学校のカリキュラムから削除されましたが、Javaはまだここにあります。JavaにはJava MEがあり、他の携帯電話に大規模なインストールベースがあります。私が今ポケットに入れているPantecの使いやすさには、画面の隅に小さなコーヒーカップがあります。それが何であるかを推測したい人はいますか?

スタックオーバーフローに関するこの回答は、それについてもかなりよくカバーしています。

SO回答の要約:

Javaは既知の言語であり、開発者はそれを知っているため、学習する必要はありません。

c、c ++コードよりもjavaで自分を撃つのは難しい

VMで実行されるため、すべての電話で再コンパイルする必要がなく、簡単に保護できます。

Java用の多数の開発ツール(最初を参照)

いくつかの携帯電話はすでにJava Meを使用していたため、Javaは業界で知られていました

速度の違いは、アセンブリでコーディングする必要がある場合、ほとんどのアプリケーションでは問題になりません。


1
ああ、あなたはそれに私を打ち負かしたので、私はあなたのリストに追加します。Javaが選択された別の理由(マネージ言語)を追加するこのSOの質問を見つけました。- stackoverflow.com/questions/5605575/...
ショーナ

1
おかげで、これが私の質問に答えました。実際、Androidを実行しているさまざまなデバイスごとに再コンパイルする必要がないことは、Javaを選択するための大きなプロのようです。なぜそう考えなかったのか分かりません。ありがとう!
-cgt

2
市場が分裂したAndroidデバイスの数を考えると、他の方法で対処することはほぼ不可能です。
ワールドエンジニア

3
これは正しいですが、彼らは任意の言語を選択できたでしょう。彼らも新しいものを書いたかもしれない。彼らはVMを構築しました。ただし、Javaには明確に定義されたVM仕様という利点があります。
マイケルK

18

GoogleがJavaを親しみやすいものとして選択しているのではないかと推測します。Googleのプロジェクトの多くは、少なくともJava回路図(GWTなど)の概念を展開しています。

さらに、専門学校で広く教えられている言語です(Javascript(Androidも熱心にサポートしています)とは異なります)。Javaは確かにパフォーマンスと生産の点でモバイルデバイスに最適な言語ではありませんが、よく知られています。

また、Androidが少し遅れてパーティーに参加したことも覚えておいてください。開発者に低レベルのコンパイル言語であるC ++の使用を強制すると、「すごい」要素を生成することが難しくなります。


3
アプリ開発に関するあなたのアイデアが好きです。私はそれについて前に考えたことがありませんが、それは理にかなっています。+1
ラッセル

6
この場合のJavaを介したC ++への嫌悪感は、派手さやすごい要因とは関係がなく、開発者が市場向けのアプリをより迅速かつ簡単に書く能力と関係があると思います。仕様が書かれた当時、一般的な知識は、iPhoneの成功は、開発者にとって魅力的なアプリ開発をAppleが成功させたことと相関していたということでした。ほとんどの開発者がC ++を飲み込むのは少し難しかったので、Javaの最小限のパフォーマンス損失はそれだけの価値がありました。
maple_shaft

8
@maple_shaft:本当に?? iPhoneの成功は、それがどれほど魅力的であるかではなく、魅力のないアプリ開発にもかかわらず、常に私には思えました。
Carson63000

3
@maple_shaft:ここでカーソンに賛成です。iOSの開発は悪夢です。そこのObjective-Cを使用しているアップルのエコシステム外の理由誰もいない、と、それが実際にあなたが作成したアプリ...展開しようとするために来るときあなたもAppleの紛れもない悪条項に触れる前の
メイソンウィーラー

@ジェフリー、なぜAndroidはJavaScriptをサポートしていると言うのですか?
Pacerier 14年

9

正確にJavaが選ばれた理由はわかりませんが、おそらくいくつかの理由によるものです。

  1. Javaに精通し、使用している開発者の大規模なグループをキャプチャするには

  2. Javaが不足しているJ2MEのようなテクノロジーでは、Javaのモバイルギャップを埋めます。

第二に、Android用に指定されたJava仮想マシンはありません。代わりに、すべてのJavaコードはDalvikで実行するためにコンパイルされます。Dalvikは、モバイル環境での実行用に特別に設計された軽量で最適化されたVMです。バッテリーの寿命を延ばし、リソースの効率的な使用を最大化すると言われています。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.