Szukasz najlepszych programistów Java? Znajdziesz ich w kilka kliknięć.

Kompletny przewodnik po Kotlinie dla programistów Java [EDYCJA 2023]

12 gru 20217 min czytania

Vitalii Danylov

Senior frontend developer w Ideamotive.

Nosisz się z zamiarem przejścia na Kotlina, ale wciąż się wahasz? Po lekturze tego wpisu decyzja może przyjść szybciej.


Gdyby ten wpis ukazał się kilka lat temu, większość programistów Androida pewnie nawet nie przeleciałaby go wzrokiem. Jako natywny język mobilnego systemu Google’a Java miała mocną pozycję na gruncie tworzenia aplikacji mobilnych i mało kto sądził, że w najbliższym czasie zastąpi ją inna technologia. 

 

Aż nadszedł dzień przełomu. Najpierw, w 2017 roku, Google okrzyknął Kotlina „oficjalnym językiem Androida” obok Javy. Potem, w ślad za dynamiczną ekspansją języka, w 2019 roku gigant z Mountain View poszedł o krok dalej i ogłosił, że development na Androida idzie ścieżką Kotlin-first. 

 

Ponieważ Kotlin z sezonowego hype’u przerodził się w szeroko przyjęty standard branżowy, coraz więcej programistów uważnie waży opcje i rozważa odejście od Javy. Jeśli jesteś jednym z nich, mamy nadzieję, że nasz przewodnik pomoże Ci szybciej podjąć decyzję i pewnie wejść w Kotlina.

Kotlin staje się dominującą technologią mobilną

Niezachwiane wsparcie Google’a dla Kotlina wywołało gwałtowny wzrost popularności języka w ciągu ostatnich dwóch-trzech lat. W StackOverflow Developer Survey 2020Kotlin zajmuje czwarte miejsce wśród najbardziej podziwianych języków programowania. Prawie dwie trzecie programistów, którzy z nim pracowali, chce nadal korzystać z tej technologii. Dodatkowo ponad 12% programistów, którzy dziś Kotlina nie używają, chce się go nauczyć.

 

Co więcej, według Snyka w tym roku Kotlin stał się drugim najpopularniejszym językiem na JVM, wyprzedzając Scalę i Clojure. Indeks PYPL GitHuba również potwierdza, że język konsekwentnie pnie się na szczyt rankingów popularności. 

5 powodów, dla których potrzebujesz Kotlina w swoim życiu

Jak podaje oficjalna strona, „Kotlin to nowoczesny, statycznie typowany język programowania, który zwiększy Twoją produktywność i podniesie satysfakcję z programowania”. Rzeczywiście, język stworzyli programiści dla programistów w odpowiedzi na braki Javy w kontekście developmentu na Androida. 

Kotlin: fakty w pigułce

  • Pierwszy raz pokazany w 2011 roku jako wewnętrzny projekt JetBrains, rok później opublikowany jako open source. W 2017 roku Google ogłosił jego pełne wsparcie na Androidzie. 7 maja 2019 roku Kotlin stał się preferowanym językiem developmentu na Androida.
  • To wieloplatformowy, statycznie typowany język programowania ogólnego przeznaczenia z wnioskowaniem typów.
  • Kotlin jest przeznaczony przede wszystkim do uruchamiania na JVM, ale może też kompilować się do JavaScriptu albo kodu natywnego, np. dla implementacji na iOS.
  • Języka używa obecnie około 8% programistów, ale społeczność Kotlina rośnie w szybkim tempie. Na GitHubie jest już blisko 100 tys. repozytoriów , z ponad 450 tys. commitów.

 

Postrzegany jako ulepszenie Javy w tworzeniu aplikacji mobilnych, Kotlin wprowadził szablony napisów, klasy danych, null-safety, właściwości rozszerzające, korutyny i inne bardzo potrzebne nowoczesne funkcje. Wszystkie te usprawnienia mają uprościć programowanie i sprawić, że kod będzie krótszy, czytelniejszy i odporny na błędy. Ale co dokładnie sprawia, że Kotlin jest realną alternatywą dla programistów Java?

