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 :

L'évolution du C++...


Sujet :

C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Par défaut L'évolution du C++...
    Petite question qui pourrait parraître "bêtes"... Le C++ évoluera t'il ? Ou cèdera t'il la place à un language plus complet que le C++ ?

    Mais est-ce que le C++ est complet... complet ?

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 63
    Par défaut
    Oui le C++ va évoluer, le nom du prochain standard est C++0x, quand aux améliorations que ça va apporter je m'y suis pas intéressé mais il y a surement pas mal de monde ici qui pourra te renseigner.

    Est-ce que le C++ est complet ? Ca dépend de ce que tu entends par complet, tu peux préciser ? Parce que tous les langages ont leurs spécificités.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Par défaut
    Humm bien.

    En faites, j'ai un livre sur le C++ (un gros livre). J'aimerais savoir, si il sera toujours valable quand le C++0x "sortira".

    Je supposes que le C++0x sera assez semblable au C++ de mnt. Et donc, après ma formation au C++ actuelle, il ne me sera pas trop dur de me mettre à jour par rapport au C++0x.

    En bref, j'aimerais savoir, si le livre que je possèdes ne sera pas inutile quand le C++0x sera "sorti".

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 155
    Par défaut
    Inutile je dirais proabalement pas même si certaines choses auront changées.

    Mais connaissez-vous approximativement la date de "sortie" de ce nouveau standard (qui succédera donc à l'ANSI/ISO actuel je suppose) ?

  5. #5
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    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 296
    Par défaut
    Il me semble que c'est en partie traité dans la FAQ.

    Je crois avoir lu dans un blog que le futur standard sera validé vers la fin de la décennie -- de plus après "C++0x" ne serait plus un sobriquet valide, et ils l'aiment bien au commité.

    Dans les trucs en plus ... pas mal de choses. J'avoue ne pas tout suivre.

    Diverses bibliothèques dont pas mal ont été expérimentées/pré-étudiées chez boost. On les retrouve déjà dans certaines distributions (GCC, dinkumware, ...) sous le namespace std::tr1.

    Des corrections mineures au langage, et des plus profondes. J'attends avec hâte la sémantique déplacement.

    Côté ce que l'on connait du C++ et des bouquins, il faut voir qu'aujourd'hui déjà beaucoup trop de bouquins passent à côté du C++ 98 et de comment il serait bon de l'utiliser.
    De plus si certaines notions comme les concepts sont validées, il va y avoir encore très probablement des évolutions dans la philosophie d'utilisation du C++ (côté développement de bibliothèques essentiellement, je crois) -- à moins de vouloir se restreindre au pur objet, il y a des gens comme ça.

    Bref, un point de départ moins imprécis et moins biaisé que moi sera la FAQ où on devrait pouvoir trouver un lien vers le site du commité de standardisation.

    Il a dû y avoir des petites discussions sur fclc++ dernièrement (un mois ou deux) -> "post lil'hammer metting" (ou un titre comme ça)
    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. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 155
    Par défaut
    Citation Envoyé par Luc Hermitte
    l'on connait du C++ et des bouquins, il faut voir qu'aujourd'hui déjà beaucoup trop de bouquins passent à côté du C++ 98 et de comment il serait bon de l'utiliser.
    Que veux-tu dire par là ? Que pas mal de livres sur le C++ sont mal écrits ? Comment est-ce que cela se fait selon toi ?

    (Tu sembles être un programmeur expérimenté donc ton avis la dessus m'intéresse ...)

    merci

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    Et qu' entend tu exactement par sémentique déplacement?

  8. #8
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    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 296
    Par défaut
    J'entends que beaucoup de livres ne montrent pas le C++ tel qu'il devrait être utilisé, mais le C++ d'après quelqu'un qui connait le C, le Pascal, le Java, ... (cocher la case qui va bien), et qui débarque donc avec des habitudes et des idiomes pas toujours très adaptés quand ils ne sont pas dangereux et faux une fois transposés.

    Il y a divers détails du C++ qui changent la donne. Dans les divers post-it (sur les divers forums), il y a des bouts de discussions à ce sujet et d'autres. Dans les récurrents "quel bouquin utiliser", d'autres bouts de discussions.
    Le C++ n'est pas un langage qui se limite à une syntaxe.


    Pour ce qui est de la sémantique de déplacement (j'avais oublié le "de"), il s'agit que la responsabilité des données stockées dans un objet est déplacée (confiée) à un autre objet au lieu d'une copie de type duplication.

    Un exemple type serait une matrice de beaucoup d'éléments.
    Avoir une fonction qui retourne une matrice veut généralement dire (mais pas toujours, cela dépend des compilateurs, des options de compilations et divers détails -> chercher C++ et RVO '"return value optimization")) que l'on va copier la matrice : soit faire une allocation en mémoire pour stocker les éléments à retourner, et faire une libération des éléments qui avaient été alloués dans la fonction. Ce n'est pas toujours efficace.

    Avec une sémantique de déplacement, on pourrait transférer de façon certaine la responsabilité de la zone mémoire qui avait été allouée dans la fonction.

    Plus d'infos dans les bouquins/sites qui traitent des std::auto_ptr<> (voir GOTW par exemple (Guru Of The Week)), dans l'article sur MOJO d'Andrei Alexandrescu (lien accessible depuis son site, google!), et bien sûr dans les diverses propositions à ce sujet dispos sur le site du commité.
    Note: Mon exemple est assez simpliste, la sémantique de déplacement couvre d'autres applications. -> puits et sources (=> GOTW), ...

    EDIT: des 's' s'étaient égarés
    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. #9
    Membre averti
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Par défaut
    Merci à toi pour le complement d' informations.

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 155
    Par défaut
    Citation Envoyé par Luc Hermitte
    J'entends que beaucoup de livres ne montrent pas le C++ tel qu'il devrait être utilisé, mais le C++ d'après quelqu'un qui connait le C, le Pascal, le Java, ... (cocher la case qui va bien), et qui débarque donc avec des habitudes et des idiomes pas toujours très adaptés quand ils ne sont pas dangereux et faux une fois transposés.
    Ah bon. Moi ce qui me surprend un peu c'est que les livres (en général) se concentrent beaucoup sur le langage et trop peu sur l'algorithmique.
    Je me trompe peut être, c'est une impression ...

    Sinon ce qui me fait bien rire c'est les phrases du genre "Ce livre a été conçu pour que vous maitrisiez le langage X à la fin de votre lecture ..."
    S'il suffisait de lire un livre pour maitriser un langage ...

  11. #11
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    S'il suffisiat de lire un livre pour connaître tous les algos...

  12. #12
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Beaucoup de livres proposent tout simplement un code faux, qui ne compile pas sur des compilos récents. D'autres donnent de mauvaises habitudes (char *, ...), ou réinventent la roue en n'utilisant pas les possibilités de la STL.
    Bref, le C++ est trop souvent présenté comme un C avec des classes. Le code donné peut souvent compiler en Java/C# moyennant quelques changements mineurs.
    En ce qui me concerne, je pense que le C++ commence aux templates.

    Pour le lien de la FAQ:
    http://c.developpez.com/faq/cpp/?pag...DIVERS_cpp_o_x

  13. #13
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    155
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 155
    Par défaut
    Citation Envoyé par Miles
    S'il suffisiat de lire un livre pour connaître tous les algos...
    Je n'ai jamais dit que c'était le cas (d'ailleurs qu'entends-tu par "tous" les algos ?)

  14. #14
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par défaut
    Tout à fait d'accord, tous les livres que j'ai lu ne parlaient pas des templates, juste d'une surcouche du C

  15. #15
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    En ce qui me concerne, je pense que le C++ commence aux templates.
    La genericite uniquement? A mon avis, le grand apport sont les fonctions virtuelles, qui donnent au C++ toute sa puissance (et sa reelle qualite de langage oriente objet).
    Un programmeur C qui commence le C++ va se dire que c'est un "meilleur C", avec un typage plus fort, un prototypage obligatoire, les simplifications apportees par le passage par reference et la surcharge d'operateurs, etc.
    Ensuite, il se mettra a la programmation par objet, comme il le faisait en C, en utilisant des types abstraits de donnees via la declaration de types incomplets. Rien de nouveau pour quelqu'un qui a concu une bibliotheque...
    Enfin, s'il a le courage, il decouvrira l'orientation objet. L'abstraction et l'heritage sont faisables en C, mais la grande puissance du C++ apparait avec les fonctions virtuelles (le polymorphisme en C, il faut s'accrocher...).

  16. #16
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Les fonctions virtuelles n'ont rien de propre au C++. Ca existait avant, ça existe en C#, Java, ... c'est un concept objet qu'on retrouve à l'identique dans plein d'autres langages objets, à la syntaxe près. Et encore:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    class A
    {
        virtual void Hello() {}
    };
    ce code compile en C++, Java, C#, ...
    Par contre, lire un fichier de mots, les trier par ordre alphabétique et stocker le tout dans un autre fichier, ça se fait en quelques lignes en C++ et de manière très performante grâce aux templates.

  17. #17
    Membre Expert
    Inscrit en
    Décembre 2004
    Messages
    1 478
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 478
    Par défaut
    Citation Envoyé par Aurelien.Regat-Barrel
    Les fonctions virtuelles n'ont rien de propre au C++. Ca existait avant, ça existe en C#, Java, ...
    Oui. Je disais seulement que par rapport au C, il me semble que l'apport le plus important sont les fonctions virtuelles. Par rapport au C# ou au Java, c'est peut-etre les templates, je ne peux pas juger comme je ne connais ni le C#, ni le Java.
    Par contre, tu dis que les fonctions virtuelles existaient avant le C++. Quel langage les a introduit? Smalltalk?

  18. #18
    Membre expérimenté
    Avatar de zdra
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    164
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2002
    Messages : 164
    Par défaut
    Citation Envoyé par DaZumba
    Oui. Je disais seulement que par rapport au C, il me semble que l'apport le plus important sont les fonctions virtuelles.
    En même temps la glib implémente tout les aspects de l'orienté objet en C ... Faut pas oublier que le language n'est qu'une facilité, après c'est l'utilisation qu'on en fait qui compte.

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2005
    Messages : 45
    Par défaut
    Quelqu'un n'aurait-il pas quelque information à propos du C++0x ?

    8)

  20. #20
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    Citation Envoyé par DaZumba
    Oui. Je disais seulement que par rapport au C, il me semble que l'apport le plus important sont les fonctions virtuelles. Par rapport au C# ou au Java, c'est peut-etre les templates, je ne peux pas juger comme je ne connais ni le C#, ni le Java.
    Ok. Moi je parlais de ce qui faisait la particularité de C++, je ne me situais pas par rapport à un langage particulier.
    Par contre, tu dis que les fonctions virtuelles existaient avant le C++. Quel langage les a introduit? Smalltalk?
    Je sais pas. Je sais que C++ s'est pas mal inspiré de Simula, mais je connais pas ce langage. Je pense que ces concepts objets sont bien plus anciens, et ont été développés dès les années 60.
    Comme l'a dit zdra, c'est pas vraiment lié au langage. Le C n'interdit pas de faire de l'orienté objet, avec des appels virtuels. C'est plus contraigant c'est tout. Il cite la glib, on pourrait aussi citer COM, ou certains mécanismes de Win32.

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

Discussions similaires

  1. Évolution d’une application existante. Quel choix ?
    Par BBerni dans le forum Décisions SGBD
    Réponses: 9
    Dernier message: 10/05/2004, 10h59
  2. Réponses: 32
    Dernier message: 20/01/2004, 19h33

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