Shodou okolnosti prepisuji sve GUI aplikace z Javy (Swing, JavaFX) do QT5.
Uz proste nemam nervy na ruzne aktualizace javy, spousteni pres Webstart a stim souvisejici zavadene zmeny atd.
V porovnani s Javou, QT:
- produkuje sviznejsi a hezci GUI, modernejsi (vec nazoru) a nativnejsi komponenty
- stabilnejsi instalace softwaru, nezavisle na instalaci a aktualizacich javy (opomijim ted javafx deployer)
- lepsi podpora instalatoru / odinstalace z Win
- celkem se me libi QT signaly
- opravdu multiplatformni, vcetne Android/IOS
Nevyhody QT:
- chybi mi neco jako Maven - do konfiguraku napsat dependency, ktera by se sama stahla a pouzila
- proti Jave malo, hure dostupne, hure dokumentovane knihovny na ruzne veci, ktere v Jave jsou "brnkacka" - zip/unzip; export do excelu, pdf, atd atd. v Jave je takovych veci proste mraky, jsou celkem vyzrale, opensource
- v jave se rad proklikavam do zdrojaku pouzivanych knihoven. v C++ je to o rad slozitejsi
- QTCreator je dobre IDE, nicmene principialne v C++ nefunguje pohodlna refaktorizace a staticka analyza jakou znam z Javy
- velmi roztristene kodovaci standardy ruznych C++ knihoven (od pointerove aritmetiky pres objekty atd, kombinovani QT, boost a std ...), Java vice udrzuje uniformni kodovaci strukturu
- velmi roztristene API i v samotnem QT (napr z QFile nemoznost ziskat jmeno souboru, parent adresar atd)
- postradam finally{} (vim ze RAII, ale ...)
- trochu me stvou "mrtve pady" a jaksi zastarale (a opet dost roztristene) osetrovani vyjimek
- chybi mi funkcionalni nadstavby, ktere prinesla Scala ale i Java 8, imutable listy atd
Nevyhody Javy:
- kurvi ji politikareni Oraclu (napr neochota spoluprace s Google/Androidem)
- je relativne blbuvzdorna, takze v komernich korporatnich projektech je casto dost hruzostrasny kod, ktery z 50% tvori indicky copy&paste
- "tady me to pise, ze mam starou verzi javy", "porad me tady neco blika ze mam aktualizovat", "prestalo mi to chodit", "je to pomaly", "strasne to zere RAM" (napr batch zracovani obrazku s memory leakama v BufferedImage)
Nicmene, i kdyz jsem docela vypsal dost QT/C++ nevyhod, C++ mam rad, jsem schopen dosahnout pozadovaneho cile,
a vysledek je proste na klientske strane (mluvimeli o GUI aplikacich) stabilnejsi a prijemnejsi.