Devel.cz Lupa Měšec Podnikatel Root Zdroják.cz DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Názor k článku
Štěpán Škrob: Horkým kandidátem byl WebKit, ale vybrali jsme Gecko

Sten
Sten (neregistrovaný) ---.net.upc.cz
27. 2. 2009 0:13

Re: C++ versus C

celé vlákno
GString *buf = g_string_new("aaaa"); puts(buf->str); g_string_free(buf, true);

A co je tohle? Vždyť to jsou objekty (akorát tomu říkáte jinak). Konstruktor, nějaký výpis do proudu a destruktor. Navíc ten destruktor musíte volat explicitně (a myslet na to), což asi bude důvod, proč X.org Server neustále leakuje :)

Co se treba podivat jake nechutne hacky jsou ve wrapperech C socketu pro C++? Nebo spinavosti v GTK2 -> Gtkmm ?

Jakých wrapperech C soketů? Já několik wrapperů znám a ani jeden nemá žádné hacky, je to skutečně jen velmi tenký obal kolem POSIX socketů (konstruktor = open, read, write, select, destruktor = close) a není nejmenší problém takový program portovat třeba na Windows, protože stačí jen přepsat ten obal úplně vespod.

GTK je špinavé samo o sobě, je to objektově orientované programování v procedurálním jazyce a příšené macro hell (Qt ale neustálou alokací na haldě a úplně debilním garbage collectorem není o moc lepší).

V rozsahlem projektu jsou objekty pritezi a proto treba takovy Mozilla Firefox / Mozilla XUL / GIMP / OpenGL / Xorg X11 Server / Gnome / Linux jsou vsechny v C.

A co třeba KDE, Sauerbraten (Cube), Skype nebo Google Earth, všechno v C++?

Jinak co se týče té vychvalované refaktorizace: chtěl jsem upravil aptitude, aby uměl pracovat s více než 65 535 balíčky, tak jsem změnil jeden typedef, který definoval typ pro ID balíčku. Víte, co se potom stalo? Vše se krásně zkompilovalo a aptitude po spuštění umřel na SIGSEGV. Prostě někde někdo nepočítal s tím, že by ten typedef mohl definovat něco jiného než 16-bitové číslo. Jó, to je ta perfektní refaktorizace. Zlaté objekty.