PDA

Visualizza la versione completa : [C++] Curiosita da neofita su GUI e Console


colde
10-10-2005, 17:40
Ciao a tutti,
mi sto affacciando alla programmazione in C++ e noto che per ora si creano solo programmi a riga di comando che girano sotto DOS.
So che c'Ŕ anche la possibilitÓ di creare finestre grafiche tipo windows e che servono delle librerie particolari.
A parte questo, mi domandavo che utilitÓ ha un programma a riga di comando? Nel senso, dovendo studiare il C++ per lavoro non riesco a trovare un'applicazione utile eseguibile da console. Ogni cosa che mi viene in mente Ŕ sempre con interfaccia grafica; la console mi da l'idea di essere utile solamente per lo studio ma di fatto non Ŕ utilizzabile per creare un'applicazione "commerciale".

Un mio amico che ha programmato per qualche anno in C faceva solamente programini "stupidi" utili soltanto allo studio del linguaggio ma all'atto pratico inutili.

E' una mia curiositÓ, non ho intenzione di fare alcuna interfaccia grafica per ora, sono solo agli inizi ma sta cosa della console mi mette l'ansia. Tutte le applicazioni che ho visto fino ad ora da console erano altamente idioti e non utilizzabili a fini lavorativi.
Mi date una mano a capire?
Grazie

XWolverineX
10-10-2005, 18:23
In effetti buona parte delle applicazioni in C++ sono destinate a utilizzare una GUI.

Paulin
10-10-2005, 19:27
Tutte le applicazioni che ho visto fino ad ora da console erano altamente idioti e non utilizzabili a fini lavorativi.

Pochi anni fa comprai da una azienda specializzata un programmino a console (prompt del DOS) che mi cost˛ ben 600 euri.

Nell'industria e a fini tecnico scientifici sono ancora ampiamente utilizzati.

Mods
10-10-2005, 19:33
vedrai ke se inizierai a programmare in GUI, tutte le cose fatte in C++ per DOS alla fine ritornano...

unomichisiada
10-10-2005, 20:29
I programmi da console ti sembrano inutili perchŔ probabilmente non utilizzi linux (non credo di sbagliare). Sotto windows la grafica e la logica delle applicazioni Ŕ strettamente connessa (almeno in genere) e lo stesso sistema operativo (anche per ragioni di efficienza) Ŕ costruito in quest' ottica. Sotto linux invece, la maggior parte dei programmi sono da riga di comando (programmi anche molto potenti e complessi non certo didattici) e quelli grafici che vedi (almeno in gran parte) sono dei frontend per questi programmi. Questa separazione tra grafica e logica ha vantaggi e svantaggi che non sto ad elencare. Comunque un vantaggio di realizzare un programma da console Ŕ la possibilitÓ di utilizzarlo come comando da shell. Se ci pensi il linguaggio di script da shell sotto linux non Ŕ che una sorta di linguaggio interpretato di alto livello in cui le istruzioni sono i singoli programmi inclusi nel sistema operativ.Sviluppando un prog da shell tu sei in grado di arricchire questo linguaggio a tuo piacimento e utilizzare i tuoi programmi in cicli iterativi e quant'altro per svolgere operazioni complesse. Comunque anche sotto windows esistono pi¨ programmi da consolle di quanto tu non possa immaginare,in particolare la maggior parte dei programmi per la gestione della rete (come ping, ipconfig e molti altri)

XWolverineX
10-10-2005, 21:42
Si dice che comunque il C++ ha ancora dei noti problemi di compatibilitÓ sul Linux, ad ogni modo non Ŕ per niente vero quello che dici: anche su Linux puoi costruirti una interfaccia grafica con le WxWidgets.
Per i programmi a riga di comando Ŕ consigliato il C, senza dubbio (In C++, gli argomenti del main Ŕ codice di C ereditato)

unomichisiada
10-10-2005, 23:04
Originariamente inviato da XWolverineX
Si dice che comunque il C++ ha ancora dei noti problemi di compatibilitÓ sul Linux, ad ogni modo non Ŕ per niente vero quello che dici: anche su Linux puoi costruirti una interfaccia grafica con le WxWidgets.
Per i programmi a riga di comando Ŕ consigliato il C, senza dubbio (In C++, gli argomenti del main Ŕ codice di C ereditato)

la maggior parte dei programmi
Mica ho detto che sotto linux non puoi costruire programmi solo grafici.

oregon
11-10-2005, 00:04
Attenzione ... in modalita' console *anche con Windows* puoi scrivere codice complesso e utile.

Il problema e' il concetto di *utilitÓ*. Tu magari ritieni utile un programma di contabilita', io un programma che esegue la ricerca di un file in tutto il file system.

Molti tool di rete sono utilissimi (e a volte molto complessi) e sono scritti in modalita' linea di comando (anche in Windows).
Per terminare un processo puoi utilizzare

taskkill

da linea di comando e, in molti casi, si dimostra essere un programma molto utile.


Originariamente inviato da XWolverineX
Si dice che comunque il C++ ha ancora dei noti problemi di compatibilitÓ sul Linux

Questa non l'ho capita ...


Originariamente inviato da XWolverineX
Per i programmi a riga di comando Ŕ consigliato il C, senza dubbio (In C++, gli argomenti del main Ŕ codice di C ereditato)

Neanche questa l'ho capita ...

colde
11-10-2005, 09:47
Interessante.
Effettivamente non avevo pensato all'utilitÓ di applicazioni da console per Linux (io uso windows come giÓ avevo detto), ma onestamente non credo che possa andare bene come applicazione da rivendere a terzi. Lo stesso discorso vale anche per windows, Ŕ vero che ci sono molti tool che girano da console ma non Ŕ questa l'applicazione che viene richiesta maggiormente in uffici o aziende, amenochŔ non si tratti di casi molto particolari.

Mi sa che oregon ha centrato in pieno il punto cruciale: forse io essendo abituato a creare applicazioni web come gestionali, report, agende o altro, ho come concetto di "utilitÓ" applicazioni simili e non di certo cercare un file nel file system o simili.

Mi viene pi¨ facile pensare in GUI piuttosto che da console, poi Ŕ chiaro che le stesse cose fatte in console ritornano anche per il GUI, a parte la grafica, il cuore del programma Ŕ sempre lo stesso.

Un'altra curiositÓ: molti chip elettronici vengono programmati in C oltre che in assembler ma questo sarebbe possibile anche in C++? Immagino di si, confermate?

Grazie a tutti :)

oregon
11-10-2005, 13:58
Se per chip intendi microcontrollori, questi si programmano con il loro assembler specifico. Ovviamente se hai un compilatore che trasforma il codice nell'assembler in questione, questo puo' essere C ma anche C++ come Basic ...

Ovviamente, date le minime risorse che mette a disposizione un microcontrollore, il C++ non e' molto adatto come linguaggio di programmazione ...

Loading