.NET : êtes-vous plus C# ou VB ?
Entretien avec le PDG de SoftFluent qui envisage de réactiver l'option Visual Basic dans CodeFluent Entities

Le , par Gordon Fowler, Expert éminent sénior
En tant qu’éditeur de CodeFluent Entities, SoftFluent a concentré ses efforts de R&D et surtout de test sur la génération de code C#. Néanmoins, le produit a également été conçu de manière compatible avec Visual Basic .NET.

« Et nous envisageons de réactiver cette option », explique Daniel COHEN-ZARDI, PDG de SoftFluent.

L'occasion de revenir avec lui sur ces deux langages, leurs points communs, leurs différences et pourquoi choisir l'un plutôt que l'autre.

Comment choisir entre VB et C# pour mener un projet ?

Daniel COHEN-ZARDI : Beaucoup de gens débattent avec passion des vertus techniques de chaque langage. Personnellement, il me semble que ce choix ne devrait pas être une décision technique.

Car techniquement, il est important de se rappeler que les deux langages dans leurs versions actuelles ont été conçus pour la plateforme. NET. Visual Basic .NET et C# utilisent le « Common Langage Runtime » et n’ont aucune différence significative en termes de performances, à l'exception de différences marginales sur certains points très précis du compilateur.

Ce sont plus les facteurs opérationnels qui 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 l’équipe de développement et son expérience avec la syntaxe de C# ou VB sera d'une importance primordiale pour la productivité. Surtout si l’équipe est stable et s'est engagée sur le long terme (il serait par exemple contre-productif d'imposer un changement de langage alors que les gens sont à l'aise avec leur style de programmation et qu’il n'y a pas de raison majeure de changer).

D'autre part, si un 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 en effet que statistiquement les développeurs les plus avancés utilisent C# plutôt que Visual Basic.

Il existe aussi des cas où l'on peut prendre la décision de lancer un projet « hybride » ?

Daniel COHEN-ZARDI : Oui. Dans certains cas, le mélange des langages peut ê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 que Microsoft déclare officiellement « qu'il s'agit de deux langages de programmation de première classe qui s'appuient sur le Framework .NET, et qui sont tout aussi puissants l'un que l'autre », il existe des différences entre Visual Basic NET et Visual C # NET. Quelles sont, d'après vous, les conséquences de ces différences dans les choix de conception ?

Daniel COHEN-ZARDI : 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 Java, et VB.NET cible 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 subsiste encore une perception que C# s’adresse aux développeurs professionnels alors que Visual Basic NET s’adresserait aux amateurs. Mais il n'existe aucun fait technique pour appuyer cette affirmation.

Vous semblez néanmoins avoir une petite préférence pour C# ?

Daniel COHEN-ZARDI : Chez SoftFluent nous n'avons aucune préférence. Mais l'argument ultime qui pousse souvent la décision vers C# est la communauté.

Beaucoup d’exemples de code, publiés par Microsoft ou par la communauté, sont en C#. Ce qui, dans de nombreux scénarios, pourra rendre les équipes beaucoup plus productives. Vous trouvez un écosystème plus complet de composants tiers et d'outillage pour C#. C'est ce que nous constatons en situations réelles chez de nombreux clients en France et à l’international.

Ceci dit il ne faut pas en faire une religion. Si l’équipe est majoritairement à l'aise avec Visual Basic et ce style de programmation, pourquoi se compliquer la vie ?

Pas plus C# que VB donc, SoftFluent étudie très sérieusement l'activation de l'option Visual Basic dans CodeFluent Entities. « Nous réfléchissons à la mise en priorité de cette partie de notre feuille de route », conclut Daniel COHEN-ZARDI.

Une bonne idée ?

Et aussi

CodeFluent, la première fabrique logicielle pilotée par les modèles (page officielle)

«Comment le développement logiciel piloté par les modèles peut vous aider à réussir vos projets», un Livre Blanc de SoftFluent

Et vous ?

Êtes-vous plus C# ou VB ?


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de BenoitM BenoitM - Membre expert http://www.developpez.com
le 29/09/2011 à 10:59
Un peu bête de faire un for( ;MaCondition; )
C'est pas très joli je trouve

----
merci sevyc64.
Beuh ma synthaxe en VB.Net est un peu rouillée donc j'ai préféré mettre en c-like
Avatar de Bluedeep Bluedeep - Inactif http://www.developpez.com
le 29/09/2011 à 11:02
Citation Envoyé par BenoitM  Voir le message
Un peu bête de faire un for( ;MaCondition; )
C'est pas très joli je trouve

C'est pas faux; mais c'est toujours moins laid que le FOR du PL/SQL
Avatar de tomlev tomlev - Rédacteur/Modérateur http://www.developpez.com
le 29/09/2011 à 11:29
Citation Envoyé par BenoitM  Voir le message
Un peu bête de faire un for( ;MaCondition; )
C'est pas très joli je trouve

