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

  1. #201
    Membre habitué
    Avatar de crjo
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Octobre 2004
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 81
    Points : 132
    Points
    132
    Par défaut
    salut à tous,

    Après 5 ans d'expériences professionnelle en C/C++, j'ai découvert dotnet et j'ai été immédiatement séduit par C#.

    C# est très propre, comparé à C++. Je vais pas me lancer dans l'enumération des avantages, mais je trouve que ceux ci sont vraiment un plus :

    • pas de pointeurs. Le code n'en est que plus lisible (et si on veut vraiment utiliser des pointeurs pour des besoins de bas niveau ou que sais-je, on peut toujours écrire un petit bout en C++ non managé, si j'ai bien compris)
    • un seul fichier source (plus besoin d'un fichier entête *.h). Si on doit modifier la signature d'une méthode, c'est immédiat. Ca simplifie la documentation également
    • le garbage collector. Plus de memory leak (ou fuite mémoire) avec ça
    • les concepts de délégué et d'événement. Les delegués (delegate) remplacent avantageusement les pointeurs de fonctions en C/C++.
    • homogénéisation de la notion d'objet. Tout est objet. Même un entier ou une chaîne de caractère.
    • meilleur typage. Il y a des erreurs qu'on pouvait faire en C++ qui ne passeront pas à la compilation en C#
    • mécanisme d'assertion et d'erreur bien pensé. Si on accède hors du rang d'un tableau par exemple, on aura une belle erreur au run time qui explique que c'est un problème "out of range" et pas un satané "Violation access error 0x08830003" beaucoup moins explicite.


    Bon, j'arrête ou je ne m'arrêterai plus

    En tout cas, ça donne au final un développement super rapide et plus facile à maintenir.

    Bon, maintenant, j'ai jamais travaillé sur un vaste projet dotnet. Certains disent "usine à gaz", peut-être, ch'sais pas, c'est pas le sujet de toute manière. Mais si c'est vrai, je ne pense pas que ce soit dû à la nature inhérente du langage C#.
      0  0

  2. #202
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 37
    Points : 20
    Points
    20
    Par défaut
    .Net Is magic
      0  0

  3. #203
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    J'ai beaucoup pratiqué Delphi et c'est un langage que j'ai apprécié à cause de la simplicité de la compréhension de sa structure et de l'extension objet qu'il offre. J'ai utilisé du C++ et java seulement à cause de leurs extensibilités avec les autes langage mais leur structure n'étant pas aussi facile à cerner par un débutant. pour ce qui du C# je l'ai appris pour les besoins professionnels et sa structure fait la synthèse de Delphi (par exemple using qui remplace uses...); Java dans l'utilisation des tableaux (même synthaxe)... C++ dans les structures de contrôle (if, do..while,for,switch..case..). Cependant c# à une stucture propre dans l'utilisation des tableaux( foreach) dans tous les cas le meilleur langage est celui que l'on maîtrise le mieux.
    Pour ma par Je prefère C++ et Java à cause de leur portabilité si cela peux se réaliser avec C# alors est peut être meilleur.
    A+
      0  0

  4. #204
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    J'ai beaucoup développé sous linux en C/C++ et Java.
    J'ai été introduit à DotNet lors d'un stage pour mais études mais malheureusement (ou pas), on ne m'a pas laissé le choix du langage. Donc je programme en VB.NET.

    Il est vrai que c'est un lagage laxiste et que la syntaxe est assez différente des autres langages mais je dois dire que programmer en VB.NET pendant 6 mois, quand je suis retourné en cours, j'étais incapable de pondre 2 lignes de codes en java....

    Mais bon, avec un temps d'adaptation ca reviens.

    Mais quand je fais des petits projets j'opte pour le VB.NET... Ca me détend!!
      0  0

  5. #205
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Points : 6 017
    Points
    6 017
    Par défaut
    Citation Envoyé par Noodles
    Mais quand je fais des petits projets j'opte pour le VB.NET... Ca me détend!!
    Ben te dépend pas trop ... Le VB.Net c'est pour ... en fait je sais pas pour qui.
    Mais si tu veux garder une syntaxe proche du java et du C tu n'as qu'a programmer en C# c'est bcp plus structuré .
      0  0

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Citation Envoyé par dev01
    C# c'est bcp plus structuré .
    T'aurais des ewemples concret où la syntaxe C# est plus structuré qu'en VB.NET ?

    quasi 2 ans de VB.NET 1 an de C# mais je vois toujours pas en quoi le C# est beaucoup plus structuré...
      0  0

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par neo.51
    quasi 2 ans de VB.NET
    Comme quoi, personne n'est parfait

    Citation Envoyé par neo.51
    T'aurais des ewemples concret où la syntaxe C# est plus structuré qu'en VB.NET ?
    L'Option Strict de VB.NET, qui n'existe pas en C# (et oui, en C#, on fait les choses bien du 1er coup )
      0  0

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    ça c'est juste un petit soucis de paramètrage par défaut pour que les personnes qui viennent de vb6 migrent en douceur

    J'ai codé qu'un mois en strinf off

    Si le seul agument valable en faveur de C# est une option de compilation par défaut il me parait évident que je vais me remettre au VB.NET avec l'apparition du mot My dans VB.NET 2.0
      0  0

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Points : 19 434
    Points
    19 434
    Par défaut
    Citation Envoyé par neo.51
    Si le seul agument valable en faveur de C# est une option de compilation par défaut il me parait évident que je vais me remettre au VB.NET avec l'apparition du mot My dans VB.NET 2.0
    Bon, là je dois reconnaitre que ce serait bien pratique en C# aussi : remarque ca viendra p-e : il leur a fallu attendre la 2.0 pour intégrer "l'Edit & Continue" en C#, donc, pour la 3.0, on aura p-e le My en C# aussi
      0  0

  10. #210
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Pourquoi choisir
    Pour ma part je me demande pourquoi choisir??? Une des forces majeure de .NET est de permettre l'interactivité entre tout les codes inclus dans .NET.

    Personnelement j'aime bien utiliser VB.net pour l'interfacage graphique et utiliser C# pour les traitements.

    Finalement, venant de l'univers JAVA, j'ai trouvé beaucoup plus facile la conversion vers le c#.

      0  0

  11. #211
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 93
    Points : 61
    Points
    61
    Par défaut
    Pour ma part, je ne connaissais pas le VB. J'étais bon en C++.
    J'ai commencé par faire du VB.Net sans aucun problème. C'est un langage assez agréable une fois que l'on connait son fonctionnement, la prise en main de la bête à été très rapide (et franchement je trouve l'environement de développement microsoft génialissime).
    Pour ce qui est du C#, je n'ai malheureusement eu que peu d'occasion de l'utiliser. Cependant en comparant des sources C# et VB.Net , j'ai eu l'impression que les deux langages se ressemblaient beaucoup. Je n'ai jamais été limité ou bloqué dans le travail de programmation alors pourquoi me pencher sur le C# ?
      0  0

  12. #212
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par crjo
    C# est très propre, comparé à C++. Je vais pas me lancer dans l'enumération des avantages, mais je trouve que ceux ci sont vraiment un plus :

    • pas de pointeurs. Le code n'en est que plus lisible (et si on veut vraiment utiliser des pointeurs pour des besoins de bas niveau ou que sais-je, on peut toujours écrire un petit bout en C++ non managé, si j'ai bien compris)
    • un seul fichier source (plus besoin d'un fichier entête *.h). Si on doit modifier la signature d'une méthode, c'est immédiat. Ca simplifie la documentation également
    • le garbage collector. Plus de memory leak (ou fuite mémoire) avec ça
    • les concepts de délégué et d'événement. Les delegués (delegate) remplacent avantageusement les pointeurs de fonctions en C/C++.
    • homogénéisation de la notion d'objet. Tout est objet. Même un entier ou une chaîne de caractère.
    • meilleur typage. Il y a des erreurs qu'on pouvait faire en C++ qui ne passeront pas à la compilation en C#
    • mécanisme d'assertion et d'erreur bien pensé. Si on accède hors du rang d'un tableau par exemple, on aura une belle erreur au run time qui explique que c'est un problème "out of range" et pas un satané "Violation access error 0x08830003" beaucoup moins explicite.
    Effectivement, C# et C++... rien à voir!!

    Mais d'un autre coté, Java avait déjà tous ces avantages avant .net...
      0  0

  13. #213
    Membre régulier
    Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juillet 2002
    Messages : 88
    Points : 97
    Points
    97
    Par défaut
    Juste pour rajouter mon grain de sel... (tiens ça s'écrit comment un grain? grin? )
    Entre VB.NET et C# : je choisi sans le C#.
    J'ai travaillé sur C# puis sur VB et il est vrai que les 2 langages sont très proches et et que l'on passe très facilement de l'un à l'autre. Il suffit de changer les accolades par des mots et de d'enlever les ;

    Mais les avantages du C#:
    - Moins verbeux et donc plus lisible (et ça c'est important)
    - En VB.NET il fait des cast chelou
    - Approche complètement objet. Alors qu'en VB.NET outre les fonctions qui sont présentes pour conserver la "compatibilité" VB6, la gestion des handlers n'est pas top (Addhandler...)
    - Dans le designer VS.NET, pour l'ASP.NET, les évènements des objets ne sont pas affichés dans la property grid qd on fait un projet VB.
    - La gestion des Namespace n'est pas terrible non plus avec le fameux RootNamespace du projet qui peut prêter à confusion
    - Je ne reparle pas de la doc XML
    -Et puis je me répette masi c'est vraiment plus lisible le C#, ça c'est bien...
      0  0

  14. #214
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par Pete
    - En VB.NET il fait des cast chelou
    Ah?
    Il fait des cast chelou que si tu lui dit de faire des cast chelou... ou si tu lui dis rien!
      0  0

  15. #215
    naw
    naw est déconnecté
    Membre à l'essai
    Inscrit en
    Juillet 2004
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    salam

    Et celui qui programmer avec delphi quesque je peu utiliser en .Net le C# ou vb.net

    merci
      0  0

  16. #216
    Membre régulier
    Profil pro
    Chef de projet en SSII
    Inscrit en
    Juillet 2002
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juillet 2002
    Messages : 88
    Points : 97
    Points
    97
    Par défaut
    Citation Envoyé par Noodles
    Citation Envoyé par Pete
    - En VB.NET il fait des cast chelou
    Ah?
    Il fait des cast chelou que si tu lui dit de faire des cast chelou... ou si tu lui dis rien!
    Le propre d'un bon compilo c'est de t'éviter de faire des erreurs, donc il ne doit pas t'autorise à faire des cast chelou.

    Autre exemple, apparement tu peux compiler une méthode qui à une valeur de retour même si tu as oublié de mettre le "return ta_valeur" et dans ce cas il retourne "null". J'ai perdu 5 minutes à chercher un bug qui en fait était une erreur d'étourderie que le compilo aurais du me signaler directement. Et non, Mr VB a préféré me dire que tout allait bien. Tu peux me dire à quoi ça sert de compiler de code qui plante ?
    A te faire perdre du temps. C'est tout. Sous un prétexte de te rendre la vie plus facile en te simplifiant des choses, VB te fait perdre ton temps. C'est surtout ça son gros défaut à mon avis.

    naw : prends le C#, vraiment c'est mieux. Tu apprendras aussi facilement l'un que l'autre ce n'est pas le pb, quelque soit le langage que tu as fait avant. Sauf qu'en C# tu as une syntaxe que tu retouves ds bcp de langages donc c'est pratique de la connaitre et le C# est mieux que le VB. Regarde les stats d'utilisation d'ailleurs, les gens préfère C#
      0  0

  17. #217
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Autre exemple, apparement tu peux compiler une méthode qui à une valeur de retour même si tu as oublié de mettre le "return ta_valeur" et dans ce cas il retourne "null".
    Et puis je sais pas si c'est pareil en C#, mais en C j'avais souvent ce problème:
    Tu fais une fonction comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public Function toto(maVar as Int32) as Int32
     If (maVar = 1) Then
                Return 1
            Else
                Return 0
     End If
    End Function
    Et là, en C ca compilait pas parce que comme mes return sont dans le If, il croyait que je retournait rien. Or en l'occurence, je retourne toujours quelque chose....

    Et en VB.net ca passe

    Bon évidemment, faut pas trop être étourdi
      0  0

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Points : 6 418
    Points
    6 418
    Par défaut
    Citation Envoyé par Noodles
    Tu fais une fonction comme ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    public Function toto(maVar as Int32) as Int32
     If (maVar = 1) Then
                Return 1
            Else
                Return 0
     End If
    End Function
    Et là, en C ca compilait pas parce que comme mes return sont dans le If, il croyait que je retournait rien. Or en l'occurence, je retourne toujours quelque chose....

    Et en VB.net ca passe

    Bon évidemment, faut pas trop être étourdi
    ça en C# ça passe

    Mais ça ça passe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Function toto(maVar as Int32) as Int32
     If (maVar = 1) Then
                Return 1
     End If
    End Function
    par contre en VB.NET ça va surement passer
      0  0

  19. #219
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 58
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par neo.51
    ça en C# ça passe
    Bon ben dans ce cas là.... j'avoue que le vb.net a un petit train de retard...
    Citation Envoyé par neo.51
    Mais ça ça passe pas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public Function toto(maVar as Int32) as Int32
     If (maVar = 1) Then
                Return 1
     End If
    End Function
    Heureusement!

    Citation Envoyé par neo.51
    par contre en VB.NET ça va surement passer
    Effectivement...
      0  0

  20. #220
    Membre actif Avatar de Causa Sui
    Inscrit en
    Mai 2003
    Messages
    133
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 133
    Points : 209
    Points
    209
    Par défaut
    Citation Envoyé par crjo
    • le garbage collector. Plus de memory leak (ou fuite mémoire) avec ça
    • homogénéisation de la notion d'objet. Tout est objet. Même un entier ou une chaîne de caractère.
    Cela dit, je pense qu'il ne s'agit pas là forcément d'avantages. Dans le premier cas, je pense à tous ceux qui étaient habitués à gérer la déstruction de objets (et autres primitives), ce qui peut être avantage en mode de performances, risquent d'être dérouté de ne plus avoir ce controle.
    Pour ce qui est du coté "objet pur", je trouve cela parfois un peu pénible, je pense notament au fonctions statiques des classes mathématiques qui auraient aussi bien pu être des fonctions globales, sans que cela n'entrave vraiment la logique; la POO n'est pas toujours justifiable à mon sens, et c'est ce que j'aimais en C++: programmer comme on veut: depuis le C++ qui resemble plus a du C, jusqu'a la POO.

    Cela dit je pense que d'un certain coté, les partis-pris de C# ne sont pas réelement injustifiés (au contraire) ou pénalisant à long terme, c'est juste une question "d'aclimatation"

    Et pour moi, C++ dans .net (en managé), c'est un peu une hérésie... On à le C#, alors je me demande pourquoi il n'est restent pas à VC++7 natif...
      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