Newsgroup: it.lavoro.informatica
Titolo: Compiler C++   per Windows e Graphic Tool

1) qualcuno sa consigliarmi un compilatore (Windows) GNU C++ che non sia 
MingW/ MSYS o Cygwin, cioï¿œ che 'simuli Unix' come user interface ?
2) Qualcuno sa consigliarmi tra FLTK e Qt  come graphic/widget packages 
?  O alterativi ? (ovviamente freeware o public license)


cygwin simula "posix" mingw ï¿œ un compilatore standard.
se non ti piace usa il visual c++ express e il platform sdk.
negli anni scorsi erano usabili pure:
il digitalmars
e borland c++
ora sono un pï¿œ sfasati rispetto agli standard.
Ma se il budget te lo consente il compilatore intel ï¿œ in assoluto il 
migliore.
l'fltk ï¿œ comoda per essere linkata staticamente ma non ï¿œ proprio 
gradevolissima alla vista e le api per la gestione di eventi sono poco 
piï¿œ che puntatori a funzione.
Su qt nulla dire tranne che il meccanismo signal-slot ï¿œ implementato 
tramite keyword non standard e tramite un meta compilatore..
in pratica dai i sorgenti in pasto al moc
(meta object compiler)
e ti crea dei file in piï¿œ per darli in pasto al compilatore standard, 
usare qt senza signal-slot ï¿œ praticamente impossibile.
Di vantaggio hai: webkit, gestione db, widget a non finire, collection etc..
in alternativa puoi usare wxwdgets che anche se usano un approccio piï¿œ 
vecchio stile (una serie di macro e un event table stile mfc), le 
wxwigdets al limite si prestano pure alla compilazione statica, 
ricordati di fare lo strip del binario e la rimozione dei simboli di 
debug, se proprio ti resta un binario ciccione ricorri a upx.
correzioni? integrazioni?

 correzioni? integrazioni?
il fatto ï¿œ che se vuoi sviluppare cross-platform e non essere dipendente
dalle Microsoft classes (Windows Form o Presentation Foundation) che 
kakkio ti rimane ??? Non ho ancora trovato una biblioteca grafica che 
abbia tutto quello che voglio io, e che non abbia i difetti che hai 
elencato sopra, e che sia 'free'
(voglio troppo neh ???   :-))) )
E' un consiglio che devo passare a qualcun altro. Ma interessa anche a me.


guarda che le wxwidgets si comportano piï¿œ o meno come le microsoft 
foundation class e sono free e cross platform.

 ?  O alterativi ? (ovviamente freeware o public license)
ce ne sono a iosa:
http://en.wikipedia.org/wiki/List_of_widget_toolkits
Non ho grossa esperienza di UI, per quel che mi riguarda va bene tutto
purche' wxWidgets (c'ho smanettato un paio d'anni fa e non m'ha
lasciato per niente soddisfatto!)

 lasciato per niente soddisfatto!)
...ed ecco che mi hai sgonfiato il palloncino prima ancora che lo 
facessi volare...<hahahahaha>


Domanda da inesperto: esiste una qualche libreria od infrastruttura
Gui per C/C++ che ti consenta di creare un'interfaccia di base senza
impazzire, e riducendo il codice da scrivere alla parte variabile, con
il loop di gestione dei messaggi gestito in automatico? Il tutto al
modo di VB o Delphi, compreso editor grafico stile .
Forse una di quelle che hai citato è così?
Non ho mai capito perchè il disgraziato progarmmatore C ogni volta si
deve ricreare da capo il loop messaggi, anche se deve   solo mettere 2
pulsanti ed una listbox.

 la grafica Apple e versioni Linux/Unix con X11
Beh direi che l'unico a soddisfare tutti i requisiti è qt
http://qt.nokia.com/products
Non so come funzioni per prodotti commerciali ma d'altronde come spesso
accade se vuoi qualcosa che funzioni devi pagare...


guarda che qualsiasi framework mediamente moderno gestisce l'event loop.
esempio con le qt:
#include <QApplication>
#include <QWidget>
int main(int argc, char *argv[])
{
     QApplication app(argc, argv);
     QWidget window;
     window.resize(250, 150);
     window.setWindowTitle("finestra scema");
     window.show();
     return app.exec();
}
il metodo exec dell'oggetto QApplication si occupa di gestire l'event 
loop, in pratica entra l'event loop e non esce finch� non viene chiamato 
il metodo quit oppure non si distrugge la finestra principale,  inoltre 
si occupa del dispath di tutti gli altri eventi segnalando tramite 
segnali l'evento occorso ai vari oggetti che si sono registrati a 
gestirlo tramite relativi slot.

 accade se vuoi qualcosa che funzioni devi pagare...
da quando è nokia è gratuito anche per fini commerciali.
alcuni software di uso comune che usano le qt sono:
il browser opera e il browser arora ad esempio sono sviluppati con le qt.
il player vlc, è sviluppato in parte con le qt.
google earth è sviluppato con le qt.
l'interfaccia di virtualbox è stata fatta con le qt.
per dire...

 modo di VB o Delphi, compreso editor grafico stile .
