Elixirowi, jak na niszę, niczego nie brakuje. Wywiad ze Stanisławem Śledzioną

geek.justjoin.it 7 miesięcy temu

– Elixir dzięki pasji społeczności i ogromnemu zaangażowaniu bardzo gwałtownie pozyskuje wsparcie wschodzących standardów web. A dodatkowo nie ogranicza się do jednej, konkretnej domeny stąd jako inżynierowie mamy dostęp do pierwszorzędnych narzędzi – powiedział nam Stanisław Śledziona, Senior Software Engineer w AppUnite. Zapytaliśmy go m.in. o to, co przemawia za tym, iż Elixir to język warty uwagi?

Od czego powinien zależeć wybór wiodącej technologii dla danego programisty?

Wybór wiodącej technologii dla programisty jest decyzją indywidualną i zależy od wielu czynników. Szczególnie dla tych doświadczonych, którzy pragną się rozwijać i poszerzać wachlarz umiejętności.

Gdybym dzisiaj stał przed takim wyborem to w pierwszej kolejności zadałbym sobie pytanie, czy chcę skupić się na jednej technologii i stać się ekspertem w danej dziedzinie, czy też preferuję wszechstronność i znajomość wielu różnych technologii.

Z jednej strony, mogę rozważyć naukę niszowej technologii, która może okazać się trudna do opanowania, ale ma duże zapotrzebowanie na rynku. Z drugiej strony, muszę wziąć pod uwagę ryzyko związane z ograniczoną dostępnością pracy w tej niszy. A może będę wolał pracować w przewidywalnym środowisku, z utartymi szlakami, będąc po prostu kolejnym programistą głównego nurtu.

Kolejnym aspektem jest innowacyjność i o ile uważam, iż innowacyjność tworzymy my, a nie wybrana technologia, to jednak dynamika pracy i możliwość eksperymentowania w niektórych technologiach jest większa. Technologie nieustannie się rozwijają. Ciągłe uczenie się i poznawanie trendów pozwala utrzymać się na bieżąco z rynkiem i wyprzedzić konkurencję.

Nie zapominajmy, iż w tej branży nie jesteśmy sami. To właśnie kooperacja i wsparcie społeczeństwa daje istotną przewagę na rynku. Wsparcie jakie pozyskamy w zespole, do którego dołączymy, czy ze społeczności jest niezwykle ważne w codziennej pracy. Są takie środowiska, w których rozwijamy się szybciej, są też takie, w których potrafimy się cofać. Wybór technologii może warunkować czy trafimy do pierwszego, czy do drugiego.

Myślę, iż warto również wspomnieć o samej satysfakcji z pracy. Praca nad różnymi, wymagającymi projektami pozwala uniknąć nudy i rutyny, co jest ważne dla utrzymania motywacji i zaangażowania. Praca z technologią, która pozwala tworzyć wartościowe produkty i usługi, przynosi ogromną satysfakcję. A jeżeli dodatkowo umożliwia szybkie prototypowanie i testowanie pomysłów, pozwala na efektywne dostarczanie wartości i ma ogromny wpływ na otoczenie i biznes.

Czy technologia, którą wybierzemy zapewni nam to wszystko?

To oczywiście moje subiektywne spojrzenie na ten temat. Ważne, aby przeprowadzić autorefleksję i szczerze sobie odpowiedzieć:

  • Jakie są moje mocne i słabe strony?
  • Jakie są moje cele zawodowe?
  • W jakiej branży chcę pracować?
  • Jakie są moje wartości?
  • Dlaczego szukam nowej, a może po prostu, tej jedynej, wiodącej technologii?

Polecasz Elixira, który oferuje szereg możliwości. Jakie to możliwości?

Elixir może być interesującą opcją dla doświadczonych programistów i w mojej opinii wcale nie z uwagi na jego możliwości. Oczywiście mógłbym teraz wymieniać długo jego słabe i mocne strony, ale czuję, iż jest coś, co zasługuje na większą uwagę. Szczególnie w czasach, kiedy efektywność i szybkość walidowania pomysłów może przesądzić o tym, czy nasz biznes ma potencjał i szansę na osiągnięcie sukcesu.

