font
@font
В поисках самого лучшего

Почему приложения для Android пишут на джаве?

Прив!
не видел не одной нормальной программы на джаве. Вообще не пинимаю, как такая уродская технология могла так широко распространится. Радует только, что скоро она подохнет на windows окончательно и бесповоротно — цитата из интернетов.
Собсна почему многие люди ругают джаву из-за ее «громоздкости и тормознутости», но продолжается разработка на нем? Слышал много споров на этот счет, мол что не секурно в наши-то дни ставить джаву, разработка на ней сложна и вообще ресурсоемка. Я, к счастью, до таких войн не дорос.
Впрочем что я хотел спросить: можно ли на андроид написать приложение на Си, или Python (на пайтоне слышал что можно, но почему-то встречаю только змейки).
  • Вопрос задан
  • 3561 просмотр
Пригласить эксперта
Ответы на вопрос 7
gadfi
@gadfi
https://gamega.org
ох вы сделали мой день ))
не видел не одной нормальной программы на джаве.


из детскопа продукты jetbrains, netbens и ряд утилит (первое что приходит в голову, должен признаться я не очень много пользуюсь детскопным софтом, даже офис в облоках, кто то другой назовет больше)
из серверных одноклассники, твитер (хотя там вроде больше scala, но не суть)+ многие другие ресурсы к их множеству легко плюсуются вебприложения написанные на jvm языках

Вообще не пинимаю, как такая уродская технология могла так широко распространится.


Более классического ооп не встречал (c# и java в этом плане те же яйца, разница в сахаре/обратной совместимости), разрешите поинтересоваться вашим бэкграундом? вы с чем сравниваете ?

Радует только, что скоро она подохнет на windows окончательно и бесповоротно — цитата из интернетов.


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

Собсна почему многие люди ругают джаву из-за ее «громоздкости и тормознутости», но продолжается разработка на нем?


громоздка не java, громоздка разработка на java для веб ─ такова плата за стабильность и прогнозируемость результата, это не свойства языка, язык просто позволяет реализовать все те патерны и технологии которые в совокупности и зовут java ee. Это энтерпрайз, проекты длятся годами, расширяются и перерастают в монстров )) Тот же c# в этом плане такой же комбайн, это не плохо это требование рынка

Слышал много споров на этот счет, мол что не секурно в наши-то дни ставить джаву, разработка на ней сложна и вообще ресурсоемка.


Вполне секурно, но да ресурсоемко ─ и в плане человекочасов и в плане железа. Вполне приемлемая цена, всего лишь ценой памяти мы получаем скорость близкую к с++

Впрочем что я хотел спросить: можно ли на андроид написать приложение на Си, или Python (на пайтоне слышал что можно, но почему-то встречаю только змейки).


на с/с++ имеет смысл писать ресурсоемкие задачи ─ обработка видио, звука и тд, просто писать обычное приложение на с/с++ глупо, накладные расходы на вызов JNI могут быть выше чем если бы вы писали просто на java
на питоне под android вообще мрак, вы работает с тем же sdk только ловити еще баги киви или чего то подобного
кстати скорость работы python в вебе тоже сильно ниже скорсоcти работы java, но это не является проблемой )
Ответ написан
Комментировать
@LiguidCool
Если кратко: "так исторически сложилось". Sun / Oracle активно продвигали яву в носимые (и не очень) девайсы. Те же Нокии 3310. Когда игры были типа змейки, производительности вполне хватало. Современные телефоны получили яву "по инерции", т.к. как минимум прогерам сильно переучиваться не хотелось. Поправьте господа, если не прав.
Ответ написан
Комментировать
NeiroNx
@NeiroNx
Программист
Потому что вся оболочка написана на Java - для других языков существуют "прослойки" взаимодействия с Java, функционал которых ограничен. Большинство игр под андроид работают на C++ - через подключаемые "native" библиотеки. И все ресурсоемкие операции выполняются через них.

Программы работающие без интерфейса могут быть написанны на чем угодно - при наличи интерпритатора или компилятора под выбранный процессор.
Ответ написан
Комментировать
chupasaurus
@chupasaurus
Сею рефлекторное, злое, временное
Собака лает, караван идет. Не стоит верить всему, что написано в интернетах.
Приложения для Android пишут на Java, поскольку сама ОС рассчитана для работы с Java-приложениями.
Для семейства C-подобных языков есть Android NDK (там C API, соответствующее Java API). Для Python есть py4a, который через C-bindings цепляется к NDK.
Ответ написан
Комментировать
@bromzh
Drugs-driven development
Для андроида пишуь на яве потому что гугл давно полюбил этот язык, и сделал свою мобильную ОС (андроид) именно на этом языке. Под капотом там особое ядро линукса и переработанная виртуальная машина явы, которая и служит прослойкой, между приложухами и ядром. Т.е. почти любое приложение запускается в этой виртуальной машине, соответственно должно быть написано на яве (если точнее, то виртуалка запускает байткод, который получается после компилирования программ). И большинство библиотек именно для явы.
Можно писать на питоне, но это медленно. Да и библиотек намного меньше.
На C/C++ тоже можно писать, но там свои заморочки. и гугол рекомендует использовать это лишь в крайних случаях.
Для остальных языков инфраструктура тоже небольшая. Так что в 95% стоит брать яву, как и задумывалось.

Ну а на счёт того, что ява ужасна, на ней нет приложений и она скоро сдохнет - это полный бред. Язык простой (хоть и многословный), инфраструктура JVM ещё лучше. есть огромнейшее число библиотек на все случаи жизни. Ну и перспективы у него очень хорошие: андроидофонов сейчас намного больше, чем телефонов на других платформах, энтерпрайз любит и использует яву вовсю ( подавляющее большинство интернет-банков именно на яве), десктопные приложения можно писать на хорошем JavaFX. Т.е. область применения очень широкая. И это реально кроссплатформенный язык, так что запускать свои поделки можно почти везде. Скорость у явы вполне хорошая (например, в бенчмарке сетевых фреймворков, сервера на яве обычно в лидерах), а многословность лечится другими языками (scala, kotlin, groovy).
Ответ написан
@komjaga
Программист встроенного ПО
в основном выбор пал на Java из ее платформонезависимости
Ответ написан
Комментировать
leventov
@leventov
Потому что при всех недостатках, в середине нулевых это был самый адекватный managed язык.

В перспективе джаву может заменить Дарт, как приоритетный язык, если сам не помрет. Хотя джава, безусловно, останется.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы