Kotlin dla początkujących

Świat IT nie znosi próżni. Co chwila powstają nowe języki, technologie, koncepty, czasem również wracają jak bumerang pod trochę innymi pojęciami i nazwami. Cały czas coś się dzieje. Czy to technologie back-endowe, czy front-endowe, nie ma to znaczenia. Świat JVMa (Java Virtual Machine) nie jest tutaj inny. Kotlin to język programowania względnie młody, ale już nie aż tak hipsterski. Coraz mocniej i śmielej przenika do świata „produkcyjnego”. Czy jest to jednak język, od którego młody adept programowania powinien zacząć swoją przygodę? Jakie są zalety oraz wady z perspektywy młodego programisty?

Społeczność Kotlina rośnie i rośnie

Nie da się zaprzeczyć — wraz z rosnącą popularnością zwiększa się rozmiar społeczności, która aktywnie się udziela, czy to na Stack Overflow, czy na GitHubie. Obecnie pod tagiem „Kotlin” możemy zobaczyć 22 tysiące pytań (stan na 22 kwietnia 2019 roku). Scala ma tych pytań „tylko” 4 razy więcej, co nie jest złym wynikiem jak na różnicę wieku i (jeszcze) popularności między tymi językami. Jeden z bardziej znanych frameworków Kotlinowych – Ktor – ma na GitHubie prawie 5000 gwiazdek (stan na 22 kwietnia 2019 roku) co jest wynikiem bardzo dobrym.

Materiały do nauki Kotlina
A źródła do nauki? Swego czasu napisałem posta na ten temat. Zebrałem najpopularniejsze i najbardziej rzetelne źródła z których można czerpać wiedzę o tym języku. Przyszły programista zdecydowanie ma skąd czerpać wiedzę.

kotlin kurs od podstaw

Spróbuj Kotlina – Try Kotlin tutorial

Kotlin materiały do nauki

Kotlin kurs od podstaw z Kotlin Koans – proste, praktyczne zadania

(Sprawdźcie kurs Kotlina po polsku od Artura! ~ Rita)

Praktyczny Kotlin – kurs od podstaw po polsku

Kotlin jest piękny

Tak, wiem, że ocenianie piękna może być bardzo subiektywne. Z doświadczenia jednak nie znam programisty, który zobaczy kod napisany w Javie, porówna go do kodu napisanego w Kotlinie, by potem stwierdzić „ta Java to jednak ładniejsza jest” . Pozwolę sobie tutaj jeszcze raz odesłać do swojego bloga — stworzyłem cykl wpisów, w którym pokazuję kod w Javie, a następnie przepisuję go do Kotlina. Pokazuję piękno i korzyści używania tego języka na praktycznych przykładach.

Kotlin to nie tylko Android

Wielu programistów słyszy Kotlin myśli Android. Niewątpliwie, tam Kotlin sprawdza się najbardziej, głównie ze względu na różne ograniczenia JVM w aplikacjach Androidowych. Fakt, że jest to język wspierany oficjalnie przez Google’a do tworzenia aplikacji na Androida, mocno pomaga.

W Kotlinie można rozwijać nie tylko aplikacje mobilne. Osobiście Kotlina używam do tworzenia back-endu w aplikacjach. Tam sprawdza się to doskonale. Dzięki świetnej interoperacyjności (ang. interoperability) z Javą jesteśmy w stanie używać wielu znanych Javowych bibliotek właśnie w Kotlinie! Wiek języka i mniejsza ilość gotowych rozwiązań w porównaniu do Javy wcale nie jest ograniczeniem.

Możliwości Kotlina

Mniej znane zastosowania – Kotlin posiada również wersję JS, która tłumaczy kod Kotlinowy do JSowego. Jest też wersja Native, która pozwala komplikowac kod do kodu maszynowego, a także wersja multiplatformowa, w której możemy pisać kod przydatny do aplikacji na iOSa!

IntelliJ + Kotlin = ❤

Każdy doświadczony programista wie, jak ważne jest używanie dobrych narzędzi do rozwijania oprogramowania. Czy istnieje takie narzędzie do tworzenia aplikacji w Kotlinie? Zdecydowanie.

Nie wszyscy wiedzą, ale za rozwój Kotlina odpowiada firma JetBrains. JetBrains również tworzy m.in. IntelliJ – najlepsze IDE do tworzenia aplikacji Javowych. Jeżeli firma ma swój język i ma IDE, to intuicja mówi, że powinno to ze sobą fajnie współpracować. Tak też jest. Wsparcie dla Kotlina jest wyśmienite. Tworzenie kodu w IntelliJ jest samą przyjemnością. IntelliJ także zachęca do używania Kotlina, chociażby poprzez możliwość łatwego tłumaczenia kodu Java do kodu Kotlina. W drugą stronę podobnie!

Działanie na JVM

Jest to rzecz, o której już pisałem wyżej. Kotlin kompiluje się do bytecode’u Javy, a więc możemy uruchamiać go na maszynie wirtualnej Javy (JVM). Dzięki temu, chociażby jesteśmy w stanie tworzyc aplikacje Androidowe, a także używać kodu, który kompiluje się również do bytecode’u Javy, mimo że nie jest napisany w Kotlinie. To sprawia, że frameworki takie jak Spring czy inne biblioteki są bezproblemowo dostępne, gdy tworzymy kod w języku Kotlin.

