Che cosa si intende per “Ambiente di sviluppo integrato”?

Quando si parla di ambiente di sviluppo integrato si intende un programma
con una interfaccia utente, più o meno evoluta, che permetta di
lanciare i vari strumenti necessari allo sviluppo del software.
Supponiamo di voler realizzare un programma che apra una finestra in cui
vengano visualizzate delle informazioni, e che permetta la loro manipolazione
in un modo qualsiasi.
Inizieremo con la definizione della finestra, disegnandola con un programma
che ci permetta di scegliere e posizionare i controlli grafici che ci
servono e di impostarne le proprietà. Finito questo lavoro inizieremo
a scrivere il codice di gestione degli eventi generati dall’interfaccia
e le funzioni che vogliamo siano svolte. Per fare questo ci servirà un
editor di testo.
A questo punto abbiamo l’interfaccia e il codice, ma ancora non possiamo
dire di avere il programma eseguibile. In compenso abbiamo un file con
la descrizione dell’interfaccia (la finestra con tutto il suo contenuto),
e un certo numero di file con il codice sorgente, che descrive le operazioni
che devono essere eseguite.
In entrambi queste categorie di file abbiamo solo delle descrizioni in
linguaggi diversi di quello che sarà l’applicazione finale, per cui dovremo
usare altri programmi chiamati compilatori che traducono queste descrizioni
in un altro linguaggio più facilmente gestibile e compatto.
Dopo aver usato questi compilatori avremo altri file che infine dovremo
collegare tra di loro generando finalmente il nostro tanto sospirato file
eseguibile, per fare ció dovremo lanciare un linker.
Il processo appena descritto è quello normalmente usato nella produzione
di software in C/C++, e i primi programmatori lavoravano più o
meno in questo modo, e la descrizione appena fatta è abbastanza
rosea, perché in effetti ho supposto l’esistenza di un editor delle finestre,
che dal disegno genera il file con la descrizione, ma in sua assenza bisognava
scriverla a mano.
Ben presto si comprese la necessità di avere un sistema per l’esecuzione
di tutti questi compiti in modo semplice e veloce, un primo passo fu quello
di realizzare un unico programma che potesse eseguire generiche operazioni
descritte in un linguaggio molto semplice, in questo modo non si doveva
più lanciare n programmi, ma bastava dire a quest’ultimo cosa si voleva
e lui si occupava dei dettagli e delle sequenze di operazioni necessarie.
Questo programma è MAKE, che però obbligava a scrivere a mano un’ulteriore
file per dirgli cosa doveva fare e quando.
Ai giorni nostri la situazione è notevolemente migliorata, e disponiamo
di programmi che ci permettono, con una discreta semplicità e in tempi
rapidi, la creazione di file simili a quelli necessari a MAKE, ma senza
doverli scrivere a mano, inoltre non dobbiamo lanciare diversi editor,
perché questi IDE(Integrated Development Enviroment), possono contenere
diverse finestre, ognuna per un compito diverso, quindi ne avremo una
con l’editor delle risorse, un’altra per scrivere il codice, ecc..
Una volta terminato il lavoro possiamo con la semplice pressione di un
tasto generare l’eseguibile, e lui si occuperà di controllare i file che
abbiamo modificato, per ricompilare solo quelli e alla fine effettuerà
il link e se vogliamo può lanciare direttamente l’eseguibile che ha generato.
Oltre a questo i moderni IDE ci assistono dicendoci quali opzioni possiamo
usare per i vari processi di compilazione o link, e quando vogliamo creare
un nuovo progetto ci offrono diversi modelli tra cui scegliere alleggerendoci
da alcuni compiti.
Per non parlare delle facilitazione nella scrittura del codice, offrendoci
degli editor di testo avanzatissimi che comprendono le parti di codice
che scriviamo e ci colorano il testo per evidenziare il significato di
quello che abbiamo scritto.
Addirittura ci suggeriscono le istruzioni che vogliamo scrivere, se per
esempio vogliamo scrivere printf, ma abbiamo scritto solo pri,
l’editor ci suggerisce tutte le istruzioni che iniziano con pri.

Inoltre sono fondamentali i debugger sempre integrati nello stesso programma
o ambiente di sviluppo, che ci permettono di analizzare nei minimi dettagli
il funzionamento della nostra applicazione per individuare gli eventuali
errori.
E infine le documentazioni sono un’altro importantissimo aiuto, infatti
possiamo richiedere all’IDE la documentazione su una particolare funzione
del sistema operativo o di una libreria che stiamo usando e lui ci aprirá
una finestra con la descrizione nei minimi dettagli di come e quando può
essere chiamata, e dei parametri che accetta.
Grazie a questi IDE il lavoro di sviluppo è diventato molto più
produttivo e semplice, e per chi è stato costretto a lavorare senza
(e io sono uno di quelli), rappresentano una vera benedizione. I giovani
sviluppatori spesso non si rendono conto che lavorano con strumenti molto
avanzati sottovalutandone le funzionalità.

Riassumendo possiamo dire che gli IDE sono essenzialmente dei centri
di controllo, per avere una visione di insieme di tutte le parti del progetto,
ed eseguire tutti i compiti necessari, dal suo sviluppo al test e debug,
fino ad arrivare al rilascio finale dell’applicazione.