( Chain-Q | 2024. 04. 20., szo – 15:43 )

kinek hiányzik egy rakás memória másolása

A C pointer-jellegű tömbjeitnek stílusát is lehet használni modern Pascalban. Ami a jó benne, hogy egyértelműen meg kell jelölni az ilyesmit a szintaxisban mint pointer-művelet, nem csak "valami lesz, szokjad". Ugyanúgy mint a cím szerinti átadást is (var/const kulcsszóval, esetleg külön pointertípussal). Szóval nem limitál ez semennyiben sem, se nem lassabb, csak máshogy kell hozzáállni - és még így is jobban fogja a fordító a kezed, hogy ne ess hasra. Most mondjam azt, hogy fogtam már bugot C kódban azzal hogy Pascalba portoltam, de meghagytam a C stílust? A Pascal fordító be is sírt egy pár dologra, nézem, hát tényleg. Nézem a C kódot, ott is olyan. "Upsz." Cserébe meg C-ben van az, hogy egy rakás kézimunka lesz, ha véletlenül mégis át kell másolni a tömböt. Valszeg valami kézi memcpy() vagy környéke lesz, megint csak méretszámolgatással. Rengeteg buglehetőség... Pedig a fordító is megtehetné neked...

de szerintem ez épp nagyobb mozgásteret és kreativitást biztosít a programozónak

Pont ez az ősi C érv, amit kb. 30 éve hallgatok, hogy "de minden más limitálja a kreativitásom" vezetett a hálózatok és aztán internet világában egy rakás biztonsági problémához, és gyakorlatilag közvetlenül a newschool C-t leváltani akaró nyelvek többségéhez, amelyek mindegyike sokkal szigorúbb ebben. Vagy akár a "modern" C++ beteges rettegését a pointerektől is említhetnénk, ami szintén itt gyökerezik. Szóval erről szerintem már bebizonyosodott, hogy ez az érv nettó arrogancia a C programozók részéről, és semmi több.