Firma Allegro, a konkretnie jej część technologiczna, w ramach cyklu swoich meetup’ów zaprosiła dzisiaj do swojej siedziby programistów na całodniowe warsztaty „Allegro Tech Labs Warszawa” z języka Kotlin. Jako człowiek ciekawy nowych rozwiązań technicznych oraz inicjatyw społecznych, przyjąłem zaproszenie i uczestniczyłem w tym spotkaniu, a poniżej przedstawiam swoje podsumowanie.
Na wstępie trzeba nadmienić że w Warszawie organizowanych jest sporo spotkań (meetupów) społeczności technicznej z 1-2 godzinnymi prezentacjami ale bez części praktycznej. Na stosunkowo częstych konferencjach w Polsce także dominują suche prezentacje. Warsztaty – i to krótsze – zdarzają się stosunkowo rzadko. Same prezentacje mogą być ciekawe i atrakcyjne, jeżeli jednak w domu (lub pracy) szybko nie przełożymy zasłyszanej wiedzy w działający kod na własnym komputerze, to taka wiedza szybko znika. Allegro podjęło ambitną próbę wypełnienia niszy warsztatów dla społeczności programistów – do tej pory zarezerwowanej dla firm (na zasadach komercyjnych) oraz uczelni technicznych (dla swoich studentów), za co – moim zdaniem – należy się spore uznanie.
Organizacja
Spotkanie było zorganizowane perfekcyjnie: zaproszenia elektroniczne z QR-code, nowoczesny biurowiec, duża sala z wygodnymi krzesłami i stołami, olbrzymi panel telewizyjny jako ekran, zasilanie do laptopów oraz szybka sieć WiFi. Do tego kawa, ciastka, napoje energetyczne, w przerwie pizza (wszystko za darmo). W ramach dopieszczenia uczestnicy otrzymali jeszcze zimowe rękawiczki (praktyczny prezent…) z logo organizatora. Goście karnie przyszli na wyznaczoną godzinę i warsztat rozpoczął się idealnie o czasie. Do niczego nie można było się przyczepić.
Formuła warsztatów
Warsztat był poprowadzony w formule która mi osobiście najbardziej pasuje: części prezentacyjne przedzielone częściami zadaniowymi do wykonania na własnym laptopie. Po półtorej godziny pierwszej prezentacji miałem wrażenie, że język poznałem doskonale. Dwóch prowadzących, Konrad Kamiński i Piotr Procner, założyli dobrą znajomość Java 8 wśród uczestników (takie było kryterium wymagane) i w bardzo szybkim tempie pokazali „mięso” – najważniejsze elementy języka porównując je do Javy.
Część warsztatowa była zorganizowana w postaci gotowego repozytorium na bitbucket.com, z miejscami w kodzie które należało uzupełnić aby uzyskać działający program. W trakcie realizacji tego zadania mój zachwyt z szybkiego poznania podstaw Kotlina trochę opadł. Mimo że zadanie było nieskomplikowane, to ogarnięcie wszystkich metod operowania na kolekcjach – w szczególności że domyślnie są one „immutable” – zajęło mi sporo czasu i nie zdążyłem zrobić całości przed lunchem.
Po przerwie kolejne sesje odbywały się w podobnej konwencji: prezentacja, zadania, prezentacja, zadania i ostatnia prezentacja.
Kolejne zadania także były niełatwe, bo nie były kolejnymi programami na poziomie pierwszego z użyciem tej samej początkowej wiedzy, tylko każde z nich pokazywało kolejny zakres możliwości Kotlina. To już nie były działające programy (w sensie biznesowym), tylko uzupełnienie dostarczonych szkieletów metod w taki sposób aby dostarczone testy jednostkowe (Spock i Spek) zadziałały – elegancka realizacja TDD. Na szczęście Ci, którzy nie zdążyli wykonać wszystkich zadań, mają dostęp do rozwiązań w repozytorium na osobnym branchu. Także później można je na spokojnie zobaczyć i zrozumieć.
Ostatnia prezentacja omawiała specyficzne niuanse Kotlina, które trzeba poznać w przypadku chęci stosowania go z frameworkiem Spring – bardzo częsty sposób zastosowania w rzeczywistych projektach.
Na koniec muszę jeszcze nadmienić, że w części warsztatowej dwaj prowadzący cierpliwie sprawdzali jak uczestnikom idą postępy prac i pomagali rozwiązywać problemy – wielki plus.
Język Kotlin
Prowadzący wyjaśnili że język Kotlin korzystający z Maszyny Wirtualnej Javy został wymyślony przez pracowników firmy JetBrains, tej od genialnego i pewnie znanego większości programistów Java środowiska IntelliJ Idea. Język powstał w roku 2011 jako remedium na bardzo wolno rozwijający się język Java (w tamtym okresie) i konieczność pisania aplikacji na urządzenia mobilne Android w języku Java w wersji 6. Kotlin to dużo bardziej „zwarty” język z zapożyczeniami z Groovy, Pythona i Scali kompilujący się w efekcie do bytecode’u Javy zgodnej z tą starszą wersją. Daje to możliwość przyjemnego pisania kodu uruchamiającego się na wielu urządzeniach.
Obecnie Kotlin jest oficjalnym językiem do pisania aplikacji na Android. Z tego co później sprawdziłem, to trwają nadal nad wersją języka Kotlin kompilującą się do kodu natywnego uruchamianego na wielu architekturach, co w efekcie da możliwość pisania jednego kodu który uruchamiałby się również na urządzeniach firmy Apple.
Podsumowanie
Allegro zrobiło świetną robotę z tym warsztatem – organizacyjnie i merytorycznie. Ja bawiłem się świetnie i sporo wyniosłem: wiedzy, kodu, wypitej kawy i kilku kawałków pizzy (i rękawiczki!). Z tego co zaobserwowałem, to inni uczestnicy także byli zadowoleni, a poziom merytoryczny pytań „z sali” wskazywał że było to sporo osób z doświadczeniem w programowaniu.
Mam nadzieję że cykl będzie kontynuowany i będę miał możliwość uczestniczyć w kolejnych warsztatach.