Il Visual Studio 2008 (e pi� recenti) � stato un passo da gigante 
rispetto ai precedenti Visual C++.
Infatti nell'ambiente .NET le classi sono tutte le stesse (i nomi sono 
gli stessi), si posssono usare indipendentemente con Visual Basic, C#.
La facilit� del GUI � simile al vecchio Visual Basic.
Vale la pena 'ammodernarsi' e sviluppare sotto .NET.
(Io ho esperienza solo di Windows Form e non di WPF.
Ma la buova 'feature' del 'xaml' che permette di avere GUI disegnati da 
professionisti della grafica, mi interessa moltissimo ed un giorno o 
l'altro la prover�.

 da quando è nokia è gratuito anche per fini commerciali.
In verità, sul sito della Nokia appare in un piccolo video una gentile 
signora (avvocato del legal department della Nokia) che ti mette in 
guardia che sì, puoi scegliere la licenza LGPL,
PERÒ la quasi totalitá dei clienti 'enterprise' sceglie la versione a 
pagamento perchè bla bla bla e oltretutto - dice lei -...perchè la 
licenza LGPL è un documento molto lungo e complesso con tanti 
paragrafi..bla bla bla...per cui pensaci bene prima di sceglierla..'.
Ottimo metodo per far scappare la voglia a qualsiasi abbia interesse a 
scaricare la versione 'gratuita'.
Il tuo primo post sull'argomento poi, mi ha dato la mazzata finale al Qt 
:-)))
Io sono pigro e viziato. Voglio che programmare continui ad essere un 
piacere e non una rottura di coglioni, soprattutto legali.
Io sono sempre più propenso a diventare 'platform dependent'.
I compromessi mi sono sempre stati antipatici.
Vuol dire che mi costerà di più lo sviluppo. Pazienza.
Ma il prodotto finale sarà 'perfetto' e 'senza compromessi' su ogni 
piattaforma.
Lo so, vado 'controcorrente'.  :-)))

 per dire...
Molto probabilmente tutta questa gente 'paga' le licenze e non ha la 
licenza LGPL.

 Lo so, vado 'controcorrente'.  :-)))
Sì per carità gusti personali, dubito però fortemente sul perfetto e
senza compromessi su ogni piattaforma.
Con tutta la buona volontà la vedo dura che tu ci riesca senza qualche
librerie intelligente.

 'platform independent'...
prodotto da commercializzare == Windows primario???????
ROTFL :-)))

 librerie intelligente.
Il mio pensiero parte dai presupposti che :
1) nessuno meglio di Microsoft scrive librerie (classi), API, etc. 
girano sui sistemi operativi Windows
2) la stessa cosa dicesi per Apple riguardo ai MAC
3) per Linux è diverso.
Ragion per cui, l'unico svantaggio è quello di dover spenderee tempo e 
risorse a sviluppare  'platform dependent'.
Che poi, se uno usa dei design pattern intelligenti, che 'isolano' la 
parte GUI, la cosa non é poi tanto demente.
Perciò, se uno è disposto a spendere tempo/risorse/dollari, molto 
probabilmente vale la pena farlo.
Dove sbaglio ?

tirzanello schrieb:

Purtroppo � cos�. I sistemi Windows rappresentano ancora la stragrande 
maggioranza del mercato.
Perfino negli ospedali, nei reparti, anche quelli che devono 
semplicemente 'guardare' le radiografie, il sistema � Windows.
ALl'Universit� di Pavia, nel 2006, un lavoro per 'Valutazione di 
aderenza alle Linee Guida' mi � stato chiesto di farlo in Visual Basic 
(!!!).
In questi tempi faccio una tesi all'universit� con MATLAB (su Windows).
Se voglio fare un programmino di 'Translation-help' da una lingua 
all'altra presumo che il 99,99% degli utenti avr� un ambiente Windows.
Non riesco a pensare picccoli uffici di traduzione, piccole e medie 
imprese commerciali (non di informatica), con bisogni solo inerenti 
all'attivit� della ditta, che abbiano Linux.
Al massimo ho incontrato architetti e musicisti che usano il MAC.
Questa � la realt� che ho sotto gli occhi.

 Dove sbaglio ?
No per carità forse hai ragione, diventa semplicemente un'incubo dover
gestire ogni sistema operativo e tutte le varie configurazioni, con il
rischio (quasi certo) di lasciar perdere alcuni sistemi operativi o più
semplicemente di avere interfacce molto diverse tra i vari sistemi.

 Questa è la realtá che ho sotto gli occhi.
Ciò che vedi dipende più che altro da te e da quello che usi.
Io vedo solo mac e linux intorno a me, e una buona parte dei mac sono
switcher felici che mi hanno ascoltato.
In ambiente universitario gli windowsiani sono solo quelli della chair
di basi dati dalle mie parti...
Se a te piace e lo usi è normale che tu voglia sviluppare per windows,
tutto qui...

 tutto qui...
