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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 42

    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
    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

  8. #8
    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).

  9. #9
    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++

  10. #10
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 475
    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 475
    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.

  11. #11
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    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é !

  12. #12
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 475
    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 475
    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.

  13. #13
    Expert éminent
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 68
    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# ?

  14. #14
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 475
    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 475
    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 ...

  15. #15
    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.

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

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, 16h45
  2. quels sont les possibilitées???
    Par lolo-d dans le forum OpenGL
    Réponses: 11
    Dernier message: 16/05/2002, 00h41
  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, 22h37
  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, 10h59

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