Kotlin zwiększa Twoją produktywność 

Kotlin jest zwięzły i ekspresyjny, więc pozwala osiągnąć więcej, robiąc mniej. 

  • Przede wszystkim język trzyma się zasady, że model danych powinien być prosty i intuicyjny. Dlatego wbudowuje gettery i settery w properties. 
  • Korzysta też z klas danych , żeby przechowywać stan obiektów i dostarczać automatycznie generowane implementacje metod equals, hashCode, toStringi copy
  • Smart castsz kolei eliminują jawne rzutowanie zmiennych, automatycznie konwertując zmienną na oczekiwany typ. 

 

  • Kolejną bardzo przydatną funkcją Kotlina, która usprawnia pracę, jest wnioskowanie typów, dzięki któremu kompilator wywnioskuje typ zmiennej z kontekstu. 
  • Kotlin intensywnie korzysta z predefiniowanych operatorów , które mogą zastąpić typowe metody i funkcje, żeby kod był zwięźlejszy i czytelniejszy. Oto przykład przeciążenia jednoargumentowego operatora minus:

Wszystkie te wbudowane cechy Kotlina sprawiają, że język jest tak samo potężny i wszechstronny jak Java, ale rozwiązuje problemy znacznie efektywniej. Dzięki mniejszej liczbie linii kodu Kotlin podnosi produktywność programistów i pomaga wyeliminować powtarzalne zadania, które zwykle doprowadzają ich do szału.

Kotlin nie zmusza Cię do porzucenia Javy

Cała idea Kotlina polegała na tym, żeby dać programistom mobilnym funkcje, których im brakowało, bez ryzyka, że istniejący już kod pójdzie na marne. Dlatego Kotlin jest w 100% interoperacyjny z Javą oraz wszystkimi jej bibliotekami, frameworkami i JVM. 

 

Oznacza to, że jako programista Java nie musisz porzucać ulubionego języka i narzędzi. Nadal możesz używać Kotlina obok Javy w swoich aplikacjach, bez migracji kodu źródłowego. Wystarczy przekonwertować pliki Javy na pliki Kotlina z rozszerzeniem .kt

 

86% programistów Kotlina nadal używa w pracy Javy

[Źródło: JetBrains]

Kotlin wprowadza bezpieczeństwo do Twojego kodu

Zwarty, zwięzły i czytelny kod Kotlina oznacza mniej błędów. Dodatkowo czuły kompilator Kotlina wychwytuje i sygnalizuje typowe pomyłki programistyczne. Co ważniejsze, Kotlin pomaga programistom wyeliminować osławione Null Pointery z kodu. 

 

System typów Kotlina rozróżnia referencje nullowalne , które mogą przechowywać null, oraz non-null , które nie mogą. NPE są dopuszczalne tylko w określonych sytuacjach, na przykład przy interoperacyjności z Javą. 

 

Żeby zadeklarować typ jako nullowalny, trzeba dodać znak zapytania. 

 

Brak znaku zapytania oznacza, że typ jest referencją non-null:

 

 

Kotlin wspiera programowanie asynchroniczne

Biblioteka standardowa Kotlina udostępnia niskopoziomowe API, dzięki któremu inne biblioteki mogą korzystać z korutyn. Te lekkie, kooperatywnie wielozadaniowe wątki umożliwiają programowanie asynchroniczne, co dobrze wpływa na wydajność i responsywność aplikacji. Upraszczają też i usprawniają zadania takie jak wywołania sieciowe czy aktualizacje bazy danych.

 

Dzięki wsparciu korutyn Kotlin pomaga rozwiązać problemy z długo trwającymi zadaniami i zawieszać ciężkie obliczeniowo funkcje działające na głównym wątku. Te możliwości są bardzo pożądane, zwłaszcza w złożonych, wielowątkowych aplikacjach (np. grach) i w oprogramowaniu klienckim z ekspresyjnym, responsywnym UI. 