L'universo che piace a me non esiste.
Infatti io desidererei che Linux fosse lo standard accettato da tutti e 
diffuso come il windows, cioè che i bambini abbiano su Linux tutti i 
giochi che hanno su Windows, che tutti i costruttori di hardware
facciano *prima di tutto* drivers per Linux, che Bill Gates, contento e 
soddisfatto di quello che ha raggiunto nella vita, si ritiri a  fare il 
collezionista di quadri.

 gestirlo tramite relativi slot.
Va bene.  E Qt ha anche un editor grafico? Che mi generi in modo
"analogico", ad es., i valori della resize.

 gli stessi), si posssono usare indipendentemente con Visual Basic, C#.
Ovvero VS 2008 permette da C/C++ di usare le classi Net? Solo in
codice managed, comunque, visto che Net è managed.
Io ho installato VS 2008 C++ express e non ha questa possibilità.
Assolutamente diverso nelle Gui (carente?) rispetto a VB o C#.

 "analogico", ad es., i valori della resize.
non lo so, gui anche complesse in diversi ambienti (web application con 
ext.js o jquery ui, dekstop con swing e qt, mobile con jquery iphone ui 
o j2me)le ho sempre fatte completamente da codice e sono sempre stati 
dei discreti lavori.

 
Mo' mi hai messo una pulce nell'orecchio. Avevo il C# e quando � finito 
il periodo di test ho scaricato il Visual Studio C++ invece del C#.
Ma non ho ancora fatto in tempo a provarlo. Cos� a prima vista mi 
sembrava che ci fosse tutto. Ho fatto un 'hello World'
usando la stessa GUI.
Per� un po' diverso lo � dal C#. Cio� cliccando sull'oggetto (button) 
per andare sul code, non va (come il C#) direttamente nell'area dove si 
possono scrivere le istruzioni. Va da un'altra parte. Insomma bisogna 
farci un po' di attenzione.

 Questa è la realtá che ho sotto gli occhi.
io quando son venuto qui, usavano tutti windows e mi guardavano storto
quando sul mio PC ho piallato tutto e installato linux. Dopo qualche
mese, a vedere me che in 3 secondi risolvevo cose che per loro ci
voleva una vita (come anche copiare i files di una chiavetta USB, 3s
miei vs mezz'ora loro) o apt-get invece che imprecare per mezza
giornata su google per cercare la piu' piccola fesseria, o mandare in
esecuzione del codice e non avere la macchina in palle, o avere aperte
contemporaneamente 50 finestre, sparse per 10 desks, o attivare una
finestra solo al passaggio del mouse, senza stare a cliccare, e tante
piccole cose che rendono la vita semplice, e -per carita'- ci saranno
anche per windows, pero' su linux son tutte preistallate... gia' le
usavo dallo scorso millennio... beh... a farla breve, ora *tutti* qui
usano linux e son felici cosi'.
Poi, ognuno e' libero di far che vuole, eh! Mica gli ho costretti ad
installare linux, anzi, a me andava bene cosi', che quando avevano dei
problemi con windows io dicevo candidamente (e senza mentire) che
windows lo conosco poco o niente, ho qualche ricordo di windows 3.11
se puo' servire! :-)) Ora stanno gia' alla 7 mi pare?
Eppure mi son sforzato, eh! Quando ho comprato il portatile nuovo con
Vista, mi sono imposto di lasciare windows, giusto per far pratica! Ma
piu' di una settimana non ho resistito: il PC lo devo usare, e mi
rodeva avere un PC nuovo di zecca che andava piu' lento del portatile
di 7 anni fa con su fedora! Tempo una settimana e ho piallato tutto,
neanche il dual-boot ho lasciato perche' tanto uso linux comunque.
Poi ci sono esigenze ed esigenze! Io son contento cosi'.


Nel biomedico ci sono tuttora, ma solo per la gloria. Non mi d� da 
vivere.  Io ho bisogno anche di mangiare e pagare l'affitto.  :-)))

A proposito, perché non pensare a una bella interfaccia web invece?
Rotture di palle ridotte drasticamente e un sacco di benefici indiretti
in automatico.


Alla faccia della personalizzazione per s.o. che vorrebbe fare
John! :-)

 in automatico.
Se fosse un software per la parrocchia, lo farei subito. Anzi è una 
ottima idea. Ti risparmia un di sacco di lavoro per la GUI.
Però :
- bisogna usare un linguaggio interpretato (PHP o altro)
(non considero il Javascript o similia un linguaggio per 'progetti 
commerciali seri standalone') a meno che non siano applicazioni web
- la licenza del compiler PHP costa un occhio della testa ed è in 
'affitto', cioè mi sembra paghi annualmente. Ho un amico che ha una 
ditta di software e lui sviluppa esclusivamente in PHP.
Ma per applicazioni Web.

 commerciali seri standalone') a meno che non siano applicazioni web
Purtroppo ti resta solo Javascript, se vuoi rendere interattiva la
pagina direttamente sul client.
In merito, questa sì che è informatica di alto livello! Tutti ad
ammattirsi appresso a Java, Python, chi è più elegante, puro,
ordinato, ecc. ecc. Il tutto per emettere una bella pagina zeppa di
Javascript, magari compresso.... Che spasso, il web! :-)