Świetna dokumentacja

Uważam, że im programista bardziej doświadczony to, tym bardziej docenia jakość i ważność dokumentacji. Jest ona ważna przede wszystkim, gdy zaczynamy z daną technologią. Zespół z JetBrains nie zaniedbał tego aspektu i dokumentacja na ich stronie jest również bardzo dobra. Jeżeli kogoś interesuje konkretnie Android, to też nie ma tu problemu. W dokumentacji dla developerów Androida kod jest podawany zarówno w Javie, jak i w Kotlinie. Plusem jest to, że tym głównym kodem jest kod Kotlinowy, na Javę trzeba przełączyć co pokazuje, który język powinien być używany 😉

Rynek pracy == Android

Teraz trochę minusów. Ogromnym (jeszcze) minusem jest fakt, że jak popatrzymy na rynek pracy i poszukamy ofert dla Kotlinowców, to większość z nich tyczy się Androida. Jeżeli ktoś docelowo chce zajmować się aplikacjami mobilnymi – nie ma problemu. Osobiście jednak lubię używać Kotlina do innych zastosowań i produkcyjnie jest to trochę problematyczne. Dominacja Javy w systemach backendowych jest niezaprzeczalna, ale wszystko wskazuje na to, że Kotlin będzie coraz częściej używany w innych miejscach, a więc rynek też powinien być bardziej różnorodny.

Migracja projektów dla bardziej doświadczonych programistów

Może to być minus na wyrost, natomiast warto się podzielić doświadczeniem. Kotlin jest językiem pięknym, ułatwia tworzyć oprogramowanie, ale nie ma nic za darmo. Niektóre upiększenia mogą nas kosztować, chociażby wolniejszym działaniem lub działaniem niespodziewanym. W małych projektach nie powinno być to problemem, ale duży system bankowy…? Lepiej zostawić to osobom bardziej doświadczonym.

W tym miejscu napomnę natomiast, że nie ma problemu, by do istniejącego projektu dodać 1-2 pliki Kotlinowe. Taka migracja może być bardzo powolna, a te dwa języki mogą istnieć w jednym projekcie bez problemu. Eksperymentowanie na żywym organizmie też jest uproszczone dzięki temu, a sam fakt łatwego dodania/usunięcia języka z projektu I pomoc IntelliJ zachęca do dania szansy językowi w projekcie.

Java kontra Kotlin programowanie

Znajomość Javy jest bardzo pomocna

Kotlina może opanować każdy nowicjusz i używać go z powodzeniem. Zauważyłeś jednak, że w tym poście dużo razy pojawiało się słowo „Java”. Porównań tych dwóch języków nie unikniemy. Znajomość Javy bardzo ułatwia naukę Kotlina oraz zwiększa nasz poziom świadomości, z jakim tworzymy oprogramowanie w tym języku. Wiemy, z czym to się wiąże, jakie daje nam korzyści oraz gdzie nas ogranicza. Uważam, że świadomy programista Kotlina powinen znać Javę oraz chociaż podstawy działania wirtualnej maszyny Java.

Czy Kotlin jest dla początkujących?

Odpowiem bezpiecznie – to zależy 😉 Uważam, że jeżeli jesteś określony już, że „tak, aplikacje mobilne, to jest to!” – nie zastanawiaj się — Kotlin jest językiem idealnym dla Ciebie. W innym przypadku nie wybierałbym Kotlina jako PIERWSZY język programowania. Kotlin jest piękny i dużo oferuje. Mocno zachęcam do jego spróbowania, jeżeli nie produkcyjnie, to do eksperymentów, pet projektów (projektów pisanych dla własnej satysfakcji) i nauki.

Kotlin czy Java?

Jeżeli jednak szukasz pierwszego języka, dzięki któremu będziesz zarabiać, a nie chcesz tworzyć na tym etapie aplikacji mobilnych — zachęcam do rozpoczęcia zabawy z programowaniem w Javie. Javowców wiecznie brakuje, a w dalszym etapie Twojej karier nauka Kotlina będzie jeszcze łatwiejsza i przyjemniejsza dla Ciebie. Wierzę też, że sytuacja na rynku będzie znacznie bardziej różnorodna dla kotliniarzy.

Jeżeli w tym momencie wiesz, że chciałbyś uczyć się Kotlina, to zapraszam do mojego kursu wideo, w którym wprowadzę Cię w świat tego języka i pokażę jak używać go w praktyce. Na blogu również tematyka Kotlina przewija się bardzo szeroko, zainteresowanych zachęcam do przejrzenia i poczytania oraz wyrobienia własnego zdania na temat tego języka. Ten post to tylko moje odczucia. Osobiście kocham Kotlina i wierzę, że w przyszłości będzie to język jeszcze szerzej używany niż obecnie, bo zdecydowanie ma predyspozycje do tego. Nie znam innego języka, w którym tak przyjemnie i efektywnie jestem w stanie wytwarzać oprogramowanie.


Artur Czopek
ARTUR CZOPEK gościnnie
Pracuje jako Software Engineer, pisze bloga simplecoding oraz tworzy tutoriale z Kotlina. Nieustannie rozwija się poprzez dzielenie się wiedzą z innymi pasjonatami programowania. Poza pracą uwielbia sport, przede wszystkim bieganie – ma już na koncie starty w półmaratonach, a celuje jeszcze wyżej 😉