Kotlina łatwo się nauczyć

Jedną z największych zalet Kotlina jest to, że łatwo się go nauczyć, zwłaszcza programistom Javy. Technologia jest ściśle nastawiona na programistę i skupia się na rozwiązywaniu kluczowych wyzwań developmentu, upraszczając pracę Tobie i innym. Kotlin ma dość prostą, logiczną składnię, która prowadzi do krótkiego i bardzo czytelnego kodu. Cieszy się też mocnym wsparciem biznesu i społeczności, oferuje bogatą bibliotekę materiałów do nauki, a nauka i używanie go nic nie kosztują.

Co wyróżnia Kotlina z tłumu?

Wspomnieliśmy już o kilku wyróżniających cechach Kotlina jako świetnego kandydata do projektów mobilnych. Dorzućmy jeszcze kilka, dla których warto poświęcić mu czas:

Typowanie statyczne

W Kotlinie zmiennej można przypisać wyłącznie obiekty jednego, ustalonego typu — typu tej zmiennej — co pozwala wykrywać błędy podczas kompilacji, zanim kod zostanie uruchomiony, np.:


 

Skoki nielokalne

Kotlin obsługuje skoki nielokalne, które pozwalają wyjść z funkcji w dowolnym miejscu.

 

 

Filtrowanie kolekcji

Ta funkcja przyspiesza pracę z kolekcjami.

 

 

 

Funkcje rozszerzające

Funkcje rozszerzające pozwalają rozbudowywać istniejące komponenty bez pisania metod w ich wnętrzu, dzięki czemu kod jest czystszy.

 

 

Funkcje wyższego rzędu

Te funkcje operują na innych funkcjach, przyjmując je jako argumenty albo je zwracając. Efekt? Prostsze programowanie!

 

 

Leniwe ładowanie

Możesz skrócić czas ładowania, wczytując do pamięci głównej tylko niezbędne zasoby.

 

 

 

Obsługa niebezpiecznego rzutowania

Operator rzutowania rzuca wyjątek, jeśli rzutowania nie da się wykonać.

 

Kto używa Kotlina?

Według Google’a ponad 60% aplikacji dostępnych w Play Store korzysta z Kotlina. Choć jednak Kotlina używa się głównie do budowania aplikacji na Androida, to niezwykle wszechstronny język, który wspiera też tworzenie aplikacji na iOS, backendów i aplikacji webowych. Nie musisz wierzyć nam na słowo — spójrz na te statystyki:

 

Dwie na trzy aplikacje w Kotlinie powstają na urządzenia mobilne

 

A kto konkretnie tworzy w Kotlinie te aplikacje webowe i mobilne? Spójrzmy na kilka przykładów.

Kotlin w tworzeniu aplikacji mobilnych

Nie wiemy, co jest bardziej niesamowite: to, że Kotlin napędza większość aplikacji na Androida, czy to, że można w nim budować także produkcyjne aplikacje na iOS. Kotlin/Native czyni development wieloplatformowy realnym dla tego języka, drastycznie skracając czas potrzebny na dostarczenie interaktywnych, stabilnych produktów do największych sklepów z aplikacjami na świecie. 

 

Wśród firm, które wykorzystują interoperacyjność Kotlina w swoich wieloplatformowych aplikacjach mobilnych, są Target, Quizlet, CashApp, Yandexi VMWare. Wśród czołowych nazwisk w tworzeniu aplikacji na Androida są Pinterest, Uber, Basecamp, Evernote, Trelloi Kickstarter.

 

 

Z ponad 1,5 miliona pobrań aplikacja Evernote korzysta z Kotlina dla wysokiej niezawodności i wydajności

 

Chcesz dowiedzieć się więcej o Kotlinie w wieloplatformowym developmencie mobilnym? Sprawdź oficjalny tutorial Kotlina.

Drugie najpopularniejsze zastosowanie Kotlina to backend webowy. Język ma wiele frameworków do developmentu po stronie serwera (znajdziesz je tutaj), a pełna interoperacyjność z Javą oznacza, że może korzystać także z jej narzędzi. 

