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

Contribuez C++ Discussion :

Le langage D


Sujet :

Contribuez C++

  1. #1
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut Le langage D
    Salut les C++iens,

    Suite au séisme provoqué par le retrait des concepts, je lis çà et là des prédictions nostradamussiennes (pacorabanniennes ?) de la mort du C++.
    Bon, je ne sais pas si on peut avancer de telles choses aujourd'hui et je n'ai pas non plus spécialement envie que le C++ meure aussi vite (en fait, ce n'est même pas le sujet de la conversation que je souhaite engager), mais j'aimerais malgré tout sortir la tête de mon trou pour voir ce qui se trame au pays de la succession du C++.

    Le C++, héritant du C, commence à être un langage assez vieux et par conséquent de plus en plus difficile à réformer. Difficile en effet d'ajouter des killer-features s'intégrant harmonieusement à la version précédente tout en assurant la rétrocompatibilité. Et je ne parle même pas des boulets qu'on se traine depuis le C (le typage faible, le préprocesseur archaïque et j'en passe).

    De plus, les alternatives montantes telles que le Java et le C# ne me convainquent pas des masses : faciliter la tâche du développeur d'accord (et encore, je me sens plus libre en C++), mais pas au détriment des performances, ni au cout de l'introduction d'une machine virtuelle ou autre interpréteur dont on connait les inconvénient. Mais bref, ce n'est pas le sujet non plus.

    Je viens de me renseigner un petit peu ce matin sur le langage D. Celui-ci se présente comme un re-engineering du C++, ou une remise à plat si vous préférez.
    Le D, la puissance du C++ sans sa complexité : vous y croyez ? J'ai pu lire qu'Andrei Alexandrescu (célèbre expert C++), lui, semble y croire.

    Je ne vais pas vous faire une présentation des fonctionnalités de D (la page correspondante de Wikipédia le fera mieux que moi), mais celles-ci semble prometteuses.

    En tout cas, tout ceci semble assez intéressant, je vais me pencher sur le sujet.

    Que pensez-vous de D comme digne successeur de C++ ?
    Y a-t-il une alternative plus convaincante selon vous ?
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Salut,
    La mort du C++ est annoncée depuis les premières versions de Java et surtout depuis l'apparition de la plateforme .Net. Il est clair que le C++ n'étant pas trop fait pour le monde Internet, c'est un sérieux handicap à mon avis supérieur à sa complexité. Ensuite, le COBOL aussi doit mourir depuis déjà une trentaine d'année... Et on forme toujours des gens au COBOL. Ca s'appelle l'existant. Côté C++, il y a aussi une grosse base d'existant en particulier dans des métiers spécifiques (télécom, réseaux, embarqué). Ce qui fait que même les nouveaux projets démarrent souvent avec encore du C++. Enfin, je ne suis pas persuadé que les hoquets du C++0x soit un critère d'abandon du langage au niveau industriel au profit d'un autre langage.

    Concernant le langage D, le problème c'est que cela ressemble encore à un langage 'universitaire', c'est à dire assez peu utilisé dans le monde industriel. Va-t-il se développer ? Pour être franc, je pense que ça ne marchera que si un acteur comme Microsoft diffuse massivement des outils autour de ce langage. Et ça n'a pas trop l'air d'être à l'ordre du jour.

    Quel successeur au C++ ? J'aurais tendance à dire que c'est une fausse question. Le C++ n'empêche pas que des projets existent et démarrent en C. Il y a cohabitation entre les deux langages. Ce sera probablement le cas entre le C++ et d'autres langages (C#, D, Java, etc.).

  3. #3
    Invité
    Invité(e)
    Par défaut
    Pour le peu que j'en ai lu, j'ai un peu peu l'impression que le D perpetue certaines des "erreurs" qui font que le C++ (ou du moins sa version moderne) a eu du mal à s'implanter en entreprise (par rapport au C, par exemple, qui a été adopté assez tôt).

    A ce stade on a

    - un langage trop ouvert. C'est le problème du multiparadigme : ca rend le langage compliqué à apprendre, et cela nuit à la constitution rapide d'une base d'utilisateurs (qui se fragmente en petits groupes, par "paradigme")

    - ce penchant pour l'abstraction que l'on retrouve dans pas mal de langages "de seconde génération", qui satisfait les théoriciens, mais perd les apprenants. Pour bien comprendre et apprécier les avantages du nouveau langage, il faut comprendre et maitriser les defauts des langages précédents... Par ailleurs, ce type de langage, qui repose sur des idées assez théoriques est souvent considéré comme "difficile" par des ingénieurs non informaticiens, qui sont souvent la principale force pour l'adoption de nouveaux langages dans l'entreprise.

    - pas assez d'efforts consacrés à la librairie. C'était la force du C, et déjà le problème du C++. Je ne serais pas étonné que le manque d'attention portée aux premières versions de la SL et de la STL (et je ne parle même pas de la doc) ait été une des principales raisons du relatif échec du C++ en entreprise.

    Maintenant, D est un langage jeune, et les choses peuvent changer, mais je ne crois pas qu'il prenne la bonne voie.

    Francois
    Dernière modification par Invité ; 25/07/2009 à 09h13.

  4. #4
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Euh, me semble bien que D utilise aussi la SL non?
    Et je rejoins 3Darchi sur le côté 'universitaire', je dirais plus théorique même que applicatif. (peut être je me trompe j'ai vraiment pas de recul, mais j'ai pas vu souvent des sources en D me passez sous les yeux...).
    Des critiques que j'ai lu aussi c'est qu'il fait assez "boite à outils" on met les nice-features du moment ensemble et voilà. Mais là pareil je peux me tromper, pas assez de recul, trop jeune.

    Quand à la mort du C++, j'y crois pas... y'a encore trop de domaine où il domine, l'embarqué pour ne cité que lui, je rajouterais les jeux vidéos, quoiqu'en dise les javai-istes et dotnet-istes j'ai pas encore vu de gros blocksbusters codé en C# ou en java.
    Et bon... l'industrie du jeux vidéos représente quand même une sacrée part du marché..
    Donc à mon avis on va avoir droit encore longtemps à de la cohabitation. Mais bon tout ça reste quand même assez 'boule de crystal' l'informatique changeant tellement vite, qui vivra verra...

    Enfin c'est vrai que le gros manque (enfin perso ça me manque pas du tout ^^) de C++ face à java et C# c'est qu'il est pas du tout tournée vers le développement web, or c'est vrai que tout tends vers ça aujourd'hui... (même les jeux justement, comme quake par exemple).
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Goten Voir le message
    Euh, me semble bien que D utilise aussi la SL non?
    Non, D a sa propre librairie de base (également appelée Standard Library), surnommée Phobos (http://www.digitalmars.com/d/2.0/phobos/phobos.html), elle permet un accès direct aux fonctions de la librairie C (ce qui est une très bonne chose) et aux API des OS sous jacents, mais n'est pas compatible, à ma connaissance, avec les bibliothèques du C++.

    En ce sens, D est plus proche du C que du C++.

    Francois

  6. #6
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Citation Envoyé par Goten Voir le message
    Enfin c'est vrai que le gros manque (enfin perso ça me manque pas du tout ^^) de C++ face à java et C# c'est qu'il est pas du tout tournée vers le développement web, or c'est vrai que tout tends vers ça aujourd'hui... (même les jeux justement, comme quake par exemple).
    En quoi le C++ n'est-il pas tourné vers le Web ?
    C'est plus un problème de bibliothèque que de langage, non ?

    Merci pour vos réactions, c'est intéressant .
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Le C et le C++ ne sont pas trop tournés vers l'interface, le web en est un aspect...

    Francois

  8. #8
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    Interface de le sens API/ABI, je suppose ?
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  9. #9
    Invité
    Invité(e)
    Par défaut
    IHM plutôt... Le C++, parce qu'il hérite du C; est assez adapté à appeler les fonctions des API des systèmes d'exploitations (eux même développés en C), en revanche, tout l'aspect interface graphique (fenetres, clavier, souris, et tout le cirque) reste loin du langage et des librairies de base.

    Francois

  10. #10
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    On a pourtant ce qu'il faut en interface graphique : Qt, gtkmm, wxWidgets et j'en passe…
    Quel est le problème ?
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  11. #11
    Membre chevronné
    Avatar de Goten
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 580
    Points : 2 205
    Points
    2 205
    Par défaut
    Moi je parlais en comparaison de asp ou autre techno web du framework .NET .
    "Hardcoded types are to generic code what magic constants are to regular code." --A. Alexandrescu

  12. #12
    Membre éclairé
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2008
    Messages : 680
    Points : 858
    Points
    858
    Par défaut
    J'avoue que n'ayant jamais touché à .Net, je ne sais pas ce que peut bien apporter cette liaison entre ASP.Net et C#…

    (Ah, on me souffle à l'oreille que je suis en train de pourrir mon propre topic à coups de HSitude )
    Cours : Initiation à CMake
    Projet : Scalpel, bibliothèque d'analyse de code source C++ (développement en cours)
    Ce message a été tapé avec un clavier en disposition bépo.

  13. #13
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Florian Goo Voir le message
    On a pourtant ce qu'il faut en interface graphique : Qt, gtkmm, wxWidgets et j'en passe…
    Quel est le problème ?
    Oui, et avant on a eu la VCL, et les MFC, et OWL... Mais pourtant... le C++ est peu utilisé comme langage d'interface.

    Ma sensation est que le problème vient du fait que ces bibliothèques sont "externes". Si tu fais du Delphi, interface et langage sont très proches et très liés, pareil en VB et en .NET... L'interface, sa conception, fait partie de l'EDI, son code est un sous ensemble du langage.

    C'est moins le cas en C++, je pense. Pour java, je ne sais pas.

    C'est en tout cas ressenti comme un problème. En entreprise, l'idée qu'on développe "les moteurs en C/C++ et les interfaces en ... (un autre langage de ton choix)", est très répandue, et n'a pas changé avec l'arrivée de Qt (ou plus précisément sa dernière licence).

    Francois

  14. #14
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Goten Voir le message
    Moi je parlais en comparaison de asp ou autre techno web du framework .NET .
    Je suis d'accord, mais on pourrait objecter ici aussi qu'il y a toutes sorte de librairies C++ qui font ca très bien, non?

    Francois

  15. #15
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Pour revenir au sujet de D, je m'y suis interessé plus grandement en lisant cette discussion (anglais) initiée par la publication d'Alexandrescu qui explique pourquoi il est bon de s'interesser a D : http://www.ddj.com/hpc-high-performa...ting/217801225

    Sympas comme features non?

    Or comme indiqué sur la fin de la discussion, suite a cette publication il y a eu des réactions des utilisateurs du language:


    The Case for D - the other side of the coin by leonardo-m,
    The Present of D by Jarret Billingsley, the creator of the MiniD library,
    Re: The Present of D by h3r3tic, member of a very active polish D developers' team,
    D - Good, Bad, Ugly, Pretty by Clay Smith, creator of the Arclib library

    Une question interessante en rapport sur Stack Overflow : http://stackoverflow.com/questions/7...059780#1059780


    Donc, en réalité les problèmes fondamentaux du D seraient plutôt :
    - plusieurs versions strictement incompatibles du langage - ça encore c'est mineur, disons qu'on garde juste D2;
    - toutes les features ne sont pas implémentés pour D2 - or c'est là qu'il y a les choses les plus interessantes (théoriquement) qui pourraient faire venir des gens a ce langage;
    - pas bien définis : trop de trous ou de vague dans les définitions;
    - la SL officielle est moins bonne que la non officielle qui elle même n'est pas (suffisament) parfaite...

    On pourrait résumer par : c'est le bordel.

    Sur les principes globaux, c'est un language qui semble au moins aussi interessant que le C++ pour les même type de développement (je pense par exemple aux jeux vidéo, même sur console).
    En revanche tous les problèmes du langage sont dans la pratique. A mon humble avis le langage gagnerai soit a être standardisé ISO façon C++ (pour obliger les développeurs à rendre les choses claires pour les developeurs de compilateur), soit à être repris par quelqu'un d'autre de manière à régler les trous du langage . edit> Mieu: un nouveau language non corporate utilisant les bonnes idées pointées par Alexandrescu serait même mieu. Quelqu'un qui sait définir un language...

    (Je ne pense pas que le multiparadigme soit un probleme pour D, la genericité semble bien plus simple que pour les templates alors que c'est globalement le meme principe...)


    Enfin bref, mon avis personel est que c'est un language interessant a surveiller mais qui est dans un etat trop chaotique pour être un choix interessant aujourd'hui (que ce soit pour du développement en amateur ou professionel).

    J'essaierai peut être le jour ou ils auront implémenté toutes les features du langage dont parle Alexandreiscu.

  16. #16
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    26 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 26 858
    Points : 218 577
    Points
    218 577
    Billets dans le blog
    120
    Par défaut
    Juste pour apporter quelques exemples d'utilisation du langage:
    Ici ( pour la section windows ) le gars à développer quelques jeux en D ( en utilisant SDL et OpenGL ).

    Donc il existe au moins un utilisateur \o/, mais c'est vrai que j'en ai pas beaucoup entendu parler comme langage ...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  17. #17
    Membre expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Points : 3 344
    Points
    3 344
    Par défaut
    Il y a pas mal de débutant indie (dans le jeu vidéo) qui ont commencé par D, et puis la première fois que j'ai entendu parler du langage c'était rapport aux shoots experimentaux. Dans tous les cas ya bien une bonne base communautaire (pas aussi grande que d'autres languages plus connus) puisque sinon il n'y aurait pas autant de réponses par blog sur les problemes du language.

  18. #18
    Expert confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2003
    Messages
    3 549
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 3 549
    Points : 4 625
    Points
    4 625
    Par défaut
    Suite au séisme provoqué par le retrait des concepts, je lis çà et là des prédictions nostradamussiennes (pacorabanniennes ?) de la mort du C++.
    Il faut vraiment arrêter de dramatiser avec les concepts.
    Leur enlèvement ne change rien en pratique car leurs fonctionnalités s'émulent sans problème avec une syntaxe comparable (je dirais même plus claire et concise).
    Boost ftw

  19. #19
    Alp
    Alp est déconnecté
    Expert éminent sénior

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Points : 11 860
    Points
    11 860
    Par défaut
    Citation Envoyé par loufoque Voir le message
    Il faut vraiment arrêter de dramatiser avec les concepts.
    Leur enlèvement ne change rien en pratique car leurs fonctionnalités s'émulent sans problème avec une syntaxe comparable (je dirais même plus claire et concise).
    J'aime bien Boost.Concept_Check, en attendant d'avoir d'avoir les concepts dans la norme.

  20. #20
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par loufoque Voir le message
    Leur enlèvement ne change rien en pratique car leurs fonctionnalités s'émulent sans problème avec une syntaxe comparable (je dirais même plus claire et concise).
    Tu trouve qu'il est plus clair et plus concis plutôt que de définir deux concepts et de faire de l'overloading basé dessus de définir une classe de trait, et d'avoir une fonction qui dispatch l'appel vers deux fonctions avec un paramètre bidon permettant de lire la classe de traits ?

    Sans compter que pour moi, la fonctionnalité principale des concepts qui est la détection d'erreur, je ne vois pas trop comment l'émuler. Avec des checks, on peut valider que le type de l'utilisateur répond bien aux contraintes (mais de manière peu élégante, je trouve), mais je ne crois pas qu'on puisse valider que l'implémentation n'utilise rien d'autre que ce qu'elle croit utiliser.

    Enfin, sans concepts, pas d'axiomes non plus, et là, je ne vois rien qui puisse faire comme ces derniers.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. [langage] Je cherche un bon livre ?
    Par Anonymous dans le forum Langage
    Réponses: 13
    Dernier message: 09/04/2003, 13h16
  2. [langage] Comparer Perl avec d'autres langages comme C ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 10/08/2002, 23h52
  3. [langage] comment créer des fichiers ?
    Par Anonymous dans le forum Langage
    Réponses: 3
    Dernier message: 05/05/2002, 16h33
  4. 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
  5. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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