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.
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.
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.
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 jest zwięzły i ekspresyjny, więc pozwala osiągnąć więcej, robiąc mniej.
equals, hashCode, toStringi copy .
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.
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]
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:
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.
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ą.
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:
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.:
Kotlin obsługuje skoki nielokalne, które pozwalają wyjść z funkcji w dowolnym miejscu.
Ta funkcja przyspiesza pracę z kolekcjami.
Funkcje rozszerzające pozwalają rozbudowywać istniejące komponenty bez pisania metod w ich wnętrzu, dzięki czemu kod jest czystszy.
Te funkcje operują na innych funkcjach, przyjmując je jako argumenty albo je zwracając. Efekt? Prostsze programowanie!
Możesz skrócić czas ładowania, wczytując do pamięci głównej tylko niezbędne zasoby.
Operator rzutowania rzuca wyjątek, jeśli rzutowania nie da się wykonać.
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.
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.
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.
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
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
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 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 autoraPrzewodnik dla startupów i cyfrowych przedsiębiorców
Czytaj terazPopularne artykuły
21 inspirujących projektów UI aplikacji mobilnych na 2023 rok
Michał Pruciak 7 min czytania
MedTech vs HealthTech vs BioTech: jakie są różnice?
Michał Pruciak 7 min czytania
10 biznesowych zastosowań sieci neuronowych (z przykładami!)
Michał Pruciak 4 min czytania
10 przykładów dobrych praktyk w web designie na 2023 rok
Adam Kozłowski 7 min czytania
28 znanych aplikacji webowych napisanych w PHP
Dawid Karczewski 14 min czytania
Jakich usług programistycznych szukasz?
Dołącz do Ideamotive Talent. Pracuj przy międzynarodowych projektach, zarabiaj i rozwijaj karierę na własnych zasadach.
Dane rejestrowe:
Firma
Usługi
Najczęściej poszukiwani specjaliści
Ocena 4,8 / 5,0 od klientów z różnych branż i lokalizacji.