Citat:
Branimir Maksimovic:
No to ne sprecava Rust implementore da naprave Rc/Arc strukturu :P
Znaci nije deo jezika ali funkcionise kao shared_ptr kod C++-a.
Bez Rc strukture tesko da bi mogla da se implementira bilo kakva dinamicka struktura podataka....
Da, zato sam rekao "bez stdlib dodataka kao Rc" koje se implementiraju vani :-).
Citat:
Ali to je BS. Ja vidim da se ljudi nesto loze na taj Rust, ali meni deluje kao potpuno retardiran jezik namesten da javascript-level mindsetovi mogli da prave metal-level i sistemski code. Dalja idiokratizacija struke.
Ne znam, ne delim isto mišljenje. Mislim da bi osobe sa JS pozadinom imale velikih problema sa Rustom. Dolazeći iz C i C++ sveta, oberučke prihvatam svaku pomoć
u tome da sam više siguran kada prosledim softver na stotine hiljada (možda i milione) mašina, da će raditi najbolje što može. Ne radi se ovde o osnovnim strukturama i pozivanju biblioteka, mi pišemo naše biblioteke, implementiramo nove algoritme i pripadajuće strukture podataka, ali je kompleksnost ogromnog projekta nešto što strašno jede produktivnost. Pomoć jezika u ovome je nešto vrlo dobrodošlo.
Citat:
U cemu je poenta trpeti to izivljavanje ako na kraju moras da koristis raw pointere? Onda bude jos gore nego da imas GC.
U većini slučajeva ne moraš :-). Kao što ni u većini slučajeva u C++ kodu ne koristiš raw pointere, već value-based semantiku. Čak ni za polimorfizam u C++-u (slično kao i u Rust-u), nisu potrebne reference. Sada, kao i u C++u, i u Rust-u su potrebni hardware abstraction layer-i, optimizovani vektori, itd. Kao i u C++u, Rust omogućava da se dođe do samog hardvera. Pogledaj ovu moju škrabotinu sa kojom sam pre par godina se igrao sa rust-om i ARMom:
https://github.com/Burgos/micoos/ - svi viši layeri (kao što je process, msgbox, timer, scheduler ...) nemaju unsafe delove, dok za samo rvanje sa registrima korisim asm. Što znači da mi kompajler daje sigurnost kako rade viši delovi, naravno, sve dok mogu da garantujem za niže delove. U C++-u, sigurnosti nema ni za više, ni za niže slojeve.
Citat:
Mogu da zamislim generic overhead za send/sync traits koji uopste ne vidis u kodu.
Send/Sync su deo tipa i nemaju runtime overhead, koliko znam.
Citat:
A potpuno je druga stvara pricati u superlativu o programskom jeziku koji je u osnovi debilan i iznudjen i kod kojeg si konstantno primoran da radis protiv njega da bi nesto smisleno uradio
Ne znam na osnovu čega misliš da si primoran da radiš protiv njega? Naravno da ne možeš da pišeš na isti način na koji bi pisao u C-u, ali možeš vrlo lako i produktivno da pišeš kod, bez da se osećaš oštećen i da radiš protiv kompajlera, samo je paradigma drugačija. Meni je teže da pišem kod u Python-u, nego u Rust-u, a provodim slično vremena nad oba jezika (~10% nedeljno).
Citat:
Apsolutno deluje kao immature tehnologija koja sasvim sigurno ne zasluzuje da bude u kernelu OSova kao sto je Windows ili Linux.
Kao nekome ko je proveo malo vremena sa njim, meni deluje sasvim drugačije. Ne kažem da je panacea, ali ne mislim ni da je drop in zamena za C da bi se JS programeri osposobili za bare metal programming.