V čem vyvíjet GUI aplikace?

Sameer

V čem vyvíjet GUI aplikace?
« kdy: 23. 03. 2011, 21:53:28 »
Uvažuju, že si vyzkouším programování v nějakých jazycích, zajímá mě třeba Go, Vala a podobné věci. Existuje pro Linux nějaké vývojové prostředí, ve kterém si naklikám grafickou aplikaci, natahám si tlačítka a další prvky a pak to oživím pomocí doplnění eventů? Něco jako bylo Delphi ve Windows? Existuje nějaký takový univerzální IDE?


Re: V čem vyvíjet GUI aplikace?
« Odpověď #1 kdy: 23. 03. 2011, 22:02:38 »
Citace
Něco jako bylo Delphi ve Windows? Existuje nějaký takový univerzální IDE?

Existuje fpc/Lazarus. To je komunitní, otevřený, multiplatformní a multiwidgetsetový ekvivalent Delphi. Naklikáš si aplikaci a oživíš pomocí eventů v Object Pascalu.

Univerzální - to je otázka, jak to myslíš. Lazarus si ukládá formuláře v souborech *.lfm, v Delphi je to *.dfm.


Re: V čem vyvíjet GUI aplikace?
« Odpověď #2 kdy: 23. 03. 2011, 22:04:36 »
Poznam (a pouzivam) Anjuta IDE. Ma nativnu podporu mimo ineho pre jazyk Vala aj "klikadlo" gui (glade). Toto postredie naozaj odporucam. 8)
Na zaciatok pre programovanie by som ale skor odporucil neucita sa klikat ale programovat. Teda by som zacal napr. v Pythone, pokial si odvaznejsi mozes C alebo C++. ;)

alefo

Re: V čem vyvíjet GUI aplikace?
« Odpověď #3 kdy: 23. 03. 2011, 22:05:13 »
Lazarus: vývoj v Object Pascale (a la Delphi)
Netbeans: vývoj v Jave

vlastik

Re: V čem vyvíjet GUI aplikace?
« Odpověď #4 kdy: 23. 03. 2011, 22:06:58 »
Qt Creator, vývoj v QT :)


Sten

Re: V čem vyvíjet GUI aplikace?
« Odpověď #5 kdy: 23. 03. 2011, 22:45:14 »
Qt Creator je klikací. KDEčkové aplikace se dělají taky stylem eventů (signálů), ale neklikají se, ale přímo v daném jazyce se napasují do sebe jednotlivé objekty.

lokamil

Re: V čem vyvíjet GUI aplikace?
« Odpověď #6 kdy: 24. 03. 2011, 00:23:08 »
Osobne doporucuji javu a treba netbeans (mnou preferovana moznost). Duvodu je hned nekolik: je to multiplatformi a vyvoj jde v tom proste rychle. Na druhou stranu to ma samozrejme spoustu nevyhod: relativne pomaly beh, obtizna integrace s behovym prostredim. Pokud se bude jednat o veci vyhradne pro GNU/Linux, tak osobne doporucuji QT, protoze to je take velmi sexy framework ;)

Pavel 'TIGER' Růžička

Re: V čem vyvíjet GUI aplikace?
« Odpověď #7 kdy: 24. 03. 2011, 01:22:48 »
Souhlasim s tim, ze klikani neni nejlepsi variantou, zkusil bych gtkmm .... prosim nekamenovat ;-)

Michal

Re: V čem vyvíjet GUI aplikace?
« Odpověď #8 kdy: 24. 03. 2011, 05:48:04 »
pokud java tak rozhodně... eclipse + WindowBuilder Pro (SWT, Swing)
http://www.eclipse.org/
http://code.google.com/intl/cs-CZ/javadevtools/wbpro/quick_start.html

SWT - pokud má vypadat app OPRAVDU nativně (nativni api, nativni vzhled)
Swing - Swing + Look and Feel v případě vlastního vzhledu atd.


Inkvizitor

Re: V čem vyvíjet GUI aplikace?
« Odpověď #9 kdy: 24. 03. 2011, 07:50:15 »
Osobne doporucuji javu a treba netbeans (mnou preferovana moznost). Duvodu je hned nekolik: je to multiplatformi a vyvoj jde v tom proste rychle. Na druhou stranu to ma samozrejme spoustu nevyhod: relativne pomaly beh, obtizna integrace s behovym prostredim. Pokud se bude jednat o veci vyhradne pro GNU/Linux, tak osobne doporucuji QT, protoze to je take velmi sexy framework ;)

Qt je rovněž multiplatformní. Máme zkušenosti s aplikacemi v PyQt, běží bezproblémově na Widlích, Linuxu i Masoxu. Vývoj je naprosto v pohodě.

Re: V čem vyvíjet GUI aplikace?
« Odpověď #10 kdy: 24. 03. 2011, 09:15:03 »
Existuje tu qt i gtk binding pro javu... teda neznám aplikaci která by to používala...

Je tu možnost navrhnout aplikaci (glade nebo qt designer) a poté pracovat s tím .glade nebo .ui souborem...

takže pane Sameer v jakém jazyce hodláte programovat?

Re: V čem vyvíjet GUI aplikace?
« Odpověď #11 kdy: 24. 03. 2011, 11:48:48 »
QT pre javu sa vola QTJambi. Urcite by som ho ale neodporucal zaciatocnikovi, pretoze dokumentacia k nemu je nulova. Skuseny vyvojar sa pozrie do C++ dokumentacie od QT a v hlave si to prelozi do QTJambi/java konvencii, zaciatocnik si na tom bez predoslych skusenosti s qt a c++ totalne nabije drzku.

Na SWT a Swing-u sa da rychlo naucit, java je rychlonaucitelny jazyk, problemom je, ze look and feel java gui aplikacii je katastrofalny vtip a neda sa to pouzit na nic solidne.

Qt a C++ nie je pre zaciatocnika dobra volba, c++ je dost low-level jazyk a bez predoslych skusenosti bude zaciatocnikovi vyvoj trvat nasobky toho co v inych jazykoch.

Takze teraz ako z toho von. Chcelo by sa mi povedat Python+PyQt - na naucenie super kombinacia. Problem ale nastava v momente, ked projekt dospeje do urcitej velkosti a zacne pythonu prerastat cez hlavu.

Takze som asi zrovna neporadil :-)

Michal

Re: V čem vyvíjet GUI aplikace?
« Odpověď #12 kdy: 24. 03. 2011, 21:01:41 »
SWT vola nativní GTK, Win, Mac gui přes Java Native Interface .... nechapu co víc chcete za nativni vzhled než nativní API daneho OS
http://www.eclipse.org/swt/

Inkvizitor

Re: V čem vyvíjet GUI aplikace?
« Odpověď #13 kdy: 24. 03. 2011, 21:53:20 »
Takze teraz ako z toho von. Chcelo by sa mi povedat Python+PyQt - na naucenie super kombinacia. Problem ale nastava v momente, ked projekt dospeje do urcitej velkosti a zacne pythonu prerastat cez hlavu.

Kde vidíš tu hranici? Dělal jsem na projektech v Pythonu (zkušenosti mám s webem, backendem i GUI právě v Qt), které mají stovky tisíc řádek a jsou plně funkční a udržovatelné. Osobně nejsem už tolik Python pozitivní jako před pár lety, ale s mainstreamovými jazyky expresivitou a knihovnami velice slušně konkuruje. Líbilo by se mi podmíněně statické typování a více vlastností známých spíš z FP (algebraické typy apod.), ale pořád dobrý.

Jakub D.

Re: V čem vyvíjet GUI aplikace?
« Odpověď #14 kdy: 24. 03. 2011, 22:05:56 »
Ano, nativni Look & Feel v Jave vypada hrozne, nicmene malokdo si uvedomuje a vyuziva stezejni vyhody Swingu: je to nesmirne mocny framework, ktery umoznuje ohnout si GUI dle obrazu svemu. Doporucuji misto narikani na Javu zagooglit a najit si nektery z opravdu peknych L&F, treba na me hned vypadl Nimbus (soucast JRE) nebo celkovy prehled na http://www.javootoo.com/ :-))