Proč si myslíš, že jde o ještě větší a pomalejší kód? Zřejmě vycházíš z praxe, kdy přilinkováním nějakého objetu neúměrně naroste kód. Jenomže se nesmí zapomenout na to, že ty objekty někdo tvořil za účelem maximální variability a použitelnosti a ve výsledku to mnohdy vypadá jinak. Uvedu jednoduchý příklad:
Vytvoříš čistý projekt ve windows bez čehokoli jen rámeček a přeložíš. Zjistíš velikost přeloženého kódu. Přidáš do projektu jeden oběkt-tlačítko a přeložíš. Přeložený kód naroste o x KB. Přidáním dalšího tlačítka už nenaroste výsledný kód o X KB, ale bude zhruba stejný. Nebude se zvětšovat ani přidáním 100 tlačítek. Tlačítko představuje třídu a má svoji instanci. Přidáním dalšího tlačítka se vytváří jen další instance téže třídy takže není důvod nárůstu kódu, ale jen dat.
Tohle by se v C dělalo jen těžko, navíc obsluha každého tlačítka by vyžadovala, aby program obcházel všechny, jestli na ně někdo nekliknul. To by pak ve výsledku byl velmi líný program.
O tom, že programy vytvořené na základě objektů jsou rychlejší než neobjektové, např. dosovské aplikace, se můžeš snadno přesvědčit. Otevři ve WINDOWS 20 průzkumníků a ve správci úloh se podívej na vytížení procesoru. Pak spusť třeba jen 2 dosovské programy a počítač bude neobyčejně líný.
Je to dáno tím, že neobjektové programování vychází z nekonečné smyčky MainLoop, ve které se sekvenčně zpracovávají jednotlivé procedůry, které sami mnohdy obsahují vlastní smyčky. V nich se ztrácí většina výkonu a proto je výsledek žalostný.
Objekty pracují na jiném principu a popsat je pomocí vývojových diagramů prakticky nelze. Pracují s tzv. handlery a událostmi. Vznikne-li údálost, např. kliknutí na tlačítko, zpracovává se handler tedy něco jako přerušení. Nenastane-li žádná událost, žádný kód se nevykonává, takže procesor není zatěžován.
Podobného principu lze užít i na AVR a vytváčet pro něj třídy, objekty. Ty však bude nutné šít na míru tak, aby jejich kód nebyl zbytečně velký. Jde o jiný princip, o jiný pohled na programování, který přináší své ovoce hlavně v aplikacích, kde se požaduje zpracování několik úloh současně.