Хочу писать под Android, но не люблю Java [закрыт]

1,00
р.



Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.





Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.
Закрыт 8 лет назад.



Улучшить вопрос

Не люблю Java и все. А хочется писать именно под это платформу. Я знаю, что существует Android NDK, но его же надо использовать только по назначению для каких-либо серозных вещей типа движков для игр.


Ответ
Тогда без Java! Для андроида можно разрабатывать приложения на почти любом языке программирования, компиляторы которых генерируют байт-код для JVM.
Нравится функциональное программирование, совмещенное с продуманной объектной моделью? Развитая система типов? Тогда смотрите Scala и краткую инструкцию по разработке приложений на Scala для Android. Нравится функциональное программирование в совокупности с динамической типизацией? Макросы и идея семантической компрессии приводят вас в восторг? Тогда смотрите Clojure. Вот так его используют для разработки под Android. Фанат скриптовых языков? Выбирайте - Ruby или Python, что больше нравится. Здесь объяснят, как их "готовить" для Android'а.
Предупреждение: конечно, на практике не все так идеально. Чтобы успешно разрабатывать на вышеперечисленных языках для платформы Android, потребуется вложить на первых порах намного больше сил, чем в случае с Java. Придется научиться использовать дополнительные инструменты, подыскать среды программирования, зачастую не такие удобные, как для Java, преодолеть свою лень и получше изучить "внутренности" виртуальных машин JVM и Dalvik, ну и т.д. Если осилите - о Java можно почти полностью забыть.
Примечание о производительности: из перечисленных Scala единственный язык со статической типизацией. Производительность почти такая же, как и у Java. Хотя идиоматический код на Scala может быть медленнее: чтобы понять почему, вам надо хорошо понимать, что такое функциональное программирование - это отдельная большая тема. Остальные языки - динамические, и как следствие, на порядок уступают в производительности Java. Хотелось бы, однако, напомнить, что "преждевременная оптимизация - корень всех зол". А также то, что фактор производительности излишне переоценивается программистами. Серверная часть многопользовательской онлайн-игры Eve Online, в которую одновременно играют десятки тысяч человек, написана на Python. Вы уверены, что требования вашего проекта к производительности выше, чем у разработчиков этой игры? В 95% случаев ответ отрицательный.