Newsgroup: it.comp.lang.c++
Titolo: Esiste un'interfaccia grafica standard?

Lo so, e' una domanda un po' sciocca, di cui probabilmente  (risposta
== NO)
Il fatto è che e' un po' che giochicchio anche con Java, e mi è parsa
una genialata il fatto che siano previste librerie standard anche per
quanto riguarda l'interfaccia utente di tipo grafico, ormai
generalizzata a tutte le macchine e a tutti i sistemi operativi.
Per cui sono a chiedervi: sapete se chi emana gli standard ha emanato
un qualche standard per le interfacce grafiche, analogo a quanto già
accade per le interfacce a carattere?
Ciao e grazie a tutti!
Luca

 accade per le interfacce a carattere?
Non c'e` alcuno standard per le interfacce grafiche. E in realta`
nemmeno per le interfacce a carattere, ovvero gli stream di input e
output sono standard, ma non lo sono per esempio le librerie per gestire
colori del terminali, un minimo di GUI da terminale (tipo le ncurses).
E` una scelta precisa che mi sento di condividere.
Riguardo alle librerie grafiche che conosco (con cui puoi lavorare in
C++)
QT: MacOS X, X11 (Linux, FreeBSD, OpenBSD, NetBSD etc), Windows [ ma a
pagamento ], Linux Embeded
wxWindows: MacOS X, X11 (Linux, FreeBSD, OpenBSD, NetBSD etc), Windows
GTK1: X11 (Linux, FreeBSD, OpenBSD, NetBSD, MacOS X, etc), Windows
GTK2: X11 (Linux, FreeBSD, OpenBSD, NetBSD, MacOS X, etc), Windows
direi che se vuoi parlare di queste qui, e` bene spostarsi nel ng
appropriato... che so io
it.comp.os.linux.developement
it.comp.os.freebsd
it.comp.os.unix
it.comp.macintosh
it.comp.programmare.win32
Effettivamente mi chiedo per parlare di interfacce multipiattaforma
quale sia il NG piu` appropriato... probabilmente quello dell'OS da cui
sviluppi...
-- 
Debugging is twice as hard as writing the code in the first place.
Therefore, if you write the code as cleverly as possible, you are,
by definition, not smart enough to debug it.
    - Brian W. Kernighan

no, esistono perň delle librerie che sono portabili (qt, ad esempio,
ma ancora di piů wxwindows 
www.wxwindows.org
)
-- 
]\/[ad]\/[age (
www.mindreamz.net
)
"Un Maestro insegue semplicemente la sua visione di Eccellenza in
qualunque cosa sta facendo e lascia agli altri decidere se sta 
lavorando o giocando. A lui sembra sempre di fare entrambe." - Anonimo

Nono, la mia era proprio una curiosita' sul linguaggio. Mi continuero'
a appoggiare a MFC, per quel che mi serve (e dunque, se non s'e'
capito, Win32).
Pero' mi stupisce come, visto che il paradigma desktop grafico - mouse
- finestra e' ormai uno standard, non si sia pensato alla
standardizzazione delle interface nei confronti delle periferiche di
i/o.
E' un po' come se fossimo restati, sotto questo aspetto, ai pur
glņoriosi VT52 e VT100.
Ciao!
Luca


 - finestra e' ormai uno standard, 
macche`... mi vengono in mente fior di computer e di dispositivi
programmati in C++ che non hanno ne` monitor ne` mouse.
uno standard deve essere standard. windows non e` uno standard, e` solo
un OS molto diffuso.


