technologie

Linus Torvalds kritizuje C++: Příliš mnoho možností může vést ke špatnému kódu

V programování nemají více možností vždy pozitivní dopad. Jazyk může nabízet mnoho nástrojů a umožňovat pokročilé návrhy, ale také může zkomplikovat práci, pokud se kód stane těžko čitelným, kontrolovaným a udržovatelným. To je jedna z kritik, které Linus Torvalds uplatňuje na C++.

C++ je mocný, ale i komplikovaný

Pro tvůrce jádra Linuxu může být jeho síla problémem, pokud se používá ke stavbě příliš složitých struktur nebo řešení, která jsou těžko ovladatelná. Linus Torvalds, tvůrce Linuxu, Git a základ mnoha systémů, včetně serverů, superpočítačů, Androidu a vestavěných systémů, tak říká s úsměvem, sedíce u stolu s plyšákem Tux a notebookem.

C++ vznikl jako evoluce jazyka C a přidal mnoho funkcí pro vytváření složitějších programů. Umožňuje používat třídy, objekty, šablony, dědičnost a knihovny, a proto je stále přítomen ve hrách, grafických enginech, prohlížečích, finančním softwaru, vědeckých aplikacích a systémech, kde je klíčový výkon. Kritika Torvaldse míří proti tomu, co může nastat, pokud se jazyk používá nesprávně.

Ačkoli umožňuje psát rychlý a efektivní kód, může také vést ke strukturám, které jsou obtížné pochopit. V malém projektu to možná není velký problém, ale v systémech jako Linux nebo Git se to může táhnout roky.

„C++ je hrozný jazyk“ říká Torvalds

„C++ je hrozný jazyk“ říká Torvalds

„C++ je hrozný jazyk. Je to ještě horší, protože ho používá mnoho průměrných programátorů, do té míry, že je mnohem snazší s ním vygenerovat skutečnou hromadu. Upřímně, i kdyby jediným účelem používání C bylo držet programátory pryč od C++, to by už byla pádná důvod pro používání C.“ Tato slova Torvaldse padla během diskuse o Git v září 2007. Jeden z vývojářů se zeptal, proč je Git napsán v C a ne v C++, a Torvalds obhájil, že C lépe vyhovuje potřebám projektu.

Kritika směřuje proti obtížně udržitelnému kódu

Kritika směřuje proti obtížně udržitelnému kódu

Torvalds preferuje C, protože ho považuje za explicitnější. Není to dokonalý jazyk, ale nutí mnoho rozhodnutí být viditelných. Když někdo rezervuje paměť, manipuluje s daty nebo definuje strukturu, chování je blíže programátorovi a je snazší zkontrolovat, co se děje. U C++ mnoho operací může být skryto za elegantními abstrakcemi, což může způsobit, že kód vypadá čistě, i když se pod povrchem děje něco těžšího k sledování. Pro projekt s tisíci změnami a recenzenty to může být vážný problém.

Torvalds se netýká toho, že by C++ neměl žádnou hodnotu, ale jeho argument je, že v kritických projektech je jasnost důležitější než množství zdrojů jazyka. Pokud nástroj umožňuje příliš mnoho způsobů, jak vyřešit to samé, zvyšuje se i riziko, že každý programátor bude psát vlastním stylem a zkomplikuje údržbu.