cebulaZrosolu

@koszotorobur to dobrze czy złe?

koszotorobur

@cebulaZrosolu - mi tam Golang pasuje - jest w miarę łatwy, pisze się w nim wygodnie, jest czytelny, kompiluje się mega szybko, binarki wyjściowe są małe, można kompilować w pełni statycznie (do kontenerów jak znalazł), programy wyjściowe są szybkie (porównywalnie do tych napisanych w C - a przy odrobinie chęci to i nawet szybsze), wspiera wszystkie mainstreamowe architektury i systemy, można cross-kompilować... jedyna wada to, że jest od dużego G

baklazan

jedyna wada to, że jest od dużego G

@koszotorobur + garbage collector

koszotorobur

@baklazan - ale tylko jak chcesz od swojego programu najszybszej możliwej szybkości - w każdym innym wypadku GC ułatwia pisanie programów bo sam nie musisz zarządzać pamięcią

baklazan

@koszotorobur mój (stary jak świat) problem z GC jest taki że w niektórych wypadkach, zamiast pomagać musisz z nim walczyć (vide Object Pool pattern np.). A na takie się natknąłem w krótkiej karierze z językami z GC.

Wolę kiedy tego typu ficzery języka są opt-in a nie opt-out.

No i reference counting FTW

koszotorobur

@baklazan - śmierdzisz mi kolego fanatykiem C

baklazan

@koszotorobur Nie jestem fanatykiem C ; D (wręcz przeciwnie, to jest assembler który myśli, że jest językiem wysokiego poziomu)

Fausto

Lubię ten język, jest taki przyjemny i czytelny, jest troche jak taki Python pod tym względem, ale kompilowany. Go bardzo dużo ma rzeczy w standardzie, nie trzeba miliona bibliotek podpinać.

cebulaZrosolu

@koszotorobur @Fausto czy to dobry język dla początkujących?

koszotorobur

@cebulaZrosolu - dla kogoś całkiem zielonego to może być problem - dla kogoś kto jakiekolwiek podstawy programowania ogrania to jest całkiem fajny język - weź sobie sprawdź w przeglądarce: https://go.dev/tour/

cebulaZrosolu

@koszotorobur to ja jestem całkiem zielony, jedyne co w życiu programowalem to maszyny CNC ale to było dawno :p

koszotorobur

@cebulaZrosolu - ale wiesz na czym programowanie polega - tak jak pisałem - sprawdzaj Tour of Go i sam zobaczysz czy Ci język pasuje czy nie.

Fausto

@cebulaZrosolu w sumie każdy język jest dobry dla początkujących, różnica taka, że jeden np javascript pokaże Ci efekt pracy od razu, a C trochę później : p osobiście bym brał pythona, albo javascript, go też super, ale trochę później efekty zobaczysz

MementoMori

To przesunął się o jedno miejsce, jak byś pytał xd

koszotorobur

@MementoMori - nie pytałem

Hajt

Ja w ostatnim czasie manuala rusta czytam ale go też wydaję się bardzo przyjemny.

koszotorobur

@Hajt - Rust jest całkiem niezły - ma wiele cech, które posiada Golang, ale nie jest aż tak łatwo go ogarnąć (nawet dla kogoś kto już programuje w innych językach). A wszystko to przez brak Garbage Collectora, który został zastąpiony czymś co się nazywa "borrow checker" - mechanizm zapewniający bezpieczeństwo pamięci, sprawdzający wszystkie wskaźniki do poprawnych adresów pamięci podczas kompilacji.

Fausto

@koszotorobur @Hajt czytałem ostatnio, że z rustem jak z c++ aby być w nim dobrym, trzeba zrobić z niego doktorat

koszotorobur

@Fausto - do prostych rzeczy to nie trzeba doktoratu - ale by pisać zaawansowane współbieżne programy i pisać swoje algorytmy czy nawet optymalizować kod aby wykonywał się szybciej - no to zaczyna być całkiem trudno (ale nie wiem czy trudniej niż w C++).

Catharsis

@Fausto @Hajt Z doświadczenia mogę powiedzieć, że jako JavaScript dev to za każdym razem gdy próbuje Rusta to nie wiem co się dzieje xD. Co prawda udało mi się napisać w nim jeden prosty program i o dziwo działa i to na tyle dobrze, że uzbierał całe 6 gwiazdek na githubie ale jakość tego kodu jest masakryczna xD.


Największą antymotywacją do nauki Rusta dla mnie jest fakt, że dalej nie ma jakiejś super ultra porządnej biblioteki GUI i fakt, że w sumie to 90% okienkowych rzeczy, które kiedykolwiek chciałbym napisać w Rustcie mogę też napisać w React + Electron i to przy tym 3 razy łatwiej i 5 razy szybciej xD. A argument o lepszej wydajności naprawdę traci na znaczeniu przy aktualnej mocy obliczeniowej komputerów.

Hajt

@Catharsis ja też coś tam piszę w JS ale hobbystycznie. Daj linka do repo tej appki w ruscie chętnie zobaczę

