Vlákno názorů k článku
Nová generace jazyka C++ od Let_Me_Be - Je zajimave jak tady C++ kritizuji lide, kteri...

  • Článek je starý, nové názory již nelze přidávat.
  • 14. 8. 2007 16:47

    Let_Me_Be (neregistrovaný)
    Je zajimave jak tady C++ kritizuji lide, kteri v nem neprogramuji a ocividne ho ani neovladaji.

    C++ je v soucasne dobe druhy nejrychlejsi programovaci jazyk pokud jde o efektivitu kodu, hned po Fortranu (1-3% rychlosti rozdil).

    V Assembleru dnes uz neprogramuje vubec nikdo (obcas se napise mala cast kodu, ktera je volana extremne casto v assembleru ale to C++ umoznuje taky). I firmy ktere programuji jednocipy delaji v C a prechazeji na C++.

    Zpomaleni, ktere zpusobuji objekty je nulove. Zpomaleni, ktere zpusobuji virtualni metody je viditelne a proto se pouzivaji pouze tam kde je to nutne.

    Cecko ma smysl pouzit pouze tam kde C++ nema dostupny kompilator (coz se obcas stava, vzhledem k tomu ze C++ je docela slozity jazyk).
  • 14. 8. 2007 17:08

    Zilog (neregistrovaný)
    Pokud chci v C++ vytvorit kod, efektivni stejne jako strukturovana implementace napr. i v "pitomem" Cecku, dojdu k tomu, ze z C++ featur nebudu smet pouzit de facto NIC. Smutny fakt.

    V C++ jsem napr. napsal jednu (2D) hru, po prekladu vyhledal zachod, a nakonec z C++ zbyly jen classove vnejsi obaly, plne __asm__ implementaci, a hle - najednou se vse zacalo v pohode stihat. V dnesnim C++ je situace o neco lepsi, ale stale NENI dobra, a C++ nedosahuje ani kvality cisteho C, to je opet smutny fakt.

    To, ze je jazyk semanticky "uplny" a hypoteticky existuje kompilator, ktery vykompiluje optimalni semanticky ekvivalent, je sice hezke - ale ukazte mi takovy v realu. Ukazte mi byt jen jeden priklad toho, kdy se aplikace po prepsani do C++ (takovych je nekolik) urychlila. Je to zkratka jen touzebne prani a globalni oblbovani tech, co nevidi kodu pod poklicku - a ti pak tyto pohadky opakuji, a biji se za ne.
  • 14. 8. 2007 17:18

    Miloslav Ponkrác
    Některým lidem prostě nevysvětlíte, že ty C++ featury nejsou o pomalosti, a že použití C++ abstrakce nutně neznamená pomalost.

    Jak už říkám, když si prohlížím co vyjde z Microsoftího, nebo ještě lépe Intel kompilátoru, tak i jako bývalý assemblerista chrochtám blahem. Říkám si, že to vůbec není špatné. Ale já zapomněl, Vy tu furt cpete to gcc...
  • 14. 8. 2007 18:25

    Biktop (neregistrovaný)
    Jo, a pak si prohlédněte ten kód pro ty jednočipy. Děs a hrůza! Jediným, podtrhuji jediným důvodem, proč firmy dělající aplikace s jednočipy přecházejí na C/C++ je ten, že je dnes už nedostatek lidí, kteří jsou schopni programovat v Assembleru. Nic jiného v tom není.
  • 14. 8. 2007 18:32

    Zilog (neregistrovaný)
    Hehe, k tomu malou perlicku - iRiver sveho casu zduvodnoval, proc nemuze model 390T ve firmweare naraz podporovat kodeky na mp3, ogg i wma, ze ma "nedostatek pameti". Pritom slo o (tusim) ARM s 8MB flash a 8MB sram :).

    Dnes napr. u mobilu, kde casto vsechno visi na jedinem armovem jadre, vyvazuji vyrobci kvalitne napsany firmware zlatem... a v usetrenem strojovem case tam pak muze uzivatel poustet... javu :(.
  • 14. 8. 2007 20:26

    micaai
    Můj názor je ten, že žádný kompilátor nemůže z C++ převést kód na úroveň kódu optimalizovaného assembleristou. Možná u nějakých triviálních věcí, ale nedokáže optimalizovat algoritmus. To by musel ten kompilátor pochopit, co chce programátor říci. Prostě v assembleru se dá napsat nejefektivnější kód, o tom žádná; dokazovat to nebudu, myslím, že Zilog tady toho vypsal dost. :-)
    Druhá věc však je efektivní psaní kódu. Sám jsem částečně taky takovej idealista a rád se piplám s nějakýma prográmkama, ale život není takovej, že dostanete neomezeně mnoho času a programujte. Programátoři mívají termíny a deadliny a ty musí dodržet. Proto vznikly vyšší jazyky, které zavádí více abstrakce, aby bylo programování snazší. Objektový přístup nevznikl proto, aby se počítači lépe optimalizovalo, ale aby se to naopak přiblížilo víc lidskému myšlení. Programátoři musí hledat kompromis mezi výsledným výkonem a rychlostí tvorby softwaru, případně i snadné přenositelnosti, upravovat objektový kód je mnohem snazší, než upravovat kód assembleru atd.
    Programátoři by si ale toho měli být vědomi a nespoléhat na to, že jim výrobci hardwaru udělají výkonnější procesory a paměti, aby jejich prasácký kód ve vysoce abstraktním jazyku běžel jakž takž normálně. To už je pak rozdíl mezi programátorem a lepičem kódu, co v nějakém RAD naplácá pár tlačítek a formulářů a vyplní pár get set metod.