Portál AbcLinuxu, 3. listopadu 2025 20:22
C++ selhalo? Tak proč je tak oblíbené? Zeptejte se B. Eckela nebo M. Viriuse, co si o tom myslí.
Je pravda, že C++ vzniklo evolučně a jeho syntaxe je místy až trapná, ale nikdo vás nenutí používat všechno co C++ nabízí. Pokud to umíte, můžete psát rychlé, robustní a čitelné programy. Pokud ne, napíšete prasárnu třeba i v Pythonu.
STL i C++ má vypadat všude stejně, od toho ten standart je. Že tomu tak někdy není, nesvalujte na jazyk, je to bug v překladači/knihovně. Pokud nebudete zabíhat do obskurních detailů, bude vám to vždy fungovat.
Nevíte jaká je krása po letech vynuceného programování v C (zčásti dokonce K&R), dlouhých nocí strávených hledáním chyb v přetečení, automatickém přetypování, vedlejších efektů v makrech a podobných lahůdek moci konečně používat elegantní spojování řetězců, iostreams, standartní šablony pro všechno možné, exceptions atd... a to se zcela zanedbatelnou ztrátou rychlosti, zato se značným poklesem nákladů za údržbu.
Sám často používám Python, zejména pokud chci mít něco rychle, ale C++ považuji za bezpečně nejuniverzálnější jazyk pro jakékoliv projekty.
>C# se mi libi, ze i datove typy jsou odvozeny od tridy object
To neni v zadnem pripade pravda. C# stejne jako java obsahuje primitivni datove typy, to ze muzete napsat "5.ToString()" je dusledkem mechanismu BOXING/UNBOXING, ktery automaticky (kod je v Jave) udela toto:
new Integer(5).toString();
Boxing a unboxing bude mit Tiger taky (Java 1.5), ale me osobne se to moc nelibi. Nemelo by se to michat. Kdyz potrebuji primitivni typ (setrim pameti), tak by se to mohlo plest....
Struktura v C# je jen alias pro klicove slovo 'class', jak jste napsal, jsou odvozeny od objektu. Totez muzete udelat v Jave, ale s klicovym slovem 'class'. Jinak tam neni zadny rozdil. Nicmene pokud byste pouzival spravne OOP, struktury byste nikdy nepotreboval.
Switch je skutecne v C# lepsi, v Jave 1.5 uz na tom budou oba jazyky stejne.
Nesouhlasim s vami, ze C# je lepsi jazyk. JE TO HORSI JAZYK.
.
Perl:
Jinak s tím unicode, plánuje se nebo ne?
f = file('myfile', 'w')
f.writelines(["hello world #%d!\n" % i for i in range(7)])
f.close()
. Ale python ma holt lepsi podporu, no, takze stejne delam v nem.
S tou podporou je to fakt taková bída? Jak je na tom ruby ohledně vývoje? Je mi jasný, že problém už je v tom, že dokumentace se nedělá primárně v angličtině, ale co jsem se díval, tak je toho celkem dost...
Male doplneni (jeslti me pamet neklame
:
Funkcionalni jazyk se vyzkacuje tim, ze se v nem casto pracuje s pojmem funkce. Typickymi zastupci jsou jazyky Scheme, LISP, Perl a Python. V techto jazycich litaji pojmy jako je uzaver, funkce vyssich radu a podobne. Vyznacuji se tim, ze jsou silne dynamicke a jdou v nich delat stejne veci ruznymi zpusoby.
Objektove orientovany jazyk je ten, ktery ma v sobe podboru objektu a umoznuje programovani na vsech trech zakladnich stupnich OOP (zapouzdreni, mnohotvarnost a dedicnost).
Myslim, ze Python i Perl vsechny tyto podminky splnuji. Takze vyse uvedene tvrzeni je blbost. Pravdepodobne jste mel na mysli to, ze neni ani poradne objektovy ani poradne imperativni, coz jak uz jsem napsal, povazuji za vyhodu.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.