Мови програмування

Kotlin

Сучасна лаконічна мова для JVM, Android і мультиплатформної розробки, повністю сумісна з Java.

Що це

Kotlin створила компанія JetBrains. Мову анонсували у 2011 році, стабільна версія 1.0 вийшла у 2016. У 2019 Google оголосив Kotlin основною мовою Android-розробки.

Вона компілюється в байткод JVM, а також у JavaScript і нативний код (Kotlin Multiplatform). Код на Kotlin і Java вільно викликає один одного, тому міграція йде поступово.

Мова усуває типовий для Java шум: data class, null safety в системі типів, extension-функції, корутини для асинхронності. Застосовується в Android, на бекенді (Spring, Ktor) і в Compose Multiplatform.

Коли брати

  • Нативний Android-застосунок: це рекомендована мова.
  • Бекенд на JVM, де хочеться менше шаблонного коду, ніж у Java.
  • Спільна бізнес-логіка між Android, iOS і вебом через Kotlin Multiplatform.

Коли не варто

  • Команда без досвіду JVM і з вимогою мінімального часу збірки: компіляція повільніша за Java.
  • Жорсткі обмеження на розмір бінарника чи старт, як у маленьких CLI.

Ключові поняття

Null safety
Тип String не може бути null, а String? може. Компілятор змушує перевіряти.
Data class
Клас для даних із автоматичними equals, hashCode, toString і copy.
Coroutines
Легка асинхронність через suspend-функції замість колбеків і потоків.
Extension function
Додає метод до існуючого типу без наслідування.
Kotlin Multiplatform
Спільний код для JVM, Android, iOS і вебу з платформо-специфічними частинами.

Приклад

Data class і безпечна робота з nullable-значенням.

Питання на співбесіді

  1. 1. Як Kotlin вирішує проблему null?

    Nullable-типи позначаються ?. Компілятор не дозволяє викликати метод на nullable без перевірки, а оператори ?., ?: і let роблять це зручним. Це прибирає більшість NullPointerException.

  2. 2. Що таке корутини?

    Це механізм асинхронності, де suspend-функція може призупинитись, не блокуючи потік. Код виглядає послідовно, а запускається через launch чи async у scope.

  3. 3. val чи var?

    val це незмінне посилання, var змінне. Стиль Kotlin радить val за замовчуванням.

  4. 4. Чи можна змішувати Kotlin і Java в одному проєкті?

    Так, вони компілюються в той самий байткод і взаємно викликаються. Тому проєкти мігрують поступово.

Логотипи належать їхнім власникам і використані лише для ідентифікації. Іконки: Simple Icons (CC0), Devicon (MIT).

Розділи платформи