Qt vs. Ultimate++

Nem sokára kezdenék el írni egy nagyobb programot, egy új stílusú dokumentumszerkesztőt (OSS, cross-platform). Mostanáig úgy terveztem, hogy Qt-ben csinálom, de megnéztem C++ builderes fórumban írt Ultimate++-t, és elbizonytalanodam. A következőkre jutottam:

Az Upp mellett szól:
- Jó "IRADE" (RAD IDE), míg a Qt Designert most butították le, a 3-as egészen tetszett, a 4-es viszont már csak felülettervező.
- Tetszik a "filozófiája".
- BSD licencű. Bizonyos részeket lehet, hogy inkább LGPL-lel adnék ki, vagy valami más licencszel.
- Van pár widget, ami tetszik.

A Qt mellett szól:
- Drag&drop. A program jellegéből adódóan fontos lenne, a spéci dokumentumformátum miatt viszont alapvelően úgyis a programon belül, amit talán Upp-ban se túl bonyolult megvalósítani.
- Mozgatható eszköztárak, dokkolható ablakok. Ilyeneket terveztem a programba. Meg lehet csinálni Upp-ban is (a template-s megoldás kicsit segít is benne), de Qt-ben adva van.
- Qt Script for Applications. Idővel mindenképp szeretném makrózhatóvá tenni, Qt esetén a QSA edig egy jól illeszkedő felületet nyújt, ismert stílusú programnyelvvel.
- Több platform (, nagyon távlatilag: Qtopia), bár az Upp-nál is terveznek még egy párat.
- Ismertebb. Könnyebb fejlesztőt találni, és elfogadottabb azt mondani, hogy Qt-val lehet modulokat csinálni, mint hogy Upp-pal. Jobban illeszkedik a környezetbe, bár majd meglátjuk, milyen lesz a Chameleon.

Persze szóba jön még a GTK, aminek előnye az LGPL és az ismertség, de a GUI működése nekem nem nagyon tetszik, talán kevesebb is a widget, mint a Qt-ben, és még nem láttam hozzá igazán jó IDE-t (és a glade se jön be).

Olyanok hozzászólásait várom, akik ismerik mind a Qt-t, mind az Ultimate++-t, és össze tudják hasonlítani, vagy jól ismerik az Upp-t, és meg tudnak győzni arról, hogy abban is lehet jó alkalmazást írni. (Hogy Qt-ben lehet, arról nem kell meggyőzni.)
Előre is kösz!

Hozzászólások

Ja, még a Qt-nek, átlátható szerkezet, jó dokumentáció.

probaltam mar par IDE-t fizetoset es free-t egyarant, de az UPP-tol ramjon a sikito labrazas ket percen belul. Utoljara 2007 kornyeken kellett valaki mas altal UPP-ben elkezdett projectet folyatatnom, amire emlekszem a negtivumok kozul: az egesz project strukturaja logikatlan, nem igazan segit abban hogy "helyfuggetlen" projecteket csinalj. Ha mashova csekkoltad ki a project fat, konfigolhattad at az IDE-t (include, lib, stb) Nem tudom ez mennyire volt a szarul felepitett project hozomanya, de sikideg voltam tole hogy ha a project egy masik branch-eben szerettem volna matatni valamit, az IDE beallitasait at kellett irjam, mert nem lehetett project-relativ include es lib konyvtarakat megadni. Ez az egesz "assembly" dolog nem tunt tul logikusnak amugy visual studio utan.
QT-zni akarsz sokkal inkabb ajanlanam az eclipse CDT-t, azon kivul hogy egy nagysagrenddel logikusabb, van hozza jol mukodo QT integracio is.

+1,
A multkoriban volt idom es kiprobalgattam az osszes felelheto IDE-s c++-os cuccokat. Az ultimate++ amikor meglattam mar a bizserget valami, de amikor egy picit jobban belemelyedtem jeges kez markolta meg a torkomat es mar toroltem is le az egeszet. Valami remalom volt a megjelenese es kezelese is. A QtCreate-nol kotottem ki. Jol meg vagyunk egymassal.

Jelenleg Ultimate++ -szal dolgozom, a második alkalmazásomat gyűröm vele.
Néhány pont, ami neked még fontos lehet pro, ill. kontra:
- Drag & Drop tényleg nincs, bár programon belül megvalósítani nem volt valami nagy feladat.
- Ultimate++ tartalmaz egy Esc nevű interpretert C jellegű szintaxissal, TheIDE használja pl.
- PocketPC támogatás a múlt héten került be.
- Doksi tényleg szegényes, viszont egy doxygen-nel generált referencia és az IDÉ-be épített Assist++ nagyon sokat segít.
- Qt-hoz képest iszonyú gyorsan fordulnak a források ( fejlesztés közben nem hátrány :) )
- A beküldött patch-eket a fejlesztők azonnal beépítik (ha illeszkedik a filozófiába) és a következő heti release-ben már benne van.

