Debbo dire che non condivido questa nuova funzionalità dell'IDE di Gambas, poiché l'errore è un eventualità, ed anzi un evento, la cui soluzione non sempre deve essere rimessa ad un processo automatico. Ciò in modo particolare proprio nella programmazione, e nella creazione di qualcosa, poiché la correzione automatica lascia nella inconsapevolezza il programmatore, generando così essa stessa un nuovo e più grave errore che resta sconosciuto al programmatore.
Un errore di battitura sulla tastiera può avvenire per molte ragioni.
Non per questo l'errore è per forza e sempre la dimenticanza di una dichiarazione di una variabile ! ...ma certamente non può essere
una funzionalità automatica di Gambas a stabilire (...come può mai sapere
effettivamente cosa io intendevo scrivere ?) cosa debba essere scritto nel codice !
Faccio questo esempio semplice semplice e banale.
Diciamo che il codice finale, da noi previsto sarebbe questo:
Public Sub Button1_Click()
Dim a As Integer
a = 100
a = a * 2
a = a + 100
Print a
End
in questo caso nella console sarà riportato il valore finale di quelle operazioni:
300.
Vediamo cosa succederebbe con una modifica automatica, se noi scrivessimo - per errore materiale di battitura - una variabile non prevista e quindi
non dichiarata:
Public Sub Button1_Click()
Dim a As Integer
' Questa me la dichiara - ahimé !!! - Gambas automaticamente
' a causa del mio errore:
Dim s As Integer
a = 100
' "Erroneamente" batto sul tasto "s" (che è al fianco destro del tasto "a"):
s = a * 2
a = a + 100
Print a
End
....il risultato della variabile "a" finale è ben diverso:
200 !
Vi lascio immaginare dopo quanto tempo
scopriremmo la motivazione di quello
strano e non previsto risultato finale, se il codice fosse molto lungo e complesso visivamente...
Voglio dire che ciò che si sta scrivendo non deve e non può essere sottratto alla consapevolezza del programmatore, consapevolezza che viene - se vogliamo dirlo - "
rafforzata" anche dal rendersi conto dell'errore commesso. Errore che spesso proprio l'IDE di Gambas (come è stato fino ad ora), appunto, rileva e... rivela al programmatore.
Insomma.... quella nuova funzionalità è 'na
cazzata immane e "pericolosa"!
L'ho comunicato a Minisini.