Veramente quando parlavo di interfaccia grafica non parlavo di
Windows. O almeno non solo. 
Tutti i sistemi operativi hanno la possibilità di un'interfaccia
grafica. Su Solaris la devi disabilitare, perche' in modo predefinito
il setup te la mette (anche perche' X non ha necessita' di avere
hardware grafico sulla macchina, visto che e' un sistema
client/server). Per quanto riguarda le distribuzioni Linux, l'unico
che ho visto io che non abbia la grafica in distribuzione e' Debian
(pero' ti scarichi XFree86 e KDE e sei di nuovo a casa). Inutile
parlare di Apple, visto il loro ambiente operativo e' nato grafico.
Non conosco SCO, ma mi stupirebbe se non implementasse un server X.
Ribadisco, io non mi riferisco al sistema operativo di MS, mi
riferisco al paradigma che, nota, non e' merito del mitico Bill, ma
dei ragazzi del PARC della Xerox, che anzi il mitico Bill fino a non
molto tempo fa osteggiava e che ormai e' adottato da tutti.
Ciao!
Luca


 molto tempo fa osteggiava e che ormai e' adottato da tutti.
Enrico si riferiva a *computer e dispositivi* che non sono
necessariamente i desktop/laptop/palmari/workstation/server che usi.
Esistono *dispositivi* con cpu & c. programmati in C/C++ che stanno dentro
gli oggetti piu' disparati...
e non sono cosi' pochi ;)
Ciao
Beppe

 e non sono cosi' pochi ;)
E che non hanno una console testuale. Usando un ragionamento del genere
bisognerebbe tagliare anche la parte stdio. Ci sono anche periferiche senza
file system. Eliminiamo anche tutta la parte fopen/fwrite/???. Andiamo
avanti cosě?
--- bye


Esistono anche infinità di dispositivi (ormai piu' di quelli che tu
citi) che viaggiano con Java. Eppure Java ha una interfaccia grafica
standard........
Nessuno impedisce di non usare una particolare libreria se per una
particolare applicazione se non ce n'e' bisogno. Cio' non toglie come
a mio avviso sarebbe opportuno rendere standard alcune cose di
larghissimo impiego.
Ciao!
Luca

 i/o.
SimoneSevera> cercavi una cosa del genere :-P
- 
http://www.trolltech.com/
- 
http://www.wxwindows.org/

Ehhhh.... caro mio (apropos, lieto a mia volta di
trovarti qui) io sto iniziando a pensare in termini
dissociati. Da tempo divido il "kernel" del programma
dall'interfaccia; è vero che quasi tutti i miei
problemi sono di calcolo scientifico e questo
approccio ci va a pennello, ma Java mi pare geniale
per le interfacce utente se il progetto non necessita
di troppa interattività... tempo fa mi dicevo "magari
fosse esistita la libreria grafica standard per il
C++" ma ora non saprei che pensare.
Ciao!
Apx.

Simone, evidentemente non sono bravo io a spiegarmi.
A me non me ne frega nulla di scegliere un framework open source
(anche se comunque un occhio a wxwindows glie lo sto dando). Per le
mie esigenze e visto che le conosco bene, continuero' a utilizzare le
MFC con VC++ 6.
Il discorso era assolutamente generale e riguardava uno standard ANSI
che, a mio personalissimo avviso, e' un po' sorpassato.
Ciao!
Luca


 parlare di Apple, visto il loro ambiente operativo e' nato grafico.
nel vecchio c'erano pezzi di OS in ROM... ivi incluso parti che
riguardavano la grafica... pensa te.


 C++" ma ora non saprei che pensare.
Personalmente mi sono trovato ad avere meno problemi di compatibilita' 
sviluppando cross platform con GCC e GTK che non con JAVA...
E con crossplatform nel mio caso particolare intendo Win32/Linux/BSD/OSX.
Ora son tentato di provare vxwidgets (ex vxwindows, ha cambiato nome per 
"gentile richiesta" di zio Bill...), principalmente per il fatto che si 
integra meglio con il C++. GTK, anche con l'estensione mm, e` sempre 
molto legata al C come stile di programmazione.
Il problema pero` sono le performance, devo costruirmi dei test case 
esaustivi, ma dalle prove superficiali che ho fatto per ora mi e' 
sembrato che il layer che aggiunge vx (conversione dall'interfaccia 
crossplatform a quella nativa) introduca un overhead non trascurabile, 
perlomeno nel caso delle applicazioni su cui ho lavorato di recente che 
spesso gestiscono liste multicolonna con decine di migliaia di elementi 
e alberi con migliaia di nodi...
Bye,
  Gabry

 generalizzata a tutte le macchine e a tutti i sistemi operativi.
Mi pare che tu abbia una visione molto ristretta dei concetti "tutte
le macchine" e "tutti i sistemi operativi". Il C++ standard e' pensato
per "girare" anche su sistemi privi di schermo, come tutti i
processori embedded.
Ciao,
Nicola