Страницы

Поиск по вопросам

пятница, 20 декабря 2019 г.

Каковы преимущества Kotlin перед Java для разработки под Android для программиста?

#android #kotlin


Каковы преимущества Kotlin перед Java для разработки под Android для программиста?

Я поверхностно знаком с Java, прочитал только краткое описание Kotlin, вижу пока
что только:
- более компактный синтаксис
- есть свойства
- вроде бы есть ссылки на функции (что теоретически могло бы сильно упростить задание
всяких обработчиков нажатий на кнопки и т. п.)
- можно объявлять функции без классов  

Еще где то видел, что у Kotlin есть nullable и не-nullable переменные, только непонятно,
что это дает и почему это так важно.

Задаю вопрос в связи с тем, что решаю - на каком языке начать новый проект под Android
- не очень большое приложение для терминала сбора данных.
    


Ответы

Ответ 1



Выбирайте Котлин. С ним гораздо лучше. После него Ява будет казаться многословной и опасной. Преимущества с ходу могу такие назвать: data классы с дефолтными значениями аргументов. Больше не нужны громадные классы-модели. Просто описываете конструктор и всё - toString, getter/setter, equals/hashCode будут сгенерированы автоматически и невидимо. Операции с коллекциями. Для преобрахования листа одного типа в другой не нужно писать цикл. Он будет написан за вас в байт-коде. val intList = stringList.map { it.toInt() } Функции-расширения. Крайне удобны. Заменяют Utilities классы со статическими методами и выглядят крайне приятно: listOfObjectWithStringAndInt.sortBy { it.intValue } Для конкретно андроида можно использовать kotlin-android-extensions - в классы работающие с разметкой делаете импорт и вам будут доступны сгенерированные переменные для всех вьюх в разметке. Nullability - безумно удобная штука. Если вам надо вызвать метод на переменной, которая может быть null, то просто пишете nullableVar?.methodName() - метод вызовется только если переменная не null. Если вы объявите переменную как не-nullable - компилятор не позволит вам передать туда nullable переменную. Это решает множество проблем.

Ответ 2



Это лично мое, оценочное, мнение. Оно не претендует на истину в последней инстанции и другие люди совершенно законно могут иметь противоположное мнение. более компактный синтаксис Не "компактный", а идеоматический. Процесс разработки бОльшей частью подразумевает не написание кода, а чтение уже написанного. Чем проще код читается - тем более продуктивен процесс разработки. Если в совсем грубом приближении, то Kotlin можно описать как Java с огромным количеством синтаксического сахара, который позволяет реализовать то же самое написав сильно меньше, но байткод будет тем же. есть свойства вроде бы есть ссылки на функции можно объявлять функции без классов См. пункт 1. Еще где то видел, что у Kotlin есть nullable и не-nullable переменные, только непонятно, что это дает и почему это так важно. Nullability - это попытка сделать систему типов более строгой. Тут прямая зависимость: чем строже система типов - тем меньше ошибок пройдет дальше компиляции. NPE - это "ошибка на миллиард долларов"(с) - боль и ненависть языков, где она есть. Любое ужесточение, позволяющее ее избежать - благо. Задаю вопрос в связи с тем, что решаю - на каком языке начать новый проект под Android - не очень большое приложение для терминала сбора данных. Тут все зависит от того, кем вы себя видите в будущем. Если только Android разработчиком, то Kotlin ваш выбор. Если в принципе разработчиков под JVM (в кровавом энтерпрайзе например), то Java. Но если по крупному, то Java - must have в любом случае, хотя бы потому, что не зная ее вы не будете понимать, что происходит в Kotlin.

Комментариев нет:

Отправить комментарий