Kotlin

Dzisiaj przygotujcie się na bardzo hermetyczny wpis, dotyczący... programowania. A nawet bardziej "potencjalnego programowania", albowiem rzecz będzie o języku programowania Kotlin, o którym właśnie wysłuchałem bardzo ciekawej audycji. Rzecz się ma bowiem tak, że programistą jestem od trzydziestu lat, zawodowym od piętnastu. No i rzecz jasna, przechodziłem przez różne języki, od BASICa czy LOGO przez Turbo Pascala i Delphi po Javę, Pythona, PHP czy JavaScript. Wspominam tu tylko te języki, w których faktycznie zdarzyło mi się napisać więcej niż kilka programów o znaczeniu użytkowym (a nie tylko testowych, bo musiałbym dopisać jeszcze C#, C++ czy Ruby). Jak na tak długi okres nie jest to może lista szczególnie imponująca, zwłaszcza że te pierwsze zupełnie już zarzuciłem.

No i jeśli chodzi o to zarzucenie, to od lat cierpię na to, że nie mogę wygodnie pisać programów "okienkowych" - czyli takich, które zwykli użytkownicy nazywają po prostu programami. Instaluje się je w komputerze, uruchamia i robi za ich pomocą "coś". Ten rodzaj programów, niegdyś jedyny, jest obecnie zastępowany przez aplikacje mobilne (w telefonach) i aplikacje webowe, sieciowe - czyli te uruchamiane w przeglądarkach. I nie chodzi mi tu o zarzuconą już technologię Flash, tylko o to, co zwykli użytkownicy nadal nazywają "stronami internetowymi", podczas gdy są to już najprawdziwsze programy. Coś bowiem musi sterować tym, w co klikamy, co mamy mieć wyświetlone, w jaki sposób, żeby wszystko ładnie się wyświetlało, przewijało, klikało itp. Dziś zwykłych, statycznych stron HTML, jakie pisało się w końcówce lat 90-tych i na początku XXI wieku już nie ma. Nawet moja strona to nie jest czysty HTML, a skrypty PHP, dzięki czemu działa np. galeria z komiksami.

Wracając jednak do mojego "cierpienia" - niestety, w dzisiejszych czasach pisanie aplikacji "okienkowych" stało się mocno utrudnione ze względu na oczekiwania odbiorcy, że program będzie działał niezależnie od platformy - obojętnie, czy używamy komputera od Apple, czy peceta z Windowsem, program powinien być dostępny. I tu pojawia się problem, bo oprogramowanie interfejsu użytkownika na każdą możliwą platformę jest dość skomplikowane, nawet jeśli używa się jakichś uniwersalnych bibliotek (w rodzaju GTK chociażby). Prościej jest zrobić wersję webową, ale tu znów trzeba postawić serwer i dbać o niego. A gdy dodamy do tego aplikacje na telefon (też osobno Apple i Android), to zadanie napisania aplikacji na wszystkie te platformy staje się zadaniem karkołomnym i wymaga przemyślanego wyboru technologii.

I stąd właśnie moje zainteresowanie Kotlinem, bo można w nim pisać w zasadzie dowolny rodzaj programów, w tym także "okienkowe" - poniżej przykład "Hello, world!", cały kod i efekt w postaci okienka z klikalnym przyciskiem:

Co ważne, Kotlin nadaje się także do pisania aplikacji mobilnych, więcej nawet: jest oficjalnym językiem na platformę Android. Już samo to sprawia, że jawi się on nadzwyczaj atrakcyjnie, dlatego zaczynam się zapoznawać z tym, co oferuje. Zachęcają mnie do tego ostatnie "przejścia", które miałem pisząc sobie aplikację do zarządzania podkastem, gdzie 80% czasu musiałem poświęcić na ręczne kodowanie interfejsu użytkownika, co z oczywistych względów obniża efektywność.

Czy przerzucę się zupełnie na Kotlin, przynajmniej w programowaniu "domowym"? Zobaczymy, Python już jakiś czas temu zrobił sporą wyrwę w javowym murze, bo proste programy działające w linii poleceń łatwiej jest mi pisać właśnie w Pythonie. Czy Kotlin spowoduje, że będę mógł zapomnieć o Swingu?...

Komentarze