A mon avis c'est bien pour ça qu'ils ont introduit le while, même si c'était pas indispensable...
Avatar de BenoitM BenoitM - Membre expert http://www.developpez.com
le 29/09/2011 à 11:46
Vous êtes sur que le while est venu après le for?
Avatar de Bluedeep Bluedeep - Inactif http://www.developpez.com
le 29/09/2011 à 11:50
Citation Envoyé par BenoitM  Voir le message
Vous êtes sur que le while est venu après le for?

En ANSI C (C89), les deux existaient; donc, de facto depuis 1983. avant je ne sais pas.
Avatar de tomlev tomlev - Rédacteur/Modérateur http://www.developpez.com
le 29/09/2011 à 12:09
Citation Envoyé par BenoitM  Voir le message
Vous êtes sur que le while est venu après le for?

Si je devais deviner, je dirais qu'il sont apparus en même temps...
Avatar de el_slapper el_slapper - Expert éminent sénior http://www.developpez.com
le 29/09/2011 à 12:11
VB, mais uniquement par habitude des langages verbeux. Au final, c'est très, très similaire en capacité(et en pièges).
Avatar de Blaise Cacramp Blaise Cacramp - Membre à l'essai http://www.developpez.com
le 30/09/2011 à 18:55
Bonjour,

J'ai 53 ans et je suis électricien automaticien de formation. L'informatique ou plutôt la micro-informatique, c'était d'abord de l'autodidacte avec les TRS-80 et consorts, c'est à dire du BASIC, langage multi-usage.
J'ai débuté avec une TI-57, puis un "pocket" des années 80, des TRS-80, puis le Basic de Borland (trop bugué) pour passer ensuite au Qbasic / QB de Microsoft.
J'ai fait des librairies, et une gestion de stock/magasin qui fonctionnait super bien.
J'avais bien entendu connaissance d'autres langages comme le "C", mais ils ne convenaient pas facilement à mon objectif.
Le temps a passé et Windows est apparu avec ses différents VB. Mais savez-vous que VB1 était sous DOS ?
J'ai commencé VB à partir de la VB4 jusqu'à intensément VB6.

Mon boulot actuel est de faire des applications verticales en Office 2007 et donc en VBA. Et je suis bloqué à ce niveau là : Si je peux faire quelques fois du VB.NET chez moi, j'y vais en tâtonnant, mais je suis réjoui par l'aspect objet bien présent.
Quand mon boulot actuel sera terminé (je suis intérimaire CDD à la semaine), il me sera préférable de trouver une formation de A à Z plutôt que de poser des questions de "débutant" à gauche et à droite.

À noter que je fais aussi du PHP, VBscript, HTML, etc.

Cordialement, Blaise
Avatar de Blaise Cacramp Blaise Cacramp - Membre à l'essai http://www.developpez.com
le 02/10/2011 à 14:31
Citation Envoyé par el_slapper  Voir le message
Les 4 règles d'airain du développement informatique sont :

1)on ne peut pas établir un chiffrage tant qu'on a pas finalisé la conception
2)on ne peut pas finaliser la conception tant qu'on a pas complètement compris toutes les exigences
3)le temps de comprendre toutes les exigences, le projet est terminé
4)le temps de terminer le projet, les exigences ont changé

Michael C. Kasten

