Wyobraź sobie: jesteś Java developerem, pracujesz w fajnej firmie IT, ciekawy projekt, wszystko gra — i nagle na spotkaniu zespołu CTO mówi: przenosimy backend na Kotlin.

Pierwsza reakcja większości: „Co? Po co? Java działa przecież świetnie."

Czym jest Kotlin i dlaczego developerzy dodają go do CV - 1

Druga reakcja — otwierasz Google i zaczynasz szukać. I odkrywasz, że nie jesteś pierwszą osobą, która to słyszy od swojego CTO. Kotlin nabiera tempa od kilku lat i coraz więcej zespołów podejmuje dokładnie taką decyzję.

Rozłóżmy to na czynniki pierwsze: czym jest Kotlin, skąd się wziął i po co go uczyć, skoro Java już działa? Bez ewangelizmu i krzyku „Java umarła!". Nie umarła. Czuje się znakomicie.

Kto stworzył Kotlin i po co

Kotlin powstał w JetBrains — firmie stojącej za IntelliJ IDEA. Dokładnie tym IDE, w którym większość Java developerów spędza swój dzień pracy.

Przez lata sami zmagali się z Javą podczas pisania IDEA. Niekończący się boilerplate, NullPointerExceptiony na produkcji, dwadzieścia linii kodu tam, gdzie wystarczyłyby dwie. Developerzy są cierpliwymi ludźmi — ale i ich cierpliwość ma granice.

Do tego inne języki — Scala, Groovy, Swift, C# — od dawna oferowały rzeczy, których Javie brakowało: null-safety, data classy w jednej linii, extension functions, zwięzłe lambdy. To wszystko istniało gdzie indziej. Tylko nie w Javie.

W pewnym momencie w JetBrains podjęto decyzję: dość cierpienia. Zebrali najlepsze pomysły z tego, co inni już wymyślili, dodali własne — i stworzyli język działający na tej samej JVM, używający tych samych bibliotek, który nie zmusza Java developerów do zaczynania od zera.

Tak w 2016 roku powstał Kotlin. I nie, nazwa nie pochodzi od kotów. To wyspa w Zatoce Fińskiej. Java wzięła nazwę od wyspy Jawa — z kawą. Kotlin wziął nazwę od wyspy Kotlin — bez kawy, ale z solidnym systemem typów.

Dlaczego Google poparł Kotlin — i co ma z tym wspólnego Oracle

W 2017 roku Google ogłosił Kotlin oficjalnym językiem dla Androida.

Oficjalnie — bo developerzy o to prosili, a język jest bezpieczniejszy i wygodniejszy. To prawda.

Ale jest historia w tle, którą warto znać.

Od 2010 roku Google toczył spór sądowy z Oracle o użycie Java API w Androidzie. Oracle przejął Sun Microsystems wraz z Javą i natychmiast złożył pozew: Google miał używać 37 Java API bez licencji. Żądana kwota: 8,8 miliarda dolarów. Sprawa trafiła do Sądu Najwyższego USA i zakończyła się wygraną Google dopiero w 2021 roku.

Czym jest Kotlin i dlaczego developerzy dodają go do CV - 2

Jedenaście lat w cieniu pozwu opiewającego na miliardy. Dla skali: 8,8 miliarda dolarów to mniej więcej 88 000 dobrych senior developerów na rok. Albo naprawdę nierozsądna ilość kawy.

Kotlin od JetBrains jest open source, nie niesie żadnego ryzyka licencyjnego i jest w pełni kompatybilny z ekosystemem Javy. Google nigdy oficjalnie nie powiązał tej decyzji z pozwem. Ale logika mówi sama za siebie.

Pozytywny efekt uboczny: konkurencja skłoniła Oracle do aktywniejszego rozwijania Javy. Records, sealed classy, pattern matching w nowszych wersjach — między innymi dlatego, że trzeba było dotrzymać kroku Kotlinowi. Ostatecznie zyskali wszyscy developerzy na JVM.

Java nadal rządzi backendem — i to jest ważne

Łatwo się tu pogubić, więc powiedzmy wprost.

