domitea píše:Jsou věci, které v C# napíšeš rychleji, než C++. Nicméně taková vícenásobná dedičnost je v C# utrpení, protože ji neumí. Musíš si tedy udělat rozhraní (nebo abstraktní třídu) a to je neskutečný zabiják času...
Vícenásobná dědičnost v C# není cíleně, C# byl tak navržen. Daný problém se dá (a takový je záměr tvůrců C#) řešit komponentami - objekt má u sebe seznam komponent, z nichž jedna je typu kočka, druhá typu pes. A abstraktní třídy jsou v C++ taky :)
Jak už tu padlo, hlavní vliv na výkon nemá jazyk, ale jak je kód napsaný.
domitea píše:A vzhledem k tomu, že chceš napsat jen skákačku, tak je to úplně fuk, co použiješ.
Fuk to je co se týče výsledku, ale např. v C# načíst řádky textového souboru je jeden krátký příkaz
Kód: Vybrat vše
List<String> lines = File.ReadAllLines("soubor.txt");
Zkus si napsat kód se stejnou funkčností v C++, bude to nejspíš kolem 10 řádků, když se budeš hodně snažit, nacpeš to možná i do pěti :)
A to LINQ umožňuje ještě zajímavější věci napsat hodně krátce.
Navíc v C++ musíš řešit hlavičkové soubory, takže spoustu kódu vlastně píšeš dvakrát.
No a nebo to může taky psát v assembleru a třeba se vleze do 100 instrukcí

faraon píše:Java a C# jsou interpretované jazyky, běžící ve virtuálním stroji (stejně jako kdysi dávno LISP nebo BASIC). Ty tam sice napíšeš dva řádky kódu, ale provede se jich několik stovek, jenom o tom nevíš. Podstatné je že ten virtuální stroj sleduje činnost programu, a optimalizuje ho za běhu, tak aby byl co nejrychlejší. Takže se může stát že program vykonávající stále stejnou činnost po pomalém rozběhu citelně zrychlí.
Ale fuj, Java ani C# interpretované nejsou, Java tuším bývala v počátcích. Interpretované je třeba PHP, i když už tuším je taky možné ho zkompilovat.
C# je přeložené do bajtkódu (MSIL - něco jako assembler, ale ještě nezávislý na procesoru) a ten je pak na počítači, kde se kód spouští, přeložen normálně do strojového kódu přímo pro daný procesor (a optimalizován) - tudíž může mít i výhodu optimalizace pro konkrétní procesor, zatímco aplikace napsaná v C++ ne.