LINUX.ORG.RU

ЯП для программирования под Android

 ,


2

3

С покупкой смартфона задумался о написании простых программ для него. Какой язык лучше всего подходит для разработки по Android? Сейчас учу Haskell, но у него «довольно специфичная» поддержка данной платформы, так что нужно что-то другое.

Критерии:

1)Фунциональный
2)Не java/c/c++. Вообще, желательно не си-подобный синтаксис
3)Статическая типизация
4)Ну и наличие библиотек для разработки

Частично под эти критерии попадают Rust (нет библиотек(?)) и Clojure (динамическая типизация).

Может есть еще что-то?

P.S. Если Haskell таки запустили на Android'е нормально, то тоже подойдёт



Последнее исправление: vanzef (всего исправлений: 1)

Про haskell: Авторы ajhc запускали как-то, для git-annex под андроид есть пакет - т.е. пускать можно, но подробностей не знаю.

qnikst ★★★★★
()
Ответ на: комментарий от qnikst

Ну, я вот это и назвал «специфичной поддержкой», потому что, насколько мне известно, ничего хорошего в итоге не вышло. И есть ли библиотеки?

vanzef
() автор топика

Что ты имеешь в виду под разработкой под андроид? Приложения под платформу без нативщины ты никак не сделаешь.

Solace ★★
()

Вопрос немного не про ЯП

А вообще, нужны ли библиотеки кроме NDK? Может там есть всё (ну или почти всё), а я просто не знаю?

vanzef
() автор топика
Ответ на: комментарий от vanzef

Ну смотри у git-annex пол хакаджа в зависисостях.. Так что вопрос только в том как собирать, можешь посмотреть их wiki, там описание есть.

qnikst ★★★★★
()
Ответ на: комментарий от Solace

Т.е. без нативщины? Если вы про java-обёртку, то во-первых, это не беда, а во-вторых - вроде уже можно чисто на другом языке писать. Без java.

vanzef
() автор топика

Scala после небольших плясок с бубном компилируется и работает. Всем пунктам удовлетворяет.

crowbar
()

3)Статическая типизация

Если бы не это, то Clojure

Debasher ★★★★★
()
Ответ на: комментарий от crowbar

Хм, интересно, но по мне, так там «си-подобный» синтаксис) Просто после Haskell'я многое кажется лишним.

vanzef
() автор топика

Я бы тебе сказал пару слов, но за мной тут stave бродит: то его слово «говно» в обморок загоняет, то видите ли нельзя всяких укурков мордой потыкать в их же треды.
В общем, я тебе хотел написать множество всяких матов, суть которых сводится к тому, у тебя странные запросы.

Stahl ★★☆
()
Ответ на: комментарий от Stahl

А что, собственно, в них странного? Если надо писать что-то ради денег/для работы/etc то да, можно смотреть в сторону «enterprise решений». Но если хочется для своего удовольствия? Например, Haskell, имхо, красивый язык. А что есть в вашем java/c/c++?

vanzef
() автор топика
Ответ на: комментарий от vanzef

А что насчет OCaml или Erlang под Android?

Как минимум собираются. Смысл их туда вкорячивать - вопрос другой.

NegatiV
()
Ответ на: комментарий от vanzef

Ну дело твое, если фигурные скобки не позволяют программировать «для своего удовольствия».

crowbar
()
Ответ на: комментарий от TERRANZ

А вы всегда читаете вслух, то что пишите?

vanzef
() автор топика
Ответ на: комментарий от vanzef

А что насчет OCaml или Erlang под Android? Есть истории успеха?

Здесь был чувак, писавший под ведроед и ios на OCaml. Но его ник я не помню.

hateyoufeel ★★★★★
()
Ответ на: комментарий от vanzef

Всё зависит от того что ты собрался писать.

Если тебе не нужен нейтивный гуй и специфические для платформы API, то хватит и NDK.

mono ★★★★★
()

Если бы не требование поддержки android, то подошёл бы хаскель. Под андроид можно разрабатывать только на жабе¹.

1 — есть NDK, но с помощью него разве что игрушки с айфона портировать.

PolarFox ★★★★★
()
Ответ на: комментарий от mono

Что значит специфичный? Можно, например с помощью NDK писать несложные игры, приложения для работы с камерой?

vanzef
() автор топика
Ответ на: комментарий от vanzef

Для своего удовольствия стоит уточнить: эти «шедевры» будут распостраняться не далее твоего телефоно-планшета или таки для широкой публики? Если последнее, то ты предлагаешь пользователю еще одно гогно на его телефон вкатить, но зачем? Кроме того в Java-экосистеме для Android внезапно есть библиотеки, API и прочее. Здесь уже в пору вас таки спрсить: а что есть у хаскелей кроме гиперЧСВ его пользователей для андроид?

pylin ★★★★★
()
Ответ на: комментарий от pylin

то ты предлагаешь пользователю еще одно гогно на его телефон вкатить, но зачем?