Windows-on fejlesztek.
Ha Linuxra akarsz frisset minden héten, akkor elég a forrásokat bemásolnod. Ha IDÉ-t is frisset szeretnél, akkor az IDÉ-vel megnyitod az "ide" csomagot, majd lefordítod lehetőleg nem debug módban.
Amúgy upp-608-dev1 az egy héttel ezelőtti kiadás, abból van deb csomag is itt: http://sourceforge.net/project/showfiles.php?group_id=93970

ha a deb csomag fuggosegi listaja megfelel, akkor:

$ dpkg --info upp_2008.1_i386.deb
...
Depends: gcc-4.1, g++-4.1, libc6-dev (>= 2.3.6), libstdc++6-4.1-dev (>= 3.4.6), libx11-dev (>= 1.0.0),
libxft-dev (>= 2.1.8), zlib1g-dev (>= 1.2.3), libpng12-dev (>= 1.2.8), libfontconfig1-dev (>= 2.3.2),
libxrender-dev (>= 0.9.0), libfreetype6-dev (>= 2.1.10), libexpat1-dev (>= 1.95.8), libxau-dev (>= 1.0.0),
libxdmcp-dev (>= 1.0.0), libgtk2.0-dev (>= 2.8.17), libglib2.0-dev (>= 2.10.2)
...

/* bocs az esetleges helyesirasi hidakert */

Ja, nagyon jó kis cucc :)
Nálam megbízhatóan működik, az IDE még egyszer sem szállt el. A létrejött programok is stabilak és gyorsak.
Nekem leginkább azért tetszik, mert az osztálykönyvtár hihetetlen jól van megtevezve. Emiatt pl. egyáltalán nem kell memória kezeléssel, new/delete operátorokkal kínlódni és garbage collector sem fogyasztja a gépet feleslegesen.
Régebben Delphi-vel, wxWidgets-el dolgoztam, azokhoz képest Ultimate++ egy leányálom :)

Így, lassan 3 év távlatából érdekel, hogy mi lett végül (ha nem lett dobva a projekt).
Köszi!

Próbáld ki.
Én egyszer 1-2 hetet rászántam, úgy 2 éve.
Ott dobtam a szemétbe, hogy sehogyan sem jöttem rá, hogyan tudok egy inputbox -szal elkapni egy enter-t ha épp aktív az inputbox. Nem volt keypress meg semmi hasonló event-handlerje, ahol meg lehetett volna nézni, hogy enter-t nyomtak-e.
Akkor még nagyon hiányos volt a dokumentáció, sehol semmi nem volt írva erről.
Meg az valóban egy hatalmas baromság, agymenés, hogy nem relatív útvonalakon tárolja a projectfájlokat meg forráskódokat, hanem bedrótozva a saját könyvtárában, a példaprogramok társaságában.
Pedig nem lenne rossz eszköz, de nagyon sok hiányossága van.
De próbáld ki, lehet, hogy neked megfelel - elég hamar lehet benne halani, én előtte GUI-ra Delphi5-öt használtam, az után elég hamar ráállt az agyam. Első alkalommal egy-két óra ismerkedés után simán tudtam írni egy sima egyablakos kliensprogramot egy saját C-ben írt chatszerverhez, igaz, gány lett meg minden, de hamar elkészült, úgy, hogy semmit em tudtam előtte az egész Upp-ről. Tehát ilyen kis biz-baszokhoz akár még jó is lehet.

kb én is ezen a véleményen vagyok, fejlődnie kell még, és valóban rossz koncepció a statikus elérések használata, ezzel kapásból fejbe van lőve a mobilitás. Ennek ellenére a mai napig használom, mert ha valami programmodulból demo-t kell csinálnom (képfeldolgozással foglalkozom főként) ahhoz korrekt, és nagyon jó könyvtára van. Villámgyorsan kész vagyok vele, és a program futása is gyors, de egy összetettebb programra nem igazán alkalmas szerintem, habár én nem írok túl összetett dolgokat, de rettentően idegesített, hogy nem tudtam életre lehelni benne a /dev/video-t egyszerűen nincs a kép. Az okot nem tudtam megfejteni.