( Caro | 2021. 07. 26., h – 12:49 )

Napi szinten valóban nem programozok C++-ban, de annyira ismerem, amennyire kell.

Mint írtam nem a nyelv teljesítményével van probléma, az overhead-et nem erre értettem, hanem az absztrakcióra. És nem is csak arra, hogy magasabb szintű, az nem lenne probléma, az a gond, hogy a C++-ba megpróbálták kb. az összes programozási paradigmát beletenni. Mindezt úgy, hogy a C-vel maradjon kompatibilis.

Nyilván más emberek, team-ek más paradigmákban fejlesztenek. Az adattípusok pedig annyira absztraktak, hogy egy csomó glue-t kell közéjük írni, ha az egyik lib adattípusát fel akarnád használni egy másik metódusával.

Linus-nak épp ez volt a baja a C++-al.

Vannak class-ok, de megvannak a C-ből örökölt típusok. Vannak referenciák, de maradtak a pointerek is. Van öröklés és van aggregation is - még ha nem is mindig egy-az-egyben helyettesíthetők, de sokszor ki tudják egymást váltani. Dobálunk exceptiont, de néha return value-t használunk. A templatek valóban jó cucc, csak jó lenne használni is.

Hány olyan std:: függvény van, ami pl. std::vector-t vár? És mennyi, ami xy[]-t? Na erről beszélek, amikor inkonzisztenciákról írok.

A nyelv hibája? Nem feltétlen. A nyelv hibája csak olyan szinten, hogy ennyi félét is megenged.