( Som-Som | 2014. 05. 06., k – 10:13 )

"Azert a C kod meg mindig veri a C++-t readability-ben. OK, C++ tunhet olvashatobbnak, felteve hogy nem zavar, hogy a compiler maskent ertelmezi a kodot, mint egy human olvaso."

Képzelj el egy Assembly programozót, aki meglát egy C kódot. Ránéz egy függvény paraméterlistájára, van benne mondjuk egy int. Az ASM kódoló erre azt mondja, hogy zavarja, hogy nem látja, hogy az az int minden használatakor a stackről olvasódik-e vagy betöltődik egy regiszterbe és onnan olvassák mindig. Zavaros neki, hogy egyáltalán le lesz-e stackre téve vagy nem, mert pl. a függvény inline-olódik. Szegény ASM kódoló csak néz és azt mondja, hogy a C olvashatatlan. Na így van ez a C és C++ viszonyában is. Egy C kódoló retteg, hogy melyik függvényre lesz bindolva a hívás, mintha az esetek többségében nem volna triviális.

Viszont ha kicsit is humánabb beállítottsága van valakinek, nem bitek folynak az ereiben, akkor örül neki, hogy vannak operátorok, amiktől olyan emberi megjelenése lehet a kódnak, hogy nem kell paraméter típusonként külön függvénynevekkel hivatkozni, bejönnek neki a template-ek.

De OOP nyelvek között is nagy eltérés van. A C++ egy fapados kastély, ahol lépcső helyett összetákolt palló van. A Java meg mozgólépcsős, őrületbe kergetve az embert, ha nem pont úgy haladna, mint ahogy megálmodtak neki. A C++ template-ek normálisan típusfüggő függvények lesznek, így statikusan bindolódnak. Na, erre pont nem alkalmas a Java generics.