Уявіть: ви Java-розробник, працюєте в класній IT-компанії, цікавий проєкт, все йде нормально, і раптом на зустрічі команди CTO каже — переводимо backend на Kotlin.

Перша реакція у більшості: "Що? Навіщо? Java ж чудово працює."

Що таке Kotlin і чому розробники масово додають його до резюме - 1

Друга реакція — відкриваєте Google і починаєте розбиратися. І виявляється, що ви не перший, хто чує таке від свого CTO. Kotlin набирає обертів вже кілька років, і все більше команд роблять саме такий вибір.

Давайте розберемося: що таке Kotlin, звідки він з'явився і навіщо його вчити, якщо Java і так працює. Обіцяємо без євангелізму і криків "Java померла!". Вона не померла. Вона взагалі почувається чудово.

Хто створив Kotlin і навіщо

Kotlin придумали в JetBrains — компанії, яка робить IntelliJ IDEA. Ту саму IDE, в якій більшість Java-розробників проводить свій робочий день.

Кілька років вони самі мучилися з Java, поки писали IDEA. Нескінченний boilerplate, NullPointerException у production, код на двадцять рядків там, де достатньо двох. Програмісти — люди терплячі, але і в них закінчується терпіння.

До того ж на той момент інші мови — Scala, Groovy, Swift, C# — вже давно пропонували зручні речі, яких у Java бракувало: null-safety, data class з одного рядка, extension functions, лаконічні лямбди. Все це було в інших мовах. Просто не в Java.

В якийсь момент у JetBrains вирішили: досить страждати. Зібрали найкраще з того, що вже придумали інші, додали своє — і написали мову, яка працює на тій самій JVM, використовує ті самі бібліотеки і при цьому не змушує Java-розробника перевчатися з нуля.

Так у 2016 році з'явився Kotlin. І ні, назва не від котів. Це острів у Фінській затоці. Java назвали на честь острова Ява — з кавою. Kotlin назвали на честь острова Котлін — без кави, але з гарною системою типів.

Чому Google підтримав Kotlin — і при чому тут Oracle

У 2017 році Google оголосив Kotlin офіційною мовою для Android.

Офіційно — тому що розробники просили, мова зручніша і безпечніша. Це правда.

Але є історія, про яку варто знати.

З 2010 року Google судився з Oracle через Java API в Android. Oracle купив Sun Microsystems разом із Java і одразу пред'явив позов: Google нібито використовував 37 Java API без ліцензії. Вимагали $8,8 мільярда. Справа дійшла до Верховного суду США і завершилася перемогою Google лише у 2021 році.

Що таке Kotlin і чому розробники масово додають його до резюме - 2

Одинадцять років під загрозою багатомільярдного позову. Для розуміння масштабу: $8,8 мільярда — це приблизно 88 000 хороших senior-розробників на рік. Або дуже багато кави.

Kotlin від JetBrains — відкрита мова, жодних ліцензійних ризиків, повна сумісність з Java-екосистемою. Google офіційно зв'язок із позовом не підтверджував. Але логіка очевидна.

Побічний ефект: конкуренція змусила Oracle активніше розвивати Java. Records, sealed classes, pattern matching у нових версіях — зокрема тому, що потрібно було не відставати. Зрештою виграли всі розробники на JVM.

Java все ще топ для backend — це важливо зрозуміти

Легко заплутатися, тому скажемо прямо.

Java нікуди не дінеться. Spring, Hibernate, величезна кодова база у більшості компаній — це працює і працюватиме ще дуже довго. За кількістю вакансій, обсягом екосистеми і зрілістю — Java як і раніше індустріальний стандарт.

Kotlin зростає поруч. Все більше команд пишуть нові сервіси на Kotlin, залишаючи старий Java-код як є. За даними JetBrains Developer Survey 2024, Kotlin входить до топ-15 найбільш використовуваних мов у світі.

Це як молоток і шурупокрут. Ніхто не оголошує молотку війну. Просто деякі завдання зручніше вирішувати шурупокрутом.

Чим Kotlin конкретно відрізняється від Java

Не на словах — покажемо код.

Null-safety. Один із головних болів Java — NullPointerException. Він не попереджає. Не вибачається. Просто падає в runtime, зазвичай у production і бажано в п'ятницю ввечері.

// Java — всe виглядає нормально, поки не впаде
String name = null;
System.out.println(name.length()); // NPE. Привіт, вихідні.

// Kotlin — не скомпілюється
val name: String = null        // Помилка компіляції
val name: String? = null       // Явно nullable — тепер окей
println(name?.length)          // Якщо null — поверне null, не впаде
println(name?.length ?: 0)     // Якщо null — поверне 0

Компілятор Kotlin знає, де може бути null, і не випускає код, поки ви це не обробите. Як суворий тімлід, тільки без дзвінків.

Data class. Класичне завдання — модель даних із трьома полями.

// Java: конструктор, геттери, equals, hashCode, toString
// Разом: приблизно півсторінки коду, який ніхто не читає
public class User {
    private String name;
    private int age;
    ...
}

// Kotlin — один рядок
data class User(val name: String, val age: Int)

Kotlin сам генерує все інше, включно з copy() — методом для створення копії зі зміненими полями. У Java такого немає з коробки. Чому — гарне запитання.

Extension functions. Додаєте метод до будь-якого класу без наслідування:

fun String.isPalindrome() = this == this.reversed()
println("racecar".isPalindrome()) // true

Корутини. Асинхронний код, який читається як синхронний. Без колбеків, без локшини з CompletableFuture, без сліз.

suspend fun loadData(id: Int) {
    val user = fetchUser(id)       // Чекаємо без блокування потоку
    val orders = fetchOrders(user)
    display(user, orders)
}

Чи варто вчити Kotlin прямо зараз

Якщо ви працюєте в Android — питання не стоїть. Там Kotlin вже стандарт.

Якщо ви backend-розробник на Java — залежить від того, де і куди хочете рости. Для legacy-проєктів у великих корпораціях Kotlin поки не потрібен. Але якщо розглядаєте продуктові компанії, стартапи або західний ринок — шанси зустріти Kotlin у вимогах зростають з кожним роком.

Хороша новина: для Java-розробника перехід — це тижні, не місяці. Та сама JVM, та сама логіка. IntelliJ IDEA вже стоїть. Залишилося тільки почати.

Пам'ятаєте анекдот про Хаїма, якому бог посилав і вантажівку, і човен, і гелікоптер, а він все чекав знаку? Не будьте Хаїмом. Ось ваш знак.

Спробуйте прямо зараз

У нас є курс з Kotlin. 62 рівні, 1100+ завдань з автоперевіркою, 3 реальних проєкти в портфоліо. Та сама ігрова механіка, що і в курсі з Java: тільки код, завдання і миттєва перевірка — жодних відео в порожнечу.

Перший рівень безкоштовно.

Читайте далі по темі

Якщо хочете одразу перейти до практики або порівняти мови детальніше — ось два матеріали, які логічно йдуть далі: