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. #41
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet
    Tu as des pointeurs sur l'utilisationde systemC pour autre chose que la conception de hard ou du co-design?

    en fait, je parlais du systemC comme un exemple de langage "haut niveau" sur lequel on fait de l'analyse statique
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  2. #42
    Membre chevronné
    Avatar de Woufeil
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    1 076
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 1 076
    Points : 2 004
    Points
    2 004
    Par défaut
    Citation Envoyé par Gnux
    Euh...En général on utilise plutot l'asm pour ce genre de délicatesse. Il est vrai que le C s'interface très bien avec l'asm mais tout de même...
    Bah, il mse semblait qu'il y en avaiit tout de même quelque uns, notemment en info indus, mais n'étant pas un expert je n'en dirait pas plus


    Citation Envoyé par Gnux
    Parce que tu crois vraiment qu'il disparaitra?
    Bah, disons que j'ai de gros doutes là dessus, mais est ce que ans 100 ans on utilisera encore du C ? Difficille de répondre à cette question... Mais on aura toujours besoin d'un langage de niveau disons intermédiaire (dans le sens où le C est tout de même bien plus proche de la machine que le Java) et c'est possible que même dans l'avenir cela reste le langage C.
    'fin bref, on est tous d'accord pour dire que le C a encore un bel avenir devant lui
    "En essayant continuellement, on finit par réussir. Donc : plus ça rate, plus on a de chances que ça marche" (devise Shadock)
    Application :

    ainsi qu'à regarder la avant de poser une question.

    La rubrique Perl recrute, contactez-moi.

  3. #43
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Points : 1 176
    Points
    1 176
    Par défaut
    l'un comme l'autre sont intéressants et peuvent se justifier suivant les applications. Pour moi, connaître les deux est assez indispensable. Mais ce qui est le plus important, c'est de connaître la différence entre le C et le C++.

  4. #44
    Provisoirement toléré
    Inscrit en
    Décembre 2006
    Messages
    146
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 146
    Points : 70
    Points
    70
    Par défaut
    Contrairement à ce que la plus part de vous croivent, C++ ne sert pas seulement à créer des jeux , c'est vrai qu'il est le langage parfait pour ça, mais il peut faire plus, C++ est différent à C, par sa syntaxe claire et sa simplicité.
    Je me suis vu dans une glace hier, et c'était la première fois!
    La nouvelle c'est que je ne suis que moitié homme, l'autre moitié et hors service!
    PS: La partition de mon corps se fait verticalement!!

  5. #45
    Membre confirmé
    Avatar de Schmorgluck
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    371
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Mai 2006
    Messages : 371
    Points : 558
    Points
    558
    Par défaut
    Discussion passionnante, vraiment. Je vais donner mon avis totalement subjectif. Oui, subjectif : autant on peut trouver des qualités comparatives objectives pour chaque langage en termes de types d'applications, autant en terme d'apprentissage c'est beaucoup plus flou.
    Ni le C ni le C++ n'étant des langages d'apprentissage, je vais partir du principe que strategos a déjà les bases d'algorithmique.
    Mon histoire personnelle avec différents langages :
    J'avais déjà appris à programmer en Basic, en Pascal et en CAML (pour lequel je garde une tendresse particulière) avant d'aborder les langages dont il est question ici.
    Et on m'a fait d'abord étudier le C. Langage simple. Enfin, simple... Dans le sens où il a relativement peu d'instructions natives. Notre prof nous l'avait décrit comme un langage de "moyen niveau", à savoir assez proche du bas niveau pour qu'on doive en tenir compte mais avec une possibilité de s'en abstraire quelque peu.
    Les pointeurs. Ah, les pointeurs ! Au risque de paraître prétentieux, la notion de pointeur ne m'a jamais posé la moindre difficulté. Je ne sais pas pourquoi, peut-être les ai-je tout de suite compris d'une façon efficace (genre "un pointeur ne contient pas d'information, mais indique où se trouve une information", un peu comme une entrée d'un index d'encyclopédie en n volumes - je ne sais plus, c'est loin maintenant). Mais le concept de pointeur, à mon avis, introduit doucement à la notion de mémoire et de l'occupation de celle-ci. Ce n'est pas un concept très compliqué à manier, à mon avis, mais il demande de rester bien concentré pour ainsi dire, sous peine de s'emmêler les pinceaux.

    Ensuite, on m'a fait étudier le C++. Moins permissif, c'est certain. D'ailleurs, je trouve l'argument de Gnux selon lequel, en apprenant le C++ d'abord, on évite de prendre certaines mauvaises habitudes du C, pas inintéressant (il m'avait traversé l'esprit en lisant les premiers posts). Personnellement, je l'estime erroné, cependant. À condition d'avoir eu l'occasion d'expérimenter et de commettre suffisemment d'erreurs dans un environnement sécurisé, la grande permissivité du C enseigne à la dure d'importantes leçons de rigueur qui sont utiles dans tous les domaines de programmation, y compris la POO. De plus, même si le C++ n'est plus tout à fait seulement un sur-ensemble du C, la syntaxe du C en reste la base principale. Et puis, la famille syntaxique du C est vaste.
    Il y a des raisonnements qui s'appliquent au C et qui ne s'appliquent pas au C++ et vice-versa, mais j'ai intuitivement l'impression que, si l'on note R(<nom du langage>) l'ensemble des raisonnements applicables à un langage et Cardinal(<ensemble>) le cardinal d'un ensemble, on a : Cardinal(R(C++)-R(C))>Cardinal(R(C)-R(C++)), ce qui peut rendre plus difficile de bien comprendre le C après avoir appris le C++ que l'inverse.

    Et, pour l'anecdote, je suis en train d'essayer de réapprendre le C++ après avoir appris et pratiqué le Java : pas simple de faire la part de deux langages se ressemblant autant mais ayant autant de différences fondamentales.
    There's nothing like $HOME!

  6. #46
    Membre régulier Avatar de moutey
    Inscrit en
    Mai 2003
    Messages
    123
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 123
    Points : 92
    Points
    92
    Par défaut
    Salut
    Je pense que ces 2 langages ont l'avantage d'avoir une syntaxe passe partout.
    Tu retrouveras dans bien d'autre langage la même syntaxe.
    Comme tu mentionnes que tu debutes, je pense que les 2 langages s'equivalent vue que je ne pense pas que tu affrontes le concept orienté objet de si tot;
    mais si tu envisages le faire bientot attaque directement C++,comme ca il n'y aura pas de rupture dans ton apprentissage.

    Trés Cordialement

  7. #47
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    47
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 47
    Points : 35
    Points
    35
    Par défaut
    salut je pense
    C++ c'est la programmation oriente objet
    c'est mieux
    bonne chance

  8. #48
    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
    Citation Envoyé par nonosa
    C++ c'est la programmation oriente objet
    Non. Ce n'est pas nécessaire. Très loin de là.
    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...

  9. #49
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 601
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 601
    Points : 17 913
    Points
    17 913
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par nonosa
    salut je pense
    C++ c'est la programmation oriente objet
    c'est mieux
    bonne chance

    NON c'est un LANGAGE objet , nuance....

    La programmation orientée objet, tu peux la faire en assembleur si tu veux, en Fortran, en C, en n'importe quel langage informatique (et c'est ce qui se faisait avant C++)..
    "Un homme sage ne croit que la moitié de ce qu’il lit. Plus sage encore, il sait laquelle".

    Consultant indépendant.
    Architecture systèmes complexes. Programmation grosses applications critiques. Ergonomie.
    C, Fortran, XWindow/Motif, Java

    Je ne réponds pas aux MP techniques

  10. #50
    Membre régulier Avatar de siplusplus
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 107
    Points
    107
    Par défaut
    Salut,
    En complément à ce que Schmorgluck disait, j'ajouterais que apprendre
    un langage seul ne suffit pas et surtout lorsqu'on débute. Outre le fait du
    choix d'un langage, l'algorithmique, les mathématiques et d'autres branches
    sont aussi indispensable. Car les langages ne sont qu'un moyen et non une
    solution. Ce serait comme dire "faut-il parler français ou québécois
    (les moyens) pour faire passer un message (la solution)?".
    Cela est aussi valable pour les autres discussions du type
    "langage x mieux que y?".

    Ceci n'est bien sur valable que pour un apprentissage à finalité professionnelle.
    Dans ce cas, le langage choisi n'est qu'un moyen de mettre en pratique une
    théorie. Pour renforcer cette théorie, la pratique sera nécessaire également
    pour pouvoir comprendre les mécanismes de compilations, "débuggages",
    etc...
    Ainsi, par rapport au c++, avec le c tu auras la possibilité de faire tout ...
    et n'importe quoi. Ce qui t'obligeras à prendre des bonnes habitudes de
    programmation car tu en comprendras le fonctionnement intrinsèque et
    t'éviteras de passer plusieurs jours à traquer les bugs et/ou te noyer dans le
    code.

    Pour ce qui est unix/linux, si je me souviens, je pense qu'on utilise la norme
    ANSI (qui est aussi repris par certains compilateurs sous windows, cf Borland).
    On verra alors que certaines primitives ne sont disponible que pour une
    plateforme donnée (il faudrait que je me replonge dans la doc pour en citer
    quelque-uns). Notons au passage que les compilateurs Microsoft n'adhèrent
    pas à cette norme (je ne sais pas si c'est toujours le cas).

    Autrement si c'est pour passer le temps, il vaut mieux choisir des langages
    plus évolués genre vb (windows) ou python (disponible sur la plupart des
    plate-formes).
    Cela t'éviteras bien des déboires qui risquent au final de te dégouter de la
    programmation.

  11. #51
    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
    ANSI est un institut de standardisation américain. Parler ainsi de "norme ANSI" tout court ne veut pas dire grande chose. Ils doivent avoir normalisé un paquet de choses différentes sans grand rapport avec le C ou le C++.

    C et C++ sont normalisés chez ANSI et ISO. Les compilos microsoft ne supportent pas le C99 il me semble. VC2005 se débrouille plutôt bien pour le C++98 (et le 03) -- limite mieux que les GCC 3.x qui sont les seuls installables en trois clics sous windows (les 4.x n'ont pas encore été finalisés pour être facilement distribués avec les distributions MingW et cygwin). Jusqu'à la sortie récente des versions Turbo, Borland était à la bourre en matière de support du C++ ; je ne suis pas sûr qu'il y ait eu beaucoup de progès en fait avec les dernières versions. Après, il y a d'autres compilos qui se débrouillent très très bien (ceux qui encapsulent EDG -> intel, comeau, ...)

    J'ai l'impression que tu voulais parler de la norme POSIX. Dont il existe plusieurs versions, et parfois des petites variations entre les diverses implémentations, de ce que j'ai suivi.
    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...

  12. #52
    Membre régulier Avatar de siplusplus
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 107
    Points
    107
    Par défaut
    ANSI C et POSIX sont des standards.
    Mais je n'entrerais pas dans les détails car ce n'est pas le but de cette
    discussion à savoir choisir c ou c++.

  13. #53
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Citation Envoyé par Luc Hermitte
    Les compilos microsoft ne supportent pas le C99 il me semble.
    A en croire les mecs du forum C, Microsoft aurait fait savoir qu'il ne supporterait plus le C99.

    Je me demande jusqu'à quel point ça leur réussira de vérouiller (ou d'essayer de vérouiller) des marchés de la sorte...
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  14. #54
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    20
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 20
    Points : 16
    Points
    16
    Par défaut
    Que l'on parle de C, de C++, de Java, etc...., il faut choisir un langage en fonction du besoin exprimé pour réaliser un projet parce que certains langages sont mieux que d'autres dans certains domaines, mais après c'est un choix dès qu'on se sent à l'aise, j'ai des bases en C, C++, Java, PHP, VB, Python, et je choisis un langage en fonction de ce que je veux faire.

    Pour en revenir au débat "C ou C++", va voir un peu des tutoriels sur ces langages et regarde leur utilité dans un certain domaine. Après je ne vois pas l'intérêt de te faire préférer un certain langage plutôt qu'un autre. Apprends les deux !

  15. #55
    Membre régulier Avatar de siplusplus
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    78
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 78
    Points : 107
    Points
    107
    Par défaut
    Ou mieux, les apprendre tous

  16. #56
    Membre éprouvé
    Avatar de InOCamlWeTrust
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 1 036
    Points : 1 284
    Points
    1 284
    Par défaut
    Ouais... et surtout le Français pour certains (mais dans ce thread il n'y a pas de problèmes !).
    When Colt produced the first practical repeating handgun, it gave rise to the saying God created men, but Colt made them equal.

  17. #57
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Points : 0
    Points
    0
    Par défaut
    il faut d'abord maîtrisé le c car c'est la base de tout

  18. #58
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    Décembre 2005
    Messages
    10 322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur d'études
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2005
    Messages : 10 322
    Points : 18 679
    Points
    18 679
    Par défaut
    Citation Envoyé par mouha12
    il faut d'abord maîtrisé le c car c'est la base de tout

    elle est bien bonne... il est vrai que quelques langages s'inspirent de la syntaxe c, mais ça ne veut pas dire qu'ils le font tous, ou que cela va plus loin
    Evitez les MP pour les questions techniques... il y a des forums
    Contributions sur DVP : Mes Tutos | Mon Blog

  19. #59
    Membre éprouvé Avatar de Caine
    Inscrit en
    Mai 2004
    Messages
    1 028
    Détails du profil
    Informations personnelles :
    Âge : 51

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 028
    Points : 1 122
    Points
    1 122
    Par défaut
    D'accord avec le début de ta nuance mais... la programmation orientée objet ne peux pas être intégralement reprise avec les langages que tu cites.

    Certes, avec le type générique void, on peu approcher du polymorphisme, mais pas de la généricité.

    Si la généricité est intrinsèque à l'assembleur (il se fout des types, tout n'est qu'une adresse), il est surement très long d'implémenter l'héritage. Note bien qu'il est évident qu'on y arrive puisque le C++ compile

    On peut certes ré implémenter intégralement l'objet en assembleur, mais ce n'est pas vrai des autres langages procéduraux. Bien qu'avec de la pratique, une bonne connaissance et de l'imagination, on s'en approche.
    Citation Envoyé par souviron34
    NON c'est un LANGAGE objet , nuance....

    La programmation orientée objet, tu peux la faire en assembleur si tu veux, en Fortran, en C, en n'importe quel langage informatique (et c'est ce qui se faisait avant C++)..

  20. #60
    Nouveau Candidat au Club
    Inscrit en
    Juin 2007
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1
    Points : 1
    Points
    1
    Par défaut pour ton cas , commence par le c
    je te conseille plus tot de commencer par le c.En effet la programmation des protocoles reseau se fait en general en c (tu pourra utiliser le x-kernel).De plus le language c etant tres intimement lié au systeme linux,tu pourra tres rapidement ecrit des programmes systemes de tres haut niveau.

Discussions similaires

  1. VARCHAR & CHAR - comment savoir lequel choisir !?
    Par Thierry8 dans le forum Requêtes
    Réponses: 15
    Dernier message: 18/12/2005, 21h54
  2. Lequel choisir???
    Par t_om84 dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 27/10/2004, 15h02
  3. Curseur et lock : Les différence & lequel choisir
    Par BilTCD dans le forum Access
    Réponses: 2
    Dernier message: 22/10/2004, 15h03
  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, 15h52
  5. [Conseil] Glut vs SDL, lequel choisir
    Par Mathieu.J dans le forum GLUT
    Réponses: 15
    Dernier message: 08/06/2004, 09h47

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