Почему Google выбрал Java для операционной системы Android?
Полный вопрос
Почему Google выбрал Java для операционной системы Android, а не для языка X?
Где X будет одним из следующих:
- Python версии 2.7 или версии 3
- который столь же мощный, как Java
- имеет много полезных сторонних библиотек
- быстрее развивается благодаря динамической природе
- C/С++ или ObjC
- которые сложнее разрабатывать, но
- работает быстрее благодаря меньшему накладному расходам
- потребуется меньше оборудования, особенно RAM
- столь же надежны, как и Java, но более склонны к сбоям приложений, когда только один модуль выходит из строя
И так далее. Моя основная проблема, когда я задавал этот вопрос, - это почему Java, а не Python. Я могу добавить другие элементы (языки) сравнения позже, если кто-то еще заинтересован.
Информация: Я не полный разработчик.
EDIT Я очень хорошо знал, что мой вопрос будет встречен с некоторой оппозицией и трепкой, поэтому я сказал, что я не полный разработчик. У меня есть мои личные мнения, чтобы поддержать меня и только это, но даже при этом у меня все еще есть отличные ответы. Теперь я понимаю, да, Dalvik VM запускает байт-коды Java на устройствах ARM, но насколько отличается эта Java от любых других спецификаций Oracle/Sun Java, я не знаю. Я играю как с Java, так и с Python и написал хотя бы одну полезную программу в обоих + GUI (Swing и PySide) и по крайней мере одну стороннюю библиотеку. Приказ, который я сделал, это Java, а затем Python, который заставил меня понять, насколько быстрее мне было писать все с нуля в Python, чем в Java. Даже пакету было проще управлять менеджером, чем Java-процесс импорта пакетов (слава богу за Eclipse и несколько интуитивных кликов)... а затем, насколько сложными будут встроенные приложения, вам нужно будет проявлять особую осторожность при проверке типов и модульных тестах (и afaik, модульные тесты должны быть обязательными для любого серьезного разработчика)... но в любом случае, спасибо за ответы до сих пор. Это учебный процесс.;)
Ответы
Ответ 1
Согласно Google:
Мы пережили кучу [альтернатив Java] и думаем, что все они сосать. Мы заключаем, что нам нужно согласовать лицензию на Java в соответствии с которые нам нужны. Источник
Это не особенно очевиден, почему, но это примерно так же хорошо, как вы получите от Google, я бы подумал.
Ответ 2
-
Google, как компания, много использует Java. Функции поиска написаны на Java. Насколько я могу судить извне, Google любит Java.
-
Для большинства задач Java быстрее, чем Python. Я предпочел бы работать на Python, и я знаю, как писать достаточно эффективный Python, и да PyPy действительно потрясает все, но Google должен обеспечить быстрый опыт работы на относительно несовершенных телефонных процессорах, чтобы они, вероятно, не рассматривали Python соперника.
-
Java, как и Python, обеспечивает большую изоляцию от деталей основного оборудования. Я думаю, что все телефоны на базе Android основаны на ARM, но теоретически вы можете сделать Android-телефон на базе чипа x86 или что-то совершенно другое, и пока вы хорошо переносите виртуальную машину Dalvik, ваш код будет работать. (Помимо приложений, в которых, конечно, скомпилирован собственный код ARM.)
Google любит язык Java, но они решили написать свою собственную виртуальную машину (Dalvik), а не лицензировать виртуальную машину Java. Скомпилированная Java может быть непосредственно переведена на байт-коды Dalvik. (Oracle подала иск Google за это. Oracle потеряла иск.)