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

Langages de programmation Discussion :

C ou C++ ? Lequel choisir ?


Sujet :

Langages de programmation

  1. #241
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 101
    Points
    101
    Par défaut
    Salut !!

    C ou C++ ? Tout dépend de ce que tu veux faire.
    Je trouve perso que le C++ est beaucoup moins contraignant que le C et permet de programmer orienté objet, ce qui peut s'avérer utile.

    Après, tout dépend de ce que tu souhaites faire!
    *Laisse l'Amour enivrer ton âme*

  2. #242
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Nahla_India Voir le message
    [...]
    Je trouve perso que le C++ est beaucoup moins contraignant que le C et permet de programmer orienté objet, ce qui peut s'avérer utile.
    [...]

    Moins contraignant ça veut dire quoi ?

  3. #243
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 101
    Points
    101
    Par défaut
    Ben perso, en C je trouvais ça vraiment contraignant de devoir préciser le type des variables qu'on souhaite afficher par exemple.
    *Laisse l'Amour enivrer ton âme*

  4. #244
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Nahla_India Voir le message
    Ben perso, en C je trouvais ça vraiment contraignant de devoir préciser le type des variables qu'on souhaite afficher par exemple.
    Oui c'est vrai que ça c'est un peu plus contraignant mais c'est quand même une toute petite contrainte. Est-ce tout? Tu ne parlais que de la contrainte de typage sur l'affichage ?

  5. #245
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 275
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 275
    Points : 10 985
    Points
    10 985
    Par défaut
    Une contrainte qui plante les programmes comme un rien sans aucune chance de détection statique du problème... Ce n'est pas trop ce que l'on attend d'un langage compilé (un interprété je ne dis pas).

    D'autres facilités ?
    Cf la gestion des chaines de caractères, les if dans tous les sens pour contrôler nos ressources, ...?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  6. #246
    Membre du Club
    Homme Profil pro
    Inscrit en
    Janvier 2006
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 57
    Points : 50
    Points
    50
    Par défaut
    Personnellement, j'ai commencé (en cours) par apprendre le C, puis lorsqu'on maitrisait suffisament, les profs nous ont fait passé au C++ (toujours en console).
    Lorsqu'on était suffisament à l'aise en console on est passé au C++ en graphique (là aussi progressivement, avec C++ builder et l'assisant pour placer les objets graphiques, puis en codant directement tout ce qu'il faut pour que ça fonctionne bien)

    Puis ensuite on est passé a d'autres langages (Java puis C#) dont l'apprentissage a été plus rapide vu que le fonctionnement de la programmation orientée objets été acquise.

    N'y connaissant rien du tout en prog avant ça, je trouve que commencer par le C, c'est pas mal, ça permet de prendre tout de suite les bonnes habitudes.

    Voila pour mon experience personnelle, si ça peut aider....

  7. #247
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 101
    Points
    101
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Oui c'est vrai que ça c'est un peu plus contraignant mais c'est quand même une toute petite contrainte. Est-ce tout? Tu ne parlais que de la contrainte de typage sur l'affichage ?
    C'est une "toute petite contrainte" comme tu dis mais ça en est une. Il y a aussi le support très difficile de la POO, la gestion de la mémoire enfin...
    *Laisse l'Amour enivrer ton âme*

  8. #248
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Luc Hermitte Voir le message
    Une contrainte qui plante les programmes comme un rien sans aucune chance de détection statique du problème... Ce n'est pas trop ce que l'on attend d'un langage compilé (un interprété je ne dis pas).

    D'autres facilités ?
    Cf la gestion des chaines de caractères, les if dans tous les sens pour contrôler nos ressources, ...?
    Je n'ai jamais dit que le C est un rêve. D'ailleurs je remercie le ciel de string et vector. Mais je demandais ce que Nahla entendais par là. Car ce n'est pas très clair « c'est plus contraignant. »

    Maintenant ce dont tu parles en premier lieu n'a aucune raison de s'appeler une contrainte. Ça serait d'ailleurs, vu la manière dont tu le présentes, plutôt une liberté dangereuse non Je ne comprends pas bien le « if » dans tous les sens.

  9. #249
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Nahla_India Voir le message
    C'est une "toute petite contrainte" comme tu dis mais ça en est une. Il y a aussi le support très difficile de la POO, la gestion de la mémoire enfin...
    Oui forcément... la POO en C a moins de support mais je ne vois pas la un problème de contrainte a proprement parler.

    Bon la gestion mémoire. C'est vrai que c'est plus contraignant, là je vois ce que tu veux dire.

    C'était une vraie question vous savez: je voulais savoir ce que tu entendais par « plus contraignant » Pas un piège.

  10. #250
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 83
    Points : 101
    Points
    101
    Par défaut
    Oui Garulfo tu as raison
    J'ai bossé ça fait un peu longtemps sur du C et j'aime bien ce langage. J'avoue avoir été tentée par le C++ (études oblige) mais peu importe, le principal est d'acquérir une technique après tout
    *Laisse l'Amour enivrer ton âme*

  11. #251
    Membre à l'essai
    Inscrit en
    Janvier 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 20
    Points : 14
    Points
    14
    Par défaut salut
    en fait je prefere que tu commence par le langage C
    j'ai réussi à réaliser un mini-shell sous linux avec

  12. #252
    Membre régulier Avatar de Linu6
    Profil pro
    Inscrit en
    Août 2007
    Messages
    227
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 227
    Points : 106
    Points
    106
    Par défaut
    Bon, je vais faire le trole en disant que C = thèse, C++ antithèse et C# = synthèse.

    Finalement cela fait une belle dialectique avec un dépassement des conditions préalables.

  13. #253
    Rédacteur

    Avatar de millie
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    7 015
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 7 015
    Points : 9 818
    Points
    9 818
    Par défaut
    Citation Envoyé par Linu6 Voir le message
    Bon, je vais faire le trole en disant que C = thèse, C++ antithèse et C# = synthèse.

    Fait attention, on va te répondre : non, C# = foutaise
    Je ne répondrai à aucune question technique en privé

  14. #254
    alex_pi
    Invité(e)
    Par défaut
    Tiens, je reviens ici avec un nouveau morceau de troll : Il ne FAUT PAS coder en C !

    J'ai un peu regardé une technique de test de programmes ammusante, le fuzzing qui consiste globalement à donner des entrées moisis à un programme et à regarder comment il réagit. J'ai écris un petit "bit flip", qui prend un fichier sein, permute des bits au pifomètre, et le donne en entrée au programme à tester. En moins d'une heure de test (test full automatique, donc ça me prend pas de temps...), j'ai produit un .class qui fait crasher la machine virtuelle GNU sur signal 11, un fichier pdf qui fait pareil avec acrobat reader (le 8.blah, pas le 9, mais je n'ai pas pu le tester pour de vrai). Bon, soyons honnete, la JVM de sun a résisté.
    Avec l'outil Mangleme, je produit facilement un .html qui fait crasher firefox3 sous kubuntu (pas sous d'autres distribs, je sais pas bien pourquoi), et amaya, le browser du W3C s'envoie dans les roses à chaque fois.

    Bref, le C est un langage completement dépassé, qui est la cause de plus de 90% des failles de sécurités trouvées puisque les buffer-overflow y sont légions.
    Donc si le choix c'est C++ ou C, prend le C++ en utilisant les vectors qui vérifient les bornes des tableaux !.
    Bon après je vous rassure hein, un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #include <stdio.h>
    
    
    main(int argc, char *argv[]){
      if(argc>1)
        printf(argv[1]);
      return(0);
    }
    continuera un représenter un problème de sécurité, même en C++...

    Codez en autre chose, vous couterez moins cher à la société :-)

  15. #255
    Membre éclairé Avatar de HanLee
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    738
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2004
    Messages : 738
    Points : 871
    Points
    871
    Par défaut
    En OCaml, ça planterait aussi ton truc non ?

  16. #256
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Bon après je vous rassure hein, un petit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
    
    main(int argc, char *argv[]){
      if(argc>1)
        printf(argv[1]);
      return(0);
    }
    continuera un représenter un problème de sécurité, même en C++...
    Oui, sauf qu'un développeur C++ qui a un minimum de connaissances n'utilisera pas printf.

    Citation Envoyé par alex_pi Voir le message
    Bon, soyons honnete, la JVM de sun a résisté.
    Oui, Java et .Net sont très robustes. C'est très dur d'obtenir des erreurs de segmentation et autres erreurs violentes. Bien sûr, ça ne veut pas dur qu'un programme Java/C# soit sûr : ils lancent facilement des exceptions.

    En OCaml, ça planterait aussi ton truc non ?
    Tu parles de quoi ? Le printf est fortement typé en Caml et vérifié à la compilation.

  17. #257
    alex_pi
    Invité(e)
    Par défaut
    Citation Envoyé par HanLee Voir le message
    En OCaml, ça planterait aussi ton truc non ?
    Nop ! si tu prends
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let _ = Printf.printf  Sys.argv.(1)
    et que tu appelle le programme sur "%n%s%i", il t'affichera "%n%s%i". Il parse les format string statiquement. D'ailleurs si tu tentes de compiler
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    let _ = Printf.printf  Sys.argv.(1) Sys.argv.(2)
    Tu te prends
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    File "pri.ml", line 1, characters 23-35:
    This expression has type string but is here used with type
      ('a -> 'b, out_channel, unit) format =
        ('a -> 'b, out_channel, unit, unit) format4
    Citation Envoyé par LLB
    Oui, sauf qu'un développeur C++ qui a un minimum de connaissances n'utilisera pas printf.
    Ouais fin c'est toujours pareil.... Un bon programmeur C verifiera ses bornes de tableau. C'est juste que l'expérience prouve que sur un gros projet, on fait forcément des erreurs. Et que c'est donc au langage de nous protéger.

  18. #258
    LLB
    LLB est déconnecté
    Membre expérimenté
    Inscrit en
    Mars 2002
    Messages
    967
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 967
    Points : 1 410
    Points
    1 410
    Par défaut
    Citation Envoyé par alex_pi Voir le message
    Ouais fin c'est toujours pareil.... Un bon programmeur C verifiera ses bornes de tableau. C'est juste que l'expérience prouve que sur un gros projet, on fait forcément des erreurs. Et que c'est donc au langage de nous protéger.
    Non, c'est différent. Ne pas vérifier des bornes, ça peut arriver facilement. Inclure stdio.h et appeler printf, c'est se tirer une balle volontairement - tout comme appeler Obj.magic en Caml.

    Quand on utilise les fonctionnalités du C++, le code est beaucoup plus sûr et vérifié qu'avec les fonctionnalités héritées du C.

  19. #259
    Expert éminent sénior
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 361
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 361
    Points : 20 381
    Points
    20 381
    Par défaut
    A moins de ne faire que des petits projets en mode texte, printf est très rarement utilisé parce que qui dit projet dit gros projet avec GUI oblige.
    Avec des classes comme Qt,VCL,MFC même en win32 sous Windows on n'utilise évidemment pas printf

  20. #260
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Mat.M Voir le message
    A moins de ne faire que des petits projets en mode texte, printf est très rarement utilisé parce que qui dit projet dit gros projet avec GUI oblige.
    Avec des classes comme Qt,VCL,MFC même en win32 sous Windows on n'utilise évidemment pas printf
    Et on n'utilise même pas sprintf ?

    --
    Jedaï

Discussions similaires

  1. VARCHAR & CHAR - comment savoir lequel choisir !?
    Par Thierry8 dans le forum Requêtes
    Réponses: 15
    Dernier message: 18/12/2005, 20h54
  2. Lequel choisir???
    Par t_om84 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 27/10/2004, 14h02
  3. Curseur et lock : Les différence & lequel choisir
    Par BilTCD dans le forum Access
    Réponses: 2
    Dernier message: 22/10/2004, 14h03
  4. [FEDORA] Lequel choisir entre Fedora i386 et x86 pour un xeon?
    Par Oberon dans le forum RedHat / CentOS / Fedora
    Réponses: 7
    Dernier message: 13/07/2004, 14h52
  5. [Conseil] Glut vs SDL, lequel choisir
    Par Mathieu.J dans le forum GLUT
    Réponses: 15
    Dernier message: 08/06/2004, 08h47

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