Почему Java была выбрана для Android?

46

Почему Java была выбрана для Android вместо C ++? Я слышал, что Java использует довольно много памяти, и я предположил бы, что низкое использование памяти было бы очень важно на мобильных устройствах. Есть ли реальное преимущество использования Java на мобильном устройстве вместо языка, подобного C ++?

ВКТ
источник
29
Незначительный момент, Android не был запущен Google. Google купил Android, включая использование Java.
Мировой инженер
2
@ZJR: основными языками, используемыми в Google, всегда были Java, Python и C ++. Ява была всегда там даже до Android.
UncleZeiv
15
Android использует Java язык и НЕ Виртуальная машина Java, есть большая разница , она даже использует свой собственный формат байт - кода. Этот вопрос имеет недостатки в своем намерении и не является конструктивным в любом случае!
8
@JarrodRoberson Я думаю, что это конструктивно, пока оно не превращается в
огненную войну
5
Я открываюсь на основе мета-дискуссии по вопросам исторического значения . Вопросы об истории разработки программного обеспечения и соответствующих темах обсуждаются здесь и повышают ценность. Учитывая формулировку этого вопроса и его ответы, я думаю, что этот вопрос хорошо подходит для этого сообщества.
Томас Оуэнс

Ответы:

40

Эта статья проливает некоторый свет на ситуацию. Наиболее подходящая ссылка в этой статье - это . Таким образом, у вас есть обширная база для установки с большим количеством программистов, которые знают язык, и его широко преподают в университетах. C ++ был исключен из учебного плана моей школы, Java все еще здесь. У Java есть Java ME, которая имеет обширную базу для установки на другие мобильные телефоны. У Pantec Ease у меня в кармане сейчас маленькая кофейная чашка в углу экрана. Кто-нибудь хочет угадать, что это такое?

Этот ответ о переполнении стека также достаточно хорош.

Резюме SO ответа:

Java является известным языком, разработчики знают его и не должны изучать его

Сложнее стрелять в java, чем в коде c, c ++, так как в нем нет арифметики указателей.

он работает в виртуальной машине, поэтому нет необходимости перекомпилировать его для каждого телефона там и легко обезопасить

большое количество инструментов разработки для Java (см. в первую очередь)

несколько мобильных телефонов уже использовали java me, поэтому java был известен в отрасли

разница в скорости не является проблемой для большинства приложений, если бы вы должны были код в сборке

Мировой инженер
источник
1
Ах, вы победили меня, так что я просто добавлю в ваш список. Я нашел этот другой SO вопрос, который добавляет еще одну причину, по которой была выбрана Java (это управляемый язык). - stackoverflow.com/ru/questions/5605575/…
Shauna
1
Спасибо, это ответило на мой вопрос. Отсутствие необходимости перекомпиляции для каждого другого устройства под управлением Android на самом деле кажется огромным профессионалом в выборе Java. Я не знаю, почему я не подумал об этом. Спасибо!
cgt
2
Учитывая, сколько Android-устройств раскололось на рынке, было бы почти невозможно иметь дело с иным.
Мировой инженер
3
Это правильно, но они могли выбрать любой язык. Они могли бы даже написать новый; они построили ВМ. У Java есть преимущество четко определенной спецификации ВМ.
Майкл К
18

Я рискну догадаться, что Google выберет Java для знакомства, если ничего больше. Многие из проектов Google вращаются по крайней мере концепции Java-схем (например, GWT).

Кроме того, этот язык широко преподается в технических школах (в отличие от, скажем, Javascript (который Android также ревностно поддерживает)). Java, конечно, не лучший язык для мобильных устройств с точки зрения производительности и производительности, но он хорошо известен.

Также помните, что Android пришел немного поздно на вечеринку. Принуждение разработчиков к использованию C ++, низкоуровневого языка компиляции, усложнило бы создание фактора «вау», и, если ничего другого, Android не нужны цифры (приложений) и быстрота, чтобы начать работу.

Джеффри Суини
источник
3
Мне нравится ваша идея о разработке приложений. Я никогда не думал об этом раньше, но это имеет смысл. +1
Рассел
6
Я думаю, что отвращение к C ++ по сравнению с Java в этом случае связано не столько со вспышкой и вау-фактором, сколько со способностью разработчиков быстрее и проще создавать приложения для рынка. В то время, когда спецификация была написана, общеизвестно, что успех iPhone коррелировал с тем, насколько успешно Apple делала разработку приложений привлекательной для разработчиков. С ++ было бы слишком сложно проглотить большинство разработчиков, поэтому минимальная потеря производительности Java того стоила.
maple_shaft
8
@maple_shaft: действительно ?? мне всегда казалось, что успех iPhone был не смотря на то, насколько привлекательной была разработка приложения UN, а не на то, насколько привлекательной она была!
Carson63000
3
@maple_shaft: Должен согласиться с Карсоном здесь. Разработка iOS - это кошмар. Есть причина, по которой никто за пределами экосистемы Apple не использует Objective-C, и это еще до того, как вы даже коснетесь откровенно злых терминов Apple, когда речь заходит о фактической попытке развернуть созданное вами приложение ...
Мейсон Уилер,
@ Jeffrey, почему вы говорите, что Android поддерживает JavaScript?
Pacerier
9

Не уверен, почему именно Java была выбрана, но, вероятно, по ряду причин

  1. Чтобы захватить большую группу разработчиков, которые знакомы и используют Java

  2. Заполните мобильный пробел в Java, где такие технологии, как J2ME, где Java не хватает.

Во-вторых, для Android не указана виртуальная машина Java. Вместо этого весь код Java скомпилирован для работы на Dalvik , которая представляет собой облегченную оптимизированную виртуальную машину, специально разработанную для работы в мобильных средах. Это, как утверждается, увеличивает срок службы батареи и максимально эффективно использует ресурсы.

maple_shaft
источник