Cette question apparait régulièrement sur des sites web communautaires, déclenchant une guerre de religion presque systématiquement. Pourtant, certains clients sont confrontés à ce choix, et bien que beaucoup de gens se lancent dans de grandes joutes sur les vertus techniques de chaque langage, il me semble que cela ne devrait pas être une décision technique.
Sur le plan technique, il est important de se rappeler que les deux langages dans leur version actuelle ont été conçus pour la plateforme. NET. Pour cette raison, Visual Basic. NET et Visual C#. NET utilisent le Common Langage Runtime et n’ont aucune différence significative en termes de performances, à l’exception de celles marginales sur certains points très précis du compilateur. Quelques petites choses manquaient dans Visual Basic avant. NET version 2, mais cela fait assez longtemps maintenant. Pour les personnes qui veulent en savoir plus sur le côté technique, nous vous recommandons cette comparaison technique, ainsi que ce comparateur de syntaxe.
Certaines décisions de conception, en particulier au niveau syntaxe, ont été prises pour faciliter la transition des communautés existantes : C# cible principalement C++ et VB.NET plutôt les anciens développeurs Visual Basic. Parce que C++ était plus puissant que Visual Basic – dans le sens que l’on pouvait faire des choses en C++ que l’on ne pouvait pas faire en VB – il y en a encore qui disent que C# s’adresse aux développeurs professionnels alors que Visual Basic NET aux amateurs. Il n’existe aucun fait technique pour appuyer cette affirmation, comme en témoigne la déclaration de Microsoft sur son site : « Bien qu’il existe des différences entre Visual Basic NET et Visual C# NET, les deux sont des langages de programmation de première classe qui sont basés sur le Framework .NET, et sont tout aussi puissants ».
Cela dit, certains facteurs opérationnels sont à prendre en considération lors d’une prise de décision sur le choix d’un langage de programmation.
D’une part, les compétences de votre équipe de développement et son expérience avec une syntaxe ou une autre sera d’une importance primordiale pour la productivité, surtout si votre équipe est stable et s’est engagée sur le long terme. Il serait contre-productif d’imposer un changement de langage quand les gens sont à l’aise avec leur style de programmation et quand il n’y a pas de fortes raisons de changer.
D’autre part, si votre projet nécessite plusieurs nouvelles embauches, il sera vraisemblablement plus facile de recruter pour un projet C# que pour un projet Visual Basic. On constate effectivement que les développeurs les plus ‘avancés’ utilisent C# plutôt Visual Basic. NET.
La contrepartie est que ces développeurs dits ‘avancés’ sont parfois aussi plus technophiles et certains d’entre eux ont tendance à oublier le besoin métier, ce qui reste la dimension primordiale pour laquelle faire du code dans des applications de gestion. De mon observation, beaucoup de développeurs VB-istes sont tout simplement des pragmatiques qui ne cherchent pas à comprendre les internes des langages mais à produire leur code avec efficacité.
Dans certains cas, le mélange des langages peut également être réalisé grâce à l’interopérabilité. Cela nécessite une masse critique de code et de ressources sur les deux langages pour que cela soit économiquement justifié, faute de quoi il ne sera pas optimal de maintenir le code sur le long terme.
Bien souvent, il existe un historique et un héritage Visual Basic, mais une décision a été prise de migrer vers NET tout en revisitant l’approche : d’une ancienne procédure de programmation vers l’orienté-objet, de méthodes en cascade vers les méthodes agiles, de Visual Source Safe au déploiement de Visual Studio Team System, incluant l’embauche de nouvelles ressources et la mise à jour de l’organisation. Dans ce scénario très courant, il pourrait ne pas être pertinent de s’en tenir à Visual Basic comme langage juste à cause de l’héritage. En fait, il pourrait également être une bonne démarche de formaliser le changement en passant à C#, car vous ne serez pas en mesure d’utiliser les mêmes structures du programme de toute façon.
L’argument ultime qui pousse souvent la décision vers C# est la communauté. Beaucoup d’exemples de code, publiés par Microsoft, ou la communauté, sont en C#, ce qui rendra votre équipe beaucoup plus productive dans de nombreux scénarios. Vous trouverez un écosystème plus complet de composants tiers et d’outillage pour C#.
C’est ce que nous avons constaté en situations réelles chez de nombreux clients en France et à l’international.
De plus, avec notre fabrique CodeFluent Entities, aucun choix ne vous sera imposé, vous pouvez indifféremment générer votre modèle objet dans l’un ou l’autre des langages et mener vos projets avec celui qui vous convient le mieux.
En conclusion, n’en faites pas une religion. Si la plupart de votre équipe est à l’aise avec Visual Basic et ce style de programmation, pourquoi vous embêter ?
Et si jamais, vous deviez changer de langage pour votre épanouissement personnel ou pour des raisons professionnelles, le site de Visual Studio Magazine est votre ami.
- Ce que les développeurs C# doivent savoir sur Visual Basic
- Ce que les développeurs Visual Basic doivent savoir sur C#
Daniel COHEN-ZARDI
CEO, SoftFluent