Java nigdzie nie idzie. Spring, Hibernate, ogromne codebasy w większości firm — to wszystko działa i będzie działać jeszcze przez bardzo długi czas. Pod względem liczby ofert pracy, rozmiaru ekosystemu i dojrzałości Java nadal jest standardem branżowym.

Kotlin rośnie obok niej. Coraz więcej zespołów pisze nowe serwisy w Kotlinie, zostawiając stary kod Javowy bez zmian. Według JetBrains Developer Survey 2024 Kotlin należy do 15 najczęściej używanych języków programowania na świecie.

Pomyśl o tym jak o młotku i wkrętarce. Nikt nie wypowiada wojny młotkowi. Niektóre zadania po prostu łatwiej wykonać wkrętarką.

Czym Kotlin konkretnie różni się od Javy

Nie w teorii — zobaczmy kod.

Null-safety. Jeden z największych bólów głowy w Javie to NullPointerException. Nie ostrzega. Nie przeprasza. Po prostu pada w runtime — zazwyczaj na produkcji i najchętniej w piątkowy wieczór.

// Java — wszystko wygląda dobrze, dopóki nie padnie
String name = null;
System.out.println(name.length()); // NPE. Miłego weekendu.

// Kotlin — w ogóle się nie skompiluje
val name: String = null        // Błąd kompilacji
val name: String? = null       // Jawnie nullable — teraz okej
println(name?.length)          // Jeśli null — zwróci null, nie padnie
println(name?.length ?: 0)     // Jeśli null — zwróci 0

Kompilator Kotlina wie, gdzie może pojawić się null, i nie wypuści kodu, dopóki tego nie obsłużysz. Jak surowy tech lead — tylko bez niekończących się wiadomości na Slacku.

Data class. Klasyczne zadanie — model danych z trzema polami.

// Java: konstruktor, gettery, equals, hashCode, toString
// Łącznie: mniej więcej pół strony kodu, którego nikt nie czyta
public class User {
    private String name;
    private int age;
    ...
}

// Kotlin — jedna linia
data class User(val name: String, val age: Int)

Kotlin automatycznie generuje wszystko pozostałe, w tym copy() — metodę do tworzenia kopii ze zmienionymi polami. Java nie ma tego z pudełka. Dlaczego — dobre pytanie.

Extension functions. Dodajesz metodę do dowolnej klasy bez dziedziczenia:

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

Coroutines. Asynchroniczny kod, który czyta się jak synchroniczny. Bez callbacków, bez plątaniny CompletableFuture, bez łez.

suspend fun loadData(id: Int) {
    val user = fetchUser(id)       // Czeka bez blokowania wątku
    val orders = fetchOrders(user)
    display(user, orders)
}

Czy warto uczyć się Kotlina teraz

Jeśli pracujesz w Androidzie — pytanie retoryczne. Kotlin jest tam już standardem.

Jeśli jesteś backend developerem w Javie — zależy od tego, gdzie jesteś i dokąd chcesz zmierzać. W legacy projektach dużych korporacji Kotlin jeszcze nie jest twardym wymogiem. Ale jeśli patrzysz na firmy produktowe, startupy lub rynek międzynarodowy — szanse na pojawienie się Kotlina w wymaganiach rosną z każdym rokiem.

Dobra wiadomość: dla Java developera przesiadka zajmuje tygodnie, nie miesiące. Ta sama JVM, ta sama logika. IntelliJ IDEA już masz. Wystarczy zacząć.

Znasz tę historię o człowieku, którego dom zalewa woda, modli się o pomoc, a Bóg posyła mu ciężarówkę, potem łódkę, potem helikopter — a on za każdym razem odmawia, czekając na prawdziwy cud? Nie bądź tą osobą. To jest twój znak.

Wypróbuj już teraz

Mamy kurs Kotlina. 62 poziomy, ponad 1100 zadań z automatycznym sprawdzaniem, 3 prawdziwe projekty do portfolio. Ta sama gameplayowa mechanika co w kursie Javy: tylko kod, zadania i natychmiastowy feedback — żadnych wykładów w próżnię.

Pierwszy poziom jest bezpłatny.

Czytaj dalej

Jeśli chcesz od razu przejść do praktyki albo dokładniej porównać języki — oto dwa artykuły, które naturalnie się tu narzucają: