Delphi et Visual Basic (VB) sont deux environnements de développement rapide (RAD) populaires dans les années 90 et 2000, chacun ayant marqué son époque. Delphi, basé sur le langage Object Pascal, a été développé par Borland et offre une grande puissance dans la conception d'applications Windows natives. De son côté, VB, proposé par Microsoft, repose sur une syntaxe simple et intuitive, ce qui le rend particulièrement accessible aux débutants. Les deux outils permettent la création d'interfaces graphiques avec un système de glisser-déposer. Toutefois, Delphi a toujours été reconnu pour ses performances supérieures et sa meilleure gestion de la compilation native. VB, notamment avant .NET, générait du code intermédiaire, moins optimisé à l'exécution. Cela rendait Delphi souvent préférable pour les applications nécessitant des calculs intensifs ou un accès système plus bas niveau.
En matière d'architecture et de modularité, Delphi offre une approche plus orientée objet et mieux structurée que VB classique. Son langage Object Pascal est plus strictement typé, ce qui aide à éviter certains bogues à la compilation. VB, avant son passage à .NET, était plus permissif, ce qui pouvait entraîner des erreurs à l'exécution si le code n'était pas rigoureusement contrôlé. Delphi permet aussi une meilleure gestion de la mémoire, avec une plus grande transparence sur la manière dont les objets sont alloués et libérés. Cela le rend plus adapté aux projets complexes ou de grande envergure. Néanmoins, VB a profité de son intégration native avec les produits Microsoft, notamment Access, Excel et Word, facilitant l'automatisation. Pour des applications bureautiques simples, VB restait souvent le choix privilégié.
Voici les différences les plus communes lorsqu'on utilise Delphi et Visual Basic (VB) :
Delphi | Visual Basic |
---|---|
// ma remarque | ' ma remarque |
Byte | Byte |
Case valeur of 0:instruction0; 1:instruction1; 2,3:instruction2et3; Else instructionpardefaut; End; |
Select Case valeur Case 0 instruction0 Case 1 instruction1 Case 2,3 instruction2et3 Case Else instructionpardefaut End Select |
Const constante = 1; | Const constante = 1 |
Const Valeur : Integer = 10; | Const Valeur As Integer = 10 |
Double | Double |
For I := 0 to 9 do Begin ... End; |
For I = 0 To 9 Step 1 ... Next |
Function mafonction:typederetour;Begin ... End; |
Function mafonction() As typederetour ... End Function |
If condition Then instruction_vrai Else instruction_faux; |
If condition Then instruction_vrai Else instruction_faux End If |
LongInt | Long |
Procedure maprocedure;Begin ... End; |
Sub maprocedure ... End Sub |
Procedure maprocedure(Var mavaleur:Integer);Begin mavaleur:=0; End; |
Sub maprocedure(ByRef mavaleur As Integer) ... End Sub |
Repeat Until condition_vrai; |
Do Loop condition_vrai |
Single | Single |
TDateTime | Date |
Type MonEnregistrement = Record ... End; |
Type MonEnregistrement ... End Type |
Var Tableau : Array[0..9] of Integer; | Dim Tableau(10) As Integer |
Var Tableau : Array[15..25] of Integer; | Dim Tableau(15 To 25) As Integer |
Var Tableau : Array[15..25] of Integer; | Dim Tableau(15 To 25) As Integer |
Var Tableau : Array[1..10,1..5] of Integer; | Dim Tableau(1 To 10, 1 To 5) As Integer |
With label1 do Begin Caption := "Libelle"; AutoZise := true; End; |
With label1 .Caption = "Libelle" .AutoZise = true End With |
While I < 9 do Inc(I); | Do While I < 9 I = I + 1 Loop |