Les langages de programmation ne cessent d’évoluer. Les développeurs ont sous la main de plus en plus de systèmes d’exploitation, de plateformes d’exécution et d’API (Application Programming Interface) leur permettant de concevoir comme ils l’entendent. Depuis longtemps déjà, le framework .NET répond à leurs besoins et leur offre toujours plus de fonctionnalités de développement. Le point positif de cette plateforme ? Contrairement à d’autres, elle n’est pas associée à un langage de programmation en particulier. Parmi eux, le C# ou le VB .NET font partie des plus connus et/ou utilisés.
Y en a-t-il un à favoriser plus qu’un autre ? Quels sont les différences notables entre le C# et le VB .NET ? Lequel de ces deux langages est fait pour vous ? Voici quelques éléments de réponses à ces questions dans un article qui vous aidera à faire votre choix.
Les caractéristiques historiques : C# plus récent que VB. NET
Depuis l’année 2002 et l’apparition du framework .NET, Microsoft a intégré plusieurs langages de programmation s’appuyant sur le même CLR (Common Language Runtime). Parmi eux, C# et VB .NET se sont taillés la part du lion et connaissent un certain succès chez les développeurs.
Le C# (version 1.0) est apparu en 2002 avec le framework .NET. Dérivé du C++, il est également très proche du Java : il en reprend notamment la syntaxe générale ainsi que les concepts. Au fil des années, il a su évoluer pour ajouter des notions telles que la surcharge des opérateurs, les indexeurs ou encore les délégués. Notamment utilisé pour développer des applications web sur la plateforme ASP .NET, il en est aujourd’hui à sa version 10.0 et apporte constamment des nouveautés.
De son côté, la première version de Visual Basic (noté VB) est parue en 1991. Celle-ci apportait une évolution significative à travers son environnement de développement d’interface graphique. Six versions différentes de Visual Basic sont ainsi parues avant la sortie du framework .NET en 2002. Depuis, le langage n’a cessé d’évoluer (version VB10 actuellement) pour devenir un langage Orienté Objets (OO) avec l’apparition des classes, des interfaces, de l’héritage, du polymorphisme, de l’encapsulation, etc.
Un langage récent et fortement évolutif, C#, s’oppose donc à VB .NET, qui continue d’être enrichi et apporte l’héritage de toutes les versions précédentes de Visual Basic. Mais les différences ne s’arrêtent pas là.
Des langages différents au niveau de la syntaxe… et de la programmation
Qui dit langage de programmation, dit forcément différences au niveau de la syntaxe. Ainsi, C# et VB .NET diffèrent principalement à ce niveau. A titre d’exemple, VB .NET utilise la syntaxe Function / End Function, If […] Then / End If, très proche d’une écriture algorithme, tandis que C# favorise l’utilisation de blocs qui se terminent systématiquement avec une accolade fermante.
Mais la différence ne se fait pas seulement à ce niveau : les développeurs y voient aussi beaucoup d’écart en termes d’approche de la programmation. Jugez plutôt :
- VB .NET est plus verbeux que C#. En prenant l’exemple des propriétés en lecture seule, coder l’accesseur « get » suffira en C#, tandis qu’en VB .NET, il faudra coder l’accesseur « get » mais également préciser que la propriété est en lecture seule avec le mot clé « ReadOnly ».
- C# est sensible à la casse, contrairement à VB .NET. C# est en effet « case sensitive », alors que VB y est insensible. Par exemple, les variables nomService et Servicenom sont identiques en VB .NET, mais pas en C#.
- L’espace de nom de ressources diffère. VB .NET dispose du namespace My qui rend l’écriture des applications simple, et permet d’accéder rapidement à un ensemble complet des propriétés et des méthodes d’utilisation commune. S’il permet d’effectuer certaines tâches plus facilement, il s’agit néanmoins d’un espace de nom un peu fourre-tout, contrairement à C#.
- La gestion des espaces de nom est différente. C# fait par exemple abstraction de l’assembly à l’inverse de VB .NET.
- Le nombre d’opérateur varie. VB. NET ne possède qu’un seul opérateur alors que C# possède un opérateur d’affectation et un opérateur d’égalité.
- L’implémentation des interfaces est différente. En C#, on peut soit déclarer le membre public, soit le déclarer de façon explicite. En VB .NET, il n’y a pas de notion d’implicite / explicite mais un membre pourra être défini comme Private, Protected, Friend ou Public.
- La distinction entre les propriétés et les méthodes change. Elle est à priori beaucoup plus claire en C# qu’en VB .NET, notamment dans la gestion des parenthèses.
Vous l’aurez compris, tout ceci n’est qu’une liste non exhaustive des différences entre les deux langages. S’il est difficile de tout énumérer, il est intéressant en revanche de s’intéresser aux avantages procurés par C# et VB .NET.
Les spécificités de C# par rapport à VB .NET (et vice-versa)
En termes d’environnement, C# conviendra donc à ceux qui ont l’habitude de travailler en C++ ou en Java. C’est un langage récent, dynamique, qui permet de faire des choses qui ne peuvent pas être faites dans VB .NET. A titre d’exemple, le C# utilise des pointeurs, ce qui n’est pas le cas avec VB .NET.
VB .NET reste le choix privilégié pour ceux qui viennent des versions antérieures de Visual Basic et ASP-VBScript. Il repose sur une syntaxe très facile à apprendre et à comprendre. Par exemple, l’héritage se fait avec le mot clé « Inherits » contre « : » en C#. VB .NET fait aussi la distinction entre l’héritage et l’implémentation d’interface (« Implements ») contrairement à C# qui utilise de nouveau « : ».
Là où les deux langages se rejoignent néanmoins, c’est au niveau de l’IntelliSense, cette aide à la saisie semi-automatique de code qui comprend un certain nombre de fonctionnalités (liste des membres, informations sur les paramètres, etc.). Ces dernières, accessibles avec seulement quelques séquences de touches, sont pourtant spécifiques au langage. Ainsi, un développeur novice se servira souvent beaucoup de l’IntelliSense avec VB .NET, alors qu’un développeur chevronné aura tendance à mieux rédiger son code sans l’aide de cette technique avec C#.
En termes de popularité, C# est devenu en peu de temps le langage phare de Microsoft, le CLR étant d’ailleurs développé avec. Il s’inscrit dans une tendance dynamique et séduit les nouveaux développeurs, tandis que VB .NET reste extrêmement apprécié même s’il n’est peut-être pas le langage de programmation le plus à la mode.
VB .NET pour les novices, C# pour les développeurs aguerris
VB .NET est un langage avant tout destiné aux débutants pour beaucoup de développeurs (le B dans « Virtual Basic » signifie d’ailleurs « Beginner »). VB .NET est parfois plus facile à manipuler pour du code très simple mais ces simplifications sont parfois au mépris des bonnes pratiques de concepts de la programmation OO. C# est mieux adapté pour faire des choses plus complexes avec notamment un langage plus complet (le mot clé « yield », les délégués anonymes, etc.).
VB .NET étant plus verbeux et l’IntelliSense moins évoluée, il sera généralement plus rapide d’écrire un programme en C# qu’en VB .NET. Cependant, avec la facilité offerte par des options de compilations, un code réalisé via VB .NET sera plus lisible, et donc plus facilement maintenable bien que moins aéré.
Il est ainsi difficile de départager les deux langages, surtout que l’index Tiobe, qui mesure la popularité des langages de programmation, ne dégage pas de réelles tendances : les deux langages sont utilisés, avec une (légère) préférence pour le C#.
En résumé, quel langage vous convient le mieux ?
VB.NET n’est pas amené à disparaître dans les années à venir. Sa dernière version (VB10, aussi appelée VBX) va combler le « retard » par rapport à C# sur certains points. A contrario, C# comblera aussi son « retard » envers VB .NET. En effet, l’évolution commune des deux langages a été officiellement actée lors d’une récente Microsoft PDC (Professional Developer Conference). Cela assure non seulement un futur stable pour C# et VB .NET : lorsqu’une équipe mettra en place une nouvelle fonctionnalité pour son langage, cette fonctionnalité sera implémentée par l’autre équipe pour le sien, et vice-versa.
Quoiqu’il en soit, il reste difficile pour un développeur d’être « bilingue C# / VB .NET », et il revient à vous de faire votre choix en fonction de vos habitudes de développement et de votre environnement de travail favori.
Vous cherchez dans quelle ville travailler en fonction de votre spécialité ? Laou est LA plateforme qui vous permet de trouver un super job dans l’IT dans un cadre de vie qui vous correspond partout en région. Ce n’est pas tout, Laou trouve aussi un job à votre conjoint(e), un logement, vous facilite le déménagement, vous fait découvrir la ville et bien plus ❤️ !
Laou.fr est votre allié pour changer de ville.
Parce qu’en France il y a des centaines de territoires qui méritent d’être découverts, Laou vous aide à identifier le lieu de vie qui vous correspond parmi nos territoires partenaires.
Nous vous aidons à les découvrir, à vous y créer du réseau, et vous mettons en lien avec leurs chargés d’accueil qui vous accompagnent pour concrétiser votre projet.
Inscrivez-vous sur notre site pour vous faire accompagner gratuitement.