Názor ke článku Kudy dál v kompilovaných jazycích? od VViki - [109] Absolutně nechci vyvolávat žádný flame, ale Linus...

  • 4. 12. 2007 18:58

    VViki (neregistrovaný)

    [109] Absolutně nechci vyvolávat žádný flame, ale Linus není počítačový bůh, jen ve správný čas zkusil napsat ten správný kód... kdyby to neudělal on, udělal by to někdo jiný o půl roku později. Je jenom člověk jako každý jiný :-), některé své podivné názory změnil, jiné nikoliv... má na to právo :-).

    Z toho, co jste napsal mi to přijde, že vytýkáte C++ že není superjazykem s naprosto všemi myslitelnými vlastnostmi :-)...

    Zkusím to projít popořádku...

    K syntaxi - tady si trošku protiřečíte ne? C a Javu byste rád, C++ nikoliv; ovšem z hlediska syntaxe je mezi nimi pouze malý rozdíl... Na druhou stranu chápu, že pokud jste poznamenán Lispem (jehož syntaxe zas připadá nikoliv směšná, ale odstrašující, mě), nebude se Vám syntaxe C-like jazyků líbit. Ale nepoužíval bych to jako argument proti C++, pokud C a Javu můžete.
    Co se ukecanosti týče, mohl bych Vám připravit odkaz na kód, který je v C++ a rozhodně byste ho za ukecaný nepovažoval ;-)... bohužel za čitelný taky ne.

    Norma - paskvil... opět bych se mohl zeptat, co konkrétně je tam paskvil... a určitě bychom našli něco, co se mi také nelíbí, ale nepřipadá mi rozumné ji odsoudit zrovna tímto způsobem.

    C++ samozřejmě není čistý vysokoúrovňový jazyk, nicméně má hodně vysokoúrovňových rysů a proto se dá jako vysokoúrovňový úspěšně použít. Nicméně, jak už jsem psal někde výš, C/C++ jsou hodně o svobodě... můžete... nemusíte :-).

    Trošku nechápu co Vám vadí na tom, že v C++ není vše objekt... Z jakého důvodu by třeba jednoduché datové typy měly být objekty? Jednak by to značně komplikovalo nízkoúrovňovější tvář C++, jednak by to bylo zbytečně pomalé... Podobné výkřiky jsou čistě OOP fanatizmus...

    Multidispatch... to bohužel netuším, co by mohlo být.

    Aspektově orientované rysy... ještě jsem se zcela nerozhodnul, jestli je AOP vůbec nějakým přínosem, či spíš naopak. Podle mě se dá téměř cokoliv, co řeší AOP udělat i jinak a čitelněji... ale chápu, že je to věc názoru.
    AOP se objevilo relativně nedávno, možná se ho v C++ dočkáme taky :-(.

    Já věřím, že v Lispu je možné udělat operátor z čehokoliv, otázka je, k čemu je to dobré (samozřejmě věřím, že vymyslíte úžasný příklad, ovšem realitě bude jistě značně vzdálený)... Přetěžování operátorů v C++ bylo primárně určené k zlepšení čitelnosti matematických výrazů nad komplexními typy a k tomu (a spoustě dalších věcí) slouží velmi dobře :-).

    Vícenásobná dědičnost je samozřejmě diskutabilní věc. Ale C++ Vám ji nevnucuje. Nelíbí? Nepoužívejte ji. Občas dokáže věci hezky zamotat, ale i krásně vyřešit.

    Striktní zapouzdřenost - bohužel si nejsem zcela jistý, co tím přesně máte na mysli. Zkuste prosím trošku rozvést.

    Syntaktická abstrakce - protože C++ nemá, bohužel asi nebudu vědět o co jde... Takže ani nemůžu komentovat. Možná to může být užitečné...

    GC - já jsem rád, že ho C++ nemá. Jak už jsem psal výše, GC se dá plně (a kontrolovaně) nahradit smartpointery, když člověk chce. Obecně si myslím, že GC je ideově pomýlený; programátor by měl být za zdroje výpůjčené od OS zodpovědný...

    K poslední poznámce... Ano, to je možné. Podobně, jako každý projekt v Javě by (z hlediska funkčnosti) mohl být napsaný v C++ a každý projekt v C by mohl být napsaný v assembleru.
    Nicméně, pro určité třídy aplikací jsou různé jazyky více/méně vhodné z hlediska kompromisu mezi výkonem a náročností na napsání...

    Spravuji/rozvíjím ne zcela malý projekt, kde hlavně u jeho hlavní GUI aplikace jsem za C++ skutečně rád :-). Souhlasím s tím, že bychom to bývali mohli napsat i v C, nicméně spoustu věcí z C++ bychom si vlastně implementovali sami (virtuální tabulky+metody rozhodně) a přehlednost kódu by rozhodně značně utrpěla...