Elixir jest jedną z tych technologii, która w dobrych rękach może istotnie zbudować przewagę oraz zapewnić większą konkurencyjność na rynku. Zadaj sobie pytanie, jak gwałtownie oraz jakimi zasobami jesteś w stanie przygotować prototyp w aktualnej technologii? Prototyp, który możesz wykorzystać jako eksperyment do zweryfikowania pomysłu przez realnych użytkowników. Nie każdy biznes, który trafia na rynek osiągnie sukces, i zdecydowanie nie każdy będzie rentowny – czy warto więc weryfikować hipotezy szybko?

Elixir nie ma jednej, szczególnej cechy, która może nadać mu status technologii “tej jedynej, najlepszej” w konkretnej kategorii. To nie jest najważniejsze, a wręcz złudne.

Zamiast tego dostajemy zestaw cech, które wzajemnie się uzupełniają, są przemyślane i naprawdę robią różnicę czy to w małej czy dużej skali produktach.

Konstrukcja języka sprzyja bezpieczeństwu, posiada elegancką i zwięzłą składnię, co czyni kod czytelnym i łatwym do utrzymania. Nie jest to język czysto funkcyjny, ale wiele czerpie z tego paradygmatu, co sprzyja tworzeniu rozwiązań klarownych, modularnych i łatwiejszych do testowania.

Co więcej, nie wymaga tyle pracy przy zapewnieniu odpowiedniego poziomu stabilności i skalowalności, dzięki czemu możemy spokojnie skupić się na tworzeniu logiki biznesowej bez martwienia się o problemy z wydajnością. Oczywiście nie wyklucza takich problemów. To narzędzie, a do obsługi narzędzia również wymagane jest doświadczenie i wiedza. Nie mniej, naprawdę wiele wybacza.

Pomimo zdecydowanie mniejszego udziału na rynku, to uważam, iż społeczność i wsparcie języka jest jednym z najwyższych możliwych. Jak na niszę to nie brakuje nam praktycznie niczego. Elixir dzięki pasji społeczności i ogromnemu zaangażowaniu bardzo gwałtownie pozyskuje wsparcie wschodzących standardów web. A dodatkowo nie ogranicza się do jednej, konkretnej domeny stąd jako inżynierowie mamy dostęp do pierwszorzędnych narzędzi, które jeszcze bardziej ułatwiają i przyspieszają proces tworzenia rozwiązania. Należy również podkreślić, iż ta sama społeczność jest otwarta i przyjazna, oraz chętnie pomaga nowicjuszom w nauce i rozwiązywaniu problemów.

Co przemawia za tym, iż to język warty uwagi? Dlaczego “opłaci mi się” poznanie jego możliwości?

Elixir nie jest tak popularny jak inne języki, co oznacza, iż programiści mają większe szanse na znalezienie ciekawej, satysfakcjonującej i rozwijającej pracy. Pomimo mniejszej popularności nie brakuje nowych i często innowacyjnych projektów, w które można się zaangażować. Warto podkreślić, iż jest to język uniwersalny, który można zastosować w wielu różnych dziedzinach, chociaż najczęściej będą to Telecomy, FinTech, E-comm, IoT, i wszystkie inne, które opierają się o Instant Messaging oraz High Availability.

Myślę, iż ta technologia może przekonać również tych, którzy potrzebują więcej wyzwań, co może pomóc im odzyskać pasję do programowania. Elixir wciąż się rozwija, co oznacza, iż jest wiele możliwości dla doświadczonych programistów, aby wnieść wkład w język i jego społeczność. Odważę się stwierdzić, iż znajomość Elixira może otworzyć drzwi do nowych i ciekawych projektów.

Dodatkowo z uwagi na funkcyjny paradygmat wymusza na nas inny sposób myślenia i może prowadzić do świeżego spojrzenia na dotychczasowe wyzwania i rozwiązania. I to w sumie bez ograniczeń domenowych. W Elixirze możemy spokojnie tworzyć małe aplikacje, jak i duże systemy rozproszone, równie dobrze możemy tworzyć własne modele AI czy przetwarzać ogromne wolumeny danych. A jeżeli będzie nam czegoś brakowało to dzięki interoperacyjności języka możemy napisać coś w Pythonie, C, Rust, Javascript czy w innych językach i wykorzystać w Elixirze.

