Чем Kotlin лучше Java
Вопрос
Расскажи, чем Kotlin отличается от Java и почему его выбирают для Android и бэкенда.
Попробуйте сами
Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.
Показать ответ и разбор
Коротко
Что должно прозвучать в ответе
Null-safety в системе типов: NPE ловится при компиляции
Меньше шаблонного кода: data class, свойства, вывод типов, именованные и дефолтные аргументы
Функции расширения, лямбды и удобная stdlib для коллекций
Корутины для асинхронного кода без колбэков
Полная совместимость с Java: можно смешивать в одном проекте
Выражения вместо операторов: if, when, try возвращают значения
Что могут спросить следом
- Какие недостатки у Kotlin по сравнению с Java?
- Как вызвать Kotlin-код из Java?
- Что такое платформенный тип?
Разбор
Kotlin работает на той же JVM и полностью совместим с Java, поэтому его можно вводить в проект постепенно, файл за файлом. Главное отличие: null встроен в систему типов, String и String? разные типы, и большая часть NPE ловится компилятором. Кода меньше: data class вместо ручных equals и hashCode, свойства вместо геттеров, вывод типов, аргументы по умолчанию вместо перегрузок. Есть функции расширения и богатая stdlib для коллекций, if, when и try являются выражениями. Для асинхронности корутины вместо колбэков и RxJava. Минусы тоже есть: сборка обычно медленнее, а на стыке с Java появляются платформенные типы. Google с 2019 года рекомендует Kotlin как основной язык Android, а Jetpack Compose вообще только на Kotlin.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.
Предыдущий вопрос
Выражения и операторы в Kotlin
Следующий вопрос
Во что компилируется функция верхнего уровня