Newsgroup: it.comp.lang.c++
Titolo: Standard C++ e framework GUI

Ciao a tutti,
volevo riprendere un tema affiorato recentemente in altri thread.
Secondo me non ci sara' una libreria standard per la GUI, e non ha
senso cercarla. I motivi sono diversi; quello fondamentale e' che non
esiste oggi una soluzione che appaia vincente, ne si vede
all'orizzonte un movimento concreto per la sua realizzazione.
Il problema e' che il C++ non puo' permettersi di mettere un numero
esagerato di strati tra la propria API ed il ferro, come avviene per i
linguaggi basati su macchina virtuale, e la realizzazione di una
libreria GUI multipiattaforma partendo dal basso e' uno sforzo troppo
grande perche' qualcuno lo intraprenda oggi. Corollario di questa
osservazione e' l'inutilita' di standardizzare una GUI giocattolo,
tipo TK. Non e' questo che serve a chi sviluppa GUI in C++; altrimenti
userebbe gia' Java o Python.
Per inciso faccio notare che standardizzare una libreria di primitive
grafiche di basso livello non serve a niente, perche' costruirci sopra
una libreria GUI costa di nuovo troppo.
Invece un approccio che potrebbe pagare di piu' e' una libreria di
interfaccia verso i framework GUI. Questa dovrebbe concentrarsi
sull'interscambio di dati con i componenti grafici e fornire un
meccanismo standard di gestione degli eventi, e lasciare alla GUI vera
e propria la gestione della presentazione grafica.
Una simile libreria potrebbe essere implementata per ogni specifico
framework GUI con uno sforzo non eccessivo ed in modo ragionevolmente
efficiente e consentirebbe di ridurre all'osso la porzione di codice
specifica per un framework, incrementando la portabilita'. Tra l'altro
aiuterebbe a realizzare applicazioni disegnate decentemente, il che di
certo non guasta :-)
Ciao,
Nicola

 certo non guasta :-)
Io di GUI me ne intendo poco, visto che e' un settore in cui le
mani le ho messe decisamente poco.
Pero' il tuo ragionamento lascia intuire che tutti i framework
GUI esistenti oggi e anche quelli che esisteranno in futuro sono
e saranno basati su meccanismi se non identici almeno molto simili
(altrimenti l'affermazione  "Una simile libreria potrebbe essere
implementata per ogni specifico framework GUI con uno sforzo non 
eccessivo ed in modo ragionevolmente efficiente" non mi
suonerebbe molto coerente).
Se tu o altri abbastanza esperti di GUI ritenente che tale similitudine
esista tra i vari framework, allora puo' anche essere.
Quello che mi preoccupa un po' e' che poi una
cosa simile venga presa "a pretesto" per non fare mai una cosa di
piu' basso livello
Ciao,
Marco

 
ciao


Uno dei piu' frequenti rimproveri che viene mosso, a mio avviso
abbastanza giustamente, al C++ e' il fatto che la sua libreria
standard contiene quasi solo strumenti di programmazione di base e
pochissimo volto a risolvere i problemi concreti che i programmatori
affrontano ogni giorno: interazione col sistema operativo, networking,
gestione di file/stream di formati specifici, ecc. In tutto questo
ricade anche la GUI.
Ciao,
Nicola

 piu' basso livello
Io personalmente non ho le risorse ne per realizzare una libreria GUI
completa da zero, ne per realizzare cio' che descrivo. Pero' penso che
un prototipo della libreria che ho in mente rivolto ad uno specifico
framework potrebbe essere realizzato anche da una persona sola nel suo
tempo libero, cosa che non e' certo vera per un framework GUI
completo.
Ciao,
Nicola

 gestione di file/stream di formati specifici, ecc. 
Non vedo il problema: personalmente quando creo applicazioni per più
sistemi operativi effettuo l'implementazione nativa per ognuno di essi,
servendomi della compilazione condizionale.
Magari causa più lavoro da parte mia, ma garantisce prestazioni ASSOLUTE
che non si otterrebbero con implementazioni "standardizzate"
Ad es: pthread le userei su linux, ma su win preferisco usare le API 
native anzicchè utilizzare la versione pthreadwin (sicuramente più 
lenta!) anche se eviterebbe di cambiare il codice!!!

 improbabile che succeda ora che per molti le GUI sono "legacy".
Probabilmente mi sfugge qualcosa di banale ma quale sarebbe l'attuale 
tendenza per l'interfaccia utente? Io in giro non vedo altro che interfacce 
grafiche (appunto GUI).
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg
The EMG Music page:         
http://www.emagsoftware.it/emgmusic
 

 grafiche (appunto GUI).
Fondamentalmente il browser.
Ciao,
Nicola

 Fondamentalmente il browser.
Esistono browser non basati su GUI?


 Esistono browser non basati su GUI?
Intendo dire che le applicazioni web based costituiscono
un'alternativa importante e piu' "alla moda", soprattutto nelle grandi
aziende.
Ciao,
Nicola

 aziende.
Ok, ma le applicazioni web based hanno l'interfaccia GUI.


 Ok, ma le applicazioni web based hanno l'interfaccia GUI.
Pero' della loro presentazione si occupa il browser ed il modo di
realizzarle e' completamente diverso. In questo senso una libreria GUI
puo' servire a chi scrive un browser, ma non a chi scrive applicazioni
web, se non molto indirettamente.
Ciao,
Nicola

 web, se non molto indirettamente.
Ho capito. Comunque secondo me non è affatto vero che i programmi basati su 
GUI siano "legacy".


 GUI siano "legacy".
No, ma in molte classi di applicazione lo diventeranno.
Tutti quelli con un interfaccia utente 'basilare' e pesantemente
db-based sono ottimi candidati, per dire.
-- 
blog:  
http://www.akropolix.net/rik0/blogs
 | Uccidete i filosofi,
site:  
http://www.akropolix.net/rik0/
      | tenetevi riso e
forum: 
http://www.akropolix.net/forum/
     | bacchette per voi.