Autore Topic: Dichiarazione automatica di una variabile locale non dichiarata  (Letto 4631 volte)

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
« Ultima modifica: 10 Gennaio 2021, 19:15:33 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #1 il: 15 Agosto 2012, 16:53:24 »
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  :nono: 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:
Codice: gambas [Seleziona]

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:
Codice: gambas [Seleziona]

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"!  :violent:

L'ho comunicato a Minisini.
« Ultima modifica: 15 Agosto 2012, 18:53:14 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #2 il: 15 Agosto 2012, 18:23:37 »
Bravo! Abbiamo trovato chi possa diventare ufficialmente l'interfaccia di Gambas-it per le segnalazioni a Minisini, Ah,Ah,Ah,Ah,Ah,Ah.
Ciao.
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #3 il: 15 Agosto 2012, 18:28:07 »
Bravo! Abbiamo trovato chi possa diventare ufficialmente l'interfaccia di Gambas-it per le segnalazioni a Minisini, Ah,Ah,Ah,Ah,Ah,Ah.
Ciao.
Fu Milio che disgraziatamente  :violent: mi nominò Ambasciatore, pur non avendone titolo (...né lui per nominarmi, né soprattutto io per esserne nominato).

Ma non contate troppo su di me !  :devil:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline sotema

  • Maestro Gambero
  • ****
  • Post: 467
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #4 il: 15 Agosto 2012, 18:44:16 »
Ormai è tardi, ti sei dato la zappa sui piedi con l'ultima azione diplomatica svolta.

Bravo!!!  :-*
L'uomo ha inventato la bomba atomica, ma nessun topo al mondo costruirebbe una trappola per topi.
Albert Einstein

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #5 il: 15 Agosto 2012, 18:55:51 »
...ed allora mandatemi alla sede diplomatica di Parigi, là dove fanno i cocktail dai sette colori...  ;D


Mannaggia a me !  :hard:
« Ultima modifica: 15 Agosto 2012, 19:15:24 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #6 il: 16 Agosto 2012, 21:52:12 »
...non dire che non ti avevo avvertito...  ;D

Comunque, sono daccordissimo con te riguardo l'utilità di questa feature.
E' molto bello esprimere giochetti grafici, ma purtroppo sono pochi quelli che si rivelano utili veramente.
In questo specifico caso, e dato che ho parecchia esperienza negativa, con programmi scritti da altri in Basic, di variabili fantasma che facevano le bizze e facevano crashare i programmi. Il compilatore, non ancora veramente completo, dà comunque una mano ad evidenziare errori, anche banali, prima di mandare in esecuzione un programma. Anche la logica di dichiarare forzatamente qualsiasi variabile ad inizio contesto è utile ad evitare il più possibile problemi.
Se tutto questo viene a mancare, solo per avere la simpatica animazione di trovarsi variabili non dichiarate per un momento di distrazione, messe senza controllo ed automaticamente dall'ide, bè, a questo punto mi trova contrario.
Posso capire l'utilità di trovarsi un popup con il nome delle variabili quando si digitano i primi tre caratteri, ma a volte la cosa può diventare alquanto fastidiosa, quando si ha già bene in mente quello che si stà scrivendo.

E' pur vero che, da quanto letto nel msg, che la facility è possibile disattivarla, per cui potrebbe anche andar bene. Ma, per i punti di cui sopra, lancerei un warning, in particolare a chi inizia ora a programmare, o è ancora poco pratico con il debug di un codice. Spesso, errori introvabili, sono imputabili ad banali errori di scrittura. Se ci si mette pure l'ambiente di sviluppo, allora sò sorci verdi...  :D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #7 il: 17 Agosto 2012, 01:01:37 »
...non dire che non ti avevo avvertito...  ;D

La famosa "Revisione della spesa pubblica" non prevede per caso anche il taglio di un buon numero di Ambasciatori ?  :devil:


Comunque sia vorrei precisare, poiché ho notato che non l'ho scritto, quando Minisini si è dichiarato infine d'accordo, in particolare era d'accordo con la circostanza di porre di default come disabilitata quella nuova funzione dell'IDE, e non più il contrario (ossia "abilitata" di default), come era all'inizio.
Quella nuova funzionalità, dunque, resta, ma il non averla attiva di default...è già qualcosa !  :-\
« Ultima modifica: 23 Agosto 2012, 20:31:57 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #8 il: 17 Agosto 2012, 09:36:51 »
Bravo vuott, da quel grande che  sei, ce l'hai fatta, con Minisini.
Ciao.
:ciao:

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #9 il: 17 Agosto 2012, 13:15:38 »
Con tutti i soldi che prende come "ambasciatore", è il minimo...  :rotfl:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #10 il: 17 Agosto 2012, 21:33:08 »
Con tutti i soldi che prende come "ambasciatore", è il minimo...  :rotfl:

...ma li verso tutti nell'Opera Pia "San Midi" per Musicisti in Disgrazia.  :angel:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #11 il: 18 Agosto 2012, 19:33:53 »
Ho come l'impressione che la "fondazione" funzioni come un boomerang...  ;D

E' pur vero che con tutti i soldi che incassi, ben presto vedremo un'altra Microsoft...ma molto poverella...  ;D

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #12 il: 18 Agosto 2012, 21:03:10 »
...ben presto vedremo un'altra Microsoft...

...nominerò Ceskho Direttore dell'Ufficio "Fustigazioni".  :devil:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline md9327

  • Moderatore
  • Senatore Gambero
  • *****
  • Post: 2.840
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #13 il: 22 Agosto 2012, 01:27:34 »
Marò...  :'(

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.258
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Dichiarazione automatica di una variabile locale non dichiarata
« Risposta #14 il: 22 Agosto 2012, 01:33:34 »
Io stesso ho paura !  :death:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »