Czy Kotlin to przyszłość Androida?

W ostatnim czasie Kotlin robi zawrotną karierę wśród programistów, tworzących aplikację na Androida. W maju ten język programowania zyskał ważnego sprzymierzeńca, gdy Google ogłosiło, że Kotlin staje się oficjalnym językiem dla Androida. Czy to właśnie on, a nie leciwa już Java, będzie przyszłością najpopularniejszego na świecie systemu dla urządzeń mobilnych?

 
17 maja 2017 roku stanie się zapewne przełomową datą dla języka Kotlin. To właśnie tego dnia w czasie trwania Google I/O 2017 ogłoszono, że wspomniany język programowania stanie się oficjalnym językiem dla platformy Android. Z jednej strony wsparcie od takiego potentata, jak Google, to prawdziwa broń nuklearna w rozprawie Kotlina z konkurentami, a z drugiej – zachęta dla developerów, aby przesiąść się z Javy na Kotlin, od czego wielu z nich się powstrzymywało do tej pory ze względu na niepewną przyszłość języka Kotlin. Teraz ta przyszłość stała się o wiele jaśniejsza. Co prawda nie doszło do przejęcia przez Google firmy JetBrains, która stworzyła język Kotlin (konia z rzędem temu, kto jest w stanie wykluczyć, że tak się nie stanie w przyszłości), ale za to zapowiedziano jeszcze ściślejszą współpracę pomiędzy obydwoma firmami w zakresie rozwoju i propagowaniu języka Kotlin. Na marginesie: obydwie firmy już dawno ze sobą ściśle współpracują. JetBrains jest przecież między innymi twórcą IntelliJ IDEA, na którym opiera się Android Studio. W każdym razie zapowiedziano, że zostanie powołana fundacja non-profit, która będzie wspierała rozwój języka Kotlin, a narzędzia tego ostatniego zostaną włączone do Android Studio 3.0. Oznacza to, że developerzy nie będą musieli zawracać sobie głowy instalowaniem żadnego dodatkowego oprogramowania, aby tworzyć aplikacje Android w języku Kotlin. Już teraz wiele osób określa go jako Swift dla Androida.


Kilka liczb na początek


Kotlin nie pojawił się znikąd jak deus ex machina, już wcześniej używały go takie firmy, jak na przykład Pinterest, Basecamp czy Square. Teraz jednak dużo śmielej można stwierdzić, że ten język zaczął podbijać Krzemową Dolinę, a wraz z nią także cały świat. Warto pamiętać, że Kotlin nie jest związany tylko z Androidem, działa również z innymi technologiami, na przykład jest przeznaczony do pracy jako native code na komputerach Mac z iOS, kompiluje się w JavaScript do tworzenia stron internetowych itd. Jednak dopiero oficjalne wsparcie Google stało się skutecznym impulsem w propagowaniu Kotlina. Nic dziwnego, jeśli spojrzeć na dane IDC, okazuje się, że 85% smartfonów na rynku działa na Androidzie, podczas gdy system iOS największego konkurenta Google, czyli Apple, obsługuje zaledwie 14,7% telefonów, natomiast pozostałe platformy mają jedynie znikomy udział w rynku. Ogłoszenie oficjalnym językiem najpopularniejszego systemu na urządzenia mobilne stało się dla reklamy Kotlina nie do przecenienia. Miało to ogromny wpływ na popularyzację języka, ale nie jest tak, że nie zyskiwał on zwolenników już wcześniej. W rankingu RedMonk Kotlin był na 65 miejscu jeszcze w 2016 roku, aby w styczniu wspiąć się na 50 miejsce. Po ogłoszeniu decyzji przez Google, awansował na 46 pozycję. Znajdziemy go również w rankingach GitHub (39 miejsce) i Stack Overflow (60 miejsce). Kotlin jest nazywany coraz częściej wschodzącą gwiazdą w indeksie TIOBE. Jeszcze w maju zajmował 80 miejsce, a już w ostatnim, sierpniowym rankingu znalazł się na 41 pozycji. Czy to tylko moda? Kotlin ma jednak coś więcej do zaoferowania.


Zalety języka Kotlin


