( geza42 | 2021. 03. 22., h – 13:47 )

Na, azért nem azt mondtam, hogy "a C nyelv szar", hanem azt, hogy ebben a tekintetben szar. :) Ezt az állításomat továbbra is fenntartom.

Nem az van, hogy az emberek szarnak bele mindenbe. Persze, ez is van. Hanem az, hogy programozóként nem tudsz minden esetre felkészülni. Vagy ha igen, akkor az elképesztően nagy meló lenne, senki se csinál ilyet, sokkal lassabban menne a fejlesztés. Tehát jobb, ha a fordító leellenőrzi a memóriahozzáféréseket. Ahogy fejlődnek a compilerek, egyre jobban ki tudják szűrni, hogy mik a felesleges ellenőrzések.

Ha C-ben programozok, mindig ott van az a rossz érzés, minden egyes pointer indexelésnél, derefnél, hogy "vajon valid lesz itt ez a hozzáférés?". Nyilván az esetek 99.99%-ban az. De nem tudod 100%-ra felvinni ezt egy bonyolultabb programnál, vagy tényleg 1000x lassabban fogsz haladni.

Szerintem tök egyértelmű, hogy jobb, ha ott van egy automata ellenőrzés, ami tutira működik, vagy legalábbis kiszűri a hibák nagy részét. De ha nem is szűri ki compile-time, akkor runtime szűri ki. És nem vulnerability lesz belőle, hanem csak kilép a program (vagy esetleg exceptionnel kezeled le, és még tovább is tud menni).

Egy tökúj projectben tutira nem használnék C-t. Nem azért, mert régi. Ez nekem se lenne elfogadható érv. Hanem mert van szinte minden szempontból jobb megoldás nála.