GTK+ vs Qt

Аутор: Дејан Чугаљ

Реч „vs” представља симбол вечите борбе. Буквалан превод са енглеског на српски језик речи „vs” био би „против”. Исто значење има и у спорту (бокс, фудбал и рагби) и у програмерским круговима. Понекад може да буде синоним за свађе, увреде и понижавање међу супарницима. У боксу се супарници пре борбе међусобно свађају као део естраде. У програмерским круговима за то су задужени форуми и семинари. Понекад расправе за и против постају незаустављиве, иако се неретко ради о веома школованим и интелигентним људима. Наш наслов преведен са енглеског, према томе, значи „GTK+ против Qt”-а, са призвуком да се ради о вечитом дербију без коначног победника.

Самим уплитањем или коментарисањем овог вечитог дербија, ЛиБРЕ! часопис се налази на „клизавом тлу” и суочава се са опасношћу да постане необјективан. Ради се о нијансама које залазе у домен укуса, а тада важи изрека: „О укусима не треба расправљати”.

Овај део смо искористили да бисмо се оградили од могуће пристрасности према неком од ова два одлична комплета алата, GTK+ и Qt, за прављење вишеплатформских апликација са графичким корисничким интерфејсом (енг. GUI), који су писани у C или C++ програмском језику.

Захтеви

Пре свега поставља се питање: Који нам је циљ? Шта желимо да урадимо? Одговором на та питања ћемо сигурно доћи до правог алата који би требало да користимо, док ће вам овај чланак дати само додатне смернице у одлуци. Требало би да поставимо следећа питања:

  • Да ли вам је потребан само алат за развој графичког корисничког интерфејса или комплетан framework за писање апликација са API-јем за графику, слике, IO, звук и друго?
  • Да ли сте се определили за одређену платформу?
  • Ако пишете за неког послодавца, који су његови захтеви?

GUI Алати

Наравно да тренутно не постоји савршен алат за IT развој, много је фактора који на то утичу. Тако да, ако сте C програмер, или сте оријентисани ка Gnome, LXDE или Xfce окружењу, највероватније ћете се одлучити за GTK+, док, ако користите C++ програмски језик и KDE окружење радне површи, одлучићете се за Qt, а то су уједно и прве разлике које доносе ова два скупа алата.

Оба скупа алата (енг. toolkit), GTK+ и Qt, отвореног су кода и намењена су развоју графичког корисничког интерфејса и користе приступ „напиши једном, компајлирај било где”. Они дозвољавају програмерима да користе једно изворно стабло за све апликације које се могу извршавати на скоро свим водећим (mainstream) оперативним системима: од Windows XP-а до Windows 8, MAC OS X и Linux/Unix. Овде Qt има малу предност јер подржава и Windows 95, Simbian S60, Solaris, WebOS, Android и Ubuntu Phone, а такође постоји верзија Qt-а за Embedded Linux са истим API интерфејсом. Једна од већих предности над GTK+-ом је та што унутар Qt модула имамо конзистентно окружење за развој потпуне функционалне апликације а не само графичког дела.

Предности Qt-а

Qt је своју репутацију направио на свом интуитивном и моћном API-ју (енг. Application Programming Interface), иза ког стоји развојни тим Trolltech, који је 2008. године постао власништво Нокије. Qt је изузетно добро документован што умногоме олакшава рад програмерима. Развојни циклус апликације је много бржи и поприлично је лако ући у целу причу под условом да имате иоле предзнања C++ програмског језика. Qt је објектно оријентисан и користи генераторе кода: Meta-Object Compiler (moc, http://goo.gl/Egdj17) и User Interface Compiler (uic, http://goo.gl/qxRHgL).

Одличан алат за сâм развој је и Qt CreatorIDE (енг. integrated development environment, http://goo.gl/XyaE5Q), који полазнике брзо уводи у пројекат.

Qt 5 модули укључују: QtCore, QtGui, QtMultimedia, QtNetwork, QtOpenGL, QtOpenVG, QtScript, QtScriptTools, QtSql, QtSvg, QtWebKit, QtXml QtXmlPatterns, QtDeclarative, Phonon и Qt3Support.

Модули за рад са Qt алатима су: QtDesigner, QtUiTools, QtHelp и QtTest.

Модули за Windows програмере су: QAxContainer и QAxServer.

Модул за Unix програмере је QtDBus.

Овакав склоп нам омогућава не само развој графичког дела, него потпуне апликације, док још морамо да напоменемо да Qt дозвољава извршавање на самом хардверу без потребе коришћења X11 или прозорског менаџера (енг. window manager).

Adobe-ов програм Photoshop Album је један од примера комерцијалних апликација за Windows написаних помоћу Qt-а. Многи софистицирани софтверски системи у вертикалном тржишту, као што су алати за 3D анимацију, дигиталну обраду филма, финансијски сервиси и алати за истраживање нафте и гаса, направљени су уз помоћ Qt-а. Уколико сте успели да зарађујете за живот пишући софтвер за Linux/Unix, једноставним прекомпајлирањем ћете проширити тржиште за Windows и Mac OS X.

За Qt су на располагању различита лиценцна права. Комерцијализација – затварање кôда апликације, повлачи и обавезу куповине комерцијалне лиценце. Уколико је ваш софтвер отвореног кода, можете користити некомерцијалну верзију Qt-а.

Предности GTK+

GTK+ је изворно развијен за GIMP (енг. GNU Image Manipulation Program, http://www.gimp.org) графичку апликацију. Развијен је и одржаван је од стране Gnome фондације (The Gnome Foundation, www.gnome.org/foundation).

Једна од значајних предности GTK+-а је постојање великог броја развијених апликација. Тренутна документација је добра, али упоређујући је са Qt-овом, мало је лошија јер GTK+ развијају само добра воља волонтера и заједнице, док у Qt-у ради читав тим под окриљем Нокије. GTK+ је лиценциран под GNU LGPL (http://goo.gl/aQfnQQ) што значи да имате права и да комерцијализујете апликацију затвореног кода.

GTK+ концепт додатка (енг. widget-concepts) је по многима супериорно решење у односу на Qt дизајн. Графички едитор GLADE (https://glade.gnome.org) је много бољи и једноставнији за рад.

Брзина

Озбиљна дебата се води око брзине. GTK+ поданици указују да Qt апликације имају висок ниво меморијске конзумације, док супротна страна тврди да је start-up време GTK+ апликација споро. Додуше, овде се ради о толико малим нијансама да их скоро и не треба спомињати.

Закључак

Све у свему, прича је много шира и компликованија него што је то приказано овим чланком. Први утисак је да Qt има предност над GTK+-ом, али када се дубље сагледају ствари, оба алата су изузетна и скоро је све могуће постићи и једним и другим, само су нијансе и труд у питању. С обзиром да је овај часопис намењен заједници отвореног кода и да је огромна разлика у лиценцама које користе Qt и GTK+, онај тежи део – одабир – остављамо ипак вама.

Надамо се да нисмо превагнули ни на једну страну и да смо вам постављањем питања Који нам је циљ? Шта желимо да урадимо? помогли да изаберете страну.

Корисни линкови:

(http://qt-project.org)

(http://www.gtk.org)

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *

Time limit is exhausted. Please reload CAPTCHA.