Czy biznes zna i rozumie zalety Elixira? Koniec końców to właśnie biznes decyduje o tym, czy wybór padnie właśnie na tę technologię.

To pytanie często pada i choć rozumiem intencję to osobiście uważam, iż posiada błąd poznawczy i można by je choćby określić pytaniem obciążonym. Oczywiście zdarzają się sytuacje, kiedy klient czy biznes docieka, dlaczego proponujemy lub tworzymy rozwiązania w tej czy innej technologii. Potrzeby i wymagania są różne, ale nie generalizowałbym, iż to właśnie biznes decyduje o wyborze.

Zadajmy sobie inne pytanie – czego biznes potrzebuje? Technologii czy produktu? No dobrze, to idźmy dalej. Produktu czy konkretnych wyników? Uważam, iż to bardzo ważne, aby postawić się w roli biznesu i ocenić czego rzeczywiście potrzebuje. jeżeli mam dochodowy biznes i osiągnąłem sukces to czy opowiadam w jakiej technologii go zbudowałem? Czy może o jego cechach szczególnych, wartościach jakie zapewnia klientom? Jakie problemy rozwiązuje? Jak ułatwia życie społeczeństwu? Co wnosi do naszego życia?

Jeśli kiedykolwiek zaproponowałem klientowi Elixira to właśnie dlatego, iż zależy mi na tym, aby wesprzeć go i zwiększyć jego szanse na dotarcie do tego etapu przy realizacji jego pomysłu.

Pomimo swojego młodego wieku, Elixir zdobył zaufanie wiodących firm na świecie i ma swoje miejsce w wielu bardzo dobrze znanych produktach. Tutaj spokojnie możemy wymienić Pinterest, PepsiCo, PagerDuty, Discord, Financial Times, Heroku czy Spotify. Na polskim rynku również znajdziemy wiele przykładów – często jest tak, iż korzystamy z jakiegoś produktu, choćby codziennie – i nie jesteśmy świadomi z jakich technologii korzysta. Czy to źle? Oczywiście, iż nie, ale może to tworzyć swego rodzaju bias dla niszowych technologii. Myślę, iż warto rozmawiać, to nic złego, iż pracujemy w mniej znanych technologiach, liczy się efekt naszej pracy i zadowolenie użytkowników.

Od czego warto zacząć naukę Elixira? Jakie źródła wiedzy polecasz?

Nic odkrywczego tutaj nie dodam poza tym, co w sieci łatwo znaleźć. Polecam zapoznać się ze źródłami na oficjalnej stronie Elixira oraz jak to ostatnio popularne oprzeć się o praktyczne wsparcie wybranego LLM. Osobiście jestem stanowiska, iż im szybciej zaczniemy praktycznie wykorzystywać pozyskaną wiedzę, tym lepiej, a jeżeli mamy możliwość konsultacji rozwiązań z doświadczonym programistą, to tym bardziej.

Zachęcam do otwartości i poszukiwania pracy w tym środowisku choćby bez wcześniejszego doświadczenia w Elixirze. Ostatecznie nieważne, jak potężne narzędzie, dalej pozostaje narzędziem, a my jako inżynierowie możemy się go nauczyć w każdej chwili.

Na koniec krótka przestroga: aby efektywnie wykorzystywać czas, traktuj mózg jako narzędzie do podejmowania decyzji, a nie przechowywania informacji – nie ma co zapamiętywać wszystkiego. Mózg posiada skończoną pojemność, przygotuj sobie jakiegoś cheatsheeta i zacznij pracę nad czymś, co ma rzeczywiście wpływ na Ciebie, Twoje otoczenie i społeczeństwo.

Stanisław Śledziona. Product Engineer w Appunite. Posiada ponad dziesięcioletnie doświadczenie. Pasjonuje się efektywnym rozwiązywaniem problemów, benchmarkingiem i architekturze IT. Poza pracą interesuje się muzyką i Hi Fi oraz nieustannie uczy się nowych rzeczy.

Idź do oryginalnego materiału