Rust Memóriakezelés: Tulajdonlás vs. Referenciaszámlálás
Posted by swe129@reddit | programmingHungary | View on Reddit | 29 comments
Posted by swe129@reddit | programmingHungary | View on Reddit | 29 comments
fasz_a_csavo@reddit
akurvaéletbe
Kurva nagy innováció, még senki sem gondolt erre korábban! Ja várj, még ronda rövidítésünk is van rá: RAII. Amit a Rust belerakott az a fordító általi kikényszerítés.
A mai napig nem értem, miért olyan bonyolult embereknek betartani bizonyos szabályokat (mindennek mindig tudjuk, ki vagy kik a tulajdonosa, raw ptr sosem ownol, boundsokat garantáld vagy ellenőrizd írás/olvasás előtt), az egész "biztonságos nyelv" fogalom a balfasz programozók miatt létezik, és ironikusan pont a magukat nagyon szofisztikált zseniknek tartók rajonganak értük.
Exowienqt@reddit
Drága barátom, mindj már nekem BÁRMIT, amit száz millió ember ugyanolyan minőségben csinál...
A magasabb szinű nyelvek, modern fordítók és fejlesztői eszközök bélkül még mindig az ilyen félkegyelműek elefántcsont toronyban íródott félhasznos úri passiója lenne a szakmánk, és nem egy dollártrilliókat termelő, az emberi életet alapjaiban meghatározó technológia.
Mert ma már nem csak a szoftverfejlesztők és informatikusok programoznak, hanem szociológusoktól a biológusokig MINDENKI. És ha elmagyarázod egy szociológusnak, hogy mi a faszom az a raw pointer, és miért fontos a bound checking, megtapsollak. V.ö: odaadod neki a pythont, mint nyelvet, aztán csapással...
fasz_a_csavo@reddit
A szociólógus, biológus, kutyafasza nem C++-ban vagy Rustban fog programozni (próbáld meg a makrórendszerét elmagyarázni Rustnak akár egy fejlettebb programozónak is, haha). Arra ott van a Python a kismillió C-ben megírt libbel, vagy a specializáltabb nyelvek, mint R meg matlab meg kutyafasza.
Végletekben gondolkodsz. Nem arról van szó, hogy egy nyelv vagy biztonságos, vagy nem, hanem hogy mennyire nehéz benne hibás kódot írni és mit fizetsz érte. Pythonban csak akkor tudsz memórihibát okozni, ha valamelyik import elkúr valamit vagy az interpreterben találsz hibát, saját kód soha nem fog tudni kívül indexelni vagy bármi hasonló.
Rustban kicsit küzdeni kell érte.
C++-ban, minimális szabályokat betartva, szintén nem nehéz, cserébe nem kell szopni a Rust egyéb hülyeségeivel (beleértve, de nem kizárólagosan a Rust fanbojokat).
Exowienqt@reddit
Mindenkitől elvárni az alacsony szintű programozási ismereteket egy olyan iparban, ami közvetlenül százmillió embert foglalkoztat, közvetetten pedig félmilliárdot, mert a TE személyes meggyőződésed, hogy jobb a konvenció mint az automáció.... Way to go, mate. Lehet erről még beszélni, de simán nincs igazad.
fasz_a_csavo@reddit
Vagy még mindig kevered a szezont a faszommal. Az alacsony szintű programozási ismereteket attól várom el, aki alacsony szinten akar programozni. Az emberek döntő többsége webes keretrendszerekkel vagy JVM-mel foglalkozik, olyan eszközöket használ, ahol nem is lehet ezeket a hibákat elkövetni, vagy egészen más következményekkel.
Jó ownership-higiéniát gyakorolni minden nyelvben jó döntés, csak a Rust aggresszív tyúkanyóként kényszeríti rád az ő módszereit, a C meg nem biztosít eszközöket hozzá. Innentől persze ízlés kérdése kicsit, az állításom annyi volt, hogy nem bonyolultabb C++-ban biztonságos kódot írni, mint Rustban.
Ok-Scheme-913@reddit
Ja ezek a kurva Google fejlesztők se tudnak évi 200k-s fizukkal biztonságos C++ programokat írni, mekkora szarok, bezzeg te!!
fasz_a_csavo@reddit
Unironikusan, igen.
Ok-Scheme-913@reddit
Úgy néz ki igaz a felh. neved..
Nyugodtan mutass nekem egy elég nagy C++ kodbazist amiben nem volt még memory safety probléma (ami nagyon gyakran actual vulnerability is volt).
De az egyetlen amit mutatni tudnál az valami repülőgép kontroll szoftver (bár inkább C-ben vannak ezek) amik akár verifikálva is vannak de EZEK MÉG CSAK NEM IS ALLOKÁLNAK INIT UTAN, tehat teljesen más kategória.
Várom kedves válaszod. Hacsak nem az az állításod hogy minden cpp fejlesztő hülye és nem tud helyes kódot írni , ami begs the question hogy tényleg mindenki hülye ha egy eszközt senki se tud rendesen használni, vagy az eszköz nincs jól kialakítva?
fasz_a_csavo@reddit
Te tényleg ennyire nem tudsz absztrakt mód gondolkodni, vagy szándékos a prolihergelés? Szóval az, hogy minden nagyobb projekten elbasz valaki valamit, az azt jelenti, hogy senki nem tudja használni az eszközt? Ez akkor lehetne igaz, ha a nagyobb projekteket mindig egy ember fejlesztené, de ez nyilván nem igaz.
Igen, kurva sok a kókler. Vannak juniorok is.
De megfordítom: szerinted Rustban nem lehet memóriakezelési hibát véteni? Mert a rusty boyok maguk fognak veled vitatkozni, hogy de, és nem is nehéz. És nem nyakatekert, unsafe bohóckodásra gondolok, hanem reális use case-re.
A C++ egy rettenetes nyelv, ezt szerintem kevesen tagadják, de nincs jobb arra a célra, amit betölt.
Ok-Scheme-913@reddit
Memóriahibát nem lehet ejteni safe rust-ban, ez egy objektív és igaz állítás. Ha ezt nem tudod, akkor nincs értelme a beszélgetésnek.
ResponsibleEnd451@reddit
XXDDDDDDD
Ok-Scheme-913@reddit
Hülyének lenni ér, de akkor legalább adj példát arra amit nem értesz.
lizergsav@reddit
https://github.com/Speykious/cve-rs
Tényleg elég ezoterikus kód kell a kihasználásához, de lehet safe rustban memóriahibát csinálni. A rust compiler nem tökéletes.
sb8948@reddit
Nem azért keresnek annyival többet Ámerikában, mert annyival jobbak. Egy faktor a sokból.
Ok-Scheme-913@reddit
De ők az átlag amerikai fejlesztőnél is jóval többet keresnek és de, on average jobbak is mert a Google megteheti hogy válogasson a jelentkezők közül.
De lényegtelen, várom a toy projektnél nagyobb memory vulnerability nélküli CPP kodbazisok hosszú listáját. Köszi!
sb8948@reddit
Szerintem félreértesz, abszolút támogatom a védőkorlátokat. De nem csak azért ad 8x fizut a Google mert annyival jobbak mint pld a CEE.
Ja amúgy C++ backenden vagyok és már annó a szakdogám is llvm-clang frontenden volt. Szóval kérlek ne nézz hülyének.:D
Ok-Scheme-913@reddit
Alapvetően a másik kommentelőnek szól a kommentem, miszerint "nincs értelme a rust"-nak.
A C++-nak abszolút van helye, mind a mai napig, de ezt tudomásul kell venni, hogy vannak hatalmas csapdák a nyelvben. Amennyiben nincs szükség maximalis performanciára (és ez nem csak a nyelvet jelenti. Attól hogy valami CPP nem lesz automatikusan gyors - tehát ezt megint csak akkor lehet választani ha az ember tudja is mit csinal, és ez egy nagyon költséges és időigényes módja a fejlesztésnek), akkor jó eséllyel van jobb választás (pl egy web backend-nél egy go vagy java, különösen a virt threadekkel igazából még perf-ben is jó eséllyel jobb lesz, mint egy naivan megirt C++ kód)
sb8948@reddit
Azért ezzel is sikerült átesni a ló túloldalára. Légzsák és biztonsági öv is a balfasz sofőr miatt van, de valamiért mégis megegyeztünk, hogy legyen standard.
Lehet én értelek félre, de ne legyünk már ennyire védőkorlát-ellenesek.
fasz_a_csavo@reddit
A légzsák nem csak azért lehet szükséges, mert te balfaszkodtál. Más balfaszsága, akire semmi ráhatásod nem volt, szintén balesetet okozhat. Emellett el is romolhatnak dolgok az autón, az úton, kiszalad eléd egy vaddisznó.
Kellenek védőkorlátok, pl ezért nem értem a C ajnározását. Abban a gcc kiegészítés nélkül nincs semmi deferred mechanizmus, ami nélkül nem lehet garantálni a biztonságot. De nem kell óvodás szintre se lemenni. A C++ nagyon egyszerűen betartható szabályok mellett tudja azt, amit a Rust borrócsekker, mert lényegében egy ownership szemantika, amit nem bonyolult amúgy megvalósítani manuálisan.
sb8948@reddit
Most vagy én nem látom az egyértelműt, vagy nem ugyanez igaz a fejlesztő kollegáidra is? Oké egy 50 fős kkv-nál talán van rálátásod és beleszólásod a munkájukba, de a legtöbb fejlesztői munkahely nem ilyen lesz. Vaddisznó is sokszor elkerülhető (lenne), ha (a kresz alapján) az útviszonyoknak megfelelően vezetsz. Vannak szélsőséges esetek, de ha tele lenne az út felelős és tökéletesen szabályos sofőrökkel, a balesetek 9x%-a el lenne kerülve, a halálos és/vagy komoly testi sérüléssel járó baleseteketnél meg még ennél halmozottan nagyobb arányban - ahol ugye fontos a fenn említett légzsák meg biztonsági öv.
Megint ugyanott tartunk mint az előbb, a kresz sem agysebészet, a C sem agysebészet. De van amikor kényelmes hanyagnak lenni, ami ellen külső szemlélőként nehéz tenni.
A rustnak megvannak a maga problémái, és én sem gondolom hogy megértemli azt a szintű imádatot, amit online kap. De attól még szeretem, és szoktam eleget legacy C/C++ szarral, hogy tudjam legalább koncepcióban értékelni:D
ytg895@reddit
azért jöttem el az 50 fős KKV-tól, mert rálátásom sajnos volt, de beleszólásom nem :)
Krendrian@reddit
akurvaéletbe
ern0plus4@reddit
A RAII nem ownership modell, bár része. De a szöveget olvasva az is kérdéses, hogy a költő mire gondolt - egyszerűen lehetetlen olvasni ezt a túlmagyarosított szart.
fasz_a_csavo@reddit
Pongyolán fogalmaztam valóban, de ennyit érdemel. Csak azért gondolom, hogy nem AI slop, mert annak elég ócska.
Flashy-Economics-685@reddit
kérem vissza a skizopostázó palit, aki 3 órás linux és c++ felszopó illetve rust fikázó videókat csinált
indieHungary@reddit
pregnor vagy ki volt az?
Flashy-Economics-685@reddit
Prenex vagy valami hasonló a neve.
Amúgy jó dolgokat mond de olyan borzalmas körítésben, hogy hihetetlen. Egyrészt vimben mutatja a kódot ami nyilván teljesen követhetetlen másrészt senki nem fog végignézni egy 2 órás videót arról, hogy milyen fasza rendező algoritmust írt. Emellett szerintem ha már rak a videóira facecamet is talán érdemes lenne a háttér meg a saját megjelenésére is adni egy kicsivel többet.
Pl. ott van egy lauriewired aki fél órában elmagyarázza a jsf av standardot élvezhető módon. Nyilván ott nagyobb a ráfordított pénz és idő, de na érted.
Ide is ki szokta rakni a videóit, az utolsó elég régen volt. Nem csodálom, a kommentekben egy rakás vállalhatatlan stílusú """kritikát""" kapott.
ern0plus4@reddit
Ez a szöveg olvashatatlan.
puruttya_puma@reddit