A C++ nyelvet nem biztonságos nyelvnek tekinti több nagy cég is, többek között a Google is. A nagy cégek sorra váltanak át más nyelvre. Mi a véleményetek erről?
10:
Szabványos C++ compiler sem csak egy van, és eleve ugyanazon nyelven írt programok egészen eltérő környezetekben is futhatnak. A biztonsági rések nem magából a nyelvből fakadnak, ha vannak. Nyilván van olyan nyelv, amiben több odafigyelést igényel a biztonságosabb program írása, de semmmiféle determináció nincs, hogy a C++ nyelvben írt programok feltétlenül biztonsági rést jelentenének.
"Szabványos C++ compiler sem csak egy van, és eleve ugyanazon nyelven írt programok egészen eltérő környezetekben is futhatnak. A biztonsági rések nem magából a nyelvből fakadnak, ha vannak."
Nem állította senki, hogy egy c++ compiler lenne csak, de minden c++ compilernek teljesítenie kell a szabványban rögzítetteket.
Gondolok itt példának okáért a tipusbiztosságra, tipusellenőrzésre, garbage collectorra, memória modellre, stb.
A biztonsági rések fakadhatnak a nem kellő körültekintéssel végzett szabványosításból, vagy a túl régi, már korszerűségét vesztett szabvány bizonyos fejezeteiből, de magából a nyelvből is, ha annak eszközkészlete olyan.
Az meg mindegy, hogy milyen platform, a szabvány egyaránt érvényes ARM és intel architektúrára is.
Nem a nyelv operatív használójának szintjén kell megvalósítani a biztonságos környezetet - szép is lenne - hanem sokkal korábban. Az már régen rossz, ha a valamilyen nyelven íródó program fejlesztőjének kellene erre is odafigyelnie.
12:
Ha mondjuk assemblyben írsz programot, akkor bizony figyelned kell erre, és ha C vagy C++ nyelven akkor is. Minél alacsonybab szintű a nyelv, annál kevésbé van megfogva a kezed. Ez nem azt jelenti, hogy ezek a nyelvek kevésbé lennének biztonságosak, hanem hogy többminden múlik rajtad.
Az assemblyben írt programokra igaz a felvetésed, de már a C-re sem. Pedig a C egy nem OOP, mid level nyelv.
Ráadásul, az asm ki is esik, mert az nem szoftveresen, hanem hardveresen megvalósított nyelvnek tekinthető.
Minimális személyeskedést hoznák be a #2-esre reflektálva.
Valamiért vannak itt emberek, akik el vannak ájulva a Rust-tól, hogy az milyen safe és secure, mert azt mondta "valaki".
A gond csak az, hogy ezzel nem tudunk mit kezdeni mi mint safety related fejlesztők, mert egy rohadt tanúsítvány nincs ehhez a nyelvhez, ami bizonyítani, hogy safety és security követelményeknek meg tud felelni.
Innen meg csak "propaganda" az egész.
Ennyi erővel mondhatom a Brainfuck nyelvre is, hogy safe, ha nincs aki bizonyítja.
Azért te sem ülnél olyan autóba, amit olyan nyelven fejlesztettek, amiért senki nem vállalja a felelősséget hivatalosan (vagyis valamilyen tanúsítvány formájában).
"A gond csak az, hogy ezzel nem tudunk mit kezdeni mi mint safety related fejlesztők, mert egy rohadt tanúsítvány nincs ehhez a nyelvhez, ami bizonyítani, hogy safety és security követelményeknek meg tud felelni.
Innen meg csak "propaganda" az egész.
Ennyi erővel mondhatom a Brainfuck nyelvre is, hogy safe, ha nincs aki bizonyítja.
Azért te sem ülnél olyan autóba"
Ha már autót hoztál fel példának, képzeld el, hogy egy síparadicsomban vagy a családoddal, ahol utolér a hír, hogy irgalmatlan időjárás, minusz ötven fok várható és hatalmas a lavinaveszély, ráadásul az áramszolgáltatás is nagy hirtewlen kimarad abban a hegytetőn lévő, alpesi házban, ahol megszálltatok.
Menekülni kell, azonnal. A ház előtti parkolóban két kocsi vesztegel. Az egyikről tudod, hogy nagyon rossz a fékje, a másikról nincs ilyen irányú infód. Melyik kocsiba ültetnéd be a családodat?
Akármilyen furán hangzik, abba amelyiknek rossz a fékje.
A másikról nem lehet tudni, hogy elindul-e egyáltalán.
De amúgy meg nem ilyen "gyakorlati" példával kéne jönni, mert:
- eladni akarsz egy terméket; A vevő az pedig olyan terméket fog vásárolni, amiről egy hivatal tanúsítja, hogy az biztonságos.
Ki akarna 50ezer tesztet futtatni egy autón a döntéshez, hogy megtudja, hogy mik a határai a kocsinak, ha van egy független auditor, aki elintézte ezt helyetted.
Például ha magyarországon bemész egy új autókereskedésbe, akkor tudhatod, hogy nagy valószínűség szerint jó autót kapsz, mert bizonyítja egy műszaki vizsga, egy üzembehelyezési hatósági engedély...
De elmész egy vadidegenhez autót venni, és semmi ilyet nem tud felmutatni. Megveszed?
A C++ köszöni szépen egész jól elvan. Rengeteg szoftver, alkalmazás ezen a nyelven íródott és teszik a dolguk nap mint nap. Gondoljunk csak például az operációs rendszerekre, vagy éppen a AAA játékokra. Ahol igenis kritikus a sebesség. A cégek pedig tesznek mindenféle kijelentéseket, de mindeközben az infrastruktúrájuk nagy része továbbra is C++-on alapul. Mint ahogy a Google esetében is, ott a Chrome böngészőjük, amihez szintén C++-t használnak. Persze, egyik nyelv se tökéletes. De azt meg senki ne higyje, hogy egyik napról a másikra csak úgy eltűnik [xy nyelv].
Az meg, hogy nem biztonságos, csupán a programozón múlik. A C++ olyan, mint egy kés. Elég hasznos eszköz, de nagy kárt is lehet vele okozni. Ha összehasonlítanánk a Java-val, akkor a Java is egy kés, csak mondjuk fából. Lassabb a futási ideje, több idő, amíg ezzel a késsel felszeled a kenyeret. Cserébe kisebb a lehetőség hibára, mondjuk arra, hogy a fából készült késsel levágd az ujjad. De ettől, hogy "hülyebiztos" még nem feltétlenül következik az, hogy jobb is lenne minden területen.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!