C'est qui ce Michael C. Kasten ?
Avatar de Papy Normand Papy Normand - Membre du Club http://www.developpez.com
le 03/10/2011 à 2:13
J'ai programmé depuis plus de 40 ans dans de nombreux langages ( Basic avec mon 1er programme en 1967, Algol,PL1,COBOL,SPL,PASCAL,C et Visual Basic Microsoft et Borland, VC++ 4 à 6 , VB 4 à 6 , VC#, plus quelques autres épisodiques).
Depuis la sortie de Visual Studio 2003, je n'utilise plus que VC# et VB ( plus accessoirement ) versions 2003 à 2010. Je me sens plus à l'aise en VC# ( peut-être à cause des quelques millions de lignes que j'ai écrites en C ) mais je code en VB aussi pour me maintenir eà niveau et aussi parce que je considère que de changer de langage est une sorte de défi qui ajoute un peu de sel au dèveloppement. Il est vrai que je code d'une façon un peu spéciale, puisque, chaque fois que c'est possible, je préfère utiliser les classes .NET. Comme je ne sais jamais si mon code sera lu par un utilisateur VB ou VC#, j'utilise Int32 au lieu de int ou Integer.
Je poste assez souvent sur des forums "concurrents" (MSDN/Technet) et je suis souvent amené à fournir du code en VC#. Si l'utilisateur demande du code en VB, je modifie les syntaxes différentes comme la déclaration des procédures/fonctions, les if, while, static qui devient Shared , mais je peux en 10 minutes modifier 150 lignes de code, les tester et les poster. L'utilisateur est content car il a son code en VB, et je suis content car j'ai pu lui rendre service , alors, pourquoi s'en priver.
Les utilisateurs VB moins professionnels que les partisans de VC#, je ne le pense pas.Je connais des utilisateurs VB ( par exemple Allen White dont le blog était consacré à SMO et qui m'a tant appris sur cette partie très particulière de SQL Server ) près à faire l'effort de produire du bon code en VC# ).Je connais aussi des modérateurs qui se refusent à envisager d'écrire du code VB même pour dépanner un utilisateur à la dérive.
Par contre, les pires VBistes sont ceux qui ont migré de VBA ou VB Script, ils se refusent à recevoir du code en VC# en termes peu agréables.Je leur fournis leur code, mais je râle ( une fois, le créateur du fil a été tellement odieux que j'ai bloqué le fil en empéchant tout nouveau post). Ceux qui ont créé des applications avec ACCESS passent naturellement à VB, mais ils oublient que les syntaxes de VB et VBA sont différentes et plusieurs fois, j'ai posté pour leur expliquer qu'il n'y avait pas un problème avec leur SQL Server mais qu'ils avaient des erreurs de syntaxe ( une compilation erronée ne peut provenir de SQL Server ).
Utiliser VB et VC# au sein d'une même application : par principe, beaucoup de chefs de projet s'y refusent pour cause de difficultés de maintenance. Je crois que c'est un faux problème.Si la gestion du développement est bien faite, il n'y aura de problème surtout si l'on remplace tous les appels spécifiques à un langage ( par exemple pour les I/O ) par des appels à des classes .NET. Bien souvent, le refus provient du fait que le chef de projet connait moins bien .Net que son langage habituel et qu'il ne veut pas passer pour un imbécile.Bien sûr, il faudra toujours avoir un spécialiste VB et un spécialite VC#, mais celà se trouve ( si l'on s'en donne la peine ).
Pour moi, le choix VB/VC# pour un programeur ou un chef de projet n'est pas une question primordiale, il suffit de savoir gérer la situation.
Au fait, en parcourant les blogs du personnel Microsoft, j'ai appris que près des 2/3 du code de SQL Server écrit depuis 2003 l'a été en VC#, le reste en VC++ et VB accessoirement ( près de 90% pour SQL Server Management a été écrit en VC#). Mais ce n'est qu'un cas particulier qui devient amusant quand on sait qu'il était très difficile de trouver du code VC# pour SQL Server 2005, cela a bien changé depuis, peut-être parce que des utilisateurs de la librairie SQL Server ont fourni le code en VC# dans la partie Community Content.
Dans les forums, quand on me demande du code en VB, je le fournis ( ce n'est pas vrai pour VC++ que j'ai completement abandonné en 2003 ), bien que naturellement, ce sera du code VC# que je proposerai en 1er.
Je trouve que l'environement VB de Visual Studio est moins pratique que son correspondant à VC#, voir les extraits de code, l'impossibilité d'avoir un formattage personnel du code. D'ailleurs, il suffit de comparer les options offertes for VC# et VB , il n'y a pas photo ( ne serait-ce qu'en nombre et en utilitité ).
Je ne parlerai des options par défaut pour Strict et Explicit.D'autres personnes l'ont très bien faites. Par contre, c'est le même genre d'erreurs qu'a faite la SQL Server Team avec SQL Server Express avec les options Auto_Close ou UserInstancesEnabled ou RemoteConnectionsDisabled.Celà sent un produit destiné à un public de non-professionnels que l'on veut "ratisser".Et après, dans les forums, on galère pour expliquer gentillement aux posters qu'il faut qu'il change ces options pour qu'ils puissent se connecter.
Au revoir en espérant que les lecteurs de ce message me pardonneront la longueur de mon écrit ( après 8 heures d'anglais, j'avais envie d'écrire en français )
Avatar de MABROUKI MABROUKI - Membre émérite http://www.developpez.com
le 03/10/2011 à 3:50
Bonjour Papy
IL me semble que dans ce debat VB.Net -C# c'est plutot biaise parce que les gens ont tendance à oublier l'historique des langages de Microsoft.
En fait VB6 a ete lance par Microsoft pour rentabiliser la technologie COM et il est destine principaement aux developpeurs d'applications c'est le fameux fameux RAD avec COM.
Un exemple simple à l' epoque c'etait la creation rapide de composants ActiveX simples pour une application ou une 20 lignes de code permettait de creer un UserControl ou un Controle Perso.

Par contre le C++ etait plutot destinee aux ecrivains de composants complexes ,au developpement d'application dont l'architecture etait plus complexe ,specialisee ,choses qui necessitent des temps de developpement plus longs.......

Maintenant pour en revenir à VB.Net et C# je pense que la problematique reste la meme .....pour Microsoft...........et pour nous.....
bonne soiree......
Offres d'emploi IT
Piqueteur fibre optique (h/f)
Links IT SERVICES - Ile de France - Paris (75000)
Consultant Fonctionnel Junior H/F
Atos Technology Services - Auvergne - Clermont-Ferrand
Analyste concepteur (h/f)
Atos - Ile de France - Les Clayes-sous-Bois (78340)

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil