#47 – Trendy w tworzeniu aplikacji webowych na 2024 rok – wywiad z Michałem Dziedzińskim
W tym odcinku dyskutuję z Michałem Dziedzińskim – senior frontend developerem – na temat obecnej sytuacji, jak i trendów na najbliższe lata w świecie tworzenia aplikacji webowych.
Transkrypcja odcinka
Cześć, nazywam się Krzysztof Rychlicki-Kicior i witam cię serdecznie w podcaście „Software z każdej strony”, w którym dowiesz się, jak łączą się ze sobą świat biznesu i IT.
To jest odcinek 47: „Trendy w aplikacjach webowych na rok 2024”. Wywiad z Michałem Dziedzińskim.
Krzysztof Rychlicki-Kicior: Cześć, tak jak zapowiadałem, powracamy do idei wywiadów rozpoczętej dawno temu i w sumie zamkniętej w jednym tylko odcinku z Michałem Morozem. Natomiast tak jak zapowiadałem to się udało zmaterializować i ze mną jest dzisiaj Michał Dziedziński, Senior JavaScript Developer w Vaimo z doświadczenia w takich firmach jak chociażby Divante czy Teamwork, który miał również przeszłość związaną z tworzeniem treści właśnie na temat branż IT. Cześć Michał.
Michał Dziedziński: Cześć, cześć. Witam serdecznie.
Tak to może ja zrobiłem krótkie wprowadzenie, ale opowiedz jeszcze chwilę o swoich doświadczeniach, tak na wstępie. Jak to z twoją przygodą właśnie w zakresie JavaScript-u, czyli front-endu było, jest, a potem przejdziemy do rozmowy.
No więc takim ogólnie programowaniem można powiedzieć, zajmuję się od 2017 roku. Tam początki były z PHP i właśnie front-endem, więc no teraz już właściwie 7 rok leci tej przygody. Część z was może mnie kojarzyć z mojego kanału na YouTube „Dziedziu programuje”, dawno już tam żadnych treści nowych nie było, ale prowadziłem taką serię o Vue 3 od podstaw oraz miałem okazję gościnnie występować na kanale na przykład „Samuraj programowania” czy na różnych Meetupach.
Tak potwierdzam, bo właśnie odnowiliśmy kontakt po pewnym czasie przy okazji Meetapu, gdzie Michał miał okazję wygłosić ciekawą prelekcję. Trochę zresztą związaną z tym, o czym będziemy dzisiaj mówić. No właśnie ten odcinek pojawi się nie na samym początku roku, no my rozmawiamy w styczniu, natomiast jest to taki moment, w którym warto myślę się zastanowić nad tym, jak ten dynamicznie zmieniający się świat aplikacji webowych i pod kątem front-endu, i pod kątem back-endu, czyli pod kątem tego, co widać, pod kątem tego, co dzieje się pod maską. Po pierwsze wygląda teraz, a po drugie czego możemy się spodziewać, jakby zarówno w tym roku, jak i patrząc w takiej szerszej perspektywie. Może tak logicznie patrząc zaczniemy od tego, co dzieje się teraz, jakbyś Michale podsumował, jak twoim zdaniem wygląda, wyglądały ostatnie lata, ostatni rok, ostatnie lata, ostatni czas w świecie aplikacji webowych. Oczywiście z Twojej perspektywy pod głównie pod kątem front-endu, ale oczywiście jeżeli chcesz zahaczyć też o szersze spojrzenie, to absolutnie zachęcam.
Jasne, więc mam takie wrażenie, że takie największe rewolucje tutaj w świecie front-endowym, można powiedzieć, że są już trochę za nami. Mam wrażenie takiej stabilizacji tego całego ekosystemu po takiej rewolucji, jaką w JavaScript-cie był ECMAScript 6 lub 2015, gdzie ten język no może nie został wywrócony do góry nogami, ale przeszedł naprawdę dużą rewolucję. Pojawiły się deklaracje zmiennych takie jak Let, Const klasy definiowane za pomocą klas czy promisy. No to od tamtej pory raczej mamy do czynienia z ewolucją tego języka, są dodawane jakieś nowe featury, które mają ułatwić nam pracę nam programistom, między innymi w ostatniej aktualizacji można powiedzieć, zostały dodane pewne metody do tablic, więc praca z tym językiem, mam wrażenie, jest coraz przyjemniejsza. Coraz, można powiedzieć, wygląda on może bardziej podobnie do innych języków, w sensie jak ktoś ma jakiś background z innego języka, może znaleźć więcej takich rzeczy właśnie podobnych do innych języków.
Jeśli chodzi o ogólnie o frameworki, biblioteki to od tego 2017 roku, kiedy ja zacząłem tutaj tą swoją przygodę, można powiedzieć, że mamy tutaj tych trzech królów, którzy nam tutaj panują, czyli jest React, Performance, Angular. W zasadzie od tych 6-7 lat nic się w tym względzie nie zmieniło. Chociaż same te biblioteki jeśli mówię o React czy frameworki przeszły jednak w tym czasie jakieś tam zmiany. Jeśli chodzi o Angulara, to ta ostatnia, jak ja zaczynałem to była jeszcze wersja druga, teraz już mamy siedemnastą, dużo było tych też zmian gdzieś po drodze. Ta wersja siedemnasta z tego co tak kojarzę to dość dużą rewolucję zrobiła. Jeśli chodzi o Performance, ale jakaś tam zmiana składni w template-ach. W międzyczasie było można powiedzieć mała rewolucja w React’cie w wersji 16.8 to był chyba 2019 rok. Tam zostały wprowadzone hooki i z tych takich komponentów funkcyjnych i klasowych można powiedzieć, że developerzy głównie zaczęli pisać te komponenty funkcyjne z użyciem tych hooków. A w samym View też była aktualizacja z wersji drugiej do trzeciej, zostało wprowadzone nowe composition API, które też zmieniło totalnie sposób pisania komponentów. Jest on można powiedzieć bardziej teraz przypomina to składnie react’ową, ułatwia na przykład pisanie w typescriptcie w View, więc też jeśli ktoś miał styczność z View 2 i teraz by przeszedł do View 3 gdzie to options API, które wcześniej było, również jest możliwe, ale raczej ten kod będzie wyglądał jednak inaczej. No to mimo tych zmian, które wprowadzają jakąś ewolucję czy czasami nawet rewolucję w tych frameworkach, to cały czas mamy jednak tych trzech królów na tronie.
Chciałem tylko dodać, że nie mogę się zgodzić bardziej, bo faktycznie tak jak wspominałeś, że 7 lat już zajmujesz się właśnie front-endem. Pamiętam jak w Makimo mniej więcej te 7 lat temu to był taki okres burzy i naporu można powiedzieć, wtedy powstawały żarty w stylu co tydzień powstaje nowy framework JavaScriptowy albo przynajmniej narzędzie do budowania, bo przecież był najpierw Bauer, potem Grant, Gallup. Na szczęście to wszystko gdzieś tam się uspokoiło, bo jak co projekt dosłownie w pewnym momencie ktoś wrzucał nowe narzędzie, to było po prostu strasznie mało stabilizacji co też pod kątem biznesowym, w zasadzie trudno było przewidzieć co się wydarzy. Więc ta stabilizacja myślę, że jest fajną rzeczą.
Być może dalej tak jest, w sensie że cały czas się pojawiają te nowe narzędzia. Przecież jest i BAN, i ROOM chciał w pewnym czasie gdzieś tam połączyć wszystkie narzędzia w jedno, i gdzieś tutaj zapanować. Natomiast tak, no jest taka stabilizacja możemy powiedzieć, bo jednak właśnie o ile NPM był właśnie package manager, te 7 lat temu można powiedzieć, królował to w międzyczasie, gdzieś go tam Yarn próbował podgryźć i dużo projektów było na Yarn migrowanych, bo był zdecydowanie szybszy. Teraz dużo projektów nowych jest gdzieś stawianych na przykład na PNPM, gdzieś ten Yarn też poszedł w odstawkę. Z kolei Webpac był często taką podstawą jednak do budowania projektów, aczkolwiek jak ja zaczynałem, to z kolei pojawił się Parcel i wszyscy mówili: „nie teraz to tylko Parcel, bo tam to właściwie ta konfiguracja jest bardzo prosta”, ale właśnie przez to, że pojawiają się takie jakieś alternatywy to zarówno NPM, jak i Webpac zostały rozwinięte i gdzieś tam jakieś problemy na przykład z performancem zostały w nich tam poprawione, aczkolwiek teraz Webpac też jest wypierany z kolei przez Vite, który został stworzony przez twórcę View i oparty jest nie o JavaScript tylko esbuild napisany w GO i również ten performance jest zdecydowanie lepszy niż w Webpac. Ale mamy do czynienia z jakąś stabilizacją taką trochę jednak, mam wrażenie.
Tak, ja tak mówię o dziwo, bo jednak na co dzień nie programuje, a przynajmniej nie właśnie od tej strony biznesowej bardziej gdzieś tam na uczelni, ale akurat z Vite, miałem drobny ale nie zerowy kontakt i faktycznie zgadzam się, fajnie wydajnie to działa. Paradoksalnie jakoś w czasach, kiedy Webpac zdobywał popularność to akurat ja byłem troszkę z dala od kodu. Jakie jest twoje zdanie bo ja właśnie z taką dłuższą, ale co by nie powiedzieć mniej aktywną przeszłością, zwłaszcza w ostatnich latach. Jak zacząłem słyszeć, o tych trendach, to miałem takie skojarzenia powrotu do przeszłości. Jakie jest twoje zdanie na temat server-side renderingu w kontekście tego, w jaki sposób aplikacje właśnie front-endowe działały wcześniej, czy korzystasz, czy uważasz, że to jest fajny trend? To i zresztą to co też teraz w ostatnim czasie było ciekawym tematem, jeśli chodzi o React, takie inicjatywy jak to jest React Server Components. Jakie jest twoje zdanie na ten temat?
Znaczy, no właśnie muszę powiedzieć, że tutaj kolejna rzecz, z którą branża IT zatacza koło gdzieś, to w kwestii właśnie perspektyw też o tym chciałbym powiedzieć, jeśli tutaj chodzi o ten SSR. Mieliśmy swego czasu takie podejście; dobra, koniec tych tutaj aplikacji, np. PHP z jQuery tutaj na froncie, teraz wszystko wrzucimy tutaj w przeglądarkę, niech sobie ona to przemieli i jakby mimo tego, że te nasze sprzęty są coraz szybsze to jednak ten performance, ta wydajność tych aplikacji, jest jednak stawiana teraz dość wysoko i mamy taki trend, żeby jednak część tych rzeczy albo może, i większość przerzucić tutaj na tą stronę serwera i ten trend jak najbardziej można zauważyć. Jak sobie porównywałem ilość ściągnięć Reacta i na przykład Nexta, czy Viewnexta, no to oczywiście ilość tych pobrań cały czas rośnie w obu przypadkach, ale jakby ta proporcja ściągnąć czystego Reacta a właśnie Nexta czy Viewnexta, tutaj te proporcje zmieniają się na korzyść tych rozwiązań właśnie SSR-owych. Czyli chcemy, chociaż te pierwsze wejście na stronę użytkownika właśnie wygenerować na serwerze po to, żeby to było gdzieś tam szybsze mamy tutaj, gdzieś też na widoku to SEO. Zdecydowanie jest to trend, który się pojawia i jest coraz jednak popularniejszy, czy chociażby takie podejście jak Astro JS, które się ostatnio pojawia i też zdobywa popularność, czyli takie podejście zero JS. Wyrzućmy samego HTML-a i CSS-a użytkownikowi i to island architecture, czyli dodajmy JS jedynie w tych fragmentach strony, które faktycznie tego potrzebują, to jest w tych, które w jakiś sposób mogą mieć interakcję z użytkownikiem.
No tak tutaj z jednej strony widać ewolucję, z drugiej argumenty do biznesu też trafiają, bo wiadomo, każdy chce, żeby te strony się ładowały szybko, a SEO to jest taki problem, który od lat gdzieś towarzyszył aplikacjom front-endowym. Fajnie, wszystko pięknie działa, a natomiast co z tym co z tym SEO, jak z widocznością zwłaszcza systemy e-commerce. Tam, gdzie chcemy, żeby w Google wyskakiwały na przykład produkty, bezpośrednio pojawiały się konkretne chociażby, to taki przykład. Także to jest faktycznie bez wątpienia z jednej strony coś co już jest, a z drugiej tak jak wspomniałeś, no trudno jest o do końca oddzielić to co teraz jest i perspektywy, bo to się oczywiście miesza.
Też właśnie tutaj ja pamiętam, były takie; że spokojnie to sobie tam Google z tym poradzi, te ich roboty ogarną tutaj, sobie zobaczą, co jest na tej stronie mimo wszystko, jeśli to będzie nawet single page application. Ale nie zapominajmy, że przeglądarki to nie tylko Google, no szczególnie na innych kontynentach, na przykład ta, to nie jest aż tak aż tak popularne, więc zależy od rynku i zależy od zastosowań jak najbardziej.
To prawda. Tak powoli płynnie, bo w zasadzie trochę już zaczęliśmy mówić o perspektywach. Możemy przejść w tym kierunku właśnie perspektywicznym, czyli jak twoim zdaniem ta właśnie ewolucja będzie podążać, czy może jest szansa, czy widzisz jakieś kierunki, w których to może pójść w inną stronę? Może to się zdynamizuje czy może będzie powrót do znowu jakichś frameworków nowych, które będą pojawiać się często. Jak to widzisz od strony tej, zwłaszcza w front-endowej?
To może z tej perspektywy najpierw dewelopera tutaj powiem niż użytkownika. No to jednak AI trochę tutaj to wywróciło do góry nogami. Ja chociażby widzę po sobie, że o ile gdzieś ten taki STalk, na którym pracowałem czy gdzieś tam, edytor plus przeglądarka, to właściwie przez wiele lat był taki sam. To jednak pojawienie się Copilota czy pojawienie się ChatGPT sprawiły, że jednak tych narzędzi używam dużo, używam często, używam codziennie, bo naprawdę sporo one tę pracę ułatwiają i według ostatniego raportu z listopada bodajże GitHuba już 92% programistów używa aktualnie narzędzi AI w swojej pracy. Więc jak widać jest to trend nie tylko u mnie, ale u szerokiego grona programistów, bo naprawdę często nawet pisząc jakąś funkcję, warto ją sobie można nawet wrzucić w tego czata, żeby podpowiedział czy jakiś tutaj nie widzi możliwości na przykład refaktoru i czasami coś fajnego tutaj podsunie. Już nie mówiąc o tym, że chociażby takie rozwiązania można podpinać jakby jako automatyczne na przykład jakieś pierwsze code review, gdzie gdzieś może to zostawić jakieś nam zmiany pozytywne w kodzie, gdzieś podpowiedziane przez takie narzędzia. Już nie mówiąc o tym, że tam czasem jakieś fragmenty w tym kodzie jednak nie zawsze tutaj nie wiadomo jakich innowacyjnej rzeczy piszemy, czasami są to jakieś metody związane z filtrowaniem na przykład no to takie narzędzia jak Copilot, na przykład fajnie jednak podpowiadają, czasami wystarczy zrobić ten tab, przejrzeć co tutaj ten Copilot nam wygenerował i czasami być zaskoczonym, że naprawdę fajnie to zrobił.
Tak tutaj ja tak bardziej od strony też biznesu mogę dodać, że na początku była spora obawa co z prawami autorskimi, bo wiadomo, że na przykład często zwłaszcza myślę, że to się zaczyna troszkę klarować, że czym innym jest to, o czym ty mówiłeś, że na przykład takie wsparcie, ocena kodu czy jakieś drobne poprawki, drobne modyfikacje. Bo też zdarzały się sytuacje, że na przykład, jak się poprosi o wygenerowanie jakiegoś dużego skryptu dostosowanego do pewnych wymagań, to jest właśnie pytanie, skąd ten ChatGPT wziął oryginalne źródło, czy to nie jest tak, że skorzystał z jakiegoś przykład kodu na oryginalnie, oczywiście nie w prosty sposób na GitHubie, który był na jakiejś licencji, która na przykład nie była permisywna. To są takie tematy, nad którymi prawnicy wciąż się pochylają. Chociaż myślę, że od tego gdzieś tam nie ma odwrotu, no bo to poprawia produktywność w wielu sytuacjach i koniec końców pozwala nam pracować wydajniej po prostu.
Z innej strony, jak najbardziej jestem w stanie zrozumieć tutaj autorów, czy programistów, czy po prostu artystów na podstawie, których dzieł gdzieś ten model się uczył i generuje tutaj te odpowiedzi, ale z drugiej strony, no nie jesteśmy w stanie dojść do tego, czy akurat z tego fragmentu gdzieś tutaj korzystał. No cóż no jest to z jednej strony problem prawny, z drugiej pewnie gdzieś tam jakiś etyczny więc no to są ciekawe pod tym względem czasy.
Z drugiej strony tak naprawdę z ręką na sercu tutaj warto byłoby zapytać w czasach przed tym ChatGPT jak to wyglądało, kiedy na przykład ludzie wchodzili na Stack Overflow i sobie korzystali z rozwiązań, które tam były publikowane i tam wprost ktoś opublikował rozwiązanie. No i co jak jeżeli ktoś na przykład skopiował taki fragment kodu, co jeżeli ktoś skopiował fragment takiego opublikowanego kodu. No to można by dociekać, natomiast myślę, że póki nie mówimy o sporach korporacji, tak jak kiedyś był chyba taki spór między Google a Oracle o jakąś dziesięciolinijkową funkcję w JDK, którą Google niby skopiował z Oracle i chcieli się sądzić o parę miliardów dolarów. No, ale to jakby już gra korporacji.
Można się domyślać, że jeśli ktoś wrzuca na Stack Overflow jakiś swój fragment kodu to w domyśle, znaczy no w domyśle, no z drugiej strony nie, ale raczej szykuje się na to, że ktoś może go jednak skopiować. Swoją drogą, jeśli chodzi o Stack Overflow, ja widzę po sobie, że zdecydowanie częstotliwość moich odwiedzin się tam zmniejszyła i to też potwierdzają dane, gdzie widziałem taki wykres po publikacji Copilota oraz po publikacji ChatGPT, to ilość odwiedzin tam unikalnych na Stack Overflow ponad połowę się zmniejszyła, także to również jest trend.
No to jak widać cierpi na tym najbardziej Stack Overflow, ale to też pokazuje, że to nie jest tak, że programiści wcześniej po prostu wszystko wymyślali sami, a teraz ok, teraz nagle mogą korzystać z pomocy, tylko po prostu zmieniło się w pewnym sensie źródło tej pomocy. No i może faktycznie chatGPT jest w stanie wygenerować kod, który jest trochę bardziej dostosowany do problemu, no bo na Stack Overflow jakaś odpowiedź trzeba było ją sobie na przykład dostosować. Nie da się ukryć, że gdzieś oczywiście AI pojawia się jako z jednej strony, bo tutaj wspomniałeś o perspektywie dewelopera, z drugiej strony też jest masa dosłownie masa, bo teraz w tym semestrze ze studentami prowadziłem przedmiot z uczenia głębokiego z deep learningu i nawet w czasie semestru musiałem dostosować treści, bo zmieniała się na przykład paleta narzędzi, z których można korzystać. Musiałem zmieniać treści zadań dynamicznie z miesiąca na miesiąc, które były zadawane, bo po prostu były na przykład nowe opcje i chciałem studentom pokazać, że coś tam nowego można zrobić. Tutaj ciekawym aspektem, jakby trochę z perspektywy back-endowej, ale tak naprawdę to z perspektywy tego, że chcąc zrobić rozwiązania AI-owe nie trzeba stawiać całego systemu od zera, tylko można na przykład skorzystać z takich serwisów jak Hugging Face, gdzie można sobie dosłownie w 15 minut uruchomić własny model stable diffusion, czyli do generowania grafiki albo oczywiście te wszystkie narzędzia GPT. Z perspektywy front-endu to musi być fajne, bo tak naprawdę zwłaszcza na potrzeby jakichś prototypów w ogóle nie trzeba się bawić w back-end, który się zostawia z kimś się dogadywać, tylko w zasadzie przy odrobinie reaserchu frontendowiec może sobie zestawić back-end samemu i tylko zrobić warstwę frontową. Nie wiem czy ty miałaś takie doświadczenia, natomiast wygląda to bardzo optymistycznie też pod kątem szybkości dowożenia takich AI-owych prototypów.
Nie, akurat ja nie miałem osobiście takich doświadczeń, ale tak masz rację, to zdecydowanie może ułatwić pracę, szczególnie, że jesteśmy bardziej autonomiczni, wtedy można powiedzieć.
Tak. No ale właśnie pod kątem prototypowania też jest to super, bo nie trzeba odpalać zespołu czekać trzy miesiące, aż coś tam zacznie być generowane i się okaże, że model stable diffusion generuje ludzi z twarzami, które wyglądają jak z horrorów na przykład i że trzeba do tego pół godziny.
Twarze jak twarze palce, z kolei jak tam gdzieś na Aliexpress widziałem, że można sobie kupić dodatkowego palca, żeby w razie w gdzieś tam można było się wybronić; a to nie ja jestem na tym zdjęciu tylko wygenerowane przez AI.
Z twarzami to jak spontanicznie właśnie na zajęciach ze studentami, coś tam generowałem, że miała być na przykład osoba jadąca na koniu, to te twarze czasami były, to nie były twarze, to były po prostu takie uncanny valley. Niby twarz ale nie do końca ludzka, więc wyglądało to po prostu bardzo tak niepokojąco, ale cóż to rzeczywiście jest kwestia jakiejś tam dokładności. Więc tak przechodząc może właśnie do perspektyw, zresztą w taki płynny sposób, jeśli chodzi jeśli chodzi o te frontendowe techniki. Jak to widzisz poza AI, no bo tutaj już rozmawialiśmy o AI, to tak też pod kątem można powiedzieć praktyki deweloperskiej. A czy widzisz jakieś takie możliwości, jeśli chodzi o same technologie czy to czy jakiś kierunek czy jakieś takie nowinki?
No trochę o tym temacie już rozmawialiśmy. Jeśli chodzi o SSR i jednak ograniczanie tego JS tutaj w przeglądarkach, to myślę jest taki właśnie trend, gdzieś skupienie się na tym performance. Jest też trend, aktualnie pracuję w e-commerce i jednak większość swojego zawodowego życia w tym e-commerce spędziłem, narzędzi AR i VR w tym e-commerce, że jednak mogę sobie sprawdzić czy to PlayStation zmieści mi się pod telewizorem na przykład. Więc jakby szał na to można powiedzieć już minął, ile jeśli chodzi VR na przykład a teraz może przechodzimy bardziej do takich praktycznych tutaj zastosowań, ile między innymi właśnie w e-commerce. Myślę, że jest to praktyczne rozwiązanie, czy gdzieś tam na przykład kompletowanie sobie mebli do kuchni, że tak możemy sprawdzić czy to tutaj będzie pasować, jakoś sobie to układać więc tak, jeśli chodzi o e-commerce, to widzę tutaj właśnie taki trend. No tak no i tutaj właśnie ta wydajność, to jest coś na czym znaczy mam wrażenie, ta frontendowa branża głównie się teraz skupia, na być może jakimś upraszczaniu narzędzi. Widzę też, że dużo projektów odchodzi na przykład od procesorów CSS-owych, które gdzieś tam od dawna, jakby to był taki CSS tutaj z doładowaniem, bo pojawiły się zarówno custom properties czy jak niektórzy mówią zmienne w CSS czy w poprzednim roku zagnieżdżanie selektorów, co jak dla mnie było jednym z takich głównych ficzerów tych procesorów CSS-owych. Więc też mam wrażenie, że w takim kierunku właśnie uproszczenia być może tych narzędzi, czy chociażby właśnie Rome, który się przekształcił w Biome’a z tego co tam kojarzę właśnie i na przykład prettiera z eslintem, żebyśmy tutaj mieli jedno, tutaj znowu jakby do perspektywy dewelopera, ale żebyśmy mieli jedno narzędzie więc myślę, że w kierunku tutaj ta część tej branży tutaj zmierza.
Patrząc na to właśnie z takiej trochę nawet, powiedziałbym dalszej perspektywy w sensie nie konkretnych może technologii, ale pewnym trendem, właśnie pytanie też jak ty to oceniasz jest to, że nawet o ile w tym frontendzie troszkę widzimy pewien spokój może nie totalny, ale wciąż jak na jak na JavaScript-owy świat to jest w miarę spokojnie, to po stronie back-endu dzieje się sporo. Bo z jednej strony powstaje coraz więcej gotowych usług, już nie tylko w świecie AI, ale w ogóle dostawcy chmurowi oferują coraz to więcej takich gotowych komponentów klocków, z których można korzystać. A z drugiej strony, zwłaszcza w przypadku prostych aplikacji, stawianie takiego jakby własnego back-endu często mija się z celem, bo przecież są takie platformy jak Firebase, Supabase też taki projekt dosyć ciekawy ostatnio przykuł naszą uwagę i w zasadzie się okazuje, że jakby często tutaj front chyba ma przewagę. Nie wiem czy się zgodzisz, bo jednak ludzie widzą front-end, więc chcą, żeby on był troszkę dostosowany pod nich praktycznie zawsze, nawet jeżeli to są jakieś gotowe komponenty oparte na jakimś takim stylu czy template, który jest gotowy to jednak jakieś dostosowania każdy chce sobie pewnie poprzesuwać mniej lub bardziej. A back-end to jest coś czego ludzie nie widzą i też mogą koszty, że tak powiem widzieć w tym trochę zbędne skoro są platformy. Nie wiem jak ty to widzisz, ale moim zdaniem może być, może nie to może nie do marginalizacji, ale te proste zastosowania back-endu mogą gdzieś tam odchodzić troszkę do lamusa.
Tak zgodzę się, zgodzę się jak najbardziej, ponieważ no jeśli chodzi o front-end to często mamy do czynienia z jakąś też estetyką, co nie jest prosto jakby przetłumaczalne dla takich modeli AI na przykład tak więc tak, zgodzę się jak najbardziej. Front-end jeszcze jako ta wizualna część, jednak jeszcze trochę może nie łatwiej będzie miał, ale jednak tutaj jeszcze pole do tego ludzkiego oka, myślę że dłużej będzie funkcjonować.
Tak jeszcze jedno hasło, że tak powiem z tej części perspektywicznej bo to jest coś, co z kolei właśnie bym powiedział, że wręcz zaczęły do mnie docierać sygnały, jako pewien taki trend promowany przez różne firmy, organizacje widać ktoś postanowił w to pójść, chociaż nie jest to oczywiście pojęcie w żaden sposób sztuczne. Jak ty byś podszedł do jak widzisz narzędzia Headlessowe, czyli to że mamy platformy, które są często wystawiane tylko w postaci API i do nich dorabiamy front-end to myślę w e-commerce to jest zdaje się, że mocny dosyć trend. I widzisz tutaj, że to się będzie jeszcze rozwijać, czy to raczej jest taka też powiedzmy, że historia?
Tak, jak najbardziej. To chociażby myślę, że można to zobaczyć po projekcie, w którym też miałem okazję uczestniczyć open source’owym Vue Storefront, gdzie patrząc też, że był to na początku projekt wewnątrz firmowy, a wyrósł do naprawdę osobnej firmy prężnie się rozwijającej i Filip Rakowski jedna tam z osób za niego odpowiedzialnych, jest tam na listach Forbes'a umieszczany to jak najbardziej można zobaczyć, że tak, że jest to trend, który ma przyszłość i który się rozwija tutaj.
No tak tak, właśnie też pamiętam z rozmów gdzieś tam w branży z Tomkiem Karwatką, czyli jeszcze jak był w Divante współprowadził, to opowiadał o tym, jak to ten projekt się rozwijał. To był niewątpliwie dobry moment w czasie, bo właśnie Headless zaczął wtedy zdobywać zwolenników, zresztą też słyszy się o różnych rozwiązaniach w e-learningu chociażby. Generalnie tam, gdzie jest z jednej strony bardzo dużo danych do przetworzenia, to nie są jakieś proste aplikacje, czy e-commerce czy e-learning to są często dziesiątki setki nawet tabel po stronie back-endu, tak już upraszczając trochę. A z drugiej jest możliwa pewna taka właśnie separacja, a z trzeciej jeszcze ten front-end może wymagać często dostosowania do potrzeb klientów.
Dlatego mniej mamy tutaj, jakby punktów takich styku bym powiedział, gdzie coś może pójść nie tak, więc im mniej takich, tym lepiej.
Jasne, dobra, słuchaj, bo tak rozmawiamy o perspektywach, rozmawialiśmy o tym, co jest i co będzie. Natomiast właśnie mieliśmy okazję ostatnio, taka informacja dla słuchaczy, że mieliśmy okazję spotkać się właśnie przy okazji prelekcji Michała związanej z tym, co też mnie bardzo zaciekawiło pod kątem z jednej strony tej technicznej programistycznej, ale też pod kątem strony tej mojej dydaktycznej. W jaki sposób rozwijać się, w jaki sposób być na czasie z tymi technologiami? Bo nawet jeżeli teraz mówimy, że jest w JavaScripcie spokojnie, że jest ewolucja, to w porównaniu do innych obszarów IT to wciąż jest dynamiczny bardzo obszar. I jakbyś mógł trochę opowiedzieć właśnie o tym, bo wśród słuchaczy są też programiści, programistki, różne osoby, które od strony technicznej zajmują się softwarem, więc myślę, że to by była ciekawa perspektywa bo ty i z jednej strony sam się uczysz cały czas rozwijasz, z drugiej właśnie jak wspomniałeś masz kanał na YouTube, gdzie publikowałeś, jak ty to widzisz?
No właśnie, to w ogóle była śmieszna historia, bo ja nie spodziewałem się, że ciebie Krzysztof tam zobaczę na publiczności, że tak powiem i właśnie przygotowałem takie źródła wiedzy, które jakby ze swojej perspektywy tutaj polecam i jedną z sekcji tej prezentacji właśnie były podcasty i tutaj twój podcast się znalazł, jako, że jestem jego słuchaczem. Wszystkie odcinki słyszałem i patrzę; o Krzysiek jest akurat na widowni i tak się właśnie później spotkaliśmy właśnie po tej mojej prezentacji. Jak na to patrzę, to jest z tej swojej perspektywy, no więc ten w samej nauce znowu AI tutaj jakoś trochę nam miesza. Możemy użyć te narzędzia jako takiego nauczyciela, myślę częściowo, ponieważ jedną z takich zalet jakie widzę na przykład uczęszczania na Meetupy, ja ogólnie ukończyłem też studia podyplomowe front-endu. To jedną z takich największych zalet uczęszczania na takie studia to było to, że był ten kontakt z tym prowadzącym i na przykład jeśli jakaś definicja czegokolwiek była dla nas niezrozumiała to, że jednak można było poprosić tego nauczyciela o jakąś parafrazę tego, jakoś żeby inaczej to spróbował wytłumaczyć. No i teraz dzięki, AI to również jakiś fragment z dokumentacji, którego nie do końca rozumiemy albo nie wiem dokumentacja jest na przykład w języku angielskim i jakiegoś fragmentu nie rozumiemy, a translator może polec, no to takie narzędzia AI jakoś są to w stanie nam wytłumaczyć i możemy dopytywać i drążyć. Także taka trochę nauczycielska rola tego AI myślę, że również jest ważna tutaj w tej kwestii uczenia się nowych rzeczy. Ja, generalnie trochę już mam teraz inną perspektywę niż miałem wcześniej, ponieważ wcześniej ten czas na naukę poświęcałem głównie na po prostu kodowanie, na uczenie się nowych tutaj technologii. No to teraz mamy takie bardziej jakby wyważone podejście, nie uczę się już wszystkiego nowego, co trafi na rynek, raczej staram się tak skupiać na śledzeniu trendów, więc głównie ten mój czas, który na to poświęcam to raczej uczestnictwo w jakiejś Meetupach czy śledzenie różnych kanałów na YouTube. No i tutaj myślę, że warto sobie wyrobić jakiś nawyk takiej nauki, jakiś sobie czas zaplanować w ciągu dnia na naukę czy na rozwój ogólnie, no bo ponieważ jeśli będziemy to robić regularnie, to zmieni się to w nawyki, a nawyki tutaj umożliwią nam po prostu bycie na bieżąco. Chociaż tak myślę, że tutaj warto po prostu wiedzieć co w trawie piszczy, żeby po prostu po paru latach się nie obudzić gdzieś tam w jednym projekcie w jednej firmie, nie obudzić się z tym, że właściwie nie wiem gdzie w tym momencie rynek się znajduje.
Przypomniałem sobie o właśnie starych znajomych jak tam po studiach, czyli już ładnych jeszcze nie naście na szczęście lat temu, ale za chwilę będzie to paręnaście. Szli do dużych firm tam trafiali w projekty, gdzie mogli korzystać z technologii, ale potem się okazywało, że właśnie po paru latach tam się nic nie zmienia. Oni uruchamiają codziennie rano ten sam projekt, w tym samym środowisku, na tym samym stosie technologicznym i to sprawiało, że na dłuższą metę po prostu stali w miejscu, a nasza branża no stety niestety rozwija się dynamicznie i po prostu nie można sobie pozwolić na taki luksus.
No tak ja może tutaj jeszcze coś postaram dodać, jak powiedzmy nie wypalić się, bo gdzieś miałem taki etap w zeszłym roku, że już nie miałem jakoś ochoty patrzeć, rozwijać się po pracy jeszcze w temacie programowania i potrzebowałem po prostu sobie zrobić gdzieś tam przerwę, ale żeby nie stracić w nawyku codziennego uczenia się, który gdzieś tam sobie przez tam ileś lat wyrobiłem, to po prostu przerzuciłem się na coś nie związanego z programowaniem i jakiegoś inwestowania zacząłem się wtedy na przykład uczyć. Więc polecam, jeśli kogoś szczególnie z większym doświadczeniem, bo myślę na początku ten zapał mamy większy, coś takiego łapie, to polecam może właśnie przerzucić się na coś innego czy również polecam, jeśli uczymy się jakiejś nowej technologii, to stworzyć jakąś aplikację dla siebie jeśli czegoś potrzebujemy. Ja właśnie kiedyś chciałem się nauczyć właśnie React z Firebasem i stwierdziłem to sobie zrobię aplikację taką do pilnowania budżetu domowego, bo żadna z tych dostępnych gdzieś tam na rynku mi nie odpowiadała. Ostatecznie tego projektu nie skończyłem, ale no dużo jednak rzeczy tam się w trakcie tego nauczyłem i jednak była taka motywacja, że a to dodam jeszcze to a to więc myślę, że jest wtedy bardziej nam się chce niż po prostu tworzenie jakiejś kolejnej aplikacji, z której nigdy w życiu nie będziemy korzystać. A także kontrybuowanie do projektów open source, myślę, że jest super pomysłem, jeśli chodzi o jakąś technologię, której się uczymy, ponieważ tam zazwyczaj, żeby coś zostało dodane, czy być może jakiegoś buga będziemy poprawiać, no to ktoś to przejrzy kto w tej technologii głęboko siedzi i nam może pokazać, gdzie robimy jakieś błędy, czy co moglibyśmy zrobić lepiej oraz dzielenie się wiedzą. Ja właśnie w ten sposób, że swego czasu właśnie ten kanał na YouTube zrobiłem. To był taki czas, że byłem odpowiedzialny jakby za migrowanie jednego projektu z View 2 do View 3 i stwierdziłem, że a to może to będzie taki dobry moment właśnie w sensie jako dobra forma nauki, czyli żeby podzielić się z kimś tą wiedzą, jak coś zrobić, no to jakby ja muszę najpierw tak dość dobrze to zgłębić. Więc tak to sobie wybrałem taką formę i przez dość długi czas było to coś, co sprawiało mi gdzieś tam jakąś satysfakcję i myślę, że jest to dobry też sposób nauki.
Tak, zdecydowanie tak. Mogę dodać od siebie, że jakiś praktyczny cel, czy to właśnie stworzenie aplikacji, no ja akurat u siebie często mam takie podejście, że nie zawsze w Makimo mam czas, żeby na przykład zrobić jakiś projekt i czegoś się nauczyć a chcę jednak mieć cały czas kontakt z technologią, bo to i pod kątem prowadzenia biznesu, i pod kątem takim czysto osobistym, ja chcę wciąż chce programować, po to poszedłem na studia, wtedy jeszcze pensje nie były takie wysokie. Natomiast ja często jak na przykład prowadzę zajęcia na uczelni i mam możliwość gdzieś tam wybrania jakiegoś przedmiotu nowego to wybieram taki, w którym z jednej strony czuję się kompetentny i mocny, ale z drugiej mam jakąś możliwość też na przykład rozszerzenia swojej strefy komfortu, czyli że muszę coś tam doczytać, muszę sprawdzić jak się teraz pewne rzeczy robi. No i to dzięki temu wiele trendów, których już w Makimo na przykład nie zawsze miałem szansę samodzielnie gdzieś tam w projekcie wdrożyć, miałem okazję zetknąć się z tym sam, zetknąć się ze studentami, bo przecież na zajęcia trzeba się przygotować, bo trudno świecić oczami przed grupą studentów, prawda? Nawet na Teamsach, mimo że kontakt jest bardziej zdalny, to jest to wciąż istotne. Dobrze, bardzo ci dziękuję za ten opis, bo myślę, że tutaj niejednemu słuchaczowi, słuchaczce to pomoże, w takim systematycznym, sensownym podejściu do rozwoju, do zdobywania wiedzy, umiejętności i powoli będziemy kończyć ten odcinek. Tak w ogóle porównując to do takich zwykłych odcinków to jak nagrywam to tak 20- 25 minut, długo się toczy, a tutaj my już mamy nagranie 40 minut, a poszło jak z bicza strzelił. Na zakończenie ja może dodam, że naprawdę fajnie słucha się Michała, miałem właśnie okazje i tym bardziej właśnie uznałem, że fajnie byłoby porozmawiać też tutaj w podcaście. Na ten moment tak jak rozmawialiśmy, nie masz żadnej konkretnej agendy na kolejne miesiące, ale masz coś w planach w sensie żeby przygotować materiał, więc nie wiem, może można follować cię na LinkedIn i na przykład dostać informacje, jeżeli będziesz.
Tak, to zapraszam serdecznie. Nie jestem jakoś super tam też aktywny, ale właśnie teraz potrzebuję prezentację na naszą wewnątrz firmową konferencję i myślę, że prawdopodobnie będę gdzieś tam próbował z tym gdzieś, może później właśnie przebić się na jakiś właśnie Meetup tutaj nasz regionalny czy może gdzieś pojechać, no to zobaczymy, także zapraszam serdecznie. Być może właśnie tutaj konkretnych źródeł może nie dałem, jeśli ktoś był ciekaw, ale nie wiem co ty na to Krzysztof, że może byśmy podpięli po prostu link do GitHuba, w którym gdzieś tam po prostu zgromadziłem te źródła, z których ja korzystam, który tam do tej prezentacji mojej załączyłem, więc być może ktoś tam znajdzie coś ciekawego dla siebie, głównie raczej są to front-endowe rzeczy, ale nie tylko, gdzieś tam szerzej z branżą IT związane.
Jasne myślę, że czy to na stronie odcinka, czyli tam na stronie softwarezkazdejstrony.pl, ewentualnie też w opisie na YouTube myślę, że będziemy w stanie to bez problemu wrzucić, więc jak tylko odcinek jak się ukaże, to te linki dorzucimy. Ja jeszcze dodam od siebie, że tutaj poprzedni gość ponad już rok temu, czyli Michał Moroz a propos właśnie występów w różnych konferencyjnych będzie na konferencji Boiling Frogs, takiej całkiem ciekawej konferencji dla programistów. Jeżeli ktoś się wybiera, to warto się wybrać właśnie na prelekcję Michała, jak ktoś się nie wybiera, to warto się wybrać. Dobrze to na tym chyba kończymy sekcje ogłoszeń, także bardzo dziękuję ci Michale za tutaj obecność.
Dziękuję bardzo. Czy to jakiś trend w podcastach właśnie tutaj Michałów, bo może wiesz, może właśnie to jest tutaj trend na 2024 roku, kolejny gość również będzie Michałem.
No mam już w planach kolejne osoby, nie są to same Michały, ale mam jak na razie bardzo dobre, stuprocentowe, dobre doświadczenia z obydwoma wami, więc jak najbardziej kolejnych Michałów będę zapraszał także., bardzo dzięki, że znalazłeś czas.
Ja również bardzo dziękuję. To pierwsze wystąpienie w jakimś podcaście, ale bardzo mi się podobało i ogólnie sam jestem wielkim maniakiem podcastów, więc polecam każdemu właśnie jako formę, chociażby bycia na bieżąco w branży.
No trudno mi się nie zgodzić jako autor podcastu, ale też inne podcasty warto słuchać, sam słucham, może też kiedyś zrobię jakiś odcinek i opowiem czego ja słucham na co dzień. Także dziękujemy. Myślę w imieniu Michała i swoim, kłaniamy się nisko dziękujemy za uwagę i do usłyszenia.
Dzięki wielkie do usłyszenia.
KONIEC
https://github.com/Michal-Dziedzinski/fe-learnig-presentation-resources – materiały przydatne do nauki frontendu, o których wspominamy w rozmowie.