Hello,
Je n'ai pas de compte sur SO donc je viens discuter avec vous.
Pour mon parcours, j'ai appris, durant mes études, les langages suivants : Pascal (Delphi), VB6, Cobol, C++, Java (en stage).
Professionnellement, je me suis auto-formé sur le tas en VB.NET que j'ai pratiqué pendant 10 ans et ça fait depuis mai 2018 que je suis passé au C#.
Mon impression est la même que celle de Pol63. Il y a une sorte de snobisme des développeur C# quant au langage VB.NET.
Mais je ne pense pas que ce soit propre à ces deux langages. J'avais droit aux mêmes genres de réflexions quand, au début des années 2000, je discutais avec des développeurs Java.Ce n'est pas un vrai langage le .NET, fais plutôt du Java.
Les arguments avancés par les pro C# sont, je pense, de faux arguments pour la plupart.
La verbosité (plus de mots et non des symboles : End If au lieu de }) alors qu'en fait, on ne les écrits jamais et surtout, cela permet de s'y retrouver beaucoup plus facilement comme déjà signaler par Pol63. Le trait vertical décrit par StringBuilder est bien là mais parfois, dans le cas d'un long bout de code (qui ne justifie pas forcément la création d'une méthode), et bien on ne voit tout simplement pas les accolades ouvrantes et fermantes sur le même écran. Du coup il faut suivre le trait tout en déroulant. Pas forcément évident. A contrario, si on 4 End If qui s'enchaîne, ça n'aide pas non plus (mais je pense que dans ce cas-là, il doit y avoir un souci).
La sensibilité à la casse. Quoi de moins lisible de deux variables ayant le même nom à une majuscule près ? En C#, c'est en effet possible. Certains crieront au génie, moi je crie à l'hérésie. Si on n'a besoin de deux objets différents, on leur donne des noms différents. C'est aussi simple que ça.
La déclaration des types avant le nom de la variable. Je pense qu'il s'agit ici d'une question d'habitude. Au départ, je n'aimais pas du tout. Mais je dois bien reconnaître que d'avoir VS qui me propose automatiquement le nom de variable qui va bien est très agréable. Chose qui n'est pas possible avec VB.NET vu que le type de l'objet est inconnu au moment où on écrit son nom.
J'aimerais revenir sur les nouveautés du langage. C'est une chose que je suis très très peu (pour ne pas dire pas du tout). J'ai lu dans les réponses que VB.NET ne recevait même plus les nouveautés. De quoi parle-t-on ? De vrai trucs utiles ou bien des sucres syntaxiques servant aux geeks pour savoir qui a la plus courte (ligne de code) ? Rien ne m'horripile plus qu'une ligne de code ultra complexe qui relève p-e du génie au moment de son écriture mais de la torture lorsqu'il faudra la relire 6 mois plus tard et comprendre sa fonction dans son ensemble. Je lui préfère de loin son équivalent sur 5 ou 6 lignes (voir plus si nécessaire).
Bref, je vais m'arrêter. Vous l'aurez compris, actuellement, ma préférence est largement en faveur de VB.NET. On en reparle dans 10 ans quand j'aurai autant d'expérience en C# qu'en VB.NET (si ces deux langages existent encore d'ici là)
.
Partager