Débat VB.Net vs C # [clos]


18

J'ai été dans des lieux de travail où, au début d'un projet, la question "Devrions-nous utiliser VB.Net ou C #" a été posée.

Certes, il est probablement moins courant d'avoir à prendre cette décision maintenant qu'elle ne l'était au début de .Net, en particulier compte tenu de la tendance à la convergence linguistique, mais cela peut encore être un débat houleux.

Donc, entre VB.Net et C #, quelle langue préférez-vous et pourquoi?


2
Juste pour jeter une clé dans les travaux, il y a quelques produits (par exemple le concepteur WF dans VS2010) qui ne supportent que la syntaxe VB.Net ...
Damovisa

Ici, les programmeurs C # sont mieux payés que les programmeurs VB.NET.
SeanX

J'ai supprimé "La partie éternelle" du titre qui semble en fait "non constructif". La question elle-même est très utile et la qualité des réponses est une bien meilleure indication de la façon dont est constructif que les tristement célèbres "six lignes directrices".
Wizard79

Je me demande souvent si cela s'inversera si la tendance se poursuit vers C #, ce qui rend les personnes avec VB.NET plus rares et capables de commander une prime plus élevée.
JohnFx

Réponses:


29

Je préfère C # à VB.NET car

  • il est plus facile de trouver des programmeurs / emplois:

texte alternatif

  • il est plus facile de trouver de l'aide:

texte alternatif

(à partir de stackoverflow)


3
+1 SO remplace rapidement google comme ma source préférée d'aide à la programmation.
Type anonyme

12
La question est de savoir si les 10x plus de balises C # signifient que le sujet est mieux couvert, plus utilisé ou qu'il a plus de problèmes? +1 sur la disponibilité des emplois.
JeffO

12
Je me méfierais de tout employeur qui n'embaucherait pas de programmeur VB.NET pour faire du C #.
Matt Olenik

@Anonymous: SO a remplacé google le jour 2 (il y a plus d'un an). FireFox à la maison a SO, MSDN et Programmeurs comme mes 3 principaux sites de recherche.
IAbstract

@IAbstract, lol, so true.
Type anonyme

27

Je déteste VB.NET. Les jours que je passe encore à l'utiliser sont les jours que je regrette. Cela dit, mes goûts font partie de ma situation et de mon expérience, et n'ont pas nécessairement de rapport avec ce que vous faites ...

Je pense qu'il est important, lorsque l'on compare des langages en constante évolution comme C # et VB.NET, de revenir sur leur histoire et de voir comment ils sont arrivés à leur état actuel:

Les avantages originaux de BASIC sur les micro-ordinateurs comprenaient la taille et la simplicité (petite syntaxe facile à analyser conçue pour les petits interprètes assez rapides et laissé de la place en mémoire pour le programme et les données réels), un environnement interactif qui a permis l'expérimentation et une syntaxe qui évitait les symboles et les structures laconiques pour une syntaxe assez claire et semblable à l'anglais. Cependant, il n'était pas adapté aux grands programmes structurés et tendait à encourager le code de spaghetti. Pourtant, sa disponibilité et sa simplicité en ont fait un excellent choix pour une introduction à la programmation.

QuickBasic a mis à jour la syntaxe pour permettre de grands programmes plus structurés et ajouté la compilation pour une exécution plus rapide.

VisualBasic a fourni un générateur de formulaire puissant et facile à utiliser pour permettre la construction rapide d'applications GUI, tout en adoptant la syntaxe QB pour une utilisation dans l'écriture de scripts de ces interfaces utilisateur. Il fonctionnait mieux lorsqu'il était utilisé pour créer des interfaces utilisateur pour une logique de bas niveau fournie en tant que composants prédéfinis (généralement écrits dans un autre langage). Au fil du temps, la syntaxe est devenue de plus en plus volumineuse et incohérente à mesure que de nouvelles fonctionnalités étaient ajoutées. L'accent mis sur l'élaboration d'une interface utilisateur en premier, puis sur le remplissage de bits de script a bien fonctionné pour les petites applications centrées sur l'interface utilisateur, mais tendait à encourager la programmation par copier-coller et une variation du code spaghetti tout en décourageant la réutilisation, les structures de données complexes et séparation des préoccupations. Dans l'esprit de beaucoup, le "code VB" est devenu synonyme de "grosse boule de boue"; "Programmeur VB" avec "hack inexpérimenté".

VB.NET est un langage de type VB sur la plate-forme .NET, une tentative (pas entièrement réussie) de nettoyer et de moderniser la syntaxe VB envahie. Il n'était pas parfaitement compatible avec le code VB existant et n'a fait aucun effort pour assurer la compatibilité avec les formulaires VB (sans doute la partie la plus importante de VB). Cela a laissé de nombreux propriétaires de produits VB avec le choix désagréable de réécrire efficacement leurs applications dans VB.NET (traitant des incompatibilités subtiles dans chaque routine qui n'a pas été soigneusement examinée) ou de réécrire réellement leurs applications en C # (traitant d'un inconnu syntaxe en plus dela nouvelle bibliothèque d'exécution et le concepteur de formulaires). La plupart des utilisateurs de VB.NET étaient des utilisateurs de VB qui s'en sont tenus à la seule syntaxe, beaucoup l'utilisant comme béquille tout en apprenant le C #. En conséquence, il a immédiatement acquis une réputation de paradis pour les programmeurs qui étaient coincés dans leurs habitudes, ne voulant pas ou incapables d'étendre ou d'améliorer leurs compétences.

À ce stade, VB.NET continue d'évoluer, perdant lentement des bagages tout en récupérant une syntaxe nouvelle et intéressante (LINQ, littéraux XML). Pourtant, il ne conserve presque aucun des avantages originaux de BASIC: il s'agit d'un grand langage complexe avec une courbe d'apprentissage assez abrupte et des possibilités limitées d'expérimentation interactive.

  • Pour les anciens programmeurs qui s'en sont tenus au cours des 30 dernières années, ce n'est pas un mauvais choix, à condition qu'ils ne s'y limitent pas.
  • Pour les nouveaux programmeurs, la ressemblance de plus en plus vague des programmes VB avec l'anglais ne vaut guère les signes étranges de rétrocompatibilité et de stigmatisation sociale.
  • Pour les nouveaux projets , VB.NET est un choix étrange à moins que le projet ne soit fortement impliqué dans l'une des rares tâches pour lesquelles le langage est optimisé: intégration avec des composants COM mal typés (Office ...) (bien que C # 4.0 réduit considérablement cet avantage ) ou la génération XML en ligne.

4
Avec C # 4, je ne vois aucun avantage de VB.Net en ce qui concerne l'intégration COM. Je pense que la génération XML en ligne pourrait être une fonctionnalité utile; J'essaie de ne pas utiliser XML (et j'ai réussi depuis 5 ans!), Mais si j'ai un projet .net qui a besoin de générer beaucoup de XML, je vais probablement créer un projet VB juste pour la génération XML.
configurateur

3
J'aimais bien lire votre réponse, mais elle semblait s'arrêter soudainement. Vous fournissez un historique de base qui est intéressant et je suppose que c'est correct. Je m'attendais à savoir pourquoi vous n'aimez pas VB.NET et / ou pourquoi vous aimez C #. "Pour les nouveaux projets, VB.NET est un choix étrange" Pourquoi?
Tim Murphy

@Tim: Je n'aime pas VB [.NET] parce que la plupart du code que je rencontre est du code spaghetti non typé écrit par des programmeurs qui l'ont récupéré il y a des années (ou qui ont été enseignés par de tels codeurs). Ce n'est pas nécessairement une bonne raison pour que quelqu'un d'autre ne l' aime pas. Une meilleure raison est simplement que le langage a fait beaucoup trop de concessions à la rétrocompatibilité ... et pourtant n'est pas réellement rétrocompatible. Donc, à moins que vous ne cherchiez à écrire un nouveau code de spaghetti non typé ...
Shog9

20

Je connais les deux, mais j'ai fait beaucoup de mes premiers travaux de programmation en VB4, VB5 et VB6. Maintenant que les deux langues en .NET ont traversé quelques itérations et ont convergé un peu dans leurs capacités, je pense que le débat est carrément idiot, un peu comme "quelle est votre couleur préférée."

Personnellement, je les aime tous les deux pour des raisons différentes.

VB.NET
Beaucoup de gens parlent de la façon dont la syntaxe C # est plus intuitive, mais c'est très subjectif et basé en grande partie sur ce que vous avez commencé à savoir. Je dirais que si vous étiez complètement objectif, la syntaxe VB.NET est probablement plus intuitive si vous ne supposez pas de connaissances préalables dans une autre langue. Par exemple, étant donné le même programme en C # et VB.NET qui, selon vous, serait plus déchiffrable pour quelqu'un qui n'a aucune connaissance de la programmation. Cela me semble assez clair.

L'autre chose intéressante à propos de cette syntaxe, c'est qu'elle est beaucoup plus explicite sur la fermeture des structures (END IF, END WHILE, NEXT X) par rapport au modèle de bracketing. Cela rend le code un peu plus lisible et permet souvent au compilateur d'être plus précis dans le numéro de ligne qui provoque exactement les erreurs de compilation. Si vous êtes déjà parti à la recherche d'un crochet / point-virgule manquant à cause d'une erreur de compilation à 50 lignes du problème, vous savez ce que je veux dire.

De plus, dans la colonne VB.NET win, à mon avis, il n'y a pas == / = d'opérateurs de comparaison / d'affectation. Les rares avantages d'avoir un opérateur distinct pour chacun ne compenseront jamais toutes les faiblesses (parfois) difficiles à découvrir qu'elle contribue à créer.

Enfin, je déteste la sensibilité à la casse dans les langages de programmation. L'une des plaintes à propos de VB est qu'il a tellement de bagages, mais C # a poursuivi l'albatros de la sensibilité à la casse de C. Je n'ai jamais été dans une situation où je voulais que deux identifiants de même portée ne diffèrent que par cas. Cela fait juste un travail occupé et me ralentit. VB.NET obtient pour moi quelques points sur C # à cet égard.

Les
programmeurs C # aiment être concis, c'est pourquoi je pense qu'ils préfèrent généralement cette syntaxe. Il a juste un certain attrait esthétique. Cependant, d'un point de vue complètement pratique, je l'aime parce qu'il est tellement similaire à des langages comme Java, JavaScript et C ++.

Étant donné que je fais beaucoup de développement Web qui nécessite une programmation côté serveur et côté client, je trouve plus facile de basculer mentalement entre C # et JavaScript, comme je suis souvent obligé de le faire.

J'aime aussi le fait que, pour la plupart, si jamais je devais passer à la programmation Java ou C ++, j'aurais un peu d'avance si j'utilisais C # la plupart du temps.


3
+1 pour le commentaire de développement Web. J'utilise à la fois VB.NET et C #, selon le projet, et je trouve qu'il est beaucoup plus facile de faire des allers-retours entre C # et Javascript que VB.NET et JS.
Paperjam

2
«Je n'ai jamais été dans une situation où je voulais que deux identifiants de même portée ne diffèrent que par cas.» est purement subjectif. C'est exactement l'une des raisons pour lesquelles je préfère C #. Lorsqu'il est appliqué correctement et conséquemment, il peut être logique pour le monde d'avoir par exemple un paramètre dans le constructeur avec le nom nameet une propriété publique avec le nom Name, puis de l'attribuer via Name = name;. Tant que vous gardez une norme de codage, sinon je suis d'accord, cela peut créer de la confusion.
Aidiakapi

1
Avoir besoin d'une norme de codage pour éviter des bugs insidieux comme ça, pour moi, c'est un point négatif. La présence d'une solution de contournement ne l'excuse pas.
JohnFx

Il devrait être difficile d'écrire du code bâclé dans n'importe quel langage de programmation. L'insensibilité à la casse encourage simplement le code bâclé. La sensibilité à la casse ne vous ralentit pas du tout, quel genre d'argument est-ce? Cela vous ralentit lorsque vous faites beaucoup de fautes de frappe et c'est une bonne chose que vous soyez ralenti.
Falcon

Ce n'est que du code bâclé car le compilateur ne peut pas l'interpréter. Si tous les compilateurs étaient insensibles à la casse, cela n'aurait pas d'importance. Notre travail n'est pas d'écrire du code pour l'impression dans un magazine, c'est d'écrire du code qui fait un travail. Le cas "Sloppy" n'inhibe pas un bit.
JohnFx

19

Je préfère la syntaxe des crochets des langages de style C à la syntaxe plus "verbeuse" des langages de style BASIC.

Mon introduction à la programmation a été avec Turbo Pascal. (Le peu de programmation BASIC que j'ai fait sur le Commodore 64, enfant, ne compte pas vraiment.) Après avoir appris Java, je n'ai jamais regardé en arrière et j'ai préféré la syntaxe de style C.


4
"Syntaxe" verbeuse "des langages de style BASIC." - Oui, je n'ai plus jamais regardé VB quand j'ai vuif something then code endif
TheLQ

1
Hé, j'ai été surpris que quelqu'un ait voté contre. (Je m'attendais à ce que ce soit la question Emacs vs Vim.)
George Marian

3
@TheLQ: et aussi le AndAlso!
Gerry

Mes journées Turbo Pascal me manquent. C'était très amusant.
MetalMikester

1
Je trouve la syntaxe des crochets plus facile à lire. Un symbole générique pour un bloc plutôt que plusieurs mots spécifiques au contexte.
Michael K

12

Ils sont fonctionnellement les mêmes, il n'y a rien que vous puissiez faire dans l'un que vous ne puissiez pas faire dans l'autre, et pour l'avenir, Microsoft s'est engagé à ce que les équipes linguistiques se développent de manière uniforme, de sorte que l'équivalence ne changera probablement pas.

Les différences sont désormais purement culturelles et personnelles. Cet article est une lecture intéressante sur les différences entre les cultures des programmeurs utilisant C # et VB.net

[Remarque: Bien que je sois moi-même un développeur C #, la conclusion de l'article lié ne reflète pas nécessairement mon opinion personnelle, c'est juste une approche alternative intéressante dans le débat]


8
Ce n'est pas tout à fait vrai: par exemple, VB.NET n'a pas d'itérateurs, qui sont une excellente fonctionnalité C #.
Thomas Levesque

2
C # n'a pas les littéraux XML de VB.NET: blogs.msdn.com/b/wriju/archive/2008/02/07/… (bien que je ne suis pas fan de la fonctionnalité pour des raisons architecturales, c'est cool)
Steven Striga

@Thomas @WeekendWarrior: De bons exemples, mais juste pour souligner, j'ai dit "Fonctionnellement les mêmes", ce qu'ils sont. Ils compilent tous les deux en IL, donc le même ensemble de fonctionnalités est réalisable. Ces exemples ne sont que des raccourcis de langue pour des fonctionnalités qui peuvent être obtenues par d'autres moyens.
Simon P Stevens

8

Je suis arrivé à .NET à partir de C et C ++ (avec un peu de Java, Ada et Pascal ajoutés), donc C # était la progression naturelle pour moi.

Si un travail arrivait qui nécessitait VB.NET, je ne le refuserais certainement pas.


6

J'ai fait beaucoup de travail avec VB.NET, mais je comprends suffisamment C # pour obtenir l'essentiel de ce qui se passe dans le code. Ma préférence actuelle est VB.NET parce que je la connais le mieux (évidemment), mais je n'ai pas vraiment de préférence entre la syntaxe BASIC verbeuse et la syntaxe de style C, les deux sont très lisibles et compréhensibles pour moi.

La plupart des connaissances en programmation de mon collègue sont COBOL et VB6, donc VB.NET était le choix de langage .NET le plus confortable pour nous en tant qu'équipe. Il n'y avait pas de raison solide pour nous qui ait rendu l'apprentissage du C # obligatoire car ils sont fonctionnellement les mêmes.

Cela dit, l'apprentissage du C # est sans aucun doute sur ma liste de choses à faire.


2
J'ai le même problème. :) et je préfère VB.NET de la même manière que je préfère le coke pas le pepsi. Mais, si nous commençons un nouveau projet, C # est le meilleur choix car nous trouverons plus de programmeurs qui connaissent et préfèrent C #. J'ai compris que la stratégie de MS pour VB était de mettre la communauté VB sur la plate-forme .NET.
Pagotti

5

Je préfère C #.

J'ai commencé en tant que programmeur VB.NET mais avec le temps, il est devenu évident que beaucoup de nouvelles fonctionnalités arrivent d'abord en C #, puis en VB.NET (par exemple, la propriété automatique). Et la communauté autour de C # est beaucoup plus vivante que celle de VB.NET.

De plus, si vous avez l'intention d'apprendre Java ou un langage similaire, C # est un meilleur point de départ - la syntaxe est presque la même dans tous les langages dérivés de C. Bien que ce ne soit pas un point de basculement pour moi, car la syntaxe est quelque chose que vous pouvez apprendre rapidement de toute façon.


3
"les fonctionnalités arrivent en premier sur C #" Mais ce n'est pas toujours le cas. Voir stackoverflow.com/questions/181188/… (Juste pour jeter une autre clé dans les travaux)
Note à soi-même - pensez à un nom

Voilà où j'en suis. J'aime toujours VB, car c'est là que j'ai commencé, mais à mon avis, C # a une meilleure syntaxe dans des choses comme les expressions lambda. D'un autre côté, VB a des littéraux XML, dont C # ne peut que rêver. Je pense que cela vaut la peine de rompre un projet VB séparé pour un travail XML lourd.
Kyralessa

1
A chaque génération d'outils, les arguments "fonctionnalités" changent un peu. La seule chose à laquelle je peux penser que C # a comme vs2010 qui manque à vb.net, ce sont les itérateurs; en revanche, vb.net propose des indexeurs nommés, des filtres d'exception, des littéraux XML, un opérateur "Is" qui est 1000 fois plus beau que Object.ReferenceEquals, une gestion des événements qui est presque bien faite, et une expérience IDE plus fluide. VB.net permet, bien que légèrement maladroit, que les initialiseurs de champ utilisent des paramètres de constructeur ou créent des IDisposableobjets en toute sécurité sans avoir à utiliser de ThreadStaticvariables; C # ne fonctionne pas.
supercat

5

En plus des autres réponses publiées ici, je choisirais C # plutôt que VB car les programmeurs C # sont mieux payés. Plus d'expérience avec C # = plus $$ :)

Je sais que les deux langues sont presque les mêmes et c'est vraiment facile de basculer entre les deux, mais je pense que lorsque la direction examine un tas d'accolades et de points-virgules, elle accepte le fait que nous faisons quelque chose qu'elle ne peut pas faire, où avec VB. Net ils pourraient le regarder et dire "oh ça ne doit pas être si difficile à faire si je peux le comprendre"


1
Je pense qu'un point assez valable qui est souvent négligé selon l'industrie / la région.
Type anonyme

4

C # parce que je peux basculer entre celui-ci et Java avec un minimum d'effort

VB.NET est une syntaxe entièrement différente. C #, étant similaire à Java et à d'autres langages, me donne une meilleure position pour m'adapter rapidement à de nouvelles choses. Étant donné que les sorties de C # et VB.NET sont pratiquement interchangeables, il est logique d'aller avec C #. De plus, si le code de votre entreprise est en C #, vous êtes plus susceptible d'être en mesure de former un développeur Java à coder C # qu'un développeur Java VB. Il n'y a que des avantages subtils, mais subtil est toujours un avantage.


3

Mettre mes préférences personnelles de côté. En tant que quelqu'un qui recrute (et essaie d'être recruté) récemment, lorsque nous avons eu ce débat au bureau, le consensus général était que nous devrions chercher à passer en C # de VB.

Pourquoi? Parce que C # était plus répandu sur le marché (autour de nous de toute façon), ce qui nous permettait de recruter plus facilement et d'être recruté plus facilement.

Il semble que la boucle soit bouclée; les gens apprennent le C # parce que les recruteurs le veulent, car il y a plus de candidats.


3

Étant un développeur un peu plus âgé (59 "un peu" plus âgé?), J'ai d'abord appris le BASIC sur un Commodore VIC-20, j'ai appris moi-même le Turbo Pascal (v1!), J'ai ensuite appris le COBOL à l'université et j'ai passé 14 ans à développer sur IBM mainframes, avec de brèves déviations écrivant des applications de taille moyenne dans Revelation BASIC (une variante de PICK BASIC) et quelques utilitaires dans Modula-2, avant de passer à côté de VB5 et VB6. Et puis est venu .NET.

En raison de mon expérience de base, j'ai pensé que je devrais commencer avec VB.NET, seulement pour découvrir que je continuais d'essayer de faire les choses "à l'ancienne" et que cela me rendait fou (d'accord, plus de noix). Étant donné que j'avais fait du travail en C, je pensais que je donnerais un tourbillon à C # pour voir comment cela se passait. Et OMG, c'était comme sortir d'un tunnel sombre en plein jour! Totalement inattendu. Et j'avais l'habitude de faire des bruits désobligeants sur le fait que C soit un langage "en écriture seule" - "si difficile à comprendre qu'un programmeur C ne pouvait pas comprendre ce que son propre code a fait 6 mois après l'avoir écrit", une observation faite par romancier semi-célèbre que je trouvais mignon à l'époque.

Donc, en raison d'être un peu peu familier avec C, C # était paradoxalement plus facile pour moi d'apprendre la programmation .NET que le paradigme de base beaucoup plus familier. J'aime toujours le VB6, mais j'aime le C #. Le meilleur langage de programmation de la planète.


1
Réponse intéressante, je pense que cela démystifie au moins en partie l'idée que la "foule plus âgée" a tendance à s'en tenir à VB.NET sur C #
Type anonyme

3

Je développe en Visual Basic .Net depuis 2001 et je l'adore et je le déteste !!!

L'ordre de présentation de ces points est simplement basé sur l'ordre dans lequel il m'est venu à l'esprit ...

Dans vb.net avec visual studio, il y a un saut de ligne visuel entre chaque méthode, propriété. Pour beaucoup de gens, ce n'est pas une bonne raison de préférer vb.net à c # mais je ne comprends pas pourquoi l'équipe c # de Microsoft ne l'a pas implémenté. Il existe un complément qui dessine cette ligne en c # mais merci encore à Microsoft d'avoir une équipe ac # et une équipe Visual Basic qui ne se parlent pas.

Dans vb.net, lorsque vous créez un winform, vous avez deux combobox dans visual studio en haut de l'éditeur et vous pouvez générer automatiquement un événement automatiquement lorsque vous sélectionnez un événement dans la combobox droite. Lorsque vous attachez des dizaines d'événements chaque jour, il peut être très fastidieux de ne pas disposer de cette fonctionnalité. Avec c #, vous avez un petit bouton en haut de la grille de propriétés qui peut générer un événement mais ce n'est pas rapide comme dans vb.net. De plus, si vous attachez un événement de contrôle en c # et supprimez le contrôle sur le formulaire, le délégué créé sur le code généré automatiquement pour gérer l'événement doit être supprimé manuellement. Merci encore Microsoft.

Dans vb.net, lorsque vous essayez de modifier une méthode qui contient une requête linq sans modifier la requête elle-même, aucun problème mais en c #, tout le code de la méthode est verrouillé. Si vous avez beaucoup de requêtes linq ou d'expression lambda, la fonction d'édition et de poursuite sera rapidement une bonne vieille chose. D'accord, un peu d'exagération ... mais :)

Dans vb.net, lorsque vous créez un nom de méthode et appuyez sur Entrée, le 'end sub' sera automatiquement créé. En c #, faites-le vous-même. Ok, si vous avez installé resharper ou devexpress, ce sera mieux, mais pourquoi toutes ces petites mais grandes fonctionnalités n'ont pas été implémentées en c #.

Dans vb.net, lorsque vous avez des erreurs sur votre code, les erreurs sont automatiquement affichées et lorsque vous les corrigez, ces erreurs sont supprimées de la pile en temps réel. En c #, vous devez construire votre projet pour réaliser que vous avez correctement corrigé ou non les erreurs spécifiées. Pourquoi l'équipe c # n'a pas mis d'option pour vérifier les erreurs en temps réel comme dans vb.net. Avec une grande solution, aucune vérification d'erreur en temps réel ne peut être une très belle optimisation des performances mais j'aime voir une pile d'erreur disparaître pendant que je la corrige.

Comme d'autres personnes l'ont mentionné, je pense qu'il est plus facile de lire la condition de vb.net if..end if, select case ... end select mais avec le support de peinture devexpress, oubliez ce que j'ai dit.

Avec vb.net, il existe de nombreux bogues dans Visual Studio. Pour n'en citer qu'un dans Visual Studio 2010, les intellisens ne filtrent pas correctement l'énumération si vous avez activé le mode "commun" au lieu de "tous".

Avec vb.net, vous êtes perçu comme un mannequin parce que statiquement, plus de mauvais programmeurs utilisent vb.net au lieu de c # car c # est plus difficile à apprendre et à promouvoir de meilleures pratiques de programmation.

Comme d'autres l'ont dit, le programmeur c # a plus de chances d'avoir un bon travail avec plus d'argent.

Dans la tête du client, vb.net = gars qui programme dans son sous-sol avec un bol de spaghetti de code. c # = wow, vous êtes très intelligent. Le fait est que ce n'est pas parce que vous programmez en c #, que vous faites un bon programme mais statiquement, oui.

Avec tous ces points, j'ai choisi de convertir tout mon code vb en c #. Je programme avec toutes les meilleures pratiques orientées objet, design pattern, code propre avec standards et syntaxe stricte et je peux programmer comme ça depuis 50 ans mais aux yeux de la communauté, je ne suis pas un bon programmeur. Je vais convertir mon code en c # sans autres bonnes pratiques et je serai une autre personne; un grand gars que vous devez respecter ..... :( quelle blague ... !!! mais c'est la réalité.


2

Voici une façon de voir les choses: entre SO et CodePlex, quelle langue est la plus populaire? C # ou VB.Net?

Parfois, suivre le troupeau est une bonne chose car c'est le troupeau qui pourra vous aider quand vous en aurez besoin. Par défaut, C # sera plus rapide que Vb.Net. Je pense que l'utilisation d'Option Strict pourrait l'égaliser cependant. La dernière fois que j'ai comparé IL entre les deux, la sécurité de type de VB.Net a fini par ajouter environ 15% de plus à l'IL. Cela se traduit par des frais généraux supplémentaires. ET ... étant donné les langues qui font essentiellement la même chose, je prendrai la plus rapide. Ma commodité ne devrait pas l'emporter sur l'expérience de mon utilisateur en général.


2

J'aime dire que la seule raison pour laquelle BASIC est toujours populaire, c'est qu'il s'agissait du premier produit de Microsoft, et ils nous le mettent à la gorge depuis 35 ans. Il aurait dû mourir il y a longtemps.

Cela dit, j'ai travaillé sur deux projets .NET de grande taille et les deux ont été réalisés avec VB.Net - bien qu'il y ait un peu de C # car soit la traduction était une chienne, soit la construction n'existait pas dans VB.Net. Le seul avantage que je vois avec VB.Net est que l'éditeur Visual Studio est beaucoup plus convivial (selon mon expérience en tout cas) qu'avec C # - Intellisense semble meilleur, tout comme la mise en forme automatique (notez que puisque je n'ai pas utilisé C # autant, je manque peut-être quelque chose dans la configuration de l'IDE ...)

Un inconvénient majeur dans VB.Net est qu'ils ont apporté beaucoup de conneries de l'ère VB6 dans .NET 1.x pour faciliter la conversion du code VB6. Ce truc est toujours là, et les codeurs VB6 codent du nouveau code en utilisant ces ... "extensions" plutôt qu'en utilisant les classes / méthodes / NET plus neutres. Je ne sais pas combien de fois j'ai demandé à mon patron pourquoi il utilisait toujours cette merde. "Mais ... ça marche ..." Hé, j'aime salope.

En cherchant de l'aide sur le Web, j'ai trouvé que la grande majorité des solutions étaient en C # - consultez les forums MSDN, divers blogs, etc ... Les livres ont tendance à se concentrer sur C #, et s'il existe une version VB, elle vient généralement quelques mois plus tard (par exemple Pro LINQ .... d'Apress.)

De nombreux langages partagent l'ascendance C, ce qui rend la commutation entre C, C ++, C #, Java, PHP et quelques autres beaucoup plus facile. PHP est un peu extensible ici, mais il a beaucoup de constructions de type C. VB? Eh bien, c'est à peu près sa propre petite chose et c'est tout.

Un chef de projet dans mon organisation m'a récemment dit que de plus en plus de nouveaux projets sont développés en utilisant C # au lieu de VB - ENFIN. Lorsque .NET a été introduit dans notre organisation, ils ont plus ou moins officiellement opté pour VB.Net en raison de tout le codage VB6 qui était déjà en cours. Les pouvoirs qui m'ont été reconnus plus tard que ce n'était pas leur meilleure décision.

Comme quelqu'un d'autre l'a souligné ci-dessus, je ne dirais pas non à un projet VB.Net, mais j'espère toujours qu'il sera lentement éliminé des nouveaux développements sur mon lieu de travail.


1

Eh bien, aujourd'hui, il n'y a pratiquement aucune raison d'utiliser VB.net. Au début, c'était juste un moyen de donner aux programmeurs VB une syntaxe familière, mais c'était essentiellement un remappage BASIC de type C #. Son seul véritable avantage est donc une syntaxe plus familière, et sa syntaxe BASIC est également sa seule limite réelle.

Au fil du temps, les deux langues ont évolué parallèlement, la seule différence significative est le my pseudo-espace de noms.

Je conseillerais à chaque programmeur .net qui n'est pas familier avec C # de l'apprendre, car la communauté est assez grande et la syntaxe de type C est commune à la plupart des langages les plus utilisés.


Une autre considération importante pour expliquer pourquoi VB.NET existe est qu'il a rendu le chemin de mise à niveau plus facile pour les projets qui étaient en ASP "Classic" / VBScript ou VB6. Il a fallu beaucoup moins de travail pour porter de grandes applications existantes.
JohnFx

1

VB la langue est plus facile à lire pour les débutants, ils ont tendance à y écrire leur première, deuxième et troisième application et nous savons tous à quoi ressemblent nos premières applications - terriblement.

Les programmeurs de C ++, Java et etc. sont passés à C # tandis que les développeurs VB.NET viennent de fond VBA, VB et BASIC, des programmeurs non traditionnels essentiels.


1

Il semble y avoir plus d'exemples de code C # en ligne que d'exemples VB.NET. Pas comme si difficile de convertir l'un en l'autre, mais pourquoi s'embêter si vous n'avez pas à le faire.


1

Je préfère VB .Net à C #,

  • (97) ...
  • (98) parce que j'ai appris le VB avant même de connaître C #.
  • (99) parce que j'ai déjà acheté un tome de 10 000 pages sur VB .Net.
  • (100) car VB n'a pas d'accolades.
  • (101) parce que tout le monde déteste VB.

0

C #. C'est juste parce que j'ai fait C et Java, donc je pense que C # est plus lisible pour moi. C # est pour moi, comme VB.NET pour les anciens programmeurs VB.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.