LINUX.ORG.RU

Переключается ли Android на Kotlin?

 , ,


0

3

Разумно ли сейчас писать Android-приложение на Java? Все ли API доступны для Java или что-то уже Kotlin-only? Можно ли считать, что Java уже legacy на Android и никакого смысла писать на Java при наличии выбора не осталось?

Читаю статью Android’s commitment to Kotlin и складывается именно такое впечатление. Но, возможно, я не правильно понимаю словосочетание Kotlin-first. Т.е. он first наряду с Java или Java уже second?

★★★★★

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

Правильно. Большинство новых фич и саппорт теперь Kotlin-First и нет вообще никаких гарантий, что оно будет всё доступно на Java.

Jefail ★★★★
()

Если ты один пишешь — то пиши на чём хочешь. А так, да, я думаю, начинать что то на java смысла нет, если ты только не знаешь Kotlin и упёрся рогом не хочешь потратить пару дней на его изучение.

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

Я его хорошо знаю, мне он просто не совсем нравится. При прочих равных я бы выбрал Java, но, судя по всему, прочие не равны.

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

Я его хорошо знаю, мне он просто не совсем нравится.

Странно такое слышать, чем Java лучше Kotlin, не холивора ради, действительно интересно.

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

Забей, можешь считать моими тараканами, откровений у меня нет. Тут дело не в том, что Java лучше Kotlin, а в том, что Java мне больше нравится, когда все библиотеки написаны на Java изначально. Как пример - нередко бывает, что функция формально возвращает nullable результат, но по факту я знаю, что он не null в этой ситуации. В Java я буду писать нормальный код, в Kotlin будет !!, который будет резать глаза.

Legioner ★★★★★
() автор топика
Последнее исправление: Legioner (всего исправлений: 2)
Ответ на: комментарий от Legioner

в этой ситуации

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

Jefail ★★★★
()
Последнее исправление: Jefail (всего исправлений: 2)
Ответ на: комментарий от MaxPower

Ну… котлин говно с лопаты например, не холивара ради.

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

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

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

если хочешь поддерживать старые версии - это Java 6 со всеми вытекающими.

Студия умеет компилировать Java 8 в старый байткод. Хотя мне и 6 жавы за глаза хватает.

Legioner ★★★★★
() автор топика

Все доступны. Кроме альфы compose, который не обязателен.

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

В Java я буду писать нормальный код, в Kotlin будет !!, который будет резать глаза.

И потом словишь NPE на JAVA или на Kotlin. Пиши так:

?.

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

И потом словишь NPE на JAVA или на Kotlin.

Ну и славно.

Пиши так: ?.

Не люблю заметать ошибки под ковёр.

Legioner ★★★★★
() автор топика

О, ребят, сорян за оффтоп, но у меня небольшой вопрос.

Я не программист, я разработчик железяк. Знаю С, немного кресты, питоном балуюсь, в лазарусе для души играюсь. Захотелось для андроида какую-нибудь примитивщину типа своего файлового менеджера написать. А я вообще про андроид толком ничего не знаю, разве что обрывками что-то слышал. Такому нубу как я что посоветуете глянуть? Что почитать? На чем писать? Котлин осваивать?

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

Не люблю заметать ошибки под ковёр.

Если апи, которое ты используешь, может вернуть null, то ты просто обязан проверить результат на null и дальше что то с этим сделать. Это не заметание ошибок под ковер.

например ты можешь сделать так:

val result = someObject?.doOne?.doSomething() ?: throw MyError('bla bla bla')
result.doSomething() // тут уже не будет проверок на null, т.к. 100% результат не null иначе мы до сюда бы не дошли

Другое дело если апи не декларирует результат как nullable (что в java, что в kotlin), а null все же возвращает, то это конечно же баг. ?. тебе позволяет просто удобно проверить на null и если не null, то что либо сделать, что там тебе надо.

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

Если апи, которое ты используешь, может вернуть null, то ты просто обязан проверить результат на null и дальше что то с этим сделать. Это не заметание ошибок под ковер.

Если я знаю, что в данной ситуации оно не может вернуть null, то не обязан. Любая проверка тут будет мёртвым кодом, который никогда не выполнится и никому не нужен (кроме компилятора).

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

Конечно тебе в kotlin. Если не знаешь с чего начать - big nerd ranch guide, а оттуда в более специфичные вещи. В качестве «файлового менеджера», для «подглядеть как другие делают» - https://github.com/SimpleMobileTools В отличии от сухих гуглотуториалов написанных индусами - в разработке учавствуют ребята которые пишут под андроид серьёзно и много.

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

SimpleMobileTools

Да вот с них как раз и зародилась такая мысль.

Конечно тебе в kotlin

big nerd ranch guide

nerd

Ок, чую та еще развлекуха меня ждет)

Спасибо за ответы всем. Еще раз сорян за оффтоп :)

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

Большинство новых фич и саппорт теперь Kotlin-First

А если новые фичи не нужны, зато нужна поддержка старых ведроидов? А в идеале не только ведроидов, но и Java SE, а то и Java ME, с единой кодовой базой.

mertvoprog
()
Ответ на: комментарий от menangen

Я уж думал, все это знают, что Java своё отжила…

Что-то мне это напоминает?! Что-то подобное говорили про c/c++ лет 15 назад, а воз и ныне там. Старушка Java ещё нас переживёт.

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

Большинство новых фич и саппорт теперь Kotlin-First

Каких фич? API? так нет, они к языку не относятся. Фич языка котлин? ну так ява тогда тут вообще не причем. Кто-то вон вообще на скала пишет под андроид. причем кровавый интерпрайз.

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

На IDE там ничего не завязано. Сборка ведётся грэдлом да и тот шелл скриптом выкачивается. Так что ставь Android SDK, ставь Java 8 и хоть в vim пиши. Вроде бы.

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

Да готовые проекты-то собирали и допиливали. Вопрос скорее в том, как это бутстрапнуть. С шаблонами проектов, в отличие от прочих языков, как-то плохо, или плохо искали? ;)

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