Rozmowa o funkcji „map” to już nie temat tabu

Rozmowa o funkcji „map” to już nie temat tabu
O sytuacji w branży, o tym dlaczego Scala jest z jego punktu widzenia jest lepsza niż Java i o tym, co interesuje go zawodowo mówi Krystian Rybarczyk – jeden z prelegentów konferencji J-Santa, która odbędzie się 8 grudnia w Lublinie.

Krystian Rybarczyk prywatnie jest szczęśliwym mężem i ojcem żywiołowego bardziej niż huragan malucha. Uwielbia uczyć się nowych rzeczy i fascynuje się programowaniem, którego uczył się na uniwersytecie Imperial College London. Doświadczenie zdobywał w firmach technologicznych w Monachium, Londynie i Dolinie Krzemowej. Obecnie wykorzystuje potencjał programowania funkcyjnego i Scali do przetwarzania Big Data. Interesuje się dostarczaniem kodu, automatyzuje co tylko może, a w wolnym czasie rozwija się kulinarnie oraz jako domowy barista.

Opowiedz o sobie, o swoich początkach w branży. Jak wyglądało to kiedyś, co zmieniło się do teraz?

K.R.: Moje pierwsze doświadczenie z programowania było takie, że wszystko jest obiektowe. Najpopularniejszy język, ten w którym wszyscy moi znajomi programowali i ten, w którym zacząłem pracować to Java 7. Obowiązkowe lektury to Design Patterns od Gang Of Four i ewentualnie Enterprise Integration Patterns. Programowanie funkcyjne i Haskella, którego uczyłem się na studiach trzeba było odłożyć na półkę. Temu, kto się zatrudnił w banku podobno niewielkie fragmenty systemu zdarzało się w Haskellu pisać. Twardzi zwolennicy programowania funkcyjnego mogli sobie co najwyżej dołączyć do Javy biblioteczkę z functionaljava.org. Aż w końcu pojawiła się Java 8, która nieśmiało otworzyła się na paradygmat funkcyjny. Lambdy z Javy to nie Haskell, ale przynajmniej rozmowa o funkcji „map” to już nie temat tabu, a w zasadzie nawet na topie. Osobiście bardzo mnie cieszy, że już nie tylko obiektowe programowanie jest fajne, ale że i coraz więcej funkcyjnego kodu zaczyna się pojawiać.

Dlaczego Java? Co skłoniło cię do wyboru tego języka? Dlaczego jest wyjątkowy?

K.R: Chyba życie przymusiło mnie do programowania w Javie (śmiech). Kiedy zaczynałem pracę, to w zasadzie był to jedyny sensowny język do programowania na backendzie. No, chyba, że chciało się pisać sterowniki do drukarek w C++. Z odpowiedzią na drugą część pytania mam jednak trudność, bo skłamałbym mówiąc, że Java jest wyjątkowa (śmiech). Nie uważam Javy za wyjątkowo udany język. Za wyjątkową cechę Javy można by zapewne uznać jej wszechobecność: od odtwarzaczy CD, przez samochody, na aplikacjach internetowych kończąc. Obecnie za znacznie lepszy język uważam Scalę mimo jej pewnych minusów i słabości. Czasem przedstawia się ją jako Javę na sterydach, ale ja uważam, że to w zasadzie inny paradygmat programowania. W Scali najbardziej podoba mi się to jak duże możliwość daje programiście. Można się postrzelić w kolano, jeśli się nie uważa, ale zdecydowanie bardziej wolę takie podejście niż walczenie z językiem, żeby zrobić cokolwiek niestandardowego.

Jaki projekt z realizowanych do tej pory możesz uznać za najciekawszy? Dlaczego?

K.R: Najciekawszy dla mnie jest chyba projekt, w którym obecnie pracuję. Przetwarzamy tam duże ilości raportów sprzedażowych w Scali przy użyciu Sparka. Z jednej strony bardzo ciekawy jest stos technologiczny, który składa się z narzędzi takich jak Docker, Kafka czy HBase. Do tego naprawdę piszemy w tym projekcie kod funkcyjny. Wiele fragmentów kodu jest też napisanych wykorzystując programowanie type-level. Według mnie to bardzo efektywny sposób programowania do przetwarzania danych.

Jesteś w gronie prelegentów tegorocznej konferencji J-Santa. O czym opowiesz? Zdradź kilka szczegółów.

K.R: Przede wszystkim postaram się zapalić do Scali (śmiech). Pokażę jakich problemów w Javie można się pozbyć wykorzystując Scalę. Opowiem o kilku moich ulubionych aspektach Scali. Pokażę, że w Scali można programować w całkiem inny sposób, znacznie bardziej efektywnie, ale też, że nawet zwykłe programowanie obiektowe jest w Scali znacznie szybsze i znacznie bardziej przyjemne.

Kto powinien pojawić się na Twojej prezentacji? Czego może się spodziewać?

K.R: Moja prezentacja jest skierowana przede wszystkim do obecnych programistów Java, do tych, którzy mają jakieś doświadczenie z programowaniem obiektowym i widzą pewne jego słabości, a chcieliby programowania przyjemniejszego. Na prelekcji pokażę im jak Scala to umożliwia.

Weź udział w J-Santa! Zarejestruj się TUTAJ