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

Dotnet Discussion :

[Langage] Quels avantages du C# sur C++ ?


Sujet :

Dotnet

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    907
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 907
    Points : 372
    Points
    372
    Par défaut [Langage] Quels avantages du C# sur C++ ?
    Bonjour,

    Quels sont les avantages du C# par rapport au C++ ? Le C++ est il devenu un langage has been ?

    Merci,
    Christophe,

  2. #2
    Membre actif Avatar de 5:35pm
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    201
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2006
    Messages : 201
    Points : 217
    Points
    217
    Par défaut
    je dirais que choisir un langage, c'est choisir le langage qui repond au besoin:

    C# est un langage made in Microsoft, utilisant le framework .NET:
    les plus: permet un developpement plus simple, langage de haut niveau avec des performance "okay"
    les gros moins: pour windows uniquement, le code deviendra obsolete avec le temps.

    C++ est un langage "universel" tres repandu, et reste le langage objet le plus rapide. Creer une application est nettement plus complexe, rendre un programme multi platforme necessite du travail sur les differentes APIs des differentes platformes. il reste cependant le langage de reference pour la creation de jeux video par exemple.

    C++ n'est pas "has been", il est un langage de plus bas niveau que c#, donc moins accessible. En revanche C# doit ca popularite du fait que sa "librairie Standard" soit dedie a Windows, qui detient le monopole des OS.
    Donc en dehors de Windows, et Pocket Windows, c# n'est rien...
    Il faut garder en tete que Programmer en c# condamne ton appli a tourner exclusivement chez microsoft, et le code produit en c# ne peut etre "durable" car le framework est constamment modifie.

    Actuellement, je programme une appli en c#, pour des raisons economique (programmer en c# est plus productif que c++) et logiciel n'a pas la vocation d'etre execute ailleur que chez microsoft.
    Mais personnellent, c++ reste une valeur sure, car il offre les performances, et la liberte, et la longevite.

    enfin, le createur de c++ a annonce une nouvelle version de c++ pour 2007/2008, qui devrait repondre a la concurence, a suivre...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Il faut garder en tete que Programmer en c# condamne ton appli a tourner exclusivement chez microsoft, et le code produit en c# ne peut etre "durable" car le framework est constamment modifie.
    Je ne suis pas trop d'accord avec cela car on commence à trouver des solution pour faire tourner des applis c# sur du LINUX avec par exemple MONO

  4. #4
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par gcorbineau
    Je ne suis pas trop d'accord avec cela car on commence à trouver des solution pour faire tourner des applis c# sur du LINUX avec par exemple MONO
    Effectivement, Mono est même l'exemple modèle de la portabilité de .Net
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  5. #5
    Membre du Club
    Inscrit en
    Mai 2002
    Messages
    94
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 94
    Points : 62
    Points
    62
    Par défaut
    Justement quand on parle de :
    - dotnet haut niveau
    - C++ plus bas niveau,

    Peut-on imaginer des librairies de fonctions qui constituent le moteur de l'appli en C++ (en API) et le management plus haut niveau en DotNet (Interfaces, comportement etc) ?

    Est ce que c'est pertinent ou bien n'importe quoi de faire comme ça ?

    En fait existe-t-il une certaine complémentarité entre ces deux langages ?

  6. #6
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par chris92
    Justement quand on parle de :
    - dotnet haut niveau
    - C++ plus bas niveau,

    Peut-on imaginer des librairies de fonctions qui constituent le moteur de l'appli en C++ (en API) et le management plus haut niveau en DotNet (Interfaces, comportement etc) ?

    Est ce que c'est pertinent ou bien n'importe quoi de faire comme ça ?

    En fait existe-t-il une certaine complémentarité entre ces deux langages ?
    c'est tout a fait courant en fait
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 25
    Points : 20
    Points
    20
    Par défaut
    ne serait-ce pas le C++/CLI qui permet ceci? ou c'est encore autre chose?

  8. #8
    Expert éminent
    Avatar de neguib
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 627
    Détails du profil
    Informations personnelles :
    Âge : 63
    Localisation : Suisse

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 627
    Points : 7 879
    Points
    7 879
    Par défaut
    Citation Envoyé par folk
    ne serait-ce pas le C++/CLI qui permet ceci? ou c'est encore autre chose?
    non c'est bien çà il me semble, le C++/CLI est bein pratique pour wrapper des dll C++
    Pour le bien de ceux qui vous lisent, ayez à coeur le respect du forum et de ses règles

  9. #9
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    De ce que j'ai vue du C# pour l'instant, je trouve que c'est un bon compromis entre un langage Compilé et du perl, mais après tout dépend de l'utilisation qu'on en fait:
    qu'elle intérêt de compiler un code qui devra ou sera probablement modifié ou agrémenter de code?
    D'un autre coté C# est j' imagine plus complet que perl (enfin la je suis moins certain que pour le reste)
    l'intérêt doit probablement dépendre du système sur le quel on l'utilise ce qui doit faire les diférence entre bsd,linux d'un coté et windows d'un autre

  10. #10
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Citation Envoyé par neguib Voir le message
    non c'est bien çà il me semble, le C++/CLI est bein pratique pour wrapper des dll C++
    Non pas vraiment. C++/CLI, c'est juste un langage pour la plateforme .NET, de la même façon que tu peux coder en C# ou en VB.

    C++/CLI comporte des évolutions et changements significatifs par rapport au C++, il faut plus le considérer comme un nouveau langage.

    Par rapport au wrapping de dlls (peu importe le langage dans lequel elles ont été écrites), tu peux faire ça dans tous les langages .NET, même si je ne suis pas en mesure de dire de quelle façon ce serait plus simple dans l'un ou dans l'autre.

  11. #11
    Membre émérite Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Points : 2 925
    Points
    2 925
    Par défaut
    Citation Envoyé par Greybird Voir le message
    Non pas vraiment. C++/CLI, c'est juste un langage pour la plateforme .NET, de la même façon que tu peux coder en C# ou en VB.
    C++/CLI, c'est bien plus que ça. On peut coder en tout managé avec, mais ça n'a aucun intérêt.

    La seule raison d'exister du C++/CLI, c'est de pouvoir faire cohabiter dans un même projet du code managé et du non managé. On peut en effet appeler une dll native depuis du C#/VB/ tout langage .Net, mais l'intérêt de C++/CLI est de pouvoir le faire dans une même dll. Ce qui est courant, donc, quand on a du code C/C++ et qu'on veut l'utiliser depuis un autre langage .Net, c'est soit de le compiler en natif, et de faire du P/Invoke depuis un consommateur C#, soit d'en faire un projet C++/CLI, qui masquera le code non managé derrière une interface managée. Les consommateurs d'une telle assembly ne verront aucune différence avec une assembly 100% managée.
    ಠ_ಠ

  12. #12
    Rédacteur
    Avatar de Greybird
    Inscrit en
    Juin 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 673
    Points : 1 271
    Points
    1 271
    Par défaut
    Citation Envoyé par Guulh Voir le message
    C++/CLI, c'est bien plus que ça. On peut coder en tout managé avec, mais ça n'a aucun intérêt.
    Merci de ces éclaircissements. Je me rend compte que ma phrase était (très) mal tournée. Je voulais surtout indiquer que le C++/CLI n'était pas juste un moyen d'accéder à du code natif, et pas le seul par ailleurs.

    Je pense que C++/CLI a été un plus dans le discours de Microsoft face aux entreprises. Dans toutes les conférences et présentations au lancement, on entendait : "vous n'avez pas à jeter votre code existant, vous pouvez y aller par petites touches, vous pouvez appeler du COM, du code natif, ...". Le discours c'était : vous avez un nouvel outil formidable, et vous allez pouvoir vous mettre à l'utiliser au rythme qui vous plaira. Permettre d'utiliser C++, langage auquel les équipes de développement étaient habituées, contribuait à rassurer.

    Aujourd'hui, C++/CLI est assez peu utilisé (je crois que j'avais trouvé des stats indiquant quelque chose autour du pourcent, contre environ 70% de C# et le reste en VB, F# doit être dans l'épaisseur du trait aussi - chiffre à prendre à la louche, la fiabilité de la mesure me parait difficile à obtenir), ce qui ne préjuge pas de sa qualité par ailleurs.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 7
    Dernier message: 07/11/2008, 18h58
  2. Réponses: 13
    Dernier message: 26/10/2006, 17h52
  3. [Langages.NET] Quel est votre avis sur Boo ?
    Par Royd938 dans le forum Général Dotnet
    Réponses: 6
    Dernier message: 28/08/2006, 18h43
  4. Quel langage pour envoyer un fichier sur une adresse
    Par dai.kaioh dans le forum Développement
    Réponses: 2
    Dernier message: 02/04/2004, 16h38
  5. quel langage pour créer des "applications" sur 1 s
    Par jaribu dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 30/07/2003, 14h06

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