Mimochodem generický (šablonový) program se daleko daleko jednodušeji refaktoruje než procedurální,
Mozna kazdy rozumime pod "refaktorizaci" neco jineho. Jiste - u zapouzdreneho objektu snaze zmenite datovy typ interniho atributu (jak si nekdo stezuje v diskusi ze v C mu neslo jednim typedefem). O teto refaktorizaci nemluvim - u ciste navrzenych programu je stejne snadna v C jako v C++. Mluvim o tom, ze se najednou rozhodnete zmenit objektovy model (mapovani veci z realneho sveta na jednotlive objekty/tridy). Tohle proste rozumne nejde, nebo to stoji strasne moc usili, protoze toto uz neni uvnitr zapouzdreneho objektu, ale je to zmena rozhrani, na ktere jsou uz vsichni ostatni prizpusobeni. V C je toto jednodussi, protoze tady obvykle nemusite predelat cely objektovy system, ale proste vyrobite funkci, ktera misto treba dvou drive volanych funkci dela totez.
daleko snáz se tam dělají unit testy (test driven development)
tohle je pravda,
a daleko méně duplicitního kódu je třeba napsat. To, že většina programátorů v C++ zná šablony jen jako STL, není chyba jazyka, ale příslušných programátorů.
a tohle je nesmysl. Predpokladam ze se mi vysmejete, kdyz Vam reknu "To ze mnoho programu v Perlu vypada jako porucha na lince neni chyba jazyka, ale prislusnych programatoru.".
Ad duplicitni kod: urcite kdyz si predstavite nejakou krasnou objektovou dedicnou anebo sablonovou hierarchii, je treba psat daleko mene kodu k jeji implementaci. Ale kde v realnem svete (snad krome grafickeho rozhrani, jehoz vznik primo souvisi se vznikem OO programovani) nejakou dedicnost realne vyuzijete, aby vam usetrila ten duplicitni kod?
-Yenya