Newsgroup: it.comp.lang.c++
Titolo: novizio

ho deciso di imparare a programmare in c++ e penso che abusero' di questo 
newsgroup:scusate l'enorme ignoranza ma vorrei sapere il nome di una buona 
IDE che sia compatibile con windows vista;io ho scaricato DEV C++ ,potrebbe 
andare bene?O al posto della IDE serve qualcosaltro?grazie per l'aiuto! 

 ho deciso di imparare a programmare in c++ 
Dev-C++ non mi entusiasma a partire dall'odioso system ("PAUSE"); che 
devi piazzare alla fine di ogni main.
Direi che agli inizi il massimo sia quella di usare il compilatore (gcc 
per esempio) dalla sana riga di comando anche per divertirsi con i vari 
switch, vedere l'azione del preprocessore, differenza fra compilazione e 
collegamento (link), tutte attività nascoste dietro un IDE.



Ti consiglio Code::Blocks : 
www.codeblocks.org

devi piazzare alla fine di ogni main.
Non "devi", è solo un escamotage per non far chiudere la finestra
console di esecuzione. In alternativa, potresti tenere una shell
aperta e lanciare il file eseguibile da riga di comando. Secondo me, e
contrariamente a quanto molti pensano, non ci sono vantaggi
particolari nel programmare dalla "sana riga di comando". Anzi, è
tutt'altro che sana, si fa solo dieci volte più fatica. Oltretutto con
un compilatore come gcc generalmente si fa a meno di smazzarsi le fasi
separate tra compilazione e linking (con -o ottieni direttamente
l'eseguibile e vivi felice).
Sfatiamo poi il mito delle "attività nascoste" dietro un IDE. Un IDE
(come DEV C++ o Code::Blocks) non "nasconde" nulla, è solo il
front-end per il compilatore.
C'è una strana concezione della programmazione che affonda le radici
molto a lungo nel passato. Oggi gli strumenti si sono evoluti ed è
bene utilizzarli. Secondo me non ha più senso doversi smazzare a mano
certe fasi distinte della traduzione da sorgente a codice macchina,
quando praticamente tutti i tool implementano modelli di compilazione
moderni.

 front-end per il compilatore.
Se uno sa quel che c'è dietro, behind-the-scene, è sicuramente meglio 
usare front-end e agevolatori vari, ci mancherebbe.
Per il novizio che preme il tasto build, senza sapere nulla di quello 
che magicamente accade dietro la scena, non credo sia molto formativo ed 
educativo.
Cfr:
http://www.avrfreaks.net/wiki/index.php/Documentation:AVR_GCC/AVR_GCC_Tool_Collection

 aperta e lanciare il file eseguibile da riga di comando. 
Non mi sembra il massimo della comodità, sopratutto se uno si affida a 
un IDE proprio per non ricorrere alla riga di comando.

un IDE proprio per non ricorrere alla riga di comando.
No, se uno si affida a un IDE è per le potenzialità che offre l'IDE.
L'IDE non è solo un banale sostituto della riga di comando.

educativo.
Sono altre le cose che, oggigiorno, sono formative ed educative, per
un programmatore. Oltretutto, un novizo che si avvicina al C++ sarà
costretto ad apprendere concetti molto più complessi che non le
semplici fasi di compilazione e linking.

 con Code::Blocks è necessario, con Visual Studio è necessario.
Non conosco gli altri IDE, ma con Visual Studio direi che non e' necessario.
Infatti, lanciando un'applicazione console con il comando "Debug" => 
"Avvia senza eseguire il debug" (acceleratore: CTRL+F5), al termine 
dell'applicazione la finestra di console rimane aperta con la scritta 
"Press any key to continue", sia in caso di terminazione normale che 
anomala. Quindi non e' necessario nessun accorgimento per poter leggere 
l'ultimo output su console.
Invece, lanciando un'applicazione console con il comando "Debug" => 
"Avvia" (acceleratore: F5), al termine dell'applicazione la finestra di 
console si chiude automaticamente, ma basta porre un breakpoint sulla 
chiusa graffa della funzione "main" per poter leggere l'ultimo output 
emesso prima che termini il "main". In effetti cosi' si perde l'output 
emesso dalla funzione registrata da "atexit" e l'output emesso dai 
distruttori degli oggetti statici, ma quelli li perderesti anche usando 
l'istruzione system("PAUSE").
-- 
     Carlo Milanesi
 
http://digilander.libero.it/carlmila

emesso prima che termini il "main".
E' comunque un escamotage.

 E' comunque un escamotage.
Mi pare che aggiungere un breakpoint durante una sessione di debugging 
non sia un escamotage, ma una normale operazione di debugging.
Viceversa, aggiungere a un programma un'istruzione non richiesta dai 
requisiti, come system("PAUSE"), e' un'escamotage.
La situazione e' analoga a quella di altre tecniche di debugging. In una 
sessione di debugging, e' meglio impostare dei breakpoint e dei watch 
invece di inserire istruzioni di input di controllo o stampe di 
controllo, che poi dovranno essere tolte.


controllo, che poi dovranno essere tolte.
Non è vero, dipende dai contesti. Ti consiglio la lettura di "The
Practice of Programming". In ogni caso, chiuderei questa questione di
lana caprina che interessa meno che pochi.