koszotorobur

@Catharsis oraz @Hajt - dla takich, którzy lubią pisać GUI w JavaScripcie a backend w Ruście to jest Tauri - ostatnio wyszła całkiem nowa wersja 2.0 ze wsparciem systemów mobilnych - nie powiem, działa to całkiem sprawnie: https://tauri.app/

Catharsis

@Hajt Mam ci podać linka do mojego gita, trochę się wstydzę xDDDD.

A tak poważnie, to nie mogę bo bardzo nie chcę żeby ktoś kiedykolwiek połączył ten nickname z moim githubem którego mam podanego w CV i portfolio bo OSINTowe narzędzia z których korzystają rekruterzy potrafią wyłapywać takie rzeczy, ba nawet już Google całkiem sprawnie indexuje wpisy z Hejto które mają po kilka piorunów. A miałem ten sam nick na wykopie i kilku innych stronach więc wolę nie sorka.


A co do tej "apki" to raczej bym jej tak nie nazwał bo to jest prosty deamon który startuje wraz z systemem, działa w tle i robi co jakiś czas określoną czynność. Napisałem najpierw identycznego w Node.js to potrafił zjeść nawet 120MB ramu na bardzo prostej czynności i był zauważalny dla procesora. Tymczasem identycznie napisany ale w Rustcie zużywa jakieś 8MB ramu i w menagerze procesów widnieje cały czas jako 0% zużycia procesora xD.


Oprócz tego miałem jeszcze podejście i napisałem bardzo prosty player muzyczny używając Rust + Tauri i nawet to działało, ale bardzo się męczyłem i potem odtworzyłem to samo w Electronie tylko kilka razy szybciej a pod względem wydajności nie było dużej różnicy bo Tauri działa na tej samej zasadzie co Electron i też używa przeglądarki do renderowania GUI.

koszotorobur

@Catharsis - widzę, że kolega mądrze chroni swoją prywatność - szacuneczek!

Catharsis

@koszotorobur Osobiście nie mogę polecić Tauri, z 2 powodów:


  1. To co napisałem w moim komentarzu wyżej. Jeżeli chcesz użyć Rusta bo zależy ci na wydajności i jednocześnie większa część twojej aplikacji to będzie to co się dzieje w GUI to nie ma znaczenia czy użyjesz Tauri czy Electrona bo apka będzie tak samo ciężka dla komputera bo dalej większość rzeczy dzieje się w przeglądarce. A jeżeli potrzebujesz odpalić jakiś algorytm do ciężkich obliczeń to możesz go po prostu napisać osobno w Rustcie i odpalić za pomocą Electrona zamiast się męczyć i pisać wszystko w Rustcie.

  2. Tauri to jest kompletne gówno na Linuxie ponieważ Tauri używa system webview. Na Windowsie to jest Edge (czyli Chromium), na Macu to jest webkit, a na Linuxie to jest webkit2gtk, który jest okropny i czasem na tej samej czynności potrafi działać 3 razy gorzej niż Chromium i przy tym zużywać jeszcze więcej ramu. No i dochodzi jeszcze fakt, że kod będzie działać inaczej na 3 różnych systemach i czasem trzeba rezygnować z jakiś fancy feature w JS albo CSS ponieważ Safari tego nie wspiera czyli automatycznie webkit też nie xD.

koszotorobur

@Catharsis - myślę, że Tauri 2.0 ze swoim wsparciem dla systemów mobilnych jednak się przyjmie - bo niektóre apki potrzebują bardzo szybkiego kodu na bakendzie, np. do przetwarzania wideo - a zaletą Tauri jest to, że frontent możesz sobie napisać w jakimkolwiek frameworku webowym jakim chcesz - a webview na urządzeniach mobilnych działa bardzo dobrze.

Dodatkowo część problemów z webview na Linuksie może rozwiązać ten projekt: https://github.com/tauri-apps/wry.

Mi się kierunek w jakim idzie Tauri podoba - pomimo tego, że obecnie na Linuksie apki w nim napisane nie działają najsprawniej.

Catharsis

@koszotorobur No obserwuje na bieżąco jak rozwija się sytuacja. Ambicje mają spore, ale czy się to przyjmie to pożyjemy i zobaczymy. Jak ostatnio patrzyłem bo chciałem się pobawić tą drugą wersją Tauri to się szybko odbiłem ponieważ dokumentacja była bardzo wybrakowana albo niespójna.

szpecku

Czy dobrze widzę że rośnie wolniej od Java? 🤣

koszotorobur

@szpecku - możliwe

A pokaż gdzie to widać?

szpecku

@koszotorobur porównujesz wartość "change" dla obu. Z tego co rozumiem to wskazuje znamię w w liczbie wyszukiwań fraz które zawierają nazwę języka, to zawsze można to zinterpretować że więcej osób próbuje nowy jest i potrzebuje posiłkować się pomocą

Zaloguj się aby komentować