Kotlin w web developmencie 

Jako język z potencjałem technologii full-stack Kotlin może być też transpilowany do JavaScriptu i używany na front-endzie. Pakiet kotlin/JS pozwala budować kod celujący w JavaScript po stronie klienta i wchodzący w interakcje z elementami DOM oraz grafiką. Innym sposobem na tworzenie w Kotlinie porywających aplikacji webowych jest połączenie go z Reactem.  

Kotlin w tworzeniu gier

W zeszłym roku konsumenci pobrali rekordowe 204 miliardy aplikacji mobilnych, a gry mobilne odpowiadały za 56% rynku. JVM to świetne środowisko do tworzenia gier, a programiści Kotlina wykorzystują to na swoją korzyść. 

 

Jednym z najpopularniejszych frameworków do tego celu jest LibKTX, kotlinowe rozszerzenie opartego na Javie, otwartoźródłowego, wieloplatformowego silnika gier utrzymywanego przez BadLogicGames. Unreal Engine, Unity i jMonkey — wszystkich można używać z Kotlinem do tworzenia interaktywnych, wydajnych gier mobilnych.

 

 

TetroCrate 3D — przykład wieloplatformowej gry zbudowanej w Kotlinie

Kotlin w uczeniu maszynowym i data science

Zwięzły, elastyczny i łatwy do nauki Kotlin całkiem nieźle sprawdza się w zastosowaniach ML i data science. Jako język umożliwia szybkie iteracje i krótki czas realizacji, co jest kluczowe w projektach data science pełnych eksperymentów. Ponadto integruje się z notatnikami Jupyter Notebook i Apache Zeppelin, które ułatwiają wizualizację danych i badania eksploracyjne, a także oferuje rosnący zestaw własnych bibliotek data science. Dodatkowo Kotlin może korzystać z mnóstwa bibliotek uczenia maszynowego i matematycznych na JVM, takich jak Krangl, ND4J, Smile, CoreNLP i wiele innych. 

 

Przykłady: API rozpoznawania tekstu, ML Kit do rozpoznawania obrazów

Nauka Kotlina: co warto wiedzieć, zanim zaczniesz

Kotlin u podstaw opiera się na Javie i może działać w każdym środowisku Javy. Dla biegłego programisty Javy, takiego jak Ty, dołożenie go do portfolio nie będzie więc wielkim wyzwaniem. Pomyśl o przejściu z Javy jak o przesiadce ze zużytej, ale niezawodnej Toyoty do zupełnie nowego, ultraszybkiego i niezawodnego Porsche. Umiejętności potrzebne do prowadzenia obu pojazdów są podobne, ale ta przesiadka da Ci potężny zastrzyk wrażeń!

 

Składnia i struktura Kotlina wyda Ci się bardzo znajoma. A żeby opanować pojęcia charakterystyczne dla Kotlina, takie jak null safety, smart casts, rozszerzenia czy korutyny, możesz skorzystać z mnóstwa narzędzi i tutoriali, dzięki którym w mgnieniu oka staniesz się w pełni kompetentnym programistą Kotlina :

I jaki werdykt? Dasz Kotlinowi szansę?

Vitalii Danylov

Vitalii to doświadczony frontend i mobile developer (ze szczególną <3 dla React Native), który lubi poznawać nowe technologie, testować nowe narzędzia i odkrywać nowe podejścia.

Zobacz wszystkie wpisy autora
Java Pillar 1

Biznesowa strona programowania w Javie

Przewodnik dla startupów i cyfrowych przedsiębiorców

Czytaj teraz
Newsletter 9-1
Newsletter Ideamotive
Twój dwutygodniowy przegląd najgorętszych newsów technologicznych

Szukasz świetnych projektów do pracy jako programista Java?

Dołącz do Ideamotive Talent. Pracuj przy międzynarodowych projektach, zarabiaj i rozwijaj karierę na własnych zasadach.