Já jsem nevyzdvihoval výhody Qt oproti GTK+, ale výhody C++ oproti C a ilustroval jsem to na příkladu GTK+ (C) a Qt (C++). Mým cílem je představit aspoň dva z dlouhé řady existujících toolkitů a zároveň ukázat programování pro X v C++ (které se podle mne pro daný účel hodí lépe) a v C (které z různých důvodů někteří programátoři preferují). Proto jsem vybral tuto dvojici toolkitů. A ještě k tomu "...bohužel uchýlit": možná se vám Qt nelíbí, mně se ale líbí víc než GTK+ se všemi nadstavbami pro C++. Připadá mi, že GTK+ (a tím myslím i jeho nadstavby) je zbytečně komplikované a nutí programátora soustředit se na detaily fungování toolkitu. Naopak Qt dovoluje soustředit se na vytvářenou aplikaci. To je ale můj osobní názor a spousta programátorů bude mít názor odlišný.
Mno, ja bych tu argumentaci videl asi takhle:
1) Pro GUI vhodny objektovy model. To necham bez dukazu. Pokud si to nemyslite, asi se neshodneme :-) Ale vsechny GUI toolkity na ktere si vzpominam ho pouzivaji ;-)
2) Jazyk, ktery ma podporu objektu (C++) se s objektovym modelem vyrovnava podstatne lepe, nez jazyk, ktery ji nema (C). Tri priklady:
a) Mam funkci/metodu f(classA). Mam classB jako potomka classA. U C++ muzu bez problemu jako argument funkce dat instanci classB a kompilator vi, ze je to OK.
U C ale musim udelat pretypovani. Bud natvrdo, cimz prijdu o typovou kontrolu, nebo nejakym makrem (jako GTK), coz je nesikovne.
b) U jazyku s objekty si muzu definovat destruktory => objekty se mi korektne rusi, aniz musim cokoli explicitne volat. (Napr. kdyz je takovy objekt v lokalni promenne.)
c) U GTK me vylozene stvaly silene dlouhe nazvy funkci (ktere tam jsou kvuli imitaci objektoveho modelu).
Myslím, že pro porovnávání vhodnosti zvoleného jazyka pro GUI programování není GTK+ framework ten nejšťastnější příklad, resp. je ukázkou toho, jak by se v C programovat nemělo. V C se k implementaci přistupuje úplně jinak, ne že se snaží "emulovat" objekty OOJ. Dělal jsem nějaké drobnosti v OpenMotifu a WINGs. To je úplně o něčem jiném.
No myslim, ze hlavnim problemem objektově orientovaného jazyka je rychlost vysledného ,,programu".Když jse k tomu přidá ještě pomalejší X server tak to hodí projekt typu KDE (vše pěkné, propracované ale kurevsky pomalé) a to mám 1,7Ghz P4
Takže nejlepší je C a vše ,,LOW-LEVEL" !!!!
Ano já mám na věc jiný názor:-) Mnou preferovaný programovací jazyk je C++, znám ho poměrně dobře. Proto se mi nelíbí knihovny typu wxWindows a Qt, protože zkrátka existují už moc dlouho na to, aby to bylo to "opravdové" C++, tzn. výjimky a ne vracení chybové hodnoty, šablony a ne makra, STL a ne pointery, atd... Srdce zarytého pluskaře plesá při pohledu na API knihovny Inti, a pláče krvavé slzy při nucenému programování Qt věcí. Nic ve zlém:-)