Kotlin to język rozwijany przez firmę JetBrains (jedna z najbardziej dynamicznych marek programistycznych, twórca między innymi PHPStorm, PyCharm itd.) oraz przez społeczność open-source. Nazwa została zainspirowana wyspą leżącą w pobliżu St. Petersburga. Początek projektu związanego z językiem Kotlin datuje się na 2011 rok. Główny programista JetBrains Dmitrij Żemierow tłumaczył, że większość istniejących wówczas języków nie ma cech, których potrzebuje JetBrains i inni developerzy. Rok później kod Kotlina został otwarty na licencji Apache 2. Programiści z St. Petersburga liczyli przy okazji, że zamieszanie wokół nowego języka zwiększy sprzedaż IntelliJ IDEA. Trochę jednak trzeba było poczekać na pierwszą stabilną wersję języka Kotlin. Pojawiła się ona dopiero 15 lutego 2016 roku, a zatem całkiem niedawno. Wielu programistów szybko zwróciło uwagę na mocne strony tego języka.


Niewątpliwie dużą zaletą Kotlina jest jego zwięzłość w porównaniu z Javą. W tej ostatniej często trzeba napisać wiele linijek kodu, aby wykonać najprostsze zadania (na przykład przechowywanie pól i zapewnienie do nich dostępu). W Kotlinie mamy zupełnie inną filozofię. Tutaj stawia się na to, aby kod był jak najprostszy i jak najkrótszy, składnia jest zwięzła. W tym języku znajdziemy liczne udogodnienia jak domyślne wartości atrybutów, klasy data (przechowywanie danych i podstawowy do nich dostęp), delegaty czy odwołania po nazwach w funkcjach. Widać tam również pewne inspiracje .NET jak tłumaczenie nawigacji po getterach i setterach czy dynamiczne typowanie. Kotlin ma wsparcie także w postaci bardzo dobrych narzędzi, począwszy od IntelliJ, a skończywszy na wtyczkach dla takich środowisk, jak Eclipse i NetBeans. Dużą zaletą jest również zwiększona niezawodność aplikacji i radzenie sobie z problemem null.


Kotlin a null


Wielu programistów pokochało Kotlin również za to, jak ten język radzi sobie z nullami, a szczególnie z NullPointerException, który jest jednym z najczęstszych błędów spotykanych w Javie. Czasem to prosty bug, który łatwo naprawić, ale bywa, że potrafi on rozłożyć na łopatki całą aplikację. W Kotlinie nie ma z tym problemu. Wprowadzono tam mechanizmy, które uniemożliwiają przypadkowy dostęp do wartości null. Tutaj wszystkie typy już domyślnie nie mogą przyjmować wartości null. To pozwala wykryć problem już na etapie kompilacji, a tym samym uniknąć błędów krytycznych znanych z Javy. Oczywiście w Kotlin wartość null możemy przypisywać do zmiennej, ale konieczne jest wtedy dopisanie do jej typu znaku zapytania.


Złota przyszłość języka Kotlin?


Ważne jest to, że Kotlin nie jest problemem dla tych developerów, którzy przywiązani są do Javy i nie zamierzają z niej zupełnie rezygnować. Język stworzony przez JetBrains i przez społeczność open-source ma jeszcze jedną ogromną zaletę: jest w pełni kompatybilny z Javą. Bez problemu może korzystać z jej frameworków i bibliotek, można używać języka Kotlin w już rozpoczętych projektach bez konieczności modyfikacji tego, co zostało napisane w Javie. Na przykład można zmienić tylko jedną klasę na Kotlin, a i tak wszystko będzie działało. Kotlin jest zatem nową możliwością, którą można łatwo i z powodzeniem wykorzystać w aplikacjach opartych na Javie.


Nie bez znaczenia dla języka Kotlin jest to, że oprócz JetBrains, nad jego rozwojem czuwa także prężna społeczność, która po decyzji Google zapewne jeszcze się powiększy. Kotlin nie musi być jednocześnie zabójcą Javy. Wystarczy spojrzeć na to, co dzieje się w systemie iOS. Mamy tam zarówno Objective-C, który ciągle jest wspierany przez Apple, jak i Swift. Nadal wiele aplikacji powstaje w Objective-C. W przypadku Androida może być podobnie. Nie zapominajmy, że Java to nieustannie najpopularniejszy na świecie język programowania. Czy zatem Kotlin rzeczywiście stanie się przyszłością Androida, będzie dla niego jakimś przełomem? Trudno w tej chwili odpowiedzieć jednoznacznie. Pewne za to jest jedno: uznanie za oficjalny język Androida stało się przełomem dla Kotlin.