
Porozmawiajmy o IT
Porozmawiajmy o IT
Rust. Gość: Wojciech Kargul - POIT 295
Witam w dwieście dziewięćdziesiątym piątym odcinku podcastu „Porozmawiajmy o IT”. Tematem dzisiejszej rozmowy jest język programowania Rust.
Dziś moimi gościem jest Wojciech Kargul – doświadczony programista i pasjonat języka Rust, aktywny kontrybutor projektów open source, prelegent konferencji IT, założyciel Rust Gdańsk oraz współzałożyciel Rust Poland. Były kolarz zawodowy, a prywatnie ojciec bliźniaków. Na co dzień projektuje i pisze wysokowydajne aplikacje biznesowe w Ruście. Niedawno wrócił z konferencji RustConf w Seattle, gdzie ze sceny opowiadał o budowaniu społeczności Rust.
W tym odcinku o Rust rozmawiamy w następujących kontekstach:
- czym Rust wyróżnia się na tle innych języków programowania
- co sprawia, że Rust jest najbardziej cenionym i pożądanym językiem programowania od wielu lat
- jakie są największe wyzwania w nauce Rusta dla początkujących programistów
- jakie jest tempo rozwoju ekosystemu Rust
- czy Rust nadaje się do każdego typu projektu
- jakie narzędzia i biblioteki są najbardziej popularne
- czym jest Rust Gdański i Rust Poland
- jak może wyglądać przyszłość Rust
- jakie są największe konferencje związane z Rust
Subskrypcja podcastu:
- zasubskrybuj w Apple Podcasts, Spreaker, Sticher, Spotify, przez RSS, lub Twoją ulubioną aplikację do podcastów na smartphonie (wyszukaj frazę „Porozmawiajmy o IT”)
- poproszę Cię też o polubienie fanpage na Facebooku
Linki:
- Profil Wojtka na LinkedIn – https://www.linkedin.com/in/wojciech-kargul/
- Rust Gdańsk – https://www.meetup.com/rust-gdansk/
- Rust Poland – https://www.meetup.com/rust-poland-meetup/
- Discord Rust Poland – https://discord.gg/Bjg5GRgSy7
- Wystąpienie Wojtka na Rustikon – https://www.youtube.com/watch?v=wQ_OrmE_AEY
Wsparcie:
- Wesprzyj podcast na platformie Patronite -https://patronite.pl/porozmawiajmyoit/
Jeśli masz jakieś pytania lub komentarze, pisz do mnie śmiało na krzysztof@porozmawiajmyoit.pl
https://porozmawiajmyoit.pl/295
To jest 295. Odcinek. Porozmawiajmy o IT. Dziś rozmawiamy o języku i ekosystemie RAST. Notatkę, linki i transkrypcję, czyli wszystko to, co porządny słuchacz powinien mieć pod ręką, znajdziesz na porozmawiajmyoitpl, łamane na 295. A jeśli myślisz o zmianie pracy albo po prostu masz dosyć klikania dalej na ogłoszeniach bez widełek, to dalej na ogłoszeniach bez widełek, to zajrzyj na Solid Jobs. Tam wszystko jest na tacy Wynagrodzenie, technologie, projekty Bez zgadywania. Nazywam się Krzysztof Kępiński, tworzę ten podcast oraz napisałem książkę Marka Osobista w branży IT. Lubię jak ludzie z naszej branży rozwijają się z głową a nie na oślep. Moż cenisz podcast w swojej apce lub puścisz ten odcinek dalej. Tylko tyle, bo przecież mówią że karma wraca. A teraz odpalamy. Cześć, mój dzisiejszy gość to doświadczony programista i pasjonat języka Rust, aktywny kontrybutor projektów open source, prelegent konferencji IT, założyciel Rust Gdańsk oraz współzałożyciel Rust Poland. Były koleż, zawodowy a prywatnie ojciec bliźniaków, na co dzień projektuje i pisze wysokowydajne aplikacje biznesowe w RASCie. Niedawno wrócił z konferencji RAST Conf w Seattle, gdzie ze sceny opowiadał o budowaniu społeczności RAST. Moim waszym gościem jest Wojciech Kargul.
Speaker 2:Cześć, wojtku, witam cię bardzo miło mi cię poznać i witam też wszystkich słuchaczy.
Speaker 1:Myślę, że tutaj każdy, kto słuchał tej zapowiedzi i tego wprowadzenia pewnie może wysnuć wniosek że temat naszej rozmowy może być tylko jeden. Mianowicie będziemy mówić o języku i ekosystemie RAST. Zanim do tego tematu przejdziemy, to takie klasyczne pytanie czy słuchasz Wojtku podcastów? Jeśli tak, to może jakieś ciekawe audycje jesteś w stanie zasugerować słuchaczom?
Speaker 2:Jasne. W związku z tym, że ja na co dzień dość dużo siedzę w programowaniu, to staram się unikać podcastów stricte technicznych. Jednak nie ukrywam, że raz na jakiś czas pojawia się takie FOMO i szukam tych materiałów. To często sięgam po taki podcast jak Rustation Station. Bardzo często poruszane są tam tematy związane z technologią około rastową. Pojawiają się tam autorzy bibliotek nowych, tych mniej lub bardziej popularnych. Jest to na pewno bardzo fajne źródło wiedzy na temat właśnie ekosystemu Rasta. Ale nie ukrywam, że to rzadziej, częściej raczej podcasty rozrywkowe, ostatnio bardzo intensywnie wahanie Piotrka Szumowskiego i Abelarda Gizy, kiedyś częściej i teraz już naprawdę bardzo rzadko Karol Paciorek i Imponderabilia.
Speaker 1:Świetnie dzięki za te rekomendacje. Wiesz, dzisiaj będziemy oczywiście mówić o różnych technicznych i około technicznych aspektach związanych z rastem, związanych z bibliotekami, związanych z ekosystemem. Natomiast chciałbym rozpocząć od takiego pytania jak się ta twoja przygoda z Rastem zaczęła? Czy to była miłość od pierwszego wejrzenia, a może te początki jednak były nieco trudniejsze?
Speaker 2:Ja programuję już od jakiegoś czasu i moje początki z pracą programisty zaczynały się w javowym staku technologicznym. No, i nie ukrywam że zawsze miałem otwartą głowę jeśli chodzi o naukę, ogólnie rzecz biorąc, i sięgałem naprawdę do najróżniejszych technologii, na przykład z takich bardzo egzotycznych frameworków to. Zdarzyło mi się pracować z javową baleriną i niedługo, w zasadzie po tej balerinie, dostałem propozycję napisania czegoś w raście. Mój ówczesny kontrahent zasugerował że pierwsze wyniki benchmarków komponentu który został napisany w raście są naprawdę bardzo obiecujące. I były bardzo obiecujące z tego względu że kod działał w zasadzie bezbłędnie. Binarka była dużo mniejsza. Jak się potem okazało, jak spojrzałem w ten kod, to on był napisany fatalnie, ale się skompilował i działał.
Speaker 2:I myślę że o tym będzie okazja powiedzieć trochę później, ale faktycznie to już wtedy wystarczyło żeby podjąć tę decyzję, żeby w tego rasta inwestować. A z racji tego że ja starałem się być elastyczny, to powiedziałem że jak najbardziej możemy spróbować to zrobić. No, i tak zostałem. Na początku sięgałem po literaturę Helionu dostępną na polskim rynku. To w zasadzie były takie moje początki. Tych materiałów związanych z, ogólnie rzecz biorąc, nauką języka, programowania raz było naprawdę bardzo mało. Nie wiem czy sięgnięcie po papierową wersję książki, która już wtedy była dość przedawniona, to czy był to dobry wybór, ale na pewno te pierwsze chwile z Rustem nie należały może do najprzyjemniejszych. To znaczy, jest tutaj dość wysoki próg wejścia, i dla programisty Javy to nie powiem, że była to droga przez mękę, ale na pewno musiałem spędzić jednak trochę więcej tego czasu żeby zrozumieć, jak myśleć w raście.
Speaker 1:Właśnie ta stabilność, wydajność, bezpieczeństwo, to są takie atrybuty rasta, które są bardzo często przywoływane, co twoim zdaniem wyróżnia rasta na tle innych języków programowania.
Speaker 2:Bez wątpienia to co wyróżnia rasta na tle innych języków, to kompilator, który w zasadzie daje nam pewnego rodzaju gwarancję, że jeśli on zbuduje artefakt, to aplikacja będzie działać. I wydaje mi się że to już jest naprawdę dużo. To, że będzie działać, to mam na myśli, że prawdopodobnie nie pojawią się bardzo oczywiste błędy, które w innych technologiach pojawiają się dużo częściej i dużo mniej, dużo bardziej ich możemy się spodziewać. Tak naprawdę. Taką cechą kluczową Rastab jest również to, że nie ma tutaj garbage kolektora. Zamiast tego mamy mechanizm ownership'u i borrowing'u, czyli tak naprawdę system własności i kontrolowania pożyczek. To jest to, co na pewno spędza sens powiek na samym początku, kiedy zaczyna się przygodę z rastem. Ale początkowe problemy myślę że później przeradzają się w ekscytację związaną z tym że faktycznie to co napisaliśmy działa, pomimo tego że na początku, jak zaczynaliśmy programować w Raście, to jednak ten system ownershipu i borrow checker spędzały nam sens powiek.
Speaker 1:Wiesz, zastanawiam się, bo powiedziałeś tutaj że ten próg wejścia jest raczej wyżej niż niżej. Z pewnością trudniej jest rozpocząć z tym językiem nie mając jeszcze żadnego doświadczenia niż z jakimiś popularnymi typu JavaScript czy Python. Mimo tego, w chyba największej ankiecie dla deweloperów jaka istnieje na naszym globie, czyli Stack Overflow Survey, język RAS bardzo wysoko plasuje się, zarówno w tej kategorii języków które są pożądane, w których programiści chcieliby pisać, jak i tych najbardziej cenionych, czyli tych z którymi programiści mają już pewne doświadczenia i mimo albo dzięki temu nadal cenią ten język. Jak myślisz, co wpływa na to, że w tych dwóch kategoriach RAST już zresztą chyba nie pierwszy rok jest bardzo, bardzo wysoko?
Speaker 2:Teraz nie przypomnę sobie dokładnie tych liczb, ale jestem niemal że pewien, że to pusty rok z rzędu RAST jest na pierwszym miejscu. Jeszcze jakiś czas temu to ta kategoria nazywała się najbardziej ukochanym językiem wśród programistów. Teraz to zmieniono na najbardziej pożądany język, i faktycznie tak jest. Jak spojrzymy w ankietę, z kolei przeprowadzoną wśród użytkowników Rasta, wśród programistów Rasta, ale wykonaną przez Fundację Rasta, to zobaczymy że wielu programistów którzy sięgają po Rasta, to są już ci seniorzy, to są ci już profesjonaliści z pewnym bagażem doświadczeń. Dlaczego o tym mówię? Wydaje mi się, że Rasta można docenić tylko i wyłącznie posiadają pewne historie na swoim koncie, bo tylko wtedy można tak naprawdę docenić to, co się ma.
Speaker 2:I ta walka, która pojawia się z Boerow-Czekerem na samym początku nauki może tak naprawdę zostać bardziej doceniona niż skategoryzowana jako pewnego rodzaju utrudnienie czy ten faktor który buduje ten wysoki próg wejścia. Ja poznałem na swojej drodze dotychczas wielu programistów Rasta. Jestem kontrybutorem w projektach open source i to co zauważam i myślę że to, to co faktycznie tworzy ten ekosystem, no, to jest właśnie community, co przez to rozumiem? Faktycznie, jak dołączysz do serwera Discorda jakiejś popularnej biblioteki lub nawet tej mniej popularnej, czy tworzysz jakiegoś iszuska na GitHubie, to jest ogromna szansa że ktoś zaangażuje się w rozwiązanie twojego problemu, może nie tyle rozwiązanie co w dyskusję nad sugerowaną zmianą właśnie czy jakimś wyzwaniem które się pojawia.
Speaker 2:To community, to nie jest taki naturalny komponent który występuje we wszystkich językach programowania. Ja tutaj nadmienię że w tym roku mija 10 lat od pierwszej wersji Rasta, pierwszej stabilnej wersji Rasta, która została wydana. Więc wydaje mi się że to jest nadal młody język, pierwszej stabilnej wersji Rasta która została wydana. Więc wydaje mi się że to jest nadal młody język i patrząc na to jak fajną społeczność, jak otwartą społeczność udało się zbudować dotychczas, to wydaje mi się że to też jest ten czynnik który może wpływać na to jak pozytywnie postrzegany jest RAST.
Speaker 1:Tak no, dzisiaj będziemy chcieli raczej zachęcać, namawiać przynajmniej do tego, żeby spróbować RASTA. Ale musimy też powiedzieć o pewnych wyzwaniach, które stoją i czekają na programistów, którzy chcą przez ten etap nauki na początku przejść. Tak, i co byś tutaj mógł wymienić wśród takich właśnie wyzwań, z którymi trzeba sobie na początku poradzić?
Speaker 2:Na pewno dobrze by było, już pewien, nawet mały bagaż doświadczeń posiadać, pewnie między innymi dlatego, żeby się nie zniechęcić. Wspomnieliśmy o tym, że ta krzywa uczenia jest dość stroma, szczególnie na początku. Mieliśmy o tym, że ta krzywa uczenia jest dość stroma, szczególnie na początku. To znaczy, pojawia się ten koncept zarządzania zmiennymi. To nie do końca jest coś zrozumiałego dla tych, którzy wcześniej nie programowali. Powiedziałbym że dla programistów którzy nie programowali w językach z rodziny C, to może być nawet totalnie obcy koncept, bo przecież wiele języków posiada wbudowanego garbage kolektora, nawet tych nowszych, które ostatnio stają się popularne, choćby Go. Więc na sam początek na pewno warto sięgnąć po jakieś sprawdzone materiały. Pewnie najłatwiej będzie odwiedzić kilka repozytoriów tych bardziej popularnych bibliotek, żeby trochę zapoznać się ze strukturą kodu, choć gdy o tym mówię, przypominam sobie swoje pierwsze kroki, gdzie moje surfowanie po GitHubie i odmętach kodu raczej kończyły się przytłoczeniem. I faktycznie tych struktur, trejtów, tego było tyle, że faktycznie tych struktur, tych trejtów, tego było tyle, że faktycznie ten początek w repozytorium dla osoby, która nie ma dużego doświadczenia może stanowić pewnego rodzaju wyzwanie. Dokumentacja to jest coś o czym mówi w zasadzie każdy kto pisze w Rustie, a mówi o tym tylko i wyłącznie w samych superlatywach, bo Rust ma taką bardzo ciekawą właściwość, w zasadzie to w jaki sposób piszemy w Rustie pozwala nam na automatyczne tworzenie dokumentacji. Wywołując bardzo prostą komendę na naszym repozytorium CargoDoc, generujemy sobie dokumentację która nawet bez naszych komentarzy jest dość dobra, ponieważ te automatyczne mechanizmy wbudowane w Cargo może o Cargo powiemy za chwilę, czy nie jest pozwala stworzyć naprawdę solidny kawałek dokumentacji. Więc tak może. Wracając trochę do meritum, na pewno warto spojrzeć na dokumentację, żeby ten kod na początku nie przytłoczył. Na pewno warto również sięgnąć po takie oficjalne dokumenty. Myślę że wielu programistów Rasta odniosłoby się do Biblii Rasta, czyli The Rust Book. To jest zbiór informacji na temat takich podstawowych własności języka, jest sekcja poświęcona kompilatorowi, bibliotecy standardowej, czyli trochę takich technikaliów, tak naprawdę. Ale to wszystko podane jest naprawdę w bardzo fajnej formie. Są też zadania, zbiory zadań, takie jak Rustlings. To też jest oficjalny, taki utrzymywany przez Fundację Rasta, zbiór krótkich zadań programistycznych które pozwalają poznać nam składnie, różne mechanizmy, te mniej znane lub te bardziej znane w innych językach. Rast adoptuje niektóre z nich.
Speaker 2:Więc jeśli choćby programowałeś w Pythonie czy w Java, to na pewno nawet trochę, to na pewno znajdziesz tam te elementy które będą przypominać Ci o tym że jesteśmy cały czas w uniwersum programistycznym i wiele się zmienia, ale pozostają też pewne fundamenty. I pytasz mnie tutaj o początkujących programistów, ale ja myślę że często na tym etapie wyboru technologii do swojego projektu pojawiają się ci bardziej doświadczeni programiści, i oni na pewno też potrzebują jakiegoś takiego zbioru sugestii. Na co warto zwrócić uwagę i tutaj definitywnie wrócimy do początku mojej wypowiedzi dokumentacja i kod źródłowy bibliotek. To jest ogromne, ogromne, to jest fantastyczne źródło informacji. Zresztą to nie jest tylko i wyłącznie moja opinia. Rozmawiam z innymi programistami i każdy wspomina o tym, że w razie mamy to generowane, powiedzmy, w pewien sposób automatycznie i za darmo, i jest to i ma to faktycznie jakąś wartość. Stąd te odniesienia do dokumentacji. Ale to nie tylko wynika z moich rozmów, to wynika też ze wspomnianej już ankiety przeprowadzonej przez Fundację Rasta. Tam też jednoznacznie uczestnicy ankiety wskazali na to, że kod źródłowy i dokumentacja to najlepsze źródła informacji, które pomagają nam sprostać tym wyzwaniom, które pojawiają się na początku.
Speaker 1:Powiedziałeś o 10 latach rozwoju Rasta. To nie jest bardzo dużo, bo takie języki jak Java, C++ czy chociażby Python mogą się poszczycić dużo dłuższą historią, ale to też nie jest mało. Jak byś ocenił tempo rozwoju Rasta i okolic?
Speaker 2:Faktycznie, jeśli chodzi o to czy Rast jest młodym językiem, to zgodzę się że jest nadal bardzo młodym językiem, pewnie przez niektórych ocenianym też jako język niszowy. Ja z Rastem mam do czynienia już w tej erze wersji stabilnej, to znaczy już w tej wersji 1. Coś tam. Więc ja w zasadzie nie zmagałem się z tymi problemami z którymi zmagał się Rust jeszcze przed wydaniem stabilnej wersji. Jak mogę ocenić tempo rozwoju? Jest nadal wiele feature'ów dostępnych tylko w wersji nightly rasta, to znaczy tej niestabilnej.
Speaker 2:Faktycznie społeczność wywiera pewnego rodzaju presję na to żeby niektóre feature'y zostały ustabilizowane i pojawiły się w oficjalnej wersji przepraszam, w stabilnej wersji rasta, aczkolwiek przyznam się że pracowałem w bardzo różnych domenach Naprawdę rzadko kiedy musieliśmy używać Nightly. Może to wynika po prostu ze specyfiki projektów w jakich miałem dotychczas okazję pracować, ale wiem że część na pewno społeczności języka rasta oczekuje że te feature'y, które dotychczas były niedostępne w stabilnej wersji, zostaną wkrótce zmerge'owane. No, i tutaj należy faktycznie docenić fundację rasta, że prężnie działają, trzymają się założeń, publikują nowe wersje języka zgodnie z przyjętym harmonogramem i faktycznie stabilizują te feature'y. Więc to jest jak najbardziej na plus. Największe wyzwanie dla Rasta jakie pojawia się dzisiaj, to myślę że tak naprawdę tempo adopcji przez goryle technologiczne. I mówię tutaj o tych największych firmach, mówi się o Rastie, i tak faktycznie jest, że nadaje się super do programowania systemów.
Speaker 2:Jakiś czas temu CTO Microsoftu, mark Rusynowicz, powiedział że jeśli mają cokolwiek przepisać z C++, to przepiszą to, ale tylko i wyłącznie z użyciem Rasta. Mark Rusynowicz powiedział o tym ostatnio na konferencji w Seattle i wspomniał że Po jego publikacji to było w zasadzie w ramach tweeta ta wypowiedź pojawiła się w przestrzeni. To chwilę później dostał telefon od CEO Microsoftu z pytaniem Mark, czy ty jeste jest tego pewien w 100%? Rust, to jest jedyna technologia która może wyprzeć C++, która jest godnym następcą C++. Ja zawsze, gdy słyszę takie historie, to bardzo mnie to napędza, powoduje że jestem wręcz tak podekscytowany, że to już zaraz, za chwilę, się wydarzy.
Speaker 2:Przecież to Microsoft, to jest jedna z największych firm na świecie technologicznych. Tak Chwilę później słyszę że Google w swojej przeglądarce renderuje czcionki z użyciem Rasta, że tu znowu referencja w sumie do Microsoftu, ale że Azure ma do utrzymania swojej infrastruktury komponenty napisane w Raście, cloudflare i tak dalej, i tak dalej. Moglibyśmy wymieniać naprawdę tych gigantów, dalej i dalej, i ten poziom ekscytacji faktycznie rośnie. Tylko musimy zejść na Ziemię. To nie są duże zmiany. Rust pojawia się nawet w Linuxie. Linus powiedział że oczywiście mogą dopuścić rusta do kernela, i to się dzieje faktycznie, ale to się dzieje kroczek po kroczku. To jest oczywiście trend. Ten trend się pojawił i to jest jak najbardziej pozytywne. Z roku na rok widać że pojawia się coraz więcej tego kodu pisanego w rastie. Swoją wypowiedź w tym momencie opieram na danych które znam, choćby z GitHub'a czy z innych ankiet które regularnie pojawiają się. W przestrzeni za 3-5 lat RAST całkowicie wyprze C++, bo wydaje mi się że, tak jak wspominałem, to pewnie jest ten pierwszy kandydat do tego, żeby być zastąpionym przez RASTA.
Speaker 1:Chciałem tylko dopowiedzieć, że faktycznie tego kodu napisanego w C++ jest już na tyle dużo, że przynajmniej utrzymanie potrwa pewnie jeszcze którąś dekadę. Ale oczywiście, tak jak tutaj wspomniałeś, być może już nowe rozwiązania, nowe aplikacje, nowe systemy będą pisane właśnie chociażby z użyciem Rasta, co powoli, powoli tą adopcję będzie zwiększało, i pewnie ta przewaga jednak na stronę Rasta będzie się gdzieś tam powoli przychylała.
Speaker 2:Ja na to liczę. szczerze powiedziawszy, rast to jest technologia z którą ja pracuję na co dzień i powiedziałbym że to jest 95% mojego staku technologicznego. Cała reszta to są może jakieś personalne projekty, próby wykorzystania czegoś innego, no może też trochę toolingu takiego związanego z tymi projektami, które zawodowo gdzieś tam realizuję. Stąd też, myślę, że tak duże zaangażowanie i wiara w ten język. ale widząc to co się dzieje, widząc ten entuzjazm i faktycznie specyfikę języka, wydaje mi się, że to jest dobry wybór nadaje.
Speaker 1:Wspomniałeś tutaj o programowaniu systemów, i to jest, powiem szczerze, też taka pierwsza rzecz czy pierwsze zastosowanie, które przychodzi mi do głowy, kiedy myślę o RAS-cie. Natomiast, jak się patrzy teraz na rozwój tych nowoczesnych języków programowania, to mam wrażenie, że próbują one niejako zdobywać właśnie różne obszary czy też różne zastosowania, różne typy aplikacji, oczywiście z różnym skutkiem, wiadomo. Jestem ciekawy, jak to jest w przypadku Rasta, czy też do różnych typów projektów możemy go zastosować, czy też raczej tutaj ta specjalizacja następuje w kierunku programowania systemów?
Speaker 2:Ja bym tu chciał zacząć bardzo przewrotnie, ale wiem że pewnie wtedy część programistów by mnie zjadła. Mianowicie chciałem wspomnieć, że Rust nadaje się nawet do front-endu, bo ma kilka naprawdę wspaniałych bibliotek, jak choćby AIST czy Dioxus, które umożliwiają nam programowanie front-endu. No, niemniej jednak nam programowanie frontendu, niemniej jednak może. Tutaj Rust pewnie jest na tyle jeszcze niedojrzały w tej niszy, że nie powinniśmy się na siłę wpychać, aczkolwiek to jest możliwe i to jest doceniane też przez gigantów technologicznych także. W zasadzie, czemu nie? RAST nadaje się świetnie do pisania w Wasmie. Bardzo mocno przyglądam się tej technologii. Miałem okazję napisać kilka już bibliotek, które były kompilowane właśnie dzięki temu. Co umożliwia nam RAST na różne platformy, między innymi właśnie do Wasma. W ramach mojej społeczności ogólnopolskiej piszemy projekt Open Source właśnie, który zahacza również o Wasma. O tym może powiemy, możemy powiedzieć troszkę później. W każdym razie to tak pół żartem, pół serio. Ale gdzieś w tej działce frontendowej na pewno raz może nie tyle rewolucjonizuje tę dziedzinę, ale może stać się użytecznym narzędziem, tak jak najbardziej Programowanie systemowe, pewnie na pierwszym miejscu, programowanie wysok, pewnie na pierwszym miejscu, programowanie wysokowydajnych, skalowalnych aplikacji, aplikacje webowe. Mamy kilka naprawdę solidnych frameworków, które umożliwiają pisanie w sposób po pierwsze bardzo szybki. Mówię tutaj o prędkości developmentu. Ale również aplikacje same w sobie są bardzo szybkie, pozbawione błędów, również tych błędów bezpieczeństwa. Tutaj może ciekawa jeszcze dygresja Microsoft zaczął Microsoft generalnie przyznaje się do tego że 70% ze wszystkich podatności które u nich istnieją związane są z wyciekami pamięci. I dlaczego oni zaczęli programować w Rastie? Zaczęli programować tylko i wyłącznie dlatego że pojawiły się takie bardzo młode osoby w zespołach które zaczęły eksperymentować z Rustem. I bardzo szybko okazało się że proste przepisanie, nawet czasami kilkuset linijek kodu z C++ na Rusta pozwalało w zasadzie niwelować te krytyczne podatności które się pojawiały. Ilość tych krytycznych podatności w niektórych obszarach ich aplikacji do zera. Więc to niesamowicie mocny selling point dla Rusta. Więc też nie dziwi że Rust odnajduje się doskonale w tych tematach gdzie musimy programować w sposób taki aby zapobiec za wszelką cenę w zasadzie wyciekom pamięci czy chcemy uniknąć jakichś podatności które pojawiają się tylko i wyłącznie przez to że piszemy w innym języku. Więc tak, wracając może trochę do meritum to programowanie systemowe, pewnie trochę toolingu dla front-endu, na pewno webówka Oczywiście, choć w tym zakresie mam naprawdę małe doświadczenie. To programowanie embedded Wiem że w robotyce coraz bardziej entuzjastycznie patrzy się narasta. W ramach mojej społeczności mamy wielu entuzjastów, wielu embeddedowców, dla których to jest technologia obecnie numer jeden.
Speaker 2:Więc tak, ja teraz wymieniam, mam wrażenie, że większość dziedzin programowania ale raz jest nowoczesnym językiem, młodym językiem, i faktycznie ma wszelkie cechy które pozwalają mu na to żeby być taką technologią go-to. tak naprawdę Nie wspomniałem trochę celowo o Web3. Jakbyśmy weszli na, myślę że, dowolnego jobboarda, to jeśli jest jakaś oferta pracy, to jeśli jest jakaś oferta pracy bardzo prawdopodobna dla Rust'owców, że to jest praca w branży szeroko pojętego Web3, gdzieś około blockchainu, to ma swoje plusy i minusy. Niemniej jednak też należy spojrzeć na Web3 jako coś takiego nowego. Nie dziwi wybór Rust'a dla Web3 ze względu na to bezpieczeństwo które Rast nam obiecuje. Ale tutaj jednak programiści są generalnie bardzo sceptycznie nastawieni do tej branży i tutaj jest pewnie sporo wyzwań, ale takich może niekoniecznie programistycznych, tylko gdzieś tam światopoglądowych, który crypto czy tam Web3 musi sprostać.
Speaker 1:Zdecydowanie. To jest z pewnością temat na osobny podcast, ale wymienia się tutaj szerokie spektrum różnych zastosowań. Rasta. Wiadomo że niektóre z nich są wybierane części. To też mają miejsce. Części niektóre rzadziej. To jest normalne w przypadku każdego języka programowania. Natomiast jestem ciekawy, jakie typy aplikacji ty tworzysz na co dzień i z której jesteś szczególnie dumny.
Speaker 2:Tak więc może znowu przewrotnie. Tak opowiedziałem o Web3, może nie bardzo w superlatywach, w sensie opowiedziałem zbyt wielu pozytywnych rzeczy o Web3, ale tak zdarzyło mi się dotykać tematów sieciowych w Web3 właśnie w kontekście programowania Rasta. Ale na co dzień w firmie Fatomio programujemy wysokowydajną aplikację, platformę, która jest digital twinem, tak naprawdę, i naszą całą infrastrukturę opieramy właśnie na raście. Głównie to integracje z zewnętrznymi narzędziami oraz mikroserwisy z taką, myślę że, podstawową funkcjonalnością biznesową.
Speaker 1:Dobrze, no, to tutaj warto pewnie byłoby wspomnieć o tym ekosystemie który jest wokło Rasta, bo wiadomo że język, to jest oczywiście podstawa, to jest ważna rzecz i wszystko się na tym opiera. Natomiast, tak jak tutaj wspomniałeś, takie szeroko rozumiane community, nie tylko jako ludzi, którzy wokoło języka są nie tylko materiałów edukacyjnych, ale również bibliotek, również frameworków, całego tego toolingu, który jest nam na co dzień potrzebny żeby tworzyć produkcyjne aplikacje. Wszystkiego tego potrzebujemy, wszystkiego, tego potrzebuje też język, aby móc tą swoją adopcję gdzieś tam zwiększać. Więc, o jakich tutaj narzędziach, jakich bibliotekach rastowych mógłbyś powiedzieć?
Speaker 2:Jakiś czas temu zadałem to pytanie, bardzo podobne pytanie, na swoim LinkedIn. Tam staram się być dość aktywny i Rastowcy wymieniali różne biblioteki które stosują w swoich projektach, i tu zdecydowanie Tokio. To jest w zasadzie runtime dla aplikacji, to jest także serde, biblioteka do serializacji i deserializacji, jest SQLX, jest też Diesel, jest masa, w zasadzie w tym momencie masa bibliotek które są dobrze utrzymywane, są utrzymywane przez duże grono kontrybutorów. To jest też taki zarzut który się pojawiał wobec Rasta jeszcze ładnych parę lat temu i myślę że jeśli ktoś interesował się Rastem pięć lat temu i zastanawiał się nad tym czy może wdrożyć go w swoje organizacji, i pojawiało się to ryzyko że tych maintainerów bibliotek jest mało, więc jednak istnieje jakieś prawdopodobieństwo że jeden z kluczowych komponentów albo przestanie być aktualny albo będzie musieli to zrobić sami, więc koszt utrzymania takiej naszej aplikacji rastowej może być wyższy. Mam wrażenie że teraz, przynajmniej jeśli chodzi o te kluczowe biblioteki, cały czas mam w głowie słowo kratki, bo biblioteki rastowe to crates, spolszczając na to właśnie kratki, te kluczowe kratki są naprawdę, powiedziałbym że utrzymywane przez rzetelne grono kontrybutorów. Na pewno pierwszy lepszy duży projekt z GitHuba napisany w rastcie zawiera kompletną listę tych kluczowych aplikacji przepraszam, kluczowych bibliotek na które powinniśmy spojrzeć pisząc swoją pierwszą aplikację, i tutaj do tego bym bardzo mocno zachęcał to jeśli chodzi o biblioteki, a jeśli chodzi o narzędzia, no, to tutaj zdecydowanie Cargo.
Speaker 2:To w zasadzie jest menadżer pakietów który dostajemy w trakcie takiej domyślnej instalacji języka, przepraszam, instalacji języka, cargo. Powiedziałbym że jest nie tylko menadżerem paczek, bo to jakby jest jego podstawowa funkcjonalność, ale posiada szereg wtyczek które je rozszerzają, takich wbudowanych jakby nie wiem, choćby Clippy, który jest linterem rastowym, który jest bardzo pomocnym narzędziem. Po pierwsze jeśli chodzi o naukę dobrych praktyk, bo każdorazowe wywołanie komendy cargo Clippy z odpowiednimi parametrami pozwala nam wychwycić jeszcze na etapie po prostu analizy kodu, te miejsca, w których jakieś udoskonalenia możemy zastosować, pozwala nam wychwycić nieużywane fragmenty kodu. To jest też coś co robi Rust Analyzer, który domyślnie myślę że w większości ID będzie aktywny. Tutaj akurat jest pewien problem z Rust Analyzerem, ale to może za chwilkę. Więc tak wbudowany linter, tego nie mamy we wszystkich językach. Spraście dostajemy to za darmo, i wydaje mi się, że też cargo samo w sobie jest świetnym narzędziem z tego względu, że umożliwia rozszerzanie go. Ja dałem o tym toka podczas pierwszej polskiej konferencji rastowej w tym roku. W przyszłym roku też odbędzie się kolejna druga edycja. Ten wykład jest dostępny na YouTubie, możemy go podlinkować.
Speaker 2:Jest szereg wtyczek do Cargo które pozwolą nam zrobić nasz kod, uczynić nasz kod lepszym. Choćby automatyczna analiza licencji. Możemy zastrzec sobie we wtyczce że podczas analizy kodu musi wychwytywać konkretne licencje które z pewnych oczywiście prawnych względów mogłyby ograniczyć zakres naszej licencji. Mamy też wtyczkę do wychwytywania wszystkich podatności które pojawiają się z biegiem czasu, czy to w języku samym sobie, czy to w pokrewnych, w używanych bibliotekach, i to jest na pewno świetne narzędzie które można gdzieś wbudować w swojego CIA, regularnie analizować swój kod pod względem właśnie, czy struktury czy zwiększenia jakości. Tych wtyczek jest na pewno mnóstwo, naprawdę mnóstwo. Ja w swoim speech'u wymieniłem te kluczowe. Tutaj bym był ostrożny, to przyznam. No, niestety muszę to przyznać, że jeśli chodzi o te duże biblioteki o których mówiliśmy wcześniej, no, to tutaj nie mam, myślę, zastrzeżeń. Ale jeśli chodzi o te fajne wtyczki które oferują do cargo pewne rozszerzenia, to zdarzało mi się w ciągu ostatnich paru lat widzieć projekty które, pomimo tego, że dobrze funkcjonują, były porzucane. Więc tutaj bym był ostrożny. Ale myślę że rozszerzenie do menadżera paczek, to na pewno nie jest kluczowa kwestia jeśli chodzi o adopcję.
Speaker 1:Tak, ale może pomóc w takiej codziennej pracy albo chociażby ułatwić nam właśnie wychwytowanie tych błędów, podatności różnego typu, im wcześniej, a wiemy dobrze że wtedy kosztuje to najmniej. No, tak, powiedziałeś tutaj o języku, o bibliotekach, o takim toolingu, który na co dzień możemy wykorzystywać. Ale jeśli chodzi o ekosystem Rasta albo też każdego innego języka, no, to oprócz oczywiście tych narzędzi technicznych, no, ważna jest też społeczność. I tak się składa, że masz tutaj dużo do powiedzenia, ponieważ jesteś założycielem RAST Gdańsk, tak, jak już wspomniałem, współtworzysz też RAST Poland. Dlaczego zdecydowałeś się właśnie na taki rodzaj aktywności? co to wam powodowało i jak te społeczności się tworzy, rozwija?
Speaker 2:Taką główną motywacją do stworzenia społeczności. To była taka zwykła ludzka potrzeba porozmawiania z innymi specjalistami, z innymi profesjonalistami. Ja tą okazję oczywiście mam na co dzień, bo pracuję z innymi rastowcami, z innymi programistami, ale no, nie ukrywam że w trakcie COVID-u utknąłem już, mam wrażenie, na zawsze w domu, w moim home office. No, i ta potrzeba kontaktu z innymi była zawsze, bo ja bardzo lubię rozmawiać, lubię kontakt z ludźmi, stąd pewnie taka chęć organizacji spotkań. Ale tutaj muszę przyznać że takim punktem, momentem przełomowym, takim punktem kulminacyjnym było jedno ze spotkań firmowych gdzie zdecydowaliśmy się wyjść razem na kawkę i faktycznie rozmawiało się świetnie, nie tylko o pracy, ale właśnie też bardzo dużo o technologii. I pierwsze co zrobiłem po przyjściu do domu, to w zasadzie sprawdziłem tę najbardziej, mam wrażenie, popularną platformę, czyli meetupcom, i okazało się że w Gdańsku, w Trójmieście, nie mamy społeczności rastowej. Mamy co prawda inne społeczności, które widziałem że gdzieś tam dotykały tego tematu, ale de facto na co dzień nie koncentrowały się wokół Rasta. Ja mam taką słabowość, że niewiele myślę o tym, czy coś może się udać, czy coś może się nie udać. W zasadzie działam. Jeszcze tego samego dnia w nocy wstawiłem wydarzenie na platformę i odzew przerósł moje oczekiwania. To znaczy, spodziewałem się może 10-20 osób, bo okej, trójmiasto jest dużym ośrodkiem też technologicznym. Mamy tutaj dwa duże uniwersytety i też dużo mniejszych. Odpowiedź uczestników całkowicie mnie zaskoczyła, bo już w pierwszej dobie było zarejestrowane bodajże 30 osób na nasze pierwsze spotkanie.
Speaker 2:Nie do końca było wiadomo gdzie się spotkamy, była tylko informacja o tym, że już wkrótce pojawi się taka informacja, zgodnie z tą zasadą, że róbmy, ale za dużo o tym nie myślimy, co się wydarzy. No, i tu nie ukrywam, że z pomocą przyszli sponsorzy, którzy się tam gdzieś pojawili. Ja nie lubię może tego słowa sponsorzy, bardziej określiłbym ich mianem adwokatów języka, programowania, rast. Tak naprawdę bardzo wiele takich firm, takich osób w ostatnim czasie udało mi się poznać i namówić do współdziałania. Więc tutaj naprawdę wielki ukłon, niski ukłon w stronę tych wszystkich osób. Pierwsze spotkanie, to było 67 osób, pierwszy raz w Gdańsk. Ja byłem prelegentem zgodnie z zasadą o której już wspominałem niewiele tak naprawdę zastanawiałem się nad tym, czy kogoś powinienem zaprosić w tym momencie, skoro byłem w stanie podzielić się jakąś wiedzą ze sceny. Była pizza, były napoje, wyszło naprawdę świetnie.
Speaker 2:Mamy w Gdańsku taką fajną przestrzeń. Jak się okazało, jest miejsce w którym takie inicjatywy są bardzo chętnie goszczone. To jest DevOneHub Tak nazywa się inicjatywa, a firma która jest hostem to Dynatrace. Bardzo mocno stymulują tutaj to nasze środowisko. Jestem im ogromnie wdzięczny za tą możliwość. Więc tak, po pierwszym spotkaniu zebrałem feedback, udało mi się porozmawiać. Myślę że z większością uczestników Atmosfera dla networkingu była fantastyczna. Całe spotkanie nie było może jakieś bardzo długie, bo raptem trwało to kilka godzin, ale większość uczestników powiedziała, że chce tego więcej, chce więcej, bo po prostu im się podobało, chce więcej, bo też potrzebowali takiej przestrzeni do spotkań. Myślę że tutaj takim czynnikiem, który wpłynął na to, że udało się osiągnąć sukces, było też to, że ja wystartowałem z tą społeczność, z tą inicjatywą niedługo po tym, jak już weszliśmy w taką fazę totalnego rozluźnienia po COVID-zie, i ludziom po prostu tego brakowało. Tak jak mi brakowało, tak brakowało też innym.
Speaker 1:Zatem gratuluję pomysłu i przede wszystkim realizacji. Trzymam kciuki za dalszy rozwój. Natomiast, tak jak tutaj sobie rozmawialiśmy jeszcze przed nagraniem w kuluarach, masz też doświadczenia z większej sceny, bo jesteś dopiero co po powrocie z Seattle, gdzie podczas RustConf też właśnie miałeś swoje wystąpienie. Powiedz proszę, jak trafiłeś właśnie jako prelegent na RustConf i o czym tam mówiłeś.
Speaker 2:Ja jestem ogromnym entuzjastą programowania w Rustie. Lubię rozmawiać z ludźmi, lubię dzielić się wiedzą. Lubię rozmawiać z ludźmi, lubię dzielić się wiedzą, więc dla mnie takim naturalnym krokiem w mojej karierze nie nazwałbym tego karierą, ale w trakcie mojego rozwoju zawodowego to byłonie udaje mi się to robić od czasu do czasu, na mniejszych konferencjach Zobaczyłem że fundacja The Rust Foundation udostępniła informację o tym że RustCon w tym roku będzie miał miejsce w Seattle i rusza call for papers. A więc niewiele analizując tak naprawdę, stwierdziłem że nic nie stoi na przeszkodzie, żeby po prostu wysłać tam swoją aplikację, i spotkało się to naprawdę z bardzo entuzjastycznym odbiorem. Chwilę później skontaktowano się ze mną i dostałem zaproszenie do Seattle.
Speaker 1:Tak, tak, o czym mówiłeś Jest tam. Gdyby to jeszcze ciekaw tego, czy tego typu konferencje już takiego większego formatu, w przypadku no, co by nie było długiej, dalekiej podróży pokrywają wszelkie koszty, jak gdyby, czy to jest w gestii prelegenta, żeby dotrzeć i wrócić.
Speaker 2:To wiele zależy od tego kto jest organizatorem lub też jakiego kalibru jest konferencja. Ja nie ukrywam tego, że miałem wsparcie, i zarówno od strony firmy z którą obecnie współpracuję także tutaj ukłon w stronę Fatomio jak i samej fundacji Rasta, z którą obecnie współpracuję. Także tutaj ukłon w stronę Fatomio jak i samej fundacji Rasta. Tak naprawdę tutaj nie patrzyłbym na te koszty, bo zysk jaki masz z samego uczestnictwa choćby w tej konferencji jest ogromny. I wspominając o tym, że to jest zysk, myślę o tym networkingu który masz okazję tam uskuteczniać. Ja w RustConf brałem udział kilkukrotnie, bo RustConf relacjonowany, streamowany jest także online.
Speaker 2:W trakcie COVID-u nawet eksperymentowali z takim, z taką platformą, która umożliwiała im organizację niemal jeden do jednego takiego stacjonarnego spotkania, ale właśnie w wirtualnej przestrzeni, i to nie działało. To znaczy, ja próbowałem uskuteczniać networking bo, tak jak wspomniałem, dla mnie to jest największa wartość. I uczestnicząc w takiej wirtualnej konferencji, no, to nie do końca się udaje. Ludzie jednak w takiej bezpośredniej konfrontacji są dużo bardziej chętni do tego, żeby porozmawiać, czują się skonfrontowani, więc też może nie chcą zawieść swojego rozmówcy i zawsze coś tam odpowiedzą. W online to tak nie działa.
Speaker 2:Pojawienie się osobiście na takiej konferencji, szczególnie tego kalibru, to jest naprawdę ogromna wartość. Ja zachęcam do tego na pewno, żeby pojawić się na Rastkonfie, jeśli widzi się jakiś potencjał w Rastcie, a jeśli to nie jest możliwe to uczestniczyć, zachęcam do uczestnictwa również w naszych inicjatywach w Europie czy w Polsce. Tak jak wspomniałem, rastikon będzie miał miejsce w marcu 2026. Myślę że też jakieś mniejsze konferencje, jak choćby RastMit, który odbywał się również w tym roku, może również mieć miejsce. Więc to będzie na pewno ogromna okazja do tego, żeby poznać się z innymi programistami tutaj na lokalnym rynku.
Speaker 2:Akurat mam ciekawą dygresję, bo na jednej z konferencji właśnie to chyba było właśnie na Rastmicie pojawił się kontrybutor, główny maintainer, w zasadzie pomysłodawca biblioteki Ratatouille, orhun Parmaksis, który za pomocą jego biblioteki można budować TUI, czyli Terminal User Interface. Dotychczas on w zasadzie umożliwiał kompilowanie tej biblioteki tylko i wyłącznie na platformach gdzie ten terminal jest dostępny out of the box. W trakcie konferencji pojawiła się dyskusja, potem w trakcie warsztatów, wynik tej dyskusji się zmaterializował. Się zmaterializował, mianowicie pojawiło się pytanie dlaczego nie budować TUI na urządzeniach embedded? Wtedy każdy dysponował ESP32, które otrzymał od organizatora Niedługo, niedługo.
Speaker 2:Niedużo czasu zajęło jednej z uczestniczek, jagodzie, portowanie tak naprawdę tej biblioteki na platformy Embedded, co wskazuje że takie konferencje to nie tylko wykłady, to nie tylko możliwość poznania ludzi, ale to też możliwość rozpoczęcia czegoś większego, zbudowania czegoś. Teraz, na tyle, na ile jestem w stanie śledzić ten projekt, to widziałem że ta kontrybucja Jagody umożliwiła kompilację biblioteki na najróżniejsze platformy, nie wiem choćby PSP czy komputer w Suzuki Baleno. To jest ogromna rzecz. Podczas konferencji RastConf w Seattle mówiłem o budowaniu społeczności, języka programowania RAST i o tym jak skalować się z małego lokalnego community w coś większego co funkcjonuje w ramach całego kraju.
Speaker 1:No, tak, tych plusów dodatnich uczestniczenia w konferencjach, organizowania, uczestniczenia jako prelegent bądź też po prostu jako słuchacz jest mnóstwo. Ja bym dorzucił jeszcze jedną swoją perspektywę. Jestem fanem budowania marki osobistej w IT i myślę, że to jest też doskonały sposób, żeby właśnie taką markę budować. Elementem budowania marki osobistej jest też networking, jest też poznawanie ludzi, więc tutaj wiele różnych zysków za jednym razem możemy uzyskać. No, i oczywiście przyłączam się do Twojego zaproszenia do uczestnictwa w tych naszych lokalnych jak i globalnych przedsięwzięciach i tych różnych inicjatywach, które tutaj wymieniłeś. Mierzając powoli ku końcowi, chciałbym Cię zapytać jak widzisz przyszłość Rasta na najbliższe kilka lat.
Speaker 2:Mam wrażenie, że już troszkę o tym powiedzieliśmy. Mówiąc jak oceniam rozwój tego ekosystemu, Powiedziałem też o pewnym zagrożeniu które się pojawia, to znaczy pytaniu, na które w zasadzie nie znamy odpowiedzi, czy giganci technologiczni zawierzą Rastowi i ta póki co powolna adopcja spieszy się. Ja wierzę, że w najbliższym czasie tak będzie. To znaczy myślę, że jeden krok powinien przerodzić się w drugi, a drugi może w kolejny, i z tego spacerku przejdziemy w fazę biegu. No, i mam nadzieję, że to nie będzie sprint, tylko maraton. Tutaj może już trochę na sportowo, Ale zdecydowanie jeśli entuzjazm związany z adopcją rasta przez gigantów technologicznych zostanie podtrzymany a wszystko wskazuje na to, że tak będzie to mam wrażenie, że za pięć lat powinniśmy mówić już nie o trendzie, a w zasadzie o pełnej adopcji.
Speaker 1:Myślę, że tutaj dzięki naszej rozmowie też nie jedna osoba przekona się do tego, że przynajmniej warto spróbować swoich sił właśnie z rastem i wskoczyć w tą rozwijającą się technologię z bogatym ekosystemem, bogatym nie tylko w narzędzie, nie tylko w tooling, ale też właśnie w community, którego zresztą współtwórcą jesteś. Więc myślę, że jak najbardziej warto. Ja też będę z zaciekawieniem obserwował, jak RAST się rozwija. Myślę, że, tak jak tutaj wspomniałeś, za kilka lat ta adopcja będzie zdecydowanie większa. Trzymam kciuki za rozwój inicjatyw, do których tutaj się przyczyniasz. Mam nadzieję, że być może kiedyś podczas jakiejś konferencji będzie okazja, żeby się spotkać na żywo i porozmawiać o raście i nie tylko o tym czasem. Wojtku, bardzo Ci dziękuję za ten poświęcony czas i tę rozmowę.
Speaker 2:Bardzo Ci dziękuję, krzysztofie. To była przyjemność rozmawiać z tobą. Ja jeszcze raz zachęcę wszystkich do tego żeby śledzić mnie na LinkedInie, zapisać się do naszych grup na Meetupie. Być może w którymś z waszych miast pojawimy się. Mogę nawet obiecać, że pojawimy się pewnie w najbliższym czasie w większości dużych miast z RASTem. Więc, o ile nie okazja do tego żeby poznać się osobiście, to na pewno okazja do tego żeby poznać inne osoby które funkcjonują w ekosystemie RASTA tak jak ja.
Speaker 1:Dołączam się zatem do zaproszenia a dodatkowo, dla uproszczenia, wszystkie linki o których tutaj Wojtek wspomniałeś, będą w dotadce do odcinka. Jeszcze raz Ci dziękuję. Do usłyszenia i cześć.
Speaker 2:Cześć dzięki.
Speaker 1:To już wszystko na dzisiaj. Jeśli chcesz więcej takich rozmów, archiwum czeka. Tam też dzieją się ciekawe rzeczy. Masz pytania? Po prostu napisać. Fajny odcinek, krzysztof Śmiało. Mój mail to krzyżtofmałpaporozmawiajmyitpl. A w socialach też da się mnie złapać. Ja się nazywam Krzysztof Kępiński, a to był odcinek. Porozmawiaj My IT oraz Ty. Dzięki za wspólnie spędzony czas. Do usłyszenia w kolejnym odcinku, cześć.