Qualcuno ha scritto sopra che affidare questo rischio al compilatore significherebbe "perdere il controllo sul programma". Sciocchezze, con questa logica potresti abbandonare anche il type checking. Però, mi chiedo perché il compilatore dà solo una warning invece di un errore se una variabile viene utilizzata senza inizializzazione. Per me, è un errore e basta.
Il "qualcuno" sono io.
Prima osservazione: manifestamente sei nella fase hobbystica-dilettantistica, ma è normale, capita a tutti. Poi qualcuno ci permane, magari fino alla pensione. Infatti ripetere mille volte l'alfabeto non ti trasforma in un poeta (magari).
Seconda: perdi effettivamente il controllo (per quanto si possa averlo, visto che il compilatore fa quello che vuole, in realtà), perchè stai sperando che QUALCUN altro (il compilatore, pippo baudo o chi vuoi) faccia un check CHE NON E' garantito. Di cui NON SAI nulla, di cui in sintesi non ti puoi fidare. O meglio puoi farlo, se il progetto è hobbystico, o sei un dilettante (*ci sono casi marginali di compilatori specifici per usi certificati, ma tralascio perchè si apre un mondo ancora più complesso e specializzato).
Terza: se il compilatore ha a sua volta un bug, cosa fai? Ti do una notizia flash: i compilatori HANNO bug, non sono costituiti da chissà quale "materia oscura informatica perfetta".
Quarta: se usi un compilatore DIVERSO (oggi capita spesso), cosa fai? Aspetti e speri?
Quinta: il type chickening (nel senso di pollo) puoi abbandonarlo anche subito, se sai cosa stai facendo. Programmando in assembly non c'è. Com'è possibile? Addirittura il compilatore non c'è proprio. Misteri dell'informatica.
Sesta: chi lo dice, che utilizzare una variabile senza inizializzazione sia SEMPRE un errore? Per TE sarà un errore, e basta. Per ME dipende dal contesto. Può anche andare benissimo, perfino meglio.
Il mondo "vero" è "leggermente" meno lineare e prevedibile di come ce lo si immagina.
Carissimo m2, se ti mancano gli argomenti, passi sempre agli insulti?
Settima: se non hai mai scritto un assemblatore, un compilatore, un sistema operativo (già che ci siamo), progettato un microprocessore (giusto per sapere cosa "succede davvero", e come), un programma complesso usato effettivamente da (almeno) qualche centinaio di utenti, non hai la minima idea di quanto sostieni. Ti trovi nella fase "scrivo qualcosa, arriva qualche messaggio, andrà bene".
Non sono insulti, sono fatti oggettivi.
Ma tranquillo, come detto per me è positivo
jj2007 ha scritto:
I programmatori di compilatori sono bravi, molto più bravi dei loro utenti che spesso non leggono le warnings
Grazie per il complimento