GB3- IDE vs CODE( Temps de lecture estimé à 5 min 28 sec )
Bonsoir,
La grande difficulté quand on utilise l'IDE, c'est le fait que pour faciliter la vie de l'utilisateur que nous sommes, celui-ci masque un tas de choses qu'il réalise pour nous sans nous le dire.
Si on n'en est pas averti, cela peut entraîner des erreurs de raisonnement.
Il est simple de s'en convaincre en regardant les fichiers générés par l'IDE et en les comparant avec le code que nous aurions dû écrire pour obtenir la même chose.
La simple position d'un bouton devient plus difficile sans l'IDE quand on a pris un peu trop goût à la chose.
Comparaison à faire entre l'IDE et le code direct :
Le Code à écrire que nous ne voyons jamais si on laisse l'IDE faire :
Dim Frame1 As Frame Dim btn9 As Button Dim btn8 As Button Dim btn7 As Button Dim btn6 As Button Dim btn5 As Button Dim btn4 As Button Dim btn3 As Button Dim btn2 As Button Dim btn1 As Button Dim btn0 As Button Dim btnVirgule As Button Dim btnAddition As Button Dim btnSoustraction As Button Dim btnMultiplication As Button Dim btnDivision As Button Dim btnCancel As Button Dim btnEgal As Button Dim btnEffacer As Button Me.Icon = Picture["chukablue2.png"] '<---------------| Me est l'objet qui contient les autres Me.Padding = 5 Me.Arrangement = Arrange.Vertical Me.Text = "Calculatrice +++" If IsNull(Me.Parent) Then Me.h = Desktop.H / 4 Me.w = Desktop.W / 4 Endif Frame1 = New Frame(Me) Frame1.Arrangement = Arrange.none Frame1.Padding = 5 Frame1.Expand = True Frame1.MoveScaled(1, 1, 48, 48) Frame1.Font = Font["Bold,11"] Frame1.Text = ("Calculatrice") Frame1.Alignment = Align.Left $tbAffichage = New TextBox(Frame1) $tbAffichage.MoveScaled(2, 5, 44, 5) $tbAffichage.Font = Font["Bold,12"] $tbAffichage.Foreground = Color.Black $tbAffichage.Alignment = Align.Right btn7 = New Button(Frame1) As "Chiffres" btn7.Name = "btn7" btn7.MoveScaled(2, 12, 10, 6) btn7.Font = Font["Bold,14"] btn7.Foreground = Color.Black btn7.Text = ("7") btn7.Expand = True btn0 = New Button(Frame1) As "Chiffres" btn0.Name = "btn0" btn0.MoveScaled(2, 33, 21, 6) btn0.Font = Font["Bold,14"] btn0.Foreground = Color.Black btn0.Text = ("0") btn0.Expand = True btn4 = New Button(Frame1) As "Chiffres" btn4.Name = "btn4" btn4.MoveScaled(2, 19, 10, 6) btn4.Font = Font["Bold,14"] btn4.Foreground = Color.Black btn4.Text = ("4") btn4.Expand = True btn1 = New Button(Frame1) As "Chiffres" btn1.Name = "btn1" btn1.MoveScaled(2, 26, 10, 6) btn1.Font = Font["Bold,14"] btn1.Foreground = Color.Black btn1.Text = ("1") btn1.Expand = True btnVirgule = New Button(Frame1) As "Chiffres" btnVirgule.Name = "btnVirgule" btnVirgule.MoveScaled(24, 33, 10, 6) btnVirgule.Font = Font["Bold,14"] btnVirgule.Foreground = Color.Black btnVirgule.Text = (",") btnVirgule.Expand = True btn8 = New Button(Frame1) As "Chiffres" btn8.Name = "btn8" btn8.MoveScaled(13, 12, 10, 6) btn8.Font = Font["Bold,14"] btn8.Foreground = Color.Black btn8.Text = ("8") btn8.Expand = True btn5 = New Button(Frame1) As "Chiffres" btn5.Name = "btn5" btn5.MoveScaled(13, 19, 10, 6) btn5.Font = Font["Bold,14"] btn5.Foreground = Color.Black btn5.Text = ("5") btn5.Expand = True btn2 = New Button(Frame1) As "Chiffres" btn2.Name = "btn2" btn2.MoveScaled(13, 26, 10, 6) btn2.Font = Font["Bold,14"] btn2.Foreground = Color.Black btn2.Text = ("2") btn2.Expand = True btn9 = New Button(Frame1) As "Chiffres" btn9.Name = "btn9" btn9.MoveScaled(24, 12, 10, 6) btn9.Font = Font["Bold,14"] btn9.Foreground = Color.Black btn9.Text = ("9") btn9.Expand = True btn6 = New Button(Frame1) As "Chiffres" btn6.Name = "btn6" btn6.MoveScaled(24, 19, 10, 6) btn6.Font = Font["Bold,14"] btn6.Foreground = Color.Black btn6.Text = ("6") btn6.Expand = True btn3 = New Button(Frame1) As "Chiffres" '<----------- | l'objet entre () est celui où se situe le nouvel objet btn3.Name = "btn3" btn3.MoveScaled(24, 26, 10, 6) btn3.Font = Font["Bold,14"] btn3.Foreground = Color.Black btn3.Text = ("3") btn3.Expand = True btnAddition = New Button(Frame1) As "Signes" btnAddition.Name = "btnAddition" btnAddition.MoveScaled(36, 12, 10, 6) btnAddition.Font = Font["Bold,14"] btnAddition.Foreground = Color.Black btnAddition.Text = ("+") btnAddition.Expand = True btnSoustraction = New Button(Frame1) As "Signes" btnSoustraction.Name = "btnSoustraction" btnSoustraction.MoveScaled(36, 19, 10, 6) btnSoustraction.Font = Font["Bold,14"] btnSoustraction.Foreground = Color.Black btnSoustraction.Text = ("-") btnSoustraction.Expand = True btnMultiplication = New Button(Frame1) As "Signes" btnMultiplication.Name = "btnMultiplication" btnMultiplication.MoveScaled(36, 26, 10, 6) btnMultiplication.Font = Font["Bold,14"] btnMultiplication.Foreground = Color.Black btnMultiplication.Text = ("*") btnMultiplication.Expand = True btnDivision = New Button(Frame1) As "Signes" '<---------- |quand un "Nom" se répète cela constitue btnDivision.Name = "btnDivision" | un Group à suivre pour le gestionnaire d'évènement btnDivision.MoveScaled(36, 33, 10, 6) btnDivision.Font = Font["Bold,14"] btnDivision.Foreground = Color.Black btnDivision.Text = ("/") btnDivision.Expand = True btnCancel = New Button(Frame1) As "btnCancel" '<-------- | la déclaration d'un "Nom" sert au gestionnaire d'évènement à suivre btnCancel.MoveScaled(24, 41, 10, 6) | les évènements intervenant sur ce "Nom" btnCancel.Font = Font["Bold,14"] btnCancel.Foreground = Color.Black btnCancel.Text = ("C") btnCancel.Expand = True btnEgal = New Button(Frame1) As "btnEgal" btnEgal.MoveScaled(36, 41, 10, 6) btnEgal.Font = Font["Bold,14"] btnEgal.Foreground = Color.Black btnEgal.Text = ("=") btnEgal.Expand = True btnEffacer = New Button(Frame1) As "btnEffacer" btnEffacer.MoveScaled(13, 41, 10, 6) btnEffacer.Font = Font["Bold,11"] btnEffacer.Foreground = Color.Black btnEffacer.Picture = Picture["icon:/22/clear"] btnEffacer.Expand = True End
La même chose générée par l'IDE :
# Gambas Form File 3.0 { Frame1 Frame MoveScaled(1,1,48,48) Font = Font["Bold,11"] Text = ("Calculatrice") Alignment = Align.Left { tbAffichage TextBox MoveScaled(2,5,44,5) Font = Font["Bold,12"] Foreground = Color.Black Alignment = Align.Right } { btn7 Button Chiffres Name = "btn7" MoveScaled(2,12,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("7") } { btn0 Button Chiffres Name = "btn0" MoveScaled(2,33,21,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("0") } { btn4 Button Chiffres Name = "btn4" MoveScaled(2,19,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("4") } { btn1 Button Chiffres Name = "btn1" MoveScaled(2,26,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("1") } { btnVirgule Button Chiffres Name = "btnVirgule" MoveScaled(24,33,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = (",") } { btn8 Button Chiffres Name = "btn8" MoveScaled(13,12,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("8") } { btn5 Button Chiffres Name = "btn5" MoveScaled(13,19,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("5") } { btn2 Button Chiffres Name = "btn2" MoveScaled(13,26,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("2") } { btn9 Button Chiffres Name = "btn9" MoveScaled(24,12,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("9") } { btn6 Button Chiffres Name = "btn6" MoveScaled(24,19,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("6") } { btn3 Button Chiffres Name = "btn3" MoveScaled(24,26,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("3") } { btnAddition Button Signes Name = "btnAddition" MoveScaled(36,12,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("+") } { btnSoustraction Button Signes Name = "btnSoustraction" MoveScaled(36,19,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("-") } { btnMultiplication Button Signes Name = "btnMultiplication" MoveScaled(36,26,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("*") } { btnDivision Button Signes Name = "btnDivision" MoveScaled(36,33,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("/") } { btnCancel Button MoveScaled(24,41,10,6) Font = Font["Bold,14"] Foreground = Color.Black ToolTip = ("Effacement de la mémoire") Text = ("C") } { btnEgal Button MoveScaled(36,41,10,6) Font = Font["Bold,14"] Foreground = Color.Black Text = ("=") } { btnEffacer Button MoveScaled(13,41,10,6) Font = Font["Bold,11"] Foreground = Color.Black ToolTip = ("Effacement un chiffre") Picture = Picture["icon:/22/clear"] } }
Le nombre de lignes de code que l'IDE nous évite d'écrire peut être très vite considérable et peut être considéré comme un piège pour les novices.
Qu'apprend on à comparer les deux choses, juste que l'IDE facilite vraiment la vie de ceux qui savent ; ce que celui-ci fait de positif pour eux, pour les autres c'est une perte d'un tas d'informations qui ne leur rend pas aisé, l'apprentissage du langage Gambas, surtout si on considère l'aspect POO de Gambas qui demande une vision élargie de ce qui se passe.
Je vous invite donc vivement à regarder, de près, dans le répertoire de votre projet, dans le classeur caché, nommé ".src", le ou les fichiers de vos classes (le fichier texte pas le fichier .class), à les ouvrir et lire ce que l'IDE a fait pour vous alors que vous n'avez que coché des cases ou validé certaines propriétés.