Mateusz Mazurek – programista z pasją

Blog o Pythonie i kilku innych technologiach. Od developera dla wszystkich.

Felietony/inne Inne

Kiedyś programowałem w Javie – czyli o zmianie języka wiodącego

Cześć.

Ten artykuł miał powstać już jakiś czas temu, ale różne zbiegi okoliczności sprawiły, że dopiero teraz pojawia się na blogu. Może dlatego, że historia którą opowiem ma już kilka lat i zebranie jej w głowie zmuszało mnie do niemałej retrospekcji… A może po prostu potrzebowałem artykułów mniej felietonowych. Tak czy siak, mamy to!

Pisałem w Javie

Skończyłem Politechnikę Łódzką na wydziale Elektrotechniki, Elektroniki, Informatyki i Automatyki, gdzie Java była głównym językiem, którego próbowali nas nauczyć wykładowcy. Patrząc wstecz nie mogę wiele zarzucić poziomowi wykładów i ćwiczeń, dziś oceniłbym go na taki „zaawansowany junior”. Myślę, że jest to poziom umiejętności, którego można się spodziewać po studencie i myślę, że jest on kompromisem pomiędzy dobrą znajomością składni języka, a małą liczbą złych nawyków. Oczywiście wtedy królowała Java w wersji 7 i nijak ma się ona do tego co Java prezentuje teraz. To były jeszcze czasy kiedy Sprint w większości opierał się na XMLu, Bootstrap był super nowością, a na froncie nadal można było spotkać jQuery (chociaż całkiem głośno się mówiło, że to passe). Istniał już ExtJS i powstawały na nim apki. Popularność zyskiwały takie rozwiązania jak Vaadin czy Google Web Toolkit. Jest to mniej więcej rok 2013.

Wtedy właśnie dostałem się na praktyki, gdzie, jak można się domyśleć, pisałem w Javie. Tworzyliśmy narzędzie trochę podobne do Jiry. Po praktykach poszedłem już do pracy (na część etatu) i tam również programowałem w Javie, tym razem był to Spring.

Myślę, że bycie pilnym studentem i 1,5 roku komercyjnego doświadczenia zrobiły ze mnie wtedy początkującego regulara z całkiem fajnymi perspektywami na przyszłość. Co się stało więc, że nie skorzystałem z tej obietnicy?

Język wiodący

Nim przejdę do dalszej części historii, doprecyzuję czym jest dla mnie „język wiodący”. Pod tym terminem rozumiem główny język w którym się specjalizujesz lub po który najczęściej sięgasz. Oczywiście nie jest on jedynym jakiego używasz. Bardzo rzadko zdarza się, by programista używał tylko jednego języka, ale zazwyczaj w jednym, wybranym, pisze najczęściej. I właśnie to jest język wiodący.

Decyzja o zmianie

Byłem już programistą Javy z ponad rocznym doświadczeniem komercyjnym. Pewnego pięknego (chyba letniego) dnia odwiedził mnie kolega. Wtedy jeszcze wynajmowałem jeden z trzech pokoi w mieszkaniu zaaranżowanym w stylu „błagam, wyremontuj mnie”. Nie zrozum mnie źle, było schludne i przestronne, a co najważniejsze bardzo dobrze je wspominam, a to że wymagało remontu… No cóż, na takie było mnie wówczas stać. Właśnie w tym momencie życia kolega (nieco lepiej zarabiający) zaproponował przejście do firmy, w której pracował. Szukali tam ludzi, ale pisali w Pythonie.

Najpierw odmówiłem, ale wraz z upływem czasu sceptycyzm ustępował ciekawości. Owa ciekawość sprawiła, że zacząłem przeglądać tutoriale uczące jak pisać w Pythonie. Bardzo podobała mi się prostota tego języka. Stała ona w ogromnej sprzeczności ze stylem Javy, gdzie klasy nazywają się np. AbstractAnnotationConfigDispatcherServletInitializer. Nie wymyśliłem tej nazwy, ona istnieje (lub istniała) w Springu.

W końcu zmieniłem pracę i zacząłem pisać w Pythonie. Nie miałem wiele do stracenia – ryzyko mniejszych zarobków nie przerażało, na wynajęcie pokoju w przeciętnym mieszkaniu i tak byłoby mnie stać.


Czekaj, stop!

Podoba Ci się to co tworzę? Jeśli tak to zapraszam Cię do zapisania się na newsletter:
a w ramach prezentu otrzymasz całkowicie za darmo, dwa dokumenty PDF „6 (nie zawsze oczywistych) błędów popełnianych podczas nauki programowania” który jest jednym z efektów ponad siedmioletniej pracy i obserwacji rozwoju niejednego programisty oraz „Wstęp do testowania w Pythonie”, będący wprowadzeniem do biblioteki PyTest.
Jeśli to Cię interesuje to zapraszam również na swoje social media.

Jak wyglądały początki?

Pisałem kod w Javie, ale ze składnią Python’ową. Inaczej mówiąc – tworzyłem potworki, które bardziej przypominały Javę niż Python’a. Dużym ułatwieniem dla mnie był fakt, że moje nawyki były regularnie temperowane podczas code review. Pamiętam, że pierwsza klasa, jaką stworzyłem w Pythonie wcale nie miała dużo mniej znaków, niż przytoczony przeze mnie wyżej przykład. Chwilę potrwało nim przyzwyczaiłem się do innej konwencji nazw zmiennych (camelCase vs snake_case). Największym problemem było oczywiście poznanie ekosystemu nowego języka i tego jak powinno się w nim rozwiązywać problemy. Jednym słowem z „początkującego regulara” spadłem na pełnoprawnego juniora.

Czy było warto?

Oczywiście doświadczenie wyniesione z Javy nie było bezużyteczne. Podejście do tworzenia rozwiązań i cały ten programistyczny mindset jest nadal taki sam. Czy było warto? Na tamte lata tak. Teraz największą przeszkodą byłyby pewnie pieniądze, bo musiałbym się liczyć z mniejszą fakturą, przynajmniej na początku. Ale wiem też, że przejście na inny język umiałbym teraz zrobić lepiej, mam znacznie szersze horyzonty i o całe tony więcej doświadczenia. Sprawia to, że jeśli będzie trzeba pisać w czymś innym niż Python/JS/PHP/SQL – bez większych problemów dam radę.

Kończąc

Jeśli rozmyślasz nad zmianą swojego języka wiodącego to przemyśl czy nie przeszkadza Ci prawdopodobnie mniejsza faktura i pewien okres w którym będziesz potykał się o podstawy. Jeśli nie masz z tym problemu, to myślę że warto. Zmiana technologii ogromnie poszerza horyzonty. Ja sam nie mogę zapewnić, że do końca swoich dni będę wierny Python’owi. Ale sądzę, że w tamtym czasie dzięki zmianie języka dużo szybciej wynajmowany pokój zmieniłem na własne mieszkanie.

Dzięki za wizytę,
Mateusz Mazurek

A może wolisz nowości na mail?

Subskrybuj
Powiadom o
guest

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.

2 komentarzy
Inline Feedbacks
View all comments
Rafał

Jak lubisz programować w coraz prostszych językach za coraz mniejsze pieniądze to polecam PowerBuildera. Tylko zauważ, że łatwo jest się przesiąść z języka trudniejszego na prostszy, a dużo trudniej w drugą stronę. Wiem bo to przerabiałem.