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

Affichage des résultats du sondage: Pour vous, faut-il

Votants
25. Vous ne pouvez pas participer à ce sondage.
  • séparer le C et le C++

    18 72,00%
  • les unir

    1 4,00%
  • les unir mais savoir différencier les deux "styles de programmation"

    2 8,00%
  • non mais t'as rien compris

    9 36,00%
Sondage à choix multiple
C Discussion :

Qu'en pense le forum C?


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut Qu'en pense le forum C?
    Bonjour,
    depuis quelque temps, j'ai créé ce thread C et C++ mythe et realité.
    Ou les buts principaux étant
    1 - Aider les gens (dont moi) à comprendre la différence entre le C et C++
    2 - De répertorier les différences, pour ne pas se trouver complètement larguer (m'est déjà arrivé) et perdre plusieurs jours parce qu'un projet mélange du C et C++
    3 - Eviter d'écrire des choses qui marche un jour mais pas demain (ex : i =++n * --n; )
    4 - Echanger les expériences

    N'ayant l'avis en grande partie que de ceux qui sont dans le forum C++, je remet le sondage anonyme ici(je ne sais pas si c'est possible d'avoir un sondage sur deux thread en même temps), et demande votre aide. Je recherche aussi des exemples de code qui fonctionne qu'en C.

    Merci

  2. #2
    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 Mongaulois Voir le message
    depuis quelque temps, j'ai créé ce thread C et C++ mythe et realité.
    Ou les buts principaux étant
    1 - Aider les gens (dont moi) à comprendre la différence entre le C et C++
    http://david.tribble.com/text/cdiffs.htm

    Une seule différence suffit pour affirmer que ce sont des langages différents et qu'il n'y a pas de notion de 'sur-ensemble', comme Objective-C par rapport à C (90, du moins...)
    2 - De répertorier les différences, pour ne pas se trouvais[er] complètement larguer (m'est déjà arrivé) et perdre plusieurs jours parce qu'un projet mélange du C et C++
    bah, comme ce sont 2 langages différents, quel intérêt ? La première démarche à respecter est de comprendre qu'il sont différents et qu'il ne faut chercher ni à les comparer ni à les mélanger... Affaire réglée. (Le seul point commun est le préprocesseur, encore que je ne suis pas sûr que les nouveautés de C99, var args par exemple, soient intégrées dans C++98).
    3 - Eviter d'écrire des choses qui marche un jour mais pas demain (ex : i =++n * --n; )
    C'est un problème de connaissance de chaque langage. La norme qui décrit le C recense un certain nombre de comportements indéfinis...

    http://emmanuel-delahaye.developpez.com/notes.htm#norme

    4 - Echanger les expériences
    Le forum est fait pour ça...

    <...Je recherche aussi des exemples de code qui fonction[ne] qu'en C.
    http://emmanuel-delahaye.developpez.com/clib.htm

    par choix délibéré. (Par contre, il est interfaçable avec du C++ si je ne me suis pas planté dans mes headers).

  3. #3
    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
    Bin les séparer... quelle question ! Ce sont deux langages complètement différents, une des raison majeur de la séparation de la rubrique C & C++ d'ailleurs !

    Aucune comparaison ne peut être faite, rien que par leur différence dans le style de programmation (quoique, le C++ est-il multi-paradigme ?), leur normes, leur bibliothèques, sans doute même leurs objectifs et le publique visé, tout les sépare en tout point de vue !
    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 !

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Une seule différence suffit pour affirmer que ce sont des langages différents et qu'il n'y a pas de notion de 'sur-ensemble', comme Objective-C par rapport à C (90, du moins...)
    avec un argument comme ça je peut rien dire. Je me disait aussi que le C++ de g++ était un autre langage que le C++ de VC ou de ICC...


    bah, comme ce sont 2 langages différents, quel intérêt ? La première démarche à respecter est de comprendre qu'il sont différents et qu'il ne faut chercher ni à les comparer ni à les mélanger... Affaire réglée. (Le seul point commun est le préprocesseur, encore que je ne suis pas sûr que les nouveautés de C99, var args par exemple, soient intégrées dans C++98).
    Si c'était si simple, cela ne me poserai pas de problème. Mais on choisie pas toujours les lib que l'on doit utiliser. Mon problème n'est pas d'un point de vue théorique, mais en pratique ils sont souvent mélangé.

    C'est un problème de connaissance de chaque langage. La norme qui décrit le C recense un certain nombre de comportements indéfinis...
    http://emmanuel-delahaye.developpez.com/notes.htm#norme
    merci pour le lien. trés intéressant.

  5. #5
    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 Mongaulois Voir le message
    avec un argument comme ça je peut rien dire. Je me disait aussi que le C++ de g++ était un autre langage que le C++ de VC ou de ICC...
    Ca, c'est encore un autre problème. En dehors du fait qu'il peut y avoir des versions différentes, chaque implémentation d'un langage peut offrir des extensions à ce langage. Bien sûr, les extensions de g++ ne sont pas forcément les mêmes que celles de VC ou ICC...
    Si c'était si simple, cela ne me poserai pas de problème. Mais on choisie pas toujours les lib que l'on doit utiliser. Mon problème n'est pas d'un point de vue théorique, mais en pratique ils sont souvent mélangé.
    On a parfaitement le droit, dans un projet C++, d'utiliser une bibliothèque avec interface C. On fait ça tout le temps avec les fonctions systèmes...

  6. #6
    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
    Citation Envoyé par Mongaulois Voir le message
    Je recherche aussi des exemples de code qui fonction qu'en C.
    Ceci peut te donner un avant goût peut-être: Les incompatibilités entre le C et le C++
    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 !

  7. #7
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Franck.H Voir le message
    Bin les séparer... quelle question ! Ce sont deux langages complètement différents
    Comment m'en persuader...

    Citation Envoyé par Franck.H
    Aucune comparaison ne peut être faite, rien que par leur différence dans le style de programmation (quoique, le C++ est-il multi-paradigme ?), leur normes, leur bibliothèques, sans doute même leurs objectifs et le publique visé, tout les sépare en tout point de vue !
    Donc faut plus faire de SDL, GTK,OpenGL, avec du C++. Pour le reste, es que tu pourrai expliqué "sans doute même leurs objectifs et le publique visé", s'il te plait?

    Citation Envoyé par Franck.H Voir le message
    Ceci peut te donner un avant goût peut-être: Les incompatibilités entre le C et le C++
    Merci pour le lien, trés intéressant.

  8. #8
    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 Mongaulois Voir le message
    Comment m'en persuader
    Tout simplement parce qu'il sont définis pa des documents différents et disjoits. Nulle pas dans C++, il est dit que le C était un sous-ensemble de C++. Par contre, la bibliothèque C peut être utilisée en C++, tout simplement parce que l'interface C++/C est parfaitement définie par le C++.
    Donc faut plus faire de SDL, GTK,OpenGL, avec du C++.
    Il n'y a aucune contre-indication.

  9. #9
    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
    Citation Envoyé par Mongaulois Voir le message
    Donc faut plus faire de SDL, GTK,OpenGL, avec du C++.
    Attention, ne dit pas ce que j'ai pas dit, j'ai généralisé c'est tout, tu trouveras plein de bibliothèque uniquement pour le C, d'autres uniquement pour le C++ et encore d'autres pour les deux langages. Par exemple pour GTK il y a le binding Gtkmm, SDL s'utilise sur bien des langages alors je ne parle même pas d'OpenGL

    Citation Envoyé par Mongaulois Voir le message
    Pour le reste, es que tu pourrai expliqué "sans doute même leurs objectifs et le publique visé", s'il te plait?
    D'une part C++ est orienté objet et donc fait appel à des connaissances supplémentaires et plus dans l'ère du temps si je puis me permettre. Tout comme sur le marché professionnel, même si le C est toujours présent dans bon nombre de secteur comme essentiellement le développement embarqué par exemple.

    Le C++ à réussi à prendre des parts de marchés plus importantes comme l'industrie du jeu vidéo, rien qu'à voir les moteurs 3D qui sont pour la plupart faits en C++. Une part de marché qui vise tout autant un autre type de programmeurs qui prend de plus en plus d'ampleur.

    Le C se cantonne un peu plus sur le bas niveau dont l'embarqué et même là, le Java à déjà pris une grosse part de marché, notamment sur les téléphones mobiles. Le noyau des système d'exploitation sont pour la plupart en C également (du moins une partie). Des jeux sur GameBoy Advance sont fait en C, tous je ne sais pas mais il y en a c'est sûr.

    On peut voir rien que dans ces différents domaines d'application, que les deux langages visent des secteurs plus ou moins spécifiques.
    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 !

  10. #10
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    hoho ça s'emballe ici !
    Je suis daccord avec les gens qui ne comprennent pas la phrase 'différencier le C et le C++' !

    En effet ce sont des langages complètement différents ! La logique de développement n'est pas la même dans les deux !
    Cela dit ils sont interfaçables ! tout est la, il ne faut pas comprendre 'interfaçables' comme étant 'pareils' !!!!
    On peut utiliser des fonctions C dans un programme C++ ! Il n'y a pas de mal à ça tant que cette introduction reste justifiée (fonctions systèmes par exemple) !


  11. #11
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Le C et le C++ sont pour moi 2 langages complètement différents, rien que le fait que l'un soit orienté objet et l'autre pas et une énorme différence en soi.

    Moi perso j'apprécie pas plus que ça le C++ je sais pas pourquoi, peut-être la syntaxe (c'est pas le bon mot) mais je trouve pas ça élégant les cout >> "blabla";

    Ensuite euh ben je sais pas trop quoi dire.
    Ah si j'aime pas sur le forums quand y'a un espace C/C++. Il faudrait un espace C et un autre C++ (comme ici d'ailleurs).

  12. #12
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par Emmanuel Delahaye Voir le message
    Tout simplement parce qu'il sont définis pa des documents différents et disjoits. Nulle pas dans C++, il est dit que le C était un sous-ensemble de C++. Par contre, la bibliothèque C peut être utilisée en C++, tout simplement parce que l'interface C++/C est parfaitement définie par le C++.
    Cela ressemble beaucoup a dire qu'il y as du C dans du C++ . Je déconne.


    Citation Envoyé par Franck.H Voir le message
    Attention, ne dit pas ce que j'ai pas dit, j'ai généralisé c'est tout, tu trouveras plein de bibliothèque uniquement pour le C, d'autres uniquement pour le C++ et encore d'autres pour les deux langages. Par exemple pour GTK il y a le binding Gtkmm, SDL s'utilise sur bien des langages alors je ne parle même pas d'OpenGL
    Je répondais à l'extrême aussi

    Citation Envoyé par Franck.H Voir le message
    D'une part C++ est orienté objet et donc fait appel à des connaissances supplémentaires et plus dans l'ère du temps si je puis me permettre. Tout comme sur le marché professionnel, même si le C est toujours présent dans bon nombre de secteur comme essentiellement le développement embarqué par exemple.

    Le C++ à réussi à prendre des parts de marchés plus importantes comme l'industrie du jeu vidéo, rien qu'à voir les moteurs 3D qui sont pour la plupart faits en C++. Une part de marché qui vise tout autant un autre type de programmeurs qui prend de plus en plus d'ampleur.

    Le C se cantonne un peu plus sur le bas niveau dont l'embarqué et même là, le Java à déjà pris une grosse part de marché, notamment sur les téléphones mobiles. Le noyau des système d'exploitation sont pour la plupart en C également (du moins une partie). Des jeux sur GameBoy Advance sont fait en C, tous je ne sais pas mais il y en a c'est sûr.

    On peut voir rien que dans ces différents domaines d'application, que les deux langages visent des secteurs plus ou moins spécifiques.
    Merci pour cette expliquation.

    En faite je trouve que la séparation entre le C et le C++ est très flou. A cause de prof, de gens incompétent, d'habitude, d'un syntaxe d'écriture très proche, ....

    J'ai vraiment du mal à les considéré comme deux langages différents. Je trouve que leurs différences est plus dans la méthode de programmation que sur le langage lui même. Je ne dit pas qu'il n'y as pas de différence de norme, mais je trouve que c'est trés minime par rapport à la partie C que l'on retrouve dans le C++. Ce qui me choque est la facilité de les mélangers assez facilement.
    Par exemple, j'ai utilisé GTS (lib C) pour faire de la triangulation de delaunay dans un projet C++. Pour récupérer les point de la surface, il faut utiliser une fonction qui ressemble as "for_each_vertex(...)" dans laquelle on passe une fonction. J'ai écrit les fonction que je passe en C++ (avec des cast, class) , et je n'ai eu aucun problème.

    Je ne peut pas faire changer d'avis tous le monde, et je vais faire avec.
    Et peut être que petit a petit, je vais comprendre la différence, et changerais d'avis.. ou pas

    Maintenant, je remet en cause mes "fausse connaissance" en C . Et je cherche à bien différencier ce qui C++ et non C. Je ne pense pas que se dire que ce sont deux langage différent suffise.
    Je me voit très bien (et je ne suis sûrement pas le seul), par exemple, ajouter un constructeur dans une struct C

    Mais depuis le début de l'autre thread, j'ai appris pas mal de chose sur ces langages, et j'ai pas mal changé ma conception sur le C et le C++.

  13. #13
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    201
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 201
    Par défaut
    Par exemple, j'ai utilisé GTS (lib C) pour faire de la triangulation de delaunay dans un projet C++. Pour récupérer les point de la surface, il faut utiliser une fonction qui ressemble as "for_each_vertex(...)" dans laquelle on passe une fonction. J'ai écrit les fonction que je passe en C++ (avec des cast, class) , et je n'ai eu aucun problème.
    ça revient bien au fait que c'est juste interfaçable , c'est comme faire du JNI ! Utiliser des fonctions C en faisant du JAVA ! ce n'est pas pour autant qu'ils sont pareils !
    Maintenant, je remet en cause mes "fausse connaissance" en C . Et je cherche à bien différencier ce qui C++ et non C. Je ne pense pas que se dire que ce sont deux langage différent suffise.
    Je me voit très bien (et je ne suis sûrement pas le seul), par exemple, ajouter un constructeur dans une struct C
    ouille !!!! construsteur => objet , C => pas objet !!

  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 : 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 Mongaulois Voir le message
    En faite je trouve que la séparation entre le C et le C++ est très flou. A cause de prof, de gens incompétent, d'habitude, d'un syntaxe d'écriture très proche, ....

    J'ai vraiment du mal à les considéré comme deux langages différents.
    J'ai un peu du mal à comprendre tes interrogations. Le fait que le C et le C++ soient différents n'est pas une question d'opinion, c'est un fait indiscutable. Point.

    - Noms différents
    - Normes différents
    - Compilateurs différents
    - Paradigmes différents
    - Syntaxe différente

    Tout celà est indéniable et de souffre d'aucune discussion.

    Maintenant, il est une vrai question qui peut se poser :
    Le C est-il un sous-ensemble de C++ ?

    Et la, la réponse est non, mais il faut le démontrer.

    Alors démonstration.

    - Le tout premier C with classes était effectivement un C(90 ?, je ne sais plus...) avec des ajouts, mais sans modification du C original.
    - Ensuite est venu C++ qui a introduit des changements dans la syntaxe originale du C, tels que ceux décrits ici (déjà cité).

    Voilà. La divergence est consommée. Conclusion :

    Le C n'est pas un sous-ensemble de C++. C++ est un autre langage.

    Fin de la discussion.

    Par contre Objective C est certes un langage différent de C (évidemment), mais, c'est un sur-ensemble de C90, tout simplement parce que c'est écrit dans le document qui définit Objective C. (Je m'avance un peu, j'espère qu'il existe...)

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

Discussions similaires

  1. Le grand mode d'emploi du forum, à lire si vous souhaitez tout savoir !
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 03/06/2013, 17h36
  2. Obligatoire : lisez les règles du forum : MAJ 06/08/2010
    Par Anomaly dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 0
    Dernier message: 03/07/2008, 13h46
  3. À lire OBLIGATOIREMENT avant de poster sur ce forum
    Par ok.Idriss dans le forum Débats sur le développement - Le Best Of
    Réponses: 2
    Dernier message: 24/09/2006, 23h21

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