IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Affichage des résultats du sondage: Quel langage choisir pour Dotnet ?

Votants
1020. Vous ne pouvez pas participer à ce sondage.
  • C#

    611 59,90%
  • VB.NET

    206 20,20%
  • C++

    59 5,78%
  • Delphi

    84 8,24%
  • Autre (précisez)

    9 0,88%
  • Sans opinion

    51 5,00%
Dotnet Discussion :

Que choisir ? C# , VB.NET, C++, Delphi ? pourquoi ? [Débat]


Sujet :

Dotnet

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par Babylon
    question lisibilité de langage ça dépend du background de chacun
    Oui ok, c'est une question d'habitude. Mais en étant tout à fait objectif, VB est plus lisible. En régle générale les trucs du genre [Sub / End Sub], [If / Else / End if], etc...permettent de plus vite s'y retrouver dans un code complexe et inconnu. T'as qu'à supprimer l'indentation pour t'en convaincre.

    Citation Envoyé par Babylon
    With / end Width : c'est quelque chose que je n'aime pas du tout, ça doit aussi venir du background
    Ben pourtant, bonjour l'économie de frappe dans beaucoup de cas...
    J'aime mieux ça que le copier/coller, et que le chercher/remplacer quand par malheur le nom de l'objet change pour une raison ou pour une autre.


    Citation Envoyé par Babylon
    Arguments optionnels : du point de vu de la POO ce n'est pas mieux de faire une "surcharge" (encore une fois je ne suis pas sûr d'utiliser le bon terme) de méthode ?
    Je ne suis pas certain que cette question soit du ressort des principes de POO.
    Dans la pratique, les arguments optionnels sont un confort, rien de plus.
    En C#, tu vas surcharger tes méthodes autant de fois que nécessaires, chaque méthode copiera les paramètres dans des variables de class et appellera une méthode "finale"...

    En VB tu n'écris qu'une seule méthode...c'est un poil plus léger.
      0  0

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par Keihilin
    Citation Envoyé par Maniak
    L'équivalent en VB.NET étant de tout encastrer dans des blocs Try/Finally + appel manuel à Dispose, c'est beaucoup trop lourd pour être utilisé en pratique.
    J'suis pas d'accord. Try/Finally plus lourd que Using ? C'est ton aversion pour VB qui te fait parler là :)
    Euh non, vraiment pas :)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    using ( Toto toto = new Toto() )
    {
      ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Try
      Dim toto As Toto = New Toto()
      ...
    Finally
      toto.Dispose()
    End Try
    Non seulement c'est plus lourd (lourdeur innée de la syntaxe VB :), mais surtout, ça oblige à appeler Dispose à la main. Faut y penser. C'est pas forcément gagné :)
    Avec using, on n'a plus à y penser, et tout ce ki réduit ce à quoi il faut penser est sacrément positif :)

    Citation Envoyé par Keihilin
    Je citerais quand même quelques points à l'avantage de VB :

    :arrow: With / End With
    Beurk. S'il y a de gros blocs qui nécessitent l'emploi de With, ça indique le besoin d'une méthode. Si ce sont de petits blocs, ça gêne la lecture plus qu'autre chose.

    Citation Envoyé par Keihilin
    :arrow: Le code VB est (avis personnel souvent partagé) un peu plus facile à (re)lire...
    Autre avis personnel souvent partagé : oula non, c'est tellement verbeux que c'est extrêmement lourd à lire :)

    Citation Envoyé par Keihilin
    :arrow: Arguments optionnels
    L'overloading est fait pour ça dans un contexte OO. Les arguments optionnels sont un reste de programmation procédurale :)
      0  0

  3. #3
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 8
    Par défaut
    je pense qu'il serait bon d'arrêter là, sinon ça va repartir comme au début de la discution.
      0  0

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par Keihilin
    Mais en étant tout à fait objectif, VB est plus lisible.
    Euh non, vraiment pas :)
    Y a pas d'objectivité là-dessus. C'est du 100% subjectif :)
    Quand je dis que pour moi la syntaxe du VB est beaucoup moins lisible, c'est vraiment ce que je pense hein, pas pour le plaisir de critiquer VB. Et je ne suis pas le seul dans ce cas :)

    C'est très certainement une question d'habitude, et la syntaxe du VB est très certainement plus facilement compréhensible pour quelqu'un qui vient de débarquer en programmation. Maintenant à moins que ce quelqu'un veuille rester au stade de débutant, c'est pas quelque chose qui devrait le refroidir (surtout quand on y gagne en clareté après, ça aussi c'est subjectif mais ça ne m'empêche pas d'en être totalement convaincu :)

    Citation Envoyé par Keihilin
    Citation Envoyé par Babylon
    :arrow: With / end Width : c'est quelque chose que je n'aime pas du tout, ça doit aussi venir du background
    Ben pourtant, bonjour l'économie de frappe dans beaucoup de cas...
    J'adore entendre parler d'économie de frappe avec la syntaxe du VB, t'as pas idée à quel point ça a tendance à me plier de rire instantanément :)

    Et donc cf mon précédent post pour ce point.

    Citation Envoyé par Keihilin
    Citation Envoyé par Babylon
    Arguments optionnels
    Je ne suis pas certain que cette question soit du ressort des principes de POO.
    Les arguments optionnels signifie qu'une même méthode pourrait répondre à plusieurs interfaces. Ça ne cadre pas. Ça implique aussi que les méthodes avec paramètres optionnels doivent tester si tel ou tel paramètre est présent ou non. Super le confort.

    À ne pas confondre avec les paramètres par défaut comme en C/C++. Dans ce cas-là, les paramètres sont toujours là, il n'y a pas de traitement particulier à faire.

    Ce n'est pas du ressort de la PO. C'est du ressort de la (non-)propreté du code :)

    Citation Envoyé par Keihilin
    En C#, tu vas surcharger tes méthodes autant de fois que nécessaires, chaque méthode copiera les paramètres dans des variables de class et appellera une méthode "finale"...
    Vi, et la méthode finale saura que tous les paramètres sont bien présents, sans avoir à faire de cas particuliers pour ça. Ce qui est bien plus propre. 1 méthode = 1 façon de l'appeler.

    Citation Envoyé par Keihilin
    En VB tu n'écris qu'une seule méthode...c'est un poil plus léger.
    Enième facilité syntaxique qui pousse dans la direction des mauvaises pratiques :)
      0  0

  5. #5
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par Maniak

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    using ( Toto toto = new Toto() )
    {
      ...
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Try
      Dim toto As Toto = New Toto()
      ...
    Finally
      toto.Dispose()
    End Try
    Non seulement c'est plus lourd (lourdeur innée de la syntaxe VB , mais surtout, ça oblige à appeler Dispose à la main. Faut y penser. C'est pas forcément gagné
    Avec using, on n'a plus à y penser, et tout ce ki réduit ce à quoi il faut penser est sacrément positif
    Blablabla...Mais quelle mentalité d'assisté ! J'y crois pas !


    Citation Envoyé par Maniak
    With / End With
    Beurk. S'il y a de gros blocs qui nécessitent l'emploi de With, ça indique le besoin d'une méthode. Si ce sont de petits blocs, ça gêne la lecture plus qu'autre chose.
    Mauvaise fois évidente du CSharpFanatiste (oui, j'fais des néologismes si j'veux !)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    With myObject.mySubObject
     
    .Property1=1
    .Property2=2
    ...
     
    End With
    Tu trouves que ça gêne la lecture ?
    Je pense que c'est juste une faute de frappe de ta part. Tu voulais écrire "ça facilite la lecture en aérant le code", mais tes doigts ont dérapé...T'excuse pas, je t'accorde le bénéfice du doute.


    Citation Envoyé par Maniak
    Citation Envoyé par Keihilin
    Le code VB est (avis personnel souvent partagé) un peu plus facile à (re)lire...
    Autre avis personnel souvent partagé : oula non, c'est tellement verbeux que c'est extrêmement lourd à lire
    Bon, on va arrêter de débattre sur ce point précis, s'agissant définitivement d'une question de goûts et de couleurs (et de myopie avancée pour ceux qui trouve le code VB illisible)

    Citation Envoyé par Maniak
    L'overloading est fait pour ça dans un contexte OO. Les arguments optionnels sont un reste de programmation procédurale
    Je ne vois pas en quoi les arguments optionels iraient à l'encontre des principes POO ?!

    J'suis sûr que si C# les avaient mais pas VB tu trouverais ça très bien ! Hein ?! Avoue !

    Citation Envoyé par Babylon
    je pense qu'il serait bon d'arrêter là, sinon ça va repartir comme au début de la discution.
    Ben que ça reparte...Un bon débat inutile entre gens de bonne compagnie, ça nous change du HelpDesk !
      0  0

  6. #6
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 8
    Par défaut
    moi je dis ça, je dis rien.

    pour les params optionnels, comme l'a dit Maniak, c'est bon pour le procédural pas pour la POO, sinon l'overloading n'aurait pas été mis en place.

    et pour ce qui est de la lisibilité, je le crie haut et fort : LE VB EST ILLISIBLE (enfin pour moi)
      0  0

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par Keihilin
    Blablabla...Mais quelle mentalité d'assisté ! J'y crois pas ! :D :wink:
    C'est un des principes auxquels je m'efforce de tenir le plus :)
    Y a suffisamment de choses à gérer pour ne pas s'encombrer de trucs inutiles :)

    Ah pi j'avais oublié un autre défaut du Try/Finally : les exceptions c'est gentil, mais c'est pas super performant :)

    Citation Envoyé par Maniak
    Mauvaise fois évidente du CSharpFanatiste (oui, j'fais des néologismes si j'veux !) :D
    Non non, ça c'est un principe de POO (enfin plutôt un principe de refactorisation, j'ai tendance à relier les deux :).
    Plein de lignes de suite passant par des accesseurs à un objet -> méthode à ajouter dans la classe (surtout quand il s'agit de copier les champs etc :)

    Et oui, je trouve moins lisible d'avoir des .BlaBla que d'avoir le nom de l'objet juste devant. Bien plus clair comme ça, et intellisense & co ne sont pas faits pour les chiens. Y a jamais besoin de taper le nom complet chaque fois, alors le gain en temps de frappe est discutable :)
    (là je suis aidé, j'ai Visual Assist pour faciliter grandement l'écriture de code :)

    Et oui, c'est encore un point subjectif, donc là on peut éviter de rallonger le topic pour rien, ça a quand même peu d'importance (même si les gens sensés peuvent argumenter que la syntaxe illisible du VB ne nécessite même pas de débat :)

    Citation Envoyé par Keihilin
    Je ne vois pas en quoi les arguments optionels iraient à l'encontre des principes POO ?!
    1 méthode = 1 forme d'appel :)

    Citation Envoyé par Keihilin
    J'suis sûr que si C# les avaient mais pas VB tu trouverais ça très bien ! Hein ?! Avoue ! :D
    J'aimerais beaucoup que le C# aient les paramètres par défaut oui. Mais les paramètres optionnels, qu'ils restent dans le VB et qu'ils meurent avec :)

    Citation Envoyé par Keihilin
    Ben que ça reparte...Un bon débat inutile entre gens de bonne compagnie, ça nous change du HelpDesk !
    Surtout dans des journées comme aujourd'hui :)
      0  0

  8. #8
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par Maniak
    J'adore entendre parler d'économie de frappe avec la syntaxe du VB, t'as pas idée à quel point ça a tendance à me plier de rire instantanément
    Ouais, je ne peux qu'être d'accord. La synthaxe C# est beaucoup plus légère. Alors justement, les trucs comme With/End With qui permette à VB d'alléger un peu la sienne c'est du tout bon...

    Citation Envoyé par Maniak
    Les arguments optionnels signifie qu'une même méthode pourrait répondre à plusieurs interfaces. Ça ne cadre pas.
    Euh...faux ! CF : Point suivant

    Citation Envoyé par Maniak
    Ça implique aussi que les méthodes avec paramètres optionnels doivent tester si tel ou tel paramètre est présent ou non. Super le confort.

    À ne pas confondre avec les paramètres par défaut comme en C/C++. Dans ce cas-là, les paramètres sont toujours là, il n'y a pas de traitement particulier à faire.
    Ben ça tombe bien que t'en parles, parce qu'un paramètre optionnel en VB.net ça s'utilise comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    Public Sub DoSmth(ByVal p1 As String, Optional p2 As String = "ABC")
    ...
    End Sub
    et l'indication d'une valeur par défaut est OBLIGATOIRE !
    Donc elle est où la différence avec les paramètres par défaut du C++ ?
      0  0

  9. #9
    Expert confirmé
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par défaut
    j'aurais jamais du dévérouiller le thread

    Bon moi aussi je m'y remet, car je vois que quand même je ne suis pas le seul à trouver le VB.NET plus lisible que du C# !!!!

    Déjà ne serais ce que pour attacher une méthode à un events:

    en VB.NET :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public Sub rechercher_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rechercher.Click
    En C#
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.DataGrid1.ItemCommand  += new System.EventHandler(this.DataGrid1_ItemCommand);
    au chargement

    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    public void rechercher_Click(System.Object sender, System.EventArgs e) 
    { 
    }
    en gros j'ai 50 évènement à gérer je me retrouve avec 50 lignes de déclarations d'évènement au chargement et aprés toutes mes méthodes !!!

    Je veux bien que les puristes veuillent que tous les évènement soit déclarés avant le chargement, mais bon niveau lisibilitée, je vois pas en quoi le C# devient plus lisible ici

    Aprés qu'on me dise que VB.NET est plus "verbeux" soit, mais bon quand on a vs.net et des variable bien nommées, on fait

    et on va chercher ce dont on a besoin avec l'intelisense

    Les try catch et finaly, tu tape try, t'appuis sur la touche entrer et tout le squelette se fait tout seul.

    Toujours au niveau lisibilitée, prennons 2 extraits de code VB.NET et C#

    VB.NET
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    End Try
    End IF
    End Sub
    C#


    Donc VB.NET plus verbeux OUI, mais compensé par l'intellisense quand on a un bon IDE et With/End with. Mais dire que c'est moins lisible c'est de la mauvaise fois
      0  0

  10. #10
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par neo.51
    j'aurais jamais du dévérouiller le thread
    Attend voir, j'ai cru voir marquer "Forum de discussions" quelque part par ici...
    Ah ben oui, c'est bien ça...c'est pas marqué "forum de helpdesk", alors on va pas commencer à vérouiller les débats. fussent-ils complètement inutiles comme celui-ci, mdr !

    Citation Envoyé par neo.51
    Donc VB.NET plus verbeux OUI, mais compensé par l'intellisense quand on a un bon IDE et With/End with. Mais dire que c'est moins lisible c'est de la mauvaise fois
    Ben oui c'est évident...

    Bon, moi j'ai résolu le problème du choix du language, je code directement en MSIL. 8)
      0  0

  11. #11
    Expert confirmé

    Avatar de freegreg
    Profil pro
    Inscrit en
    Août 2002
    Messages
    4 376
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Gard (Languedoc Roussillon)

    Informations forums :
    Inscription : Août 2002
    Messages : 4 376
    Par défaut
    Citation Envoyé par neo.51
    j'aurais jamais du dévérouiller le thread
    Je crois aussi

    Citation Envoyé par neo.51
    Mais dire que c'est moins lisible c'est de la mauvaise fois
    Pour moi aussi, c'est moins lisible!
    Rien ne sert de continuer sur des palabres qui ne menent nul part! Certaines personnes préfèrent lire du VB d'autres (J'en fait parti ) le C#, c'est un fait et personne n'y changera rien!
    C'est un peu comme les goûts et les couleurs. Et croyez-moi coté couleurs, je m'y connais, je suis daltonien!!

    Le principal est de bien structurer son code, c'est tout.

    Citation Envoyé par Keihilin
    je code directement en MSIL.
      0  0

  12. #12
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par freegreg
    Citation Envoyé par Keihilin
    je code directement en MSIL.
    Ouais...Je trouvais le C# beaucoup trop verbeux mdr.

    Non, c'est vrai, les discussions sur la lisibilité c'est une question de goûts.

    D'autre part, les petits points de "facilité" comme le With/End With sont largement gommés par le confort apporté par Visual Studio.

    Maintenant dans la pratique, je pense que le débat peut s'orienter dans 2 directions :

    1. Je suis un développeur, je veux me mettre à Dotnet, quel langage choisir ?

    2. Je suis un chef de projet, je dois démarrer un développement, quel langage choisir ?


    Au 1., je répond sans hésiter : les deux !

    Les principales difficultés dans le passage à .net résident dans l'apprentissage de la POO (si on ne connait pas déjà), et des centaines de classes offertes par le framework.
    Alors une fois que c'est fait, commencer par C# et passer à VB ou l'inverse, c'est l'histoire de 2 jours...

    Je suis consultant, développeur freelance. Des projets, j'en vois passer un certain nombre au cours d'une année, et même au sein d'une même société, il n'y a pas toujours de choix définitif pour un langage ou l'autre...Un jour c'est VB, le suivant c'est C#...Devant un recruteur qui ne s'y connait pas, pouvoir dire qu'on code indifféremment avec l'un ou l'autre est important.

    Pour le point 2.

    Je ne vois pas la nécessité d'imposer un langage. L'important est de pouvoir réutiliser les briques applicatives...alors qu'elles soient en VB ou en C#, quelle importance ?
      0  0

  13. #13
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par Keihilin
    Ouais, je ne peux qu'être d'accord. La synthaxe C# est beaucoup plus légère. Alors justement, les trucs comme With/End With qui permette à VB d'alléger un peu la sienne c'est du tout bon...
    Ou du moins mauvais :)
    (ok j'arrête :)

    Citation Envoyé par Keihilin
    Ben ça tombe bien que t'en parles, parce qu'un paramètre optionnel en VB.net ça s'utilise comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Sub DoSmth(ByVal p1 As String, Optional p2 As String = "ABC")
    ...
    End Sub
    et l'indication d'une valeur par défaut est OBLIGATOIRE !
    Donc elle est où la différence avec les paramètres par défaut du C++ ?
    Tiens, c'est nouveau de VB.NET ça ?
    Bon ben si c'est bien comme ça, on peut donc résumer que les paramètres optionnels de VB6- sont à jeter, et dans VB.NET, malgré la syntaxe toujours aussi lourde, c'est un point positif :)
    (et que les paramètres par défaut sont bien un des trucs qui manquent le plus au C#, sans raison en plus, grmpf :)

    Citation Envoyé par neo.51
    Déjà ne serais ce que pour attacher une méthode à un events:
    ...
    Je veux bien que les puristes veuillent que tous les évènement soit déclarés avant le chargement, mais bon niveau lisibilitée, je vois pas en quoi le C# devient plus lisible ici ;)
    Pas plus lisible non, plus utilisable. Permettant de voir rapidement tous les événements gérés, de qui, par quoi, ainsi que d'y affecter des gestionnaires d'événements d'autres objets. Parce que là, VB.NET repasse sur une syntaxe proche de celle du C#, mais en plus lourd :)

    En C#, c'est clair et net, tout se fait pareil, au même endroit, sans forcer à chercher dans tout le code pour voir où est géré tel événement :)

    Citation Envoyé par neo.51
    Aprés qu'on me dise que VB.NET est plus "verbeux" soit, mais bon quand on a vs.net et des variable bien nommées, on fait
    Les noms de variables ne dépendent pas du langage, donc c'est pas un problème :)

    Citation Envoyé par neo.51
    Toujours au niveau lisibilitée, prennons 2 extraits de code VB.NET et C#
    ...
    Et c'est toi qui parle de mauvaise foi ? :)
    Sans indentation 1) aucun langage n'est lisible, 2) c'est du code de merde (et ça c'est indiscutable hein :), bref c'est totalement hors de propos :)

    Et si tu y mets de l'indentation, repérer des accolades bien alignées est bcp plus rapide et clair que de chercher des mots-clefs.
    Mais on retombe sur l'habitude et les goûts persos, donc basta :)

    Mais bon, sacrée mauvaise foi de ta part sur ce coup-là, honte sur toi :)
      0  0

  14. #14
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    On a tous notre passif de programmeur, franchement la "lisibilite" c'est vraiement un parametre personnel, le but c'est juste d'accepter le fait que d'autres pensent pas comme nous et que personne ne possede la verite vraie unique.

    En resume : retournez bosser ! ( )
      0  0

  15. #15
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Ben tiens, hier soir je me suis amusé à faire un petit test de "productivité" pour comparer C# et VB.net...

    Principe de l'exercice : Ecrire une petite bibliotheque de classes, d'abord dans un des languages en chronométrant, puis dans l'autre.

    J'ai choisi un truc qui permettait d'utiliser un peu tout les types d'objets : des classes, des enums, des exceptions, des évenements...bref, j'ai écrit un p'tit DataAccessHelper introspectif.

    - Pas de problèmes de "reflexion technique", étant un sujet moult fois abordé dans les projets.
    - Mêmes nom de variables pour les deux projets.

    C# : 25mn
    VB.net : 18mn

    Ce qui est drôle, c'est qu'avant de commencer j'imaginais plutôt un résultat inverse. D'expérience je pensais bien que ce serait très proche, mais je voyais la balance pencher en faveur de C#.

    A quoi c'est du ? Ben à Visual Studio, tout simplement.

    L'auto-completion est plus présente avec VB, l'insertion des fin de constructeur automatique est un réèl gain de temps par rapport au {} qui ne sont pas les touches qui tombent le plus naturellement sous les doigts sur un clavier...Sans parler des propriétés d'une classe...en VB.net, tu tapes une lignes et VS te complète toute la structure...Vu que généralement y en a beaucoup des propriétés...

    Donc, malgré sa synthaxe plus {lourde | verbeuse }, VB.net semble quand même plus productif, du moins avec Visual Studio. Il faudrait voir avec d'autre IDE si cela reste vrai.
      0  0

  16. #16
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 8
    Par défaut
    pour ce qui est des accolades je n'ai pas ce genre de problèmes vu que sur les claviers Azerty belge on les a avec altgr 9 et 0.

    PS : et non je ne suis pas belge
      0  0

  17. #17
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par Babylon
    pour ce qui est des accolades je n'ai pas ce genre de problèmes vu que sur les claviers Azerty belge on les a avec altgr 9 et 0.

    Pas besoin d'un clavier azerty belge pour ca : tous les clavier azerty le font avec altgr 9 et 0.
      0  0

  18. #18
    Nouveau membre du Club
    Inscrit en
    Octobre 2002
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 8
    Par défaut
    bah je viens de regarder sur un azerty français et les accolades sont sur altgr 4 et la touche à coté du backspace
      0  0

  19. #19
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    652
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 652
    Par défaut
    Citation Envoyé par Keihilin
    L'auto-completion est plus présente avec VB, l'insertion des fin de constructeur automatique est un réèl gain de temps par rapport au {} qui ne sont pas les touches qui tombent le plus naturellement sous les doigts sur un clavier...
    Aucun problème de mon côté, je tape en qwerty qui est bien plus pratique que l'azerty pour faire du C (ou n'importe quoi d'autre en fait, l'azerty est vraiment minable :). Que ce soit pour les accolades, les ponctuations, les chiffres, etc.

    Citation Envoyé par Keihilin
    Il faudrait voir avec d'autre IDE si cela reste vrai.
    Même pas besoin d'autres IDE. Plugin Visual Assist -> intellisense surboosté, beaucoup, beaucoup plus rapide pour rédiger que l'intellisense de base.

    Sinon, la productivité, je ne crois pas que ça puisse se résumer à la vitesse de production de lignes de code. Loin de là même.

    Exemple bête que j'ai eu l'occasion d'expérimenter plusieurs fois : une classe en VB.NET qui comporte un vingtaine ou trentaine de propriétés, et la même en C#. Ok, en VB.NET ça remplit les End Property/End Get/End Set tout seul, on peut gagner un peu de temps de rédaction grâce à ça. En revanche, on se retrouve avec des fichiers 2 fois plus longs (à peine exagéré si la classe en question contient essentiellement ces propriétés).

    Exemple type, pour des propriétés très courantes se contentant de donner accès à des membres :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    VB :
    Public Property Toto() As String
      Get
        Return _toto
      End Get
     
      Set ( ByVal toto As String )
        _toto = toto
      End Set
    End Property
     
    C# :
    public string Toto
    { get { return _toto; } set { _toto = value; } }
    Ça, plus un saut de ligne entre propriétés, pour 20 propriétés, ça fait 200 lignes en VB.NET, 60 en C#. 80 si on met get et set sur deux lignes. Tout sur une seule ligne est une option aussi (40 lignes), mais là c'est un peu excessif quand même (enfin ça dépend des cas, ça peut rester très lisible, surtout si on aligne bien les noms d'une ligne à l'autre, chose qu'on ne peut pas faire en VB.NET, formatteur automatique oblige).

    C'est légèrement plus pratique pour s'y retrouver après coup, non ? :)

    Question lisibilité, c'est toujours subjectif, mais franchement, dans ce cas bien particulier, je vois mal comment on peut considérer la version VB.NET plus lisible (pas pour une propriété hein, pour 20). En plus de l'éternelle lourdeur de syntaxe. "Bonjour, je m'appelle Roger, je voudrais faire une propriété qui renvoit et modifie une chaine. J'y accède sans parenthèses, mais il faut quand même les mettre dans la déclaration. J'ai déjà dit qu'elle représente une chaine, mais il faut quand même le répéter pour le Set. Je ne mets qu'un Get pour qu'elle soit en lecture seule, mais il faut quand même ajouter ReadOnly."

    Ok, ça se remplit plus vite, super, mais mes principales récriminations contre le côté verbeux du VB ne viennent pas du temps que ça met à taper, mais de l'impression de lire un roman particulièrement inintéressant après-coup :)
    Les propriétés sont mon exemple favori pour ça, tellement l'écart est énorme. Et qu'on m'explique pourquoi MS empêche spécifiquement la possibilité d'utiliser ':' pour mettre Get et End Get sur la même ligne quand le code tient en 2 mots.

    Dans mon cas, le temps éventuellement gagné pour pondre le code (minime, qwerty, VAssist et bonne vitesse de frappe aidant) est très, très largement compensé par le temps perdu en relecture. Et là, c'est à nouveau totalement subjectif :)
      0  0

  20. #20
    Membre émérite

    Profil pro
    Inscrit en
    Février 2004
    Messages
    862
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2004
    Messages : 862
    Par défaut
    Citation Envoyé par Maniak
    Même pas besoin d'autres IDE. Plugin Visual Assist -> intellisense surboosté, beaucoup, beaucoup plus rapide pour rédiger que l'intellisense de base.
    J'connais pas ce plugin...C'est vraiment aussi bien que ça ? On le trouve où ?

    Concernant les propriétés, j'suis assez d'accord avec toi sur le principe "d'inutilité" de toutes ces lignes...

    Ca ne me gêne pas pour la lecture, mais c'est fastidieux à taper, même avec VS qui mâche le boulot.

    Pour gagner du temps, j'utilise une macro pour construire cette partie de mes classes. J'ai juste à déclarer :

    Private _Toto as String

    et la propriété est créée toute seule sur demande (ctrl+P,ctrl+W = Read/write, ctrl+P,ctrl+R= Read only)...C'est peut être un des trucs qui me fait gagner le plus de temps...
      0  0

Discussions similaires

  1. Que choisir : Delphi ou C++ ?
    Par Gwipi dans le forum Débats sur le développement - Le Best Of
    Réponses: 30
    Dernier message: 18/07/2010, 11h43
  2. Que choisir ? Delphi ou Java ?
    Par Jean-Yves dans le forum Débats sur le développement - Le Best Of
    Réponses: 89
    Dernier message: 19/04/2008, 15h40
  3. [VB.Net] Que choisir tableaux ou collections ?
    Par Pasiphae dans le forum VB.NET
    Réponses: 2
    Dernier message: 16/03/2006, 15h35
  4. [D2005] - Que choisir Winform ou VCL.NET ?
    Par RamDevTeam dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 07/02/2006, 05h25
  5. Que choisir ? : ASP ou ASP.NET ?
    Par Allen dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 24/01/2006, 14h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo