PDA

Visualizza la versione completa : [OT] GUI multipiattaforma: C/WxWidget o WxPython ?


TNTmarco
23-01-2007, 21:06
Sono gia discretamente scaltro in PHP, XHTML e Javascript e stavo pensando di cominciare a sviluppare qualcosina che sia diversa dalla programmazione web.

Premessa: quello che seguirà di questo mio thread non è farina del mio sacco ma frutto solo di ciò che ho sentito dire e di ciò che ho capito fino ad ora.

Vorrei sviluppare programmini che funzionino sia su Linux (che uso abitualmente per tutto) e Windows.

Mi hanno consigliato di imparare Python e WxPython ma per quanto ho capito nessun programma Python funzionerà mai su Linux o Windows se non si installa l'apposito programma Python (con tanto di librerie WxPython) e questa cosa non mi piace dato che non credo che tutti i Windowsiani (e linuxiani) abbiano già installati Python e librerie.

Ho letto allora che potrei usare C con WxWidget. In questo modo potrei facilmente compilare gli eseguibili sia per Linux che per Windows avendo la compatibilità.

Ho detto castronerie o è così che funziona? Mi consigliereste C con WxWidget?

Xaratroom
23-01-2007, 21:12
Io consiglio C++ con wxwidgets ( le wx sono tutte classi ) e non perchè sono un grande fan di C++ ma perchè un linguaggio come il python, oltre richiedere un interprete per funzionare, è anche più lento (le 2 cose sono naturalmente correlate)...

roxxy86
23-01-2007, 23:08
Anche io consiglio C++ con wxWidgets (ormai sono arrivati alla 2.8). E' un po' difficile da utilizzare se non hai mai creato un'interfaccia grafica con un linguaggio di programmazione, e diventa quasi impossibile se non sai programmare ad oggetti ma.. in caso contrario si può fare benissimo, basta un po' di pazienza! Anche perchè nel sito wxWidgets.org trovi una documentazione molto dettagliata! Poco tempo fa ho fatto un piccolo programmino con l'interfaccia wxWidget.. da soddisfazioni, vedrai!!

TNTmarco
23-01-2007, 23:39
mmm... Prima di sviluppare un qualsiasi programma che faccia uso delle wxwidget devo prima scaricare le wxwidget giusto?..

http://www.wxwidgets.org/downloads/

Dovrei scaricare le "wxAll" ?

roxxy86
24-01-2007, 08:58
dipende, io sinceramente ho scaricato, per Linux, wxGTK.
però anche la wxALL dovrebbe funzionare benissimo.
in ogni caso devi compilarti un bel po' di cose prima.
se deve andare su windows scarica wxMSW (dentro c'è un eseguibile)!
..e pensa che c'è anche una versione della wxWidgets per CYGWIN!

billiejoex
27-01-2007, 23:37
C/WxWidget o WxPython?
Sono la stessa cosa.
Le wx sono le librerie originali sviluppate in C++ (se non vado errato) wxPython è il porting per Python, tutto qui.
Una domanda più sensata sarebbe stata: wx, gtk o qt (o qualunque altra cosa)? =)


Sono gia discretamente scaltro in PHP, XHTML e Javascript e stavo pensando di cominciare a sviluppare qualcosina che sia diversa dalla programmazione web.
Premessa: quello che seguirà di questo mio thread non è farina del mio sacco ma frutto solo di ciò che ho sentito dire e di ciò che ho capito fino ad ora.
Vorrei sviluppare programmini che funzionino sia su Linux (che uso abitualmente per tutto) e Windows.
Mi hanno consigliato di imparare Python e WxPython ma per quanto ho capito nessun programma Python funzionerà mai su Linux o Windows se non si installa l'apposito programma Python (con tanto di librerie WxPython) e questa cosa non mi piace dato che non credo che tutti i Windowsiani (e linuxiani) abbiano già installati Python e librerie.

x linux: praticamente qualunque distro linux include di default un interprete Python.
x windows: risolvi facilmente il problema compilando il sorgente in un eseguibile.

Se ciò che ti preme è la portabilità linguaggi interpretati/pseudo-compilati quali ruby, java, python, [...] sono sicuramente una scelta azzeccata.


Ho letto allora che potrei usare C con WxWidget. In questo modo potrei facilmente compilare gli eseguibili sia per Linux che per Windows avendo la compatibilità.
Ho detto castronerie o è così che funziona? Mi consigliereste C con WxWidget?
Utilizzando C semmai perderesti in portabilità oltre che a faticare N volte di più rispetto ad un linguaggio più recente.
A parte questo sviluppare una GUI in C è un po' come darsi la zappa sui piedi, in questo caso.
Se quello che preme maggiormente è sviluppare interfacce grafiche io cmq non opterei nemmeno per C++, imho, ma non ti sto ad elencare tutti i vantaggi derivanti dall'utilizzo di linguaggi alternativi dato che il tema della richiesta è differente.


Io consiglio C++ con wxwidgets ( le wx sono tutte classi ) e non perchè sono un grande fan di C++ ma perchè un linguaggio come il python, oltre richiedere un interprete per funzionare, è anche più lento (le 2 cose sono naturalmente correlate)...
Anche Java è parecchio lento rispetto a C++ (direi pressapoco quanto Python, probabilmente un po' meno) e richiede un interprete/VM funzionare, non mi pare che però venga sconsigliato per lo sviluppo di GUI, anzi...
Inoltre una GUI non è propriamente qual tipo di applicazione che richiede tutto questo calcolo computazionale... stessimo parlando di un brute-forcer potrei capire, ma se una finestra compare 0.1 sec prima/dopo importa a qualcuno?

...

MItaly
28-01-2007, 10:49
Concordo: il C++ è un ottimo linguaggio ma se parliamo di portabilità non è certamente una buona scelta, poiché compila in codice nativo ed i suoi eseguibili sono linkati staticamente ad una libreria CRT specifica della piattaforma; perché un programma possa funzionare su entrambe le piattaforme devi usare accorgimenti particolari (come l'uso di librerie multipiattaforma) e devi comunque ricompilarlo per le due piattaforme: ne vale la pena solo se si tratta di un programma che deve essere estremamente efficiente. In ogni caso ogni linguaggio portabile, per sua stessa natura, necessita di un interprete che converta le istruzioni multipiattaforma in istruzioni platform-specific, altrimenti ti è comunque necessario distribuire due versioni diverse per ogni piattaforma (ad esempio, il sorgente Python per linux e l'exe compilato per Windows).

Loading