И как понимать эту вашу фразу? Haskell не интерпретируемый, что вы собрались «вкатывать»?

Здесь уже в пору вас таки спрсить: а что есть у хаскелей кроме гиперЧСВ его пользователей для андроид?

Если вы не заметили, то я сам хочу узанть что есть «у хасклей» под Android. А если ничего нет, то хватит ли NDK.

vanzef
() автор топика

Android поддерживает модные нынче приложения на HTML5 + js? Если так, бери ghcjs, лепи мешанину из хаскеля и jquery. Ну плюс в чруте ghc точно работает, кросскомпилировать не пробовал.

fmdw
()
Ответ на: комментарий от vanzef

Только возможность написать факториал, работающий в чруте.

fmdw
()

Но зачем? Писать под андроид ради фана невозможно. То есть разрабатывать под него можно только ради денег. А ради денег стоит писать самым простым способом, без искусственных ограничений: на джава.

fmdw
()
Ответ на: комментарий от vanzef

И как понимать эту вашу фразу? Haskell не интерпретируемый, что вы собрались «вкатывать»?

runtime языка, не?

pylin ★★★★★
()
Ответ на: комментарий от Deathstalker

Изучай Ada, за ним будущее.

Уже лет тридцать/пятьдесят, ога. Сплошное будущее.

ziemin ★★
()
Ответ на: комментарий от mono

то хватит и NDK.

Ничё так, что ndk это native dk? Я не думаю, что ТС прям будет использовать специфичные фичи какой-то конкретной версии. Он даже не знает, что бинари по-умолчанию собираются статически.

ziemin ★★
()
Ответ на: комментарий от vanzef

Игры можно, для них всё есть. Для камеры придется написать обёртку над JNI-вызовами.

mono ★★★★★
()
Ответ на: комментарий от vanzef

это те арабы которые не рабы?

anonymous
()
Ответ на: комментарий от ziemin

Ничё так, что ndk это native dk? Я не думаю, что ТС прям будет использовать специфичные фичи какой-то конкретной версии.

Под специфичными я имел в виду такие вещи как посылка интента, например. Через NDK это сложновато сделать. Хотя, конечно, «нет преграды патриотам», но всё-таки.

А слово «native» в контексте NDK значит то что разработка ведётся на «native»-языках, таких как С и С++.

В моём посте под словом «нейтивный» я имел в виду стандартное, привычное API для платформы, в случае Android - это Java.

mono ★★★★★
()
Ответ на: комментарий от PolarFox

1 — есть NDK, но с помощью него разве что игрушки с айфона портировать.

Теоретики в чати. Каждое второе сложное приложение для Андроид написано, по большей части, с помощью NDK.

mono ★★★★★
()

С go версии 1.4 обещают android офф поддержку

wwwsevolod
()
Ответ на: комментарий от mono

В моём посте под словом «нейтивный» я имел в виду стандартное, привычное API для платформы, в случае Android - это Java.

Да ты, я вижу, серьёзный пограммист. К тебе с документацией и не суйся! А ничё так, что ява требует машину? Которую обычно пишут на C?

Если что я видел «аппаратную» яву. Кишочки фреймворка всё равно на C написаны.

ziemin ★★
()
Ответ на: комментарий от mono

Смотря что считать серьёзным. Взял первую попавшуюся апкшку (клиент для яндекс.почты, вполне серьёзно как по мне), внутри soшек не нашёл.

NDK годится для портирования или фаптимизаций, писать на нём андроид-онли приложение с нуля я бы не стал.

PolarFox ★★★★★
()

Delphi ещё не предлагали, вроде у них есть под ведроид.

А если серьёзно, то ты говнокодер и идиот, если такие вопросы задаеш.

anonymous
()

Java. Это если родное и без плясок с бубном. Почему - учи матчасть.

Еще есть вариант писать на пистоне, но хз как оно там, живо или нет.

Zhbert ★★★★★
()
Ответ на: комментарий от vanzef

Это надо java учить, а она не очень интересная. Но, видимо это самый простой вариант.

Вот сразу видно, что анонимус выше прав про говнокодера =) Нужно не «Джаву учить», а знать алгоритмы и прочие основы, логику и принципы работы приложения, а язык - дело вообще второстепенное. Зная основы, ты сможешь за полдня пересесть с плюсов на джаву или на что другое, по пути уже по ходу задачи усваивая синтаксис и прочие япоспецифичные вещи.

Zhbert ★★★★★
()
Ответ на: комментарий от ziemin

Да ты, я вижу, серьёзный пограммист. К тебе с документацией и не суйся! А ничё так, что ява требует машину? Которую обычно пишут на C?

Да ты тоже серьезен по самые попугаи, друг мой, я смотрю. Моно имел ввиду, что под андроид пишут на джаве, ибо андроид и есть джавамашина с кучкой тормозной фигни вокруг нее. Под словом «нативный» подразумевалась родной для андроида язык. Причем тут си? Причем тут то, на чем написан далвик?

Zhbert ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.