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 :

C ou C++, le quel ?


Sujet :

C

  1. #1
    Membre confirmé Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Par défaut C ou C++, le quel ?
    Bonjour,
    J'aimerais apprendre un langage de programmation.
    Mais je ne sais pas quel choisir entre C et C++.
    Lequel de ces deux est le meilleur ? (J'ai commencé à programmer avec le langage : Python)
    Quelle sont les différances entre ces deux langages ? (C et C++)
    Un ami m'a dit que le "C" était trop vieux (que sa ne servait pas à grand chose de l'apprendre), est-ce vrai ?
    Merci et bonne journée

  2. #2
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    117
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2006
    Messages : 117
    Par défaut
    La difference majeur entre le C et le C++ est que le C++ est orienté objet. Il y a la notion de classes et tous ce qui va avec.
    Le c++ est donc un langage plus haut niveau (il apporte une couche d'abstraction supplementaire). qui dit abstraction dis que tu ne comprends pas exactement comment ca marche derriere.

    Le C quand à lui est un langage bas niveau, assez proche de la machine. Donc le langage C est un tres bon langage d'apprentissage car il y a un minimum d'abstraction et pardonne moins les erreurs (on apprend de ses erreurs )

    Apres cela depend de ton niveau en informatique. Si tu n'y connais pas grand chose encore, je te conseil de commencer par le C, qui aura bcp à t'apprendre sur la logique informatique. il est plus facile d'apprendre d'abord un langage procedurale normal, qu'un langage orienté objet, ou tu va manquer plein de concept important. une fois que tu maitrisera le C il te sera tres facile si tu le desir de passer au C++ ou autre langage objet.

    De plus ton amis se trompe, cela depend enormement de ce que tu recherches à faire. Bcp de chose sont encore créé en C, notamement des choses bas niveau comme des controleurs sur des cartes etc.

  3. #3
    Membre très actif
    Avatar de buggen25
    Ingénieur développement logiciels
    Inscrit en
    Août 2008
    Messages
    554
    Détails du profil
    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Août 2008
    Messages : 554
    Par défaut
    Bonjour;

    Il faut commencer par le language c pour apprendre les bibliotheques de base telle que stdio.h , dont les fonctions seront tres utiles lors du passage en c++, de plus il faudrait trouver une bibliotheque tierce pour faire quelque chose de plus concret.

  4. #4
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par moumine Voir le message
    Bonjour,
    J'aimerais apprendre un langage de programmation.
    Mais je ne sais pas quel choisir entre C et C++.
    Lequel de ces deux est le meilleur ? (J'ai commencé à programmer avec le langage : Python)
    Pourquoi desires-tu apprendre un autre langage? En quoi Python ne convient pas?
    (Suivant tes raisons, un ou l'autre peut mieux convenir, mais un troisieme larron peut aussi apparaitre).

    Quelle sont les différances entre ces deux langages ? (C et C++)
    Ce sont deux langages qui ont evolue a partir d'une meme base (on va dire, le C du K&R de la premiere edition) en s'influencant l'un l'autre dans cette evolution. En gros, le C++ apporte des choses en plus: programmation orientee objet -- a laquelle tu dois etre deja famillier --, programmation generique, bibliotheque standard plus etendue (mais n'atteignant pas la couverture d'autres langages, dont Python).

    Il est relativement facile de programmer dans le sous-ensemble commun du C et du C++ (celui est presque la totalite du C90; le C99 ajoute des choses qui ne sont pas presentent en C++, certaines le seront dans la prochaine version de la norme, d'autres ne le seront pas car il existe d'autres moyens en C++ de repondre au besoin soujacent et que les integrer poserait des problemes).

    Un ami m'a dit que le "C" était trop vieux (que sa ne servait pas à grand chose de l'apprendre), est-ce vrai ?
    Le C de langage d'usage general est devenu un langage de niches. Mais dans celles-ci (les 3 plus importantes: la portabilite, l'embarque dans un sens large, Unix) il est toujours de proche d'incontournable a toujours bien present.

  5. #5
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Le C de langage d'usage general est devenu un langage de niches. Mais dans celles-ci (les 3 plus importantes: la portabilite, l'embarque dans un sens large, Unix) il est toujours de proche d'incontournable a toujours bien present.
    Vrai... Mais de là mais qualifier les développements Unix comme une "niche" ...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  6. #6
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    Vrai... Mais de là mais qualifier les développements Unix comme une "niche" ...
    Le C sous unix est une niche. |Vu d'ou je suis, les gros developpements se font quand meme plutot en C++ qu'en C et Java est assez present sur ce qui est plus petit.

    En passant, j'ai jamais rien developpe pour autre chose que Unix. Et on pourrait aussi se mettre a contester l'embarque comme niche...

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 487
    Par défaut
    A mon avis le langage C++ est plus évoluer que le C ,c’est mieux que tu apprends le C++

  8. #8
    Rédacteur
    Avatar de Vincent Rogier
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    2 373
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 373
    Par défaut
    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Le C sous unix est une niche. |Vu d'ou je suis, les gros developpements se font quand meme plutot en C++ qu'en C et Java est assez present sur ce qui est plus petit.
    Chacun voit midi à sa porte... Certes C++ et java sont pas mal utilisés sous unix, mais de la à dire que les développements C sous unix relève du "folklore", là on ne doit effectivement pas travailler dans les mêmes secteurs d'activité...
    Vincent Rogier.

    Rubrique ORACLE : Accueil - Forum - Tutoriels - FAQ - Livres - Blog

    Vous voulez contribuer à la rubrique Oracle ? Contactez la rubrique !

    OCILIB (C Driver for Oracle)

    Librairie C Open Source multi-plateformes pour accéder et manipuler des bases de données Oracle

  9. #9
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par vicenzo Voir le message
    Chacun voit midi à sa porte... Certes C++ et java sont pas mal utilisés sous unix, mais de la à dire que les développements C sous unix relève du "folklore", là on ne doit effectivement pas travailler dans les mêmes secteurs d'activité...
    J'ai pas utilise le mot folklore mais niche. Notre difference tient peut-etre essentiellement au sens donne a ce mot (mais penser que je lui donne un sens pejoratif quand dans la meme phrase j'y mets l'embarque me semble bizarre).

  10. #10
    Rédacteur
    Avatar de Franck.H
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2004
    Messages
    6 951
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2004
    Messages : 6 951
    Par défaut
    Ca y est, nous voilà dans un début de débat qui est vieux comme le langage Précise ces points là:

    • Pourquoi changer ?
    • Que veus-tu faire principalement avec le langage ?
    • Quel est ton niveau en informatique et/ou en développement en générale ?
    Mon Site
    Ma bibliothèque de gestion des chaînes de caractères en C

    L'imagination est plus importante que le savoir. A. Einstein

    Je ne répond à aucune question technique par MP, merci d'avance !

  11. #11
    Membre confirmé Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Par défaut
    Bonjour,

    Citation Envoyé par Franck.H Voir le message
    Pourquoi changer ?
    Uniquement pour le plaisir , j'aimerais apprendre un autre langage que le Python. J'aime bien python, mais je ne peux pas dire si ce langage est superbe ou pas (vu que je connais que celui là ).

    Citation Envoyé par Franck.H Voir le message
    Que veus-tu faire principalement avec le langage ?
    Que veus-tu faire principalement avec le langage ? : [B]Un peu de tout et de rien. Non mais, cela va m'être très pratique professionnellement et personnellement. Sa peut énormément simplifier la vie d'un électronicien.

    Citation Envoyé par Franck.H Voir le message
    Quel est ton niveau en informatique et/ou en développement en générale ?
    Je pense que j'ai un niveau moyen (3 ans de python). Je trouve que je m'en sors pas trop mal.

    Merci beaucoup de vos réponse
    Et bonne soirée

  12. #12
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Dans ce cadre (pure curiosité et intérêt pour l'électronique), le C est un meilleur choix que le C++. Mais j'aurais tendance à te conseiller de faire un peu d'assembleur.

  13. #13
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 554
    Par défaut
    Bonsoir,

    Citation Envoyé par moumine Voir le message
    Un ami m'a dit que le "C" était trop vieux (que sa ne servait pas à grand chose de l'apprendre), est-ce vrai ?
    En un mot : non.

    Je crois ne pas trop me mouiller en affirmant cela. Le C est encore extrêmement répandu, ne serait-ce parce qu'il a en grande partie inspiré les langages des générations suivantes, spécialement le C++, qui reste en grande partie compatible avec le C, mais également parce qu'il reste le langage qui se rapproche le plus du fonctionnement de la machine. On a coutûme de dire que C est « un cran au dessus de l'assembleur », même si ce sont là deux langages très différents. Le C reste donc très adapté à la compilation d'applications en langage machine.

    D'autre part, UNIX et le langage C ont été conçus à peu près à la même époque et - pour faire simple - par les mêmes personnes. Le langage C est pour ainsi dire le « langage officiel » de tous les Unices.

  14. #14
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Le C reste donc très adapté à la compilation d'applications en langage machine.
    Comme 100% des langages compilés.

    Enfonçage de porte ouverte détecté !

  15. #15
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 554
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Comme 100% des langages compilés.

    Enfonçage de porte ouverte détecté !
    Je m'attendais à une remarque de ce genre, donc, je précise ma pensée : je mettais principalement l'accent sur « langage machine » plus que sur « compilation ».

    D'autre part, 100% des langages compilés le sont pas vers le langage machine.

  16. #16
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 69
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Par défaut
    Citation Envoyé par Obsidian Voir le message
    Je m'attendais à une remarque de ce genre, donc, je précise ma pensée : je mettais principalement l'accent sur « langage machine » plus que sur « compilation ».

    D'autre part, 100% des langages compilés le sont pas vers le langage machine.
    Tu veux parler de la compilation en bytecode ? Ca existe encore ? On est pas passé au JIT avec Java et C# ?

  17. #17
    Membre confirmé Avatar de moumine
    Profil pro
    Étudiant
    Inscrit en
    Août 2008
    Messages
    237
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2008
    Messages : 237
    Par défaut
    Salut,

    Citation Envoyé par Jean-Marc.Bourguet Voir le message
    Dans ce cadre (pure curiosité et intérêt pour l'électronique), le C est un meilleur choix que le C++. Mais j'aurais tendance à te conseiller de faire un peu d'assembleur.
    Pour ce qui est de l'assembleur, je crois que j'en ai fait suffisamment même peut être trop..

    Moi enfaite ce que je voulais, c'était d'apprendre un langage capable de faire des simulations (comme python) de composants et de circuit électronique donc pour ce qui est de l'assembleur je crois qu'on peut oublier.

    J'aurais une autre question, j'ai vu qu'il avait encore une variante du "C" -> le "C#".
    Donc ma question : Il a quoi de différant ce "C#" ?


    Conclusion:
    Je pense que je vais commencer avec le "C" et approfondir avec le "C++"

    Merci et bonne nuit

  18. #18
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 554
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Tu veux parler de la compilation en bytecode ? Ca existe encore ? On est pas passé au JIT avec Java et C# ?
    Pas systématiquement, non, mais même en dehors de cela, les compilateurs au sens large ne servent pas qu'à créer des exécutables. À contrario, les générateurs d'exécutables ne sont pas tous des compilateurs. On a même connu certains prétendus compilateurs de langages initialement interprétés (surtout avec les premiers BASIC) qui étaient en fait l'interpréteur et le code source embarqués dans le même exécutable.

    D'ailleurs, JIT est un mauvais exemple, lui aussi, puisque d'une part, la compilation en langage machine est effectuée après la traduction en bytecode et que, d'autre part, rien n'empêche à priori un programme Java d'être compilé directement en langage machine (ce que fais gcj).

    C'est sur cette dernière assertion que j'appuyais mes propos : si Java peut donner un exécutable autonome en langage machine, il n'en reste pas moins que le langage a avant tout été conçu pour produire du bytecode s'exécutant dans une JVM, que celle-ci décide de l'optimiser ensuite ou pas.

    M'enfin bon. Tout cela n'a pas beaucoup d'importance ...

  19. #19
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Tu veux parler de la compilation en bytecode ? Ca existe encore ? On est pas passé au JIT avec Java et C# ?
    Les JIT c'est un moyen d'executer le byte code en le compilant. Mais le code source a ete compile une premiere fois vers le byte code.

    Et quasiment tous les interpreteurs passent pas un byte code qui est ensuite interprete ou passe a un JIT, meme s'il n'est jamais sauve.

  20. #20
    Expert confirmé

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Par défaut
    Citation Envoyé par moumine Voir le message
    Pour ce qui est de l'assembleur, je crois que j'en ai fait suffisamment même peut être trop..

    Moi enfaite ce que je voulais, c'était d'apprendre un langage capable de faire des simulations (comme python) de composants et de circuit électronique donc pour ce qui est de l'assembleur je crois qu'on peut oublier.
    Si tu veux ecrire un simulateur, la je te conseille C++ sans hesitation (les simulateurs sont a l'origine meme du concept OO): au mieux tu vas reinventer l'implementation des primitives du C++.

    J'aurais une autre question, j'ai vu qu'il avait encore une variante du "C" -> le "C#".
    Donc ma question : Il a quoi de différant ce "C#" ?
    C'est un autre langage oriente objet, vaguement apparente au C mais sans partager avec lui un sous-ensemble commun important comme le fait le C++. C'est le langage natif de .NET et est quasiment inexistant en dehors de cette plateforme.

    Conclusion:
    Je pense que je vais commencer avec le "C" et approfondir avec le "C++"
    En connaissant l'assembleur et Python, tu as normalement les bases pour les apprendre dans l'ordre que tu veux sans que ca pose un probleme. J'aurais une legere preference pour le C++ -- tu vois le contexte a beaucoup d'importance, je change d'avis quand il se precise -- ce que tu vas decouvrir, c'est le typage statique et le C++ en a une version un peu plus propre que le C. Mais pour decouvrir cet aspect, je conseillerais plutot Ada ou un langage de la famille ML -- qui poussent l'exploration du concept beaucoup plus loin dans des voies differentes et sont beaucoup plus propre que C ou C++ de ce point de vue.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Quel logiciel (EDI) pour débuter en programmation ?
    Par mimosa69 dans le forum Débats sur le développement - Le Best Of
    Réponses: 13
    Dernier message: 17/01/2016, 17h45
  2. quels sont les possibilitées???
    Par lolo-d dans le forum OpenGL
    Réponses: 11
    Dernier message: 16/05/2002, 01h41
  3. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 23h37
  4. Quel désassembleur/assembleur pour un exe Windows ?
    Par Anonymous dans le forum x86 32-bits / 64-bits
    Réponses: 6
    Dernier message: 17/04/2002, 11h59

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