Plusieurs personnes me disent que C# est meilleur que VB.NET, mais pouquoi?
Je veux changer mon language de proggramation (VB.NET) pour C#, mais avant, j'aimerais vraiment savoir en quoi il est mieux.
Merci de me répondre.
Plusieurs personnes me disent que C# est meilleur que VB.NET, mais pouquoi?
Je veux changer mon language de proggramation (VB.NET) pour C#, mais avant, j'aimerais vraiment savoir en quoi il est mieux.
Merci de me répondre.
Bonjour,
Je vais apporter ma contribution dans ce sujet, donc ce ne sera que mon avis strictement personnelje préciserais que dans mon cas j'utilise indifféremment les deux langages même si j'ai une forte préférence pour VB.Net.
Tout d'abord, C# ou VB.Net en terme de fonctionnalités c'est sensiblement la même chose, ça l'était moins dans les anciennes versions, mais on commence à tendre vers l'ensemble des possibilités réalisables aussi bien en C# qu'en VB.Net.
Ensuite pour "choisir" lequel utiliser, pour toute personne souhaitant passer au .Net je conseillerais C# pour la simple et bonne raison qu'il est beaucoup plus reconnu dans le milieu professionnel (ce que je trouve dommage mais c'est une autre histoire). En effet fais un peu le tour des tutoriels, des offres d'emploi et tu constateras que 9 publication sur 10 concerne C#.
De plus de part sa proximité syntaxique aussi bien avec Java que le C++ cela "facilite" l'apprentissage car ceux connaissant déjà cette syntaxe peuvent s'attaquer directement aux possibilités.
Il faut le réfléchir dans le sens où ton équipe, les personnes qui pourront reprendre le code après toi, cette majorité connait C# plus que VB.Net.
Beaucoup reprochent aussi au VB.Net d'être un langage trop verbeux (beaucoup de mots clef, qui fonctionnent souvent par paire For/Next, Do/Loop et autres End If|Function|While ...) c'est un point certes vrai, mais cela tient surtout à sa propre perception, et à ses goûts personnels (d'où ma préférence vers VB.Net). En effet personnellement je ne vois aucune différence entre jongler avec des mots clefs ou des accolades et d'ailleurs beaucoup d'éditeurs (sans forcément sortir l'artillerie lourde un simple Notepad++ avec le plugin qui va bien suffit) le gère pour nous.
Donc pour résumer, si tu as l'opportunité de choisir (projet perso, majorité de personnes dans l'équipe qui gèrent les deux langages etc...) fais ton choix avec tes affinités personnelles, sinon c'est vers le C# qu'il va te falloir te tourner.
Voilà j'espère que cela t'aura apporté quelques lumières, et je croise les doigts pour que ce sujet ne parte pas en troll![]()
A noter que tout ce qui est dit ici peut aussi être dit pour Delphi.Net qui lui viens du monde Pascal
VB.Net est un langage dont la syntaxe est syntaxe basic, issu de VB6 et antérieur et des différents basic.
C# est un langage dont le syntaxe est issue de manière large du C (certains diront un savant mélange entre Java, C et C++).
Les 2 langages sont en fait le même, desservant une programmation dite Objet sur la couche logicielle appelée Framework .Net (un peu à l'image de Java et de sa couche logicielle dite Machine virtuelle)
Il existe encore quelques différences entre C# et VB.net, mais les 2 étant sur le framework .Net globalement la programmation se fait de manière identique. D'ailleurs un code VB.Net peut être traduit en C# de manière automatique quasiment en totalité et vice-versa
De la volonté même de Microsoft les différences s'estompent et vont continuer à s'estomper, les 2 langages sont développés désormais en parallèle et de manière synchrone.
Coté code compilé, les 2 langages fournissent généralement un code identique à plus de 99%, il n'y donc aucune différence de performance.
Lequel choisir ?????
Ben en gros celui que tu connais le mieux.
Si tu viens d'un monde VB ou VBA, tu te tournera plus naturellement vers VB.Net
Si tu viens du C, C++, tu te tournera plus vers C#
Si tu viens de Java, ..... plutôt vers C#, mais il y a t-il beaucoup de monde qui passe de Java à C# sachant que la demande en Java est sans commune mesure plus forte que C# (sauf que Java commence à être sur le déclin et C# continue à monter)
Si tu viens de rien, ben, celui qui te plairais le plus.
Sachant que VB.Net subit encore (à tord) la réputation des ses prédécesseurs de langage pour débutants ou amateurs.
Ce qui est faut, car VB.Net n'est tout de même pas aussi accessible que ses prédécesseurs mais par contre C# est tout aussi accessible que VB.net.
Je peux t'aider avec un support PDF
Telecharge ce fichier rar et va voir si tu vaux :
MEGAUPLOAD - The leading online storage and file delivery service@@AMEPARAM@@Filename:</font> <font style="font-family:arial; color:#FF6700; font-size:22px; font-weight:bold;">Labo - DotNet.rar@@AMEPARAM@@Labo - DotNet.rar
Merci pour vos réponses.
Je suis maintenant plus éclrairé sur le sujet.
Ayant commencé avec VB.NET et sachant maintenant que ses 2 langages se ressemblent beaucoup, je croix que, pour l'instant, je vais rester en VB.NET.
À mon avis, il est plus simple pour moi de programmer avec des mots qu'avec des acollades.
Continuer d'écrire vos avis.
Surpris de ne pas voir plus de zélotes du C# ici.....je vais dire comme les autres : ces deux langages font la même chose. La différence est juste une différence de style.
Et moi aussi je préfère un langage plus verbeux. Je trouve ça plus lisible, plus naturel, moins machine. Le résultat est le même, de toutes façons.
Je pense que le "meilleur" provient juste d'une question de préjugé. C# ressemble plus à un langage "technique", VB.Net ressemble plus à un truc accessible au commun des mortels. Pour qui se considère comme membre de la caste des "purs", C# passe donc pour supérieur.
J'attendais juste que quelqu'un fasse la remarque
Ce post s'intitule donc : "Ten reasons to use C# rather than VB".
Non, sérieusement, pour avoir pratiqué le deux, je pense que VB.Net est effectivement plus adapté pour quelqu'un qui débute. Et ce n'est pas là une critique, bien au contraire!
Le côté verbeux, les mots-clé en pagaille ont un intérêt majeur : ils structurent le code de façon très claire. Et c'est ma foi bien appréciable quand on débute et qu'on a pas besoin de batailler avec des accolades dans tous les sens.
J'ai aussi une préférence pour l'IDE en VB.Net pour quelques fonctionnalités que je n'ai pas retrouvé en C#.
Il n'en reste pas moins que je préfère maintenant coder en C# et ce pour plusieurs raisons :
- le côté moins verbeux, la syntaxe dérivée du C est je pense plus concise et c'est un vrai gain de temps en écriture comme en relecture.
- l'autre raison, évoquée par Sehnsucht, c'est que les recruteurs [Troll](et les dévs C#)[/Troll] sont persuadés que VB.Net = VB6 et que VB.net est has been. C'est triste, injustifié mais c'est un état de fait.
Cela dit, le fait de connaître les deux syntaxes a un intérêt : si vous avez besoin d'écrire une fonction dans un report sous SSRS 2k5, vous ne pouvez le faire qu'en VB![]()
Je pensais notamment à une chose :
- dans VS, sur un fichier .vb, tu sélectionnes un contrôle de ta page sur la combo en haut à gauche, dans celle de droite tu trouves alors tous les events auxquels tu peux t'abonner, tu en sélectionnes un et la signature est automatiquement générée.
En c#, pour générer ces méthodes automatiquement, tu dois taper le nom de contrôle pour en parcourir les events.
C'est pas grand chose, mais ça m'a gonflé quand je suis passé de VB à C#.
Assez d'accord avec l'ensemble. Sur ce point précis, quelques divergences(mais rien de méchant) :
1)le temps d'écriture est infime par rapport au temps de réflexion, de toutes manières. Quand à la relecture, bien plus chronophage, je n'ai pas trouvé que ça allait plus vite en C# qu'en VB.NET. Mais je n'ai pas ton expérience en C#, un petit mois seulement.
Y'a un intrus, mais à mon sens, les trois se valent, niveau vitesse de lecture. Les incrémentations collées à la variable, certes sont très puissantes, mais sont aussi faciles à louper visuellement, et je les trouve fatiguantes. Mais bon, hein, question d'habitude(j'espère que tu n'as pas fui à la lecture du COBOL, en ce moment je ne fais que ça.....)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 num = ++nbmodele; nbmodele = nbmodele + 1 num = nbmodele ADD 1 TO NBMODELE GIVING NUM NBMODELE
2)ça, si les meilleurs langages étaient toujours choisis.....il n'y aurait pas besoin d'autant d'informaticiens(celà dit, je ne pense pas que VB.NET soit mieux que C# non plus, c'est vraiment kifkif, juste une question de style).
Pour la petite histoire, C# a été inventé par Microsoft dans le but à demi avouer d'amener les VBistes au monde C et C++, ils le voyaient au départ comme un langage de transition leur permettant à terme de peut-être pouvoir abandonner VB.
Dans les faits, c'est tout le contraire qui s'est passé.
Les VBistes sont rester pour la plupart VBiste, la transmission VB6/VB.Net n'étant pas déjà si simple.
Le monde du C# c'est initialement peuplé de codeurs C++, Java, mais surtout C qui n'avaient jamais sauter le pas du C++ car ils le trouvaient un peu indigeste.
Au final, C# est incontournable, au même titre que C,C++,JAVA, ... et aussi VB.Net.
Autre petite histoire, C#, ou un nouveau langage de cet accabi aurai normalement dû remplacer VBA dans la suite Office et ce dès la version 2003 en parallèle avec VBA et totalement dans la version 2007.
Résultat des courses, je ne l'ai pas encore tester, mais je pense que VBA est toujours présent dans la version 2010 et qu'il n'y a pas encore de remplaçant.
Euh franchement j'ai des doutes sur ce que tu avances. Le but du C# ce n'est pas que les programmeurs de Vb fassent du C ou du C++.
Le but du C#, c'était de faire un langage pour le framework .NET dont la syntaxe ressemble au JAVA/C++ pour personne ne soit dépaysé, et qu'au contraire, les dev C++ fassent plutôt du C#.
Le VB.NET c'était pour que la base d'utilisateur en VB familiés avec sa syntaxe ( mais pas celle du groupe JAVA/C++ ) franchissent le pas et viennent aussi dans le monde .NET.
Salut,J'aurais personnellement tendance à plussoter.
Pour ma part, mais je peux me tromper, heinj'appréhende plutôt C# comme la réponse du berger à la bergère de microsoft vis à vis de sun qui lui "bouffait" de plus en plus de parts avec Java.
Mais bon, c'est surtout une impression que j'ai eu à la sortie de C#, alors que je ne m'y intéressais que pas énormément, et dont je n'ai jamais su me défaire![]()
Pour ma part, VB est belle et bien pour les débutants. En plus pour les débutant en programmation qui voulaient faire la programmation windows... pensez à VB6.
Alors VB.net est venu juste nous donner une version de ces gaillards sur Net, à mon avis pour des raisons commerciales car le monde VBistes est fortement peuplé et MS ne pouvait pas se lancer à partir de zero avec le bébé C# pour le Net.
C#, ahh C#; lui est le langage de .NET (vous pouvez toujours demander, je ne mens pas!), il est né pour et avec cette technologie. Cependant pour un débutant en .Net il est fortement conseillé, et même très fortement conseillé, de faire C# car, dites vous que dès la première ligne de code que vous taperez c'est du .NET!
Ce qui n'est pas le cas avec vb.net puisque déjà ce monde (je parle du monde vb.net) est rempli des vbistes venant de la version 6; ils sont très souvent amenés à des pratique de cette version au lieu de Net puisque ces pratiques encore dispo pour des raisons toujours commerciales (voir en haut)..
Il semble aussi que, ça je l'écris avec beaucoup des réserves, C# est plus rapide que VB.net dans certains cas car il y a des bibliothèques écrites en C#... Possible tous de même !
Fais ton choix ! Mais moi je te propose C#.
Complètement fauxC# est plus rapide que VB.net dans certains cas car il y a des bibliothèques écrites en C#
A code source similaire, le code compilé C# est à 99,9% identique à celui de VB.Net. Ne pas oublier que le code compilé n'est pas directement executable, il s'agit en fait d'un code source intermédiaire en langage IL qui lui sera interprété par le framework lors de l'exécution.
Normalement, pour du code identique en .Net, quelque soit le langage utilisé (VB, C#, Delphi, .....), le code compilé (IL) obtenu est quasiment totalement identique.
Quant aux bibliothèques, tu parle certainement du framework. Pour info, s'il est vrai qu'il est codé globalement en C#, certains bouts de code sont en VB.Net, même dans le framework.
Pour compléter la réponse de sevyc64 je dirais même que le seul cas où VB.Net à tendance à être plus lent que C# c'est justement dans le cas d'utilisation de ces fameuses méthodes venant du VB6, et encore là ça se mesure surement en micro-secondes.
D'autant plus que contrairement à ce que beaucoup pensent même ces méthodes là sont devenues objets même si ça reste transparent (justement pour le besoin de comptabilité ascendante, je m'explique avec un exemple:
Prenons le cas de la méthode MsgBox qui a sa contrepartie en C# en utilisant une des méthodes Show de la classe MessageBox ; ce qu'il faut savoir c'est qu'en fait désormais (je ne pourrais par contre préciser depuis quand avec certitude il me semble depuis VS2005 tout de même) elle fait partie de la classe Interaction, classe qui a un attribut StandardModule qui d'après ce que j'en constate permet de pouvoir appeler ces méthodes statiques sans passer le nom de la classe (concession faite à la POO pour la comptabilité) et j'irais même un peu plus loin en observant le code de plus près (merci Reflector) on se rend compte que mis à part quelques vérifications sur le paramètres de la méthode, l'appel se résout en un MessageBox.Show.
Donc oui, je suis le premier à dire qu'il vaut mieux éviter d'utiliser ces méthodes dans de nouveaux projets, après dire "bouh c'est pas objet c'est du VB6" plus vraiment
Note: Ceci était un communiqué du CRVMTCST (Comité pour la Reconnaissance du VB.Net au Même Titre que C# Sans Troll)![]()
Certainement...
Soit c'est identique. Soit ce n'est pas identique mais pas les deux !Normalement, pour du code identique en .Net, quelque soit le langage utilisé (VB, C#, Delphi, .....), le code compilé (IL) obtenu est quasiment totalement identique.
Mais quand aux restes... Le choix se porte bien sur le C# !
Un langage qui nécessite des mots clefs totalement inutiles, comme le Dim pour déclarer une variable (le truc qu'on fait jamais en programmant) ne peut pas être un bon langage.
A partir de là ... C# est forcément meilleur.
J'ai appris la prog avec VB.NET, je l'ai oublié le plus vite possible dès que je me suis rendu compte à quel point il était mauvais. Beaucoup trop lourd et pataud.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager