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

C# Discussion :

question idiote C++/C#


Sujet :

C#

  1. #1
    Membre éclairé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Octobre 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 312
    Points : 749
    Points
    749
    Par défaut question idiote C++/C#
    Bonjour,

    En fait je voulais savoir si ça présentait un avantage d'apprendre le C++ lorsqu'on programme en C# ?

    - C++ est compilé, donc, apporte un avantage évident sur la rapidité d'exécution.
    - la portabilité (bien qu'il existe mono sous linux/mac)

    Mais si non ? au niveau du langage lui même ?

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Points : 5 195
    Points
    5 195
    Par défaut
    salut

    Quand on fait du C#, l'intéret du C++ peut provenir de la réalisation de code C++/CLI (pour faire des wrapper).... principalement !!!
    The Monz, Toulouse
    Expertise dans la logistique et le développement pour
    plateforme .Net (Windows, Windows CE, Android)

  3. #3
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par vohufr Voir le message
    C++ est compilé, donc, apporte un avantage évident sur la rapidité d'exécution.
    l'avantage ne vient pas seulement du fait que c'est compilé, car le .net peut etre compilé aussi via ngen.exe

    et l'avantage n'est pas totalement évident non plus, un programme n'est pas performant si le langage est performant, mais s'il est bien codé
    il est donc tout à fait possible de faire des programes c++ plus lent que sur c# ^^
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  4. #4
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Ca te permettrait surtout à gérer le cycle de vie des objets, les pointeurs, l'allocation mémoire, etc ... Tout ce qui est géré par le GC en .NET grosso-modo.
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  5. #5
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 154
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 154
    Points : 25 072
    Points
    25 072
    Par défaut
    Citation Envoyé par MaximePalmisano Voir le message
    Ca te permettrait surtout à gérer le cycle de vie des objets, les pointeurs, l'allocation mémoire, etc ... Tout ce qui est géré par le GC en .NET grosso-modo.
    ce qui n'apporte pas grand chose dans certaines applications ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 366
    Points : 1 361
    Points
    1 361
    Par défaut
    Citation Envoyé par vohufr Voir le message
    Mais si non ? au niveau du langage lui même ?
    En plus des réponses de mes collègues, je rajouterais qu'au niveau du langage en soi, C# est beaucoup plus facile à coder et à utiliser. Si, comme je le suppose, tu codes sous visual, c'est un outil ergonomique et puissant. Si tu n'as pas besoin de C++, il y a assez avec C#.

    Ensuite, c++, c'est pour mettre les mains dans le cambouis, regarder tout ce que te cache c#. A toi de voir, çà demande un gros investissement en temps.
    les raisonnables ont duré, les passionné-e-s ont vécu

  7. #7
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    ce qui n'apporte pas grand chose dans certaines applications ...
    Attention, je ne dénigre pas. Je dis juste que c++ oblige à se poser des questions au niveau de la gestion de la mémoire (au sens large du terme, cad création/destruction, allocation, dépassement de tableaux, etc...)

    Après, étant développeur C#, je ne peux pas nier que je suis fan du fait d'avoir un GC et de ne pas être pourri par des problèmes de memory leak et autre. Maintenant, certains commencent directement par le Java/C# et n'ont aucune idée de comment ça se passe sous le capot...

    Et comme dit plus haut, le jour où on doit faire de l'interrop ou des wrappers, on est bien content d'avoir des notions sur ce genre de trucs bas-niveau.
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  8. #8
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Points : 460
    Points
    460
    Par défaut
    Bonjour

    Une grosse différence entre C++ et C#, c'est les templates (C++) que l'on peut opposer aux génériques (C#). Mines de rien ça change pas mal de chose.
    L'autre différence, c'est l'absence de delegate en C++, et donc il faut se contenter des pointeur de fonction. Quoi que la dernière version du standard C++ apporte les lambda expression.

    Citation Envoyé par MaximePalmisano Voir le message
    Après, étant développeur C#, je ne peux pas nier que je suis fan du fait d'avoir un GC et de ne pas être pourri par des problèmes de memory leak et autre.
    On peut quand meme gérer la durée de vie des objets en implémentant IDisposable.
    Et malheureusement avoir un GC ça ne protège pas des memory leak. Je dirai même qu'elles sont encore plus vicieuses. Surtout si on joue avec des lambda expression.

  9. #9
    Membre éclairé
    Homme Profil pro
    Analyste programmeur
    Inscrit en
    Octobre 2011
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Analyste programmeur
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Octobre 2011
    Messages : 312
    Points : 749
    Points
    749
    Par défaut
    ok ok, pour information, je code déjà en C, donc je suis bien familiarisé avec toute ce qui est pointeurs, mémoire, etc...

    J'utilise pas spécialement C# sous windows, plutôt sous linux avec mono. Mais c'est un moyen pour moi de pouvoir coder de façon portable (avec gtk#*pour les interfaces)

    En fait, je me demande quel intérêt de développer en C++, alors qu'il y a C#, et le C pour tout ce qui est système...

  10. #10
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2011
    Messages
    269
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 269
    Points : 460
    Points
    460
    Par défaut
    Citation Envoyé par vohufr Voir le message
    En fait, je me demande quel intérêt de développer en C++, alors qu'il y a C#, et le C pour tout ce qui est système...
    Ok le C c'est du natif, et les API system aiment le C. Mais pour autant on peut avoir besoin qu'une partie du programme tourne en natif (performance, interoperabilité). Et la C++ permet d'avoir la notion d'objet, les template, la surcharge d'operateur, la stl...

  11. #11
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2011
    Messages
    366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2011
    Messages : 366
    Points : 1 361
    Points
    1 361
    Par défaut
    Citation Envoyé par antoine.debyser Voir le message
    Ok le C c'est du natif, et les API system aiment le C. Mais pour autant on peut avoir besoin qu'une partie du programme tourne en natif (performance, interoperabilité). Et la C++ permet d'avoir la notion d'objet, les template, la surcharge d'operateur, la stl...
    Soit gagner un temps fou sur le développement d'un projet complexe. Coder en C++ c'est déjà pas évident, mais coder un projet conséquent uniquement en C nécessite une rigueur et une patience énormes. C'est d'autant plus vrai que tu vas avoir besoin en C de structures de données telles que des listes, des map, etc... Et que tout çà t'es fourni par C++, codé, testé, prouvé par l'usage
    les raisonnables ont duré, les passionné-e-s ont vécu

Discussions similaires

  1. Amis DBAs : question idiote sur les perfs
    Par ZERS dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 28/09/2006, 09h45
  2. Réponses: 1
    Dernier message: 06/09/2006, 08h57
  3. Réponses: 19
    Dernier message: 30/05/2006, 18h43
  4. chtite question idiote d'un débutant
    Par pepper18 dans le forum Langage
    Réponses: 1
    Dernier message: 30/05/2006, 13h54
  5. question idiote sur terme utilisé dans les offres
    Par coyott dans le forum Emploi
    Réponses: 4
    Dernier message: 24/08/2005, 17h16

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