Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Que choisir ? C# , VB.NET, C++, Delphi ? pourquoi ?
    Mise à jour 09/08/2013

    Ce sondage a été renouvelé pour 2013. Venez participer, cela se passe ici :
    Quel est le meilleur langage pour .NET selon vous ?



    Allons y lançons le débat. Quel est le meilleur langage pour .NET ?
    C# ,VB.NET , C++ ou Delphi ?

    Pourquoi avez vous choisi l'un ou l'autre ?
    Pour quelles raisons ?
    Pour quels besoins ?
    Quelles sont vos expériences positives ou négatives concernant ces 2 langages ?
    Quels sont leurs forces et leur faiblesses ?
    Qu'est ce qui est présent ou absent dans l'un ou l'autre et inversement ?
    Vers lequel de ces deux langages se tourner selon que lon est un développeur VB, ou C++, Delphi ou autre ?

    Nous ferons surement un article qui synthétisera tout ça !

    Merci d'avance pour vos avis.

    moi c'est Louis-Guillaume, ni Louis, ni Guillaume mais Louis-Guillaume et je n'aide pas ceux qui écorchent mon nom

  2. #2
    Membre expérimenté
    Je n'ai pas poussé les deux langages, donc difficile à dire. De ce que j'ai pu lire et voir, le C# reste en globalité le langage .NET mais il faut savoir que des fonctionnalités VB.NET n'existe pas en C# entre autre la fonction Redim et Redim Preserve mais qui peut être remplacée par la création d'un tableau plus grand puis une copie grâce à la méthode Array.Copy

    Pour les opérations basiques, VB.NET a l'air plus rapide sur des entiers et longs que C#. Par contre pourles flottants C# est plus rapide. Donc l'un ou l'autre difficile de choisir.

    Pour ma part je programme en C# car le module de génération de documentation est très pratique ainsi que l'auto-complétion pour la doc avec les ///. L'autre raison est que je maintiens des programmes VB6. Donc pour éviter de me mélanger les possibilités de VB6 et VB.NET je programme en C#.
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  3. #3
    Rédacteur

    C# est un langage neuf, conçu pour .Net. Il n'a pas un long passé comme VB, et ses concepteurs ont donc pu partir sur des bases saines.

    La syntaxe de C# est très proche de celle de C++ et Java. Donc un programmeur C++ ou Java préfèrera C# à VB.Net. Et un programmeur qui ne connait pas C++ ou Java pourra apprendre plus facilement ces deux langages s'il connait déjà C#.

    C# permet d'écrire du code non managé, et supporte la surcharge des opérateurs. Pas VB.Net.

    Et même si j'aime bien la syntaxe de VB, celle de C# est un peu moins lourde.

  4. #4
    Membre du Club
    Je préfère le C#
    Je comence en c#, mais je trouve que le vb n'est pas assez strict
    Busy 999

  5. #5
    Membre expérimenté
    Qu'appelles tu moins strict ? Peux être plus précis et donner des exemples ?
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  6. #6
    Membre à l'essai
    Pour ma part, j'ai appris VB sur le tas, apres avoir étudier C++ et Java, utilisant du javascript coté client, je trouve la syntaxe VB assez furstrante, c'est une des raisons pour lesquels je passe à C#, la syntaxe étant très "classique" (== syntaxe C, reprise dans de nombreux langages) je ne mélange pas les pinceaux passant d'un langage a un autre (cela pet toutefois aussi êtresource d'erreur).

    Les possibilités de documentations de C# semblent également très interressantes, mais je ne les ai pas encore testés.

  7. #7
    Expert confirmé
    J'ai fais beaucoup de VB.NET et un peu de C#.

    VB.NET m'a séduit car j'avais déjà fais du VB6 et que la syntaxe de VB.NET reste trés proche du BASIC. Je trouve donc la syntaxe plus simple. Je regrette par contre qu'on ne puisse pas documenter ses classes comme en C# mais des projets open source sont en cours pour palier ce "manque". Au niveau des performence je pense qu'il n'y a pas vraiment des grosses différences. En effet, avec .NET que l'on fasse du C# ou du VB.NET, tout est compilé en CLR. Les différences de performances seraient donc dues au compilateur qui suivant le langage génére un CLR plus ou moins optimisé. Dans certain cas C#, une procédure en C# sera plus rapide à l'execfution, dans d'autre ce sera la procédure en VB.NET, mais aucunne différence de performance trés significative et globalement, un programme entier en C# ou en VB.NET sera aussi rapide à l'exécution.

    Par contre, il y a un point qui pour moi est trés important qui n'a pas été abordé. VB.NET est un langage propriétaire de microsoft donc tous les outils pour programmer en VB.NET seront fournis par microsoft et donc par conséquent pour .NET.

    Le C# lui a des spécifications publiques : http://www.ecma.ch/publications/standards/ECMA-334.HTM

    Chacun peu donc faire son compilateur C#. Borland va même faire un EDI pour le C# : http://www.developpez.net/forums/vie...ic.php?t=57410

    Cet EDI pourra utilisé le framework .NET mais aussi des classe de l'EDI de borland. Ce que je veux dire c'est que le C# dépasse largement les frontières du framework.NET : vu que les spécifications sont publiques rien ne vous empèche d'utiliser un framework "maison" avec C#. C'est un peu ce qui se passe avec le projet go-mono qui est un framework qui ressemble au framework .NET de linux.

    Pour conclure je dirais :
    Si vous ne faites et voulez faire que du .NET
    Si vous venez de VB6 ou un autre langage BASIC, orientez vous vers VB.NET.
    Si vous vennez de java ou de C++ orientez vous vers C#.

    Par contre, à l'avenir d'autre solutions que le framework .NET vont voir le jours pour C#...


    wait and see

  8. #8
    Membre expérimenté
    J'ai une préférence pour le C# car j'ai beaucoup pratiqué le C++, sa syntaxe m'est dons assez familière.

    Le débat est vaste et je crois qu'il n'y a pas de réponse dans l'absolu. Le choix dépend surtout du vécu de chacun. Les utilisateurs de Visual Basic vont forcément se tourner vers VB .Net en pensant que l'apprentissage en sera facilité. Pour ma part, je n'en suis pas convaincu, VB .Net est tout de même trés différent de Visual Basic. Les utilisateurs de Java et de C++ vont plutôt utiliser C#.

    Pour ce qui est des performances, tu as très bien répondu globalement les performances doivent être similaires.
    Pour tout savoir sur .Net :
    http://dotnet.developpez.com/FAQ.NET/

    Pour les débutants en ADO .Net :
    http://dotnet.developpez.com/tutoriels/ado1/
    http://dotnet.developpez.com/tutoriels/ado2/

  9. #9
    Nouveau Candidat au Club
    En fait, quelque soit le language utilisé ( vb.net, c#,c++ ) sous une plaforme .net auront des performence absolument IDENTIQUE pour la simple raison que le code assembleur produit est exactement identique.

    Evidement pour arriver à ca, certaine caractéristique des languages ont été zappé ( comme l'héritage multiple en c++ ) afin d'arriver à une total compatibilité.

    il y a néanmoins une question que je me pose, combien de temps cela prend il pour compiler un projet ?

    Sur d'autre compilateur, la compilation de projet conséquent prenait du temps. Dans le .net, il y a une couche suplémentaire qui est la traduction du code en common language.

    est ce que cela ralenti énormément la compilation ?

  10. #10
    Membre expérimenté
    Citation Envoyé par Vincent_Moreira
    En fait, quelque soit le language utilisé ( vb.net, c#,c++ ) sous une plaforme .net auront des performence absolument IDENTIQUE pour la simple raison que le code assembleur produit est exactement identique.
    Nop, le compilateur VB.NET et différent de celui de C#, et quelques différences de performances sont visibles mais rares. L'exemple le plus flagrant c'est les entiers (long) et les flottants (double). Dans les deux langages on n'a pas le même temps pour effectuer des calculs sur ces deux types de données.
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  11. #11
    Futur Membre du Club
    Perso, je viens de VB6 (depuis VB4) et j'ai entièrement zapper côté C#
    La syntaxe est beaucoup moins lourde, demande plus de sérieux (casse sensitive par ex) et s'apprend très vite ... donc pourquoi pas!

  12. #12
    Nouveau Candidat au Club
    Pour ma part j'utilise les deux, personnelement j'utilise C# et au travail j'utilise vb.net

    Mais le mieux c'est d'utiliser le language où on est le plus à laise...

  13. #13
    Membre éprouvé
    En autre atout pour C# n'est pas technique mais commercial.

    Pour des raisons un peu historique et même si aujourd'hui cela ne correspond plus rien techniquement parlant, : C (fut-il Shap), c'est plus vendeur que Basic (fut-il .Net)

    Combien de fois ai-je vu la mine déçu de mes clients quand ils apprennent que leur produit, dont ils sont pourtant content est écrit, en BASIC.
    Par contre quand on leur parle de C ou Pascal, cela fait tout de suite plus sérieux.

    Idem dans CV. Pour un certain nombre de décideurs (certain n'ont jamais vu un clavier) BASIC reste synonyme d'amateur alors que C a une conotation pus sérieuse. A moyen terme, je pense qu'un programmeur C# se vendra mieux qu'un programmeur VB.

    Ne voulant pas me lancer dans un technologie balbutiante, mon dernier projet est en Delphi (alors que j'étais programmeur VB).

    Mais si je devais m'investir dans .Net, les 2 langages (C# et VB) ne présentant pas de différences techniques énormes, je pense que j'irais plus vers le C#, essentiellement pour des raisons commerciales et de valorisations personnelles.
    --
    vanquish

  14. #14
    Expert confirmé
    "Commercialement" tu dis que tu fais du .NET et si tu maitrise un des deux lagages parfaitement, l'apprentissage de l'autre est à mon avis qu'une simple formalité qui prend peu de temps!

  15. #15
    Nouveau Candidat au Club
    vb pour faire une maquette
    pour ma part je recommande vivement vb à ceux qui ne sont pas des purs et durs du C++ et qui veulent GAGNER DU TEMPS

    Ce qui suit va faire hausser des épaules les "gros bras du C++", mais j'insiste pour leur dire que je ne vois aucune "virilité" a s'emmerder avec un langage complexe (et source d'erreurs).

    Et pour moi C# ne va pas assez loin, il veut trop ressembler a C++.
    Il nous emmerde encore avec sa gestion des types, ses accolades, ses point virgule et j'en passe.
    Je viens encore de passer 2 ans vec 1 projet ATL/com/C++...ahh les conversions (chaines...), unicode, et j'en passe...que de temps perdu.

    L'interet d'un programme n'est pourtant pas du tout là !!

    VB ne faisait pas sérieux quand il s'agissait de parler performance, pas fiabilité.
    De plus il etait (trop) restrictif en termes de librairies natives et imposait un recours a des passerelles + ou - contaignantes vers les lib win32.
    Enfin il etait trop limité ( pointeurs, heritage...) a force de faire simple.

    Franchement, moi j'en ai rien a faire d'une gestion stricte des types, et ça fait des années que je m'emmerde avec ça !
    Que de temps perdu avec les chaines de caracteres, les pb de conversion, l'Unicode, et j'en passe !

    Alors C# pour quoi faire ?
    On peut supposer justement que la gestion stricte des types optimise un peu les perfs...Il y a d'autre differences ( cf MSDN ).

    Mais vive les langages "modernes" et à bas les contraintes !!

  16. #16
    Membre expérimenté
    Comme il a été dit redit reredit, il n'y a aucune diff entre le C# et VB.NET pour ce qui est de .NET.
    Ton histoire de type est la même en C# et VB.NET !!

    Quant à l'histoire des points virgules c'est un faux prétexte. Pourquoi ? A quoi bon s'embetter à faire un "Dim i As Integer" alors que je peux faire un "int i;". Je peux te trouver des avantages et inconvenients aux deux langages. Comme neo l'a dit, c'est juste une histoire de goût. Que ce soit en C# ou VB.NET tu tomberas sur les mêmes problèmes : donc arrêtez de dénigrer un langage sans avoir réellement programmé avec. Je ne dis pas que je maitrise les deux langages mais j'ai eu l'occasion de faire des projets avec les deux langages, et ma conclusion et que les problèmes sont les mêmes. C'est juste une histoire de goût.

    Je parle uniquement pour le dev .NET pur et non de code managé ou pas.
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  17. #17
    Membre averti
    heu il faut quand meme faire des cast en C# plus souvent qu'en VB.NET non ? ou alors j'ai revé

  18. #18
    Membre expérimenté
    Pour les mêmes dev, je fais autant de cast d'un côté que l'autre : peut être un réflexe mais par exemple pour le drag & drop sans le CType ça ne marche pas en VB.NET. Donc cast oblige.
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_

  19. #19
    Membre averti
    je code depuis des mois en VB.net sans un seul cast... etrange

  20. #20
    Membre expérimenté
    ohoh

    Ben là tu m'étonnes ! Comme je l'ai dit, peut être un réflexe, mais il me semble qu'il y a des cas où ça ne marche pas sans. J'essaierai de retrouver un exemple et je te dis ça.
    1)http://www.developpez.com/cours/
    2)Recherche
    3)Posez votre question en suivant les règles
    _oOo-DrQ-oOo_