Wpis z mikrobloga

  • 0
a to coś to prostota,


@bkowalczyyk: Prostota Javy i Golang jest pozorna. Im bardziej ubogi język, tym więcej złożoności masz w kodzie.

ale jak mam potem pisać async code to dziękuje
  • Odpowiedz
Prostota Javy i Golang jest pozorna. Im bardziej ubogi język, tym więcej złożoności masz w kodzie.


@Krolik: nie nie jest, prostota Javy jest prosta, bo Java jest prosta, prostota rusta jest pozorna, bo tutotiale sa proste a potem miesiąc spędzasz nad zrozumieniem hrtb albo modlisz się żeby future się skompilował, śmiechu warte.

Async Rust umożliwia robienie rzeczy, których *nie da się* zrobić w Javie,

co się nie da ? xd
  • Odpowiedz
  • 0
Pin<Box<dyn Future<Output = Result<Response<Body>, Infallible>> + Send>>;


@bkowalczyyk: Poza tym jeśli wyciągasz takie rzeczy to świadczy to tylko o tym, że Rust widziałeś jedynie na obrazku. 99% kodu używającego async, to nudny, prosty kod, gdzie nie używa się ani razu konstrukcji Future i Pin jawnie. Używa się prostych async fn, await i ewentualnie czasem spawn, select!, join!. Przypinanie Future'ów używa się w bibliotekach, które muszą
  • Odpowiedz
że Rust widziałeś jedynie na obrazku

XDDDDDD ten dokładnie fragment jest z mojego kawałka kodu który port-forwarduje requesty do poda w kubernetesie (associated type z hyperowego serwisu).

Używa się prostych async fn, await

i tu jest problem - używa się, i mam przez to nie rozumieć jak to działa ? mam na pałę kopiować wszystko z internetu jak zwierze (a więc tak wygląda praca w rust... elegancko) ? w Javie jest kultura,
  • Odpowiedz
  • 0
modlisz się żeby future się skompilował, śmiechu warte


@bkowalczyyk: Lepiej żeby się nie skompilował niż mieć błąd na produkcji. Poza tym jeśli masz problemy z kompilacja w Rust to są zasadniczo dwie możliwości:
- przenosisz styl programowania z innego języka np. Javy do Rust, co jest błędem
- przekombinowujesz i robisz
  • Odpowiedz
@Krolik:

Totalna bzdura. W Javie praktycznie każda linia może rzucić wyjątek

może, pewnie (jeszcze jak !), przecież ja nie napisałem że jest poprawny tylko czytelny - nawet w mercedesie od czasu do czasu może się coś popsuć. Ale myślę że zgadzamy się przynajmniej w tym że Java to nad-język, nie ma nic lepszego general-purpose, a wszystkie te golangi i rusty to gdzieś tam w lesie i nawet nie mają podjazdu
  • Odpowiedz
  • 1
@bkowalczyyk: nie rozumiesz, możliwość rzucenia wyjątku w dowolnym miejscu oznacza gorszą czytelność, bo żeby dokładnie zrozumieć co się dzieje w danym fragmencie kodu, musisz patrzeć na implementacje wszystkich wywołań i to wiele poziomów wgłąb - nie wystarczy popatrzeć na ich sygnatury i opisy. Wyjątki to jest ukryty, drugi przepływ sterowania. Analogicznie, możliwość zmodyfikowania obiektu przez cokolwiek co ma do niego referencję powoduje, że nie wystarczy analizować sekwencji jawnych wywołań metod
  • Odpowiedz
@Krolik: ja rozumiem - Ty nie rozumiesz że to co piszesz to żaden argument (zresztą najlepszym dowodem na to że racji nie masz jest rynek - i nie xd to że cloudflare to albo discord tamto to nic nie znaczy, bo wyciągasz jakieś top firmy z wielkim ruchem, ale to nie one tworzą rynek) - a co to unsafami nie narobisz syfu? .unwrapem() nie zdetonujesz programu ? rustowcy nie piszą syfu ? ostatnio się bawiłem axumem, to co zobaczyłem

top_level_service_fn!(delete_service, DELETE);
top_level_service_fn!(get_service, GET);
top_level_service_fn!(head_service, HEAD);
  • Odpowiedz
  • 0
@bkowalczyyk: no i co z tego że użył makra? Jednym kliknięciem rozwijam makro i w sekundę widzę co robi. Powodzenia w zrobieniu tego samego w kodzie używającym annotation procesora w javie. Albo miłego czytania kodu robionego metodąn kopiuj - wklej.

Masz błędne poczucie co to jest pokręcony kod.

ale to nie one tworzą rynek


Właśnie dokładnie one tworzą rynek. Gdyby Sun nie stał za Javą to byłaby tylko ciekawostką. Podobnie
  • Odpowiedz
@Krolik:

Albo miłego czytania kodu robionego metodąn kopiuj - wklej.

no właśnie miłego czytania, bo ten kod byłby czytelniejszy (otwierasz takie Netty i widzisz poemat, a otwierasz coś w rust i zaczynasz płakać), bo oprogramowanie się pisze tak żeby było czytelne, ale ja wiem że Ty się z tym nie zgadzasz, cytując :

Programy nie są od tego aby je wysyłać na konkursy piękności, tylko po to aby
  • Odpowiedz
  • 0
@bkowalczyyk:

no właśnie miłego czytania, bo ten kod byłby czytelniejszy


Nie ma nic czytelnego w tym samym kodzie powtórzonym wielokrotnie. Marnuje tylko czas czytającego, bo trzeba sprawdzać, czy jest na pewno tak samo, czy może jednak jakaś jedna rzecz się zmieniła. Funkcji też nie stosujesz tylko robisz ctrl-c
  • Odpowiedz
@Krolik: Straszny smutek i frustracja bije z Twoich komentarzy. Zaparz sobie yerbę czy meliskę.

Ja myślałem, że wojny o to, który język programowania lepszy mamy już za sobą. Zresztą i tak o wszystkim decyduje biznes. Pracowałem kiedyś w projekcie, który przetwarzał duże ilości danych i był używany spark. Kod pod sparka był napisany w Pythonie. Wiesz czemu? Bo łatwiej było znaleźć dobrego programistę pythona i dołożyć serwer niż męczyć się
  • Odpowiedz
  • 0
@BreathDeath: tak, tak, bo oczywiście wszystkie języki są takie same, a ludzie nigdy nie wybierają złych narzędzi i materiałów do budowy oprogramowania. No i wszystkie projekty kończą się sukcesem. Jednorożce też masz w tej bajce?

Ty na serio programujesz zawodowo w Ruście i piszesz, że wystarczy tydzień na książkę i tutorial?


Dla osoby umiejącej dobrze programować w innych językach - tak, wystarczy tydzień aby być produktywnym i maks kilka miesięcy aby poruszać się swobodnie w ekosystemie i korzystać też z zaawansowanych mechanizmów. Dla osoby słabo programującej ten proces będzie trwał dłużej, ale w przypadku języków takich jak Python, Go i Java będzie trwać jeszcze dłużej. Jeżeli chcesz pisać poprawne a nie tylko kompilujące się programy współbieżne w tych językach to musisz mieć w jednym palcu to co normalnie robi kompilator w
  • Odpowiedz
@Krolik: Go ma mniejsze community? Cały DevOps tym stoi. Mi się wydaje, ze to całe community rusta to są lidzie co chcą programować w ruscie, a zawodowo programują w czym innym. Zreszta było nawet o tum w jednej z ankiet stacji overflow.
  • Odpowiedz
  • 0
Cały DevOps tym stoi.


@BreathDeath: Po pierwsze wcale nie cały, po drugie devops to tylko *jedna* nisza, po trzecie tam się pisze głównie małe skrypcidełka, które wcześniej z powodzeniem robiło się w pythonie.

Tymczasem Rust jest w dużych, rozbudowanych projektach webowych, embedded, systemach operacyjnych, systemach baz danych, sofcie infrastrukturalnym, komunikatorach, bilbliotekach używanych w innych językach m.in w Pythonie, sofcie HFT, większość crypto na tym stoi, nawet widziałem apki desktopowe i mobilne, można w tym pisać nawet frontendy działające po stronie przeglądarki itp. Połowa internetu lub więcej jest oparta o cloudflare i idzie przez proxy napisane w Rust. Pokaźna część działa też na AWS, w którym kluczowe usługi np. S3 i EC2 są napisane w Rust. Go nie jest tak uniwersalny i nie jest popularny w tylu niszach. Ma silne community, ale jednotematyczne - wszystko kręci się wokół budowania API i devops, poza tym praktycznie nie
  • Odpowiedz
  • 0
Mi się wydaje, ze to całe community rusta to są lidzie co chcą programować w ruscie, a zawodowo programują w czym innym. Zreszta było nawet o tum w jednej z ankiet stacji overflow.


@BreathDeath: aż sobie z ciekawości sprawdziłem wyniki ankiet SO za 2022 i 2023 rok i jednak coś kręcisz. W kategorii "których języków obecnie używasz" odpowiedzi:

2022: Rust 9,3%, Go 11,2%
2023: Rust 13,1%,
  • Odpowiedz