Publicité
+ Répondre à la discussion Actualité déjà publiée
Page 1 sur 16 1234511 ... DernièreDernière
Affichage des résultats 1 à 20 sur 307

Discussion: Le langage D

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

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 720
    Points
    720

    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/Modérateur
    Avatar de 3DArchi
    Inscrit en
    juin 2008
    Messages
    7 636
    Détails du profil
    Informations forums :
    Inscription : juin 2008
    Messages : 7 636
    Points : 11 672
    Points
    11 672

    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 Expert
    Avatar de Goten
    Inscrit en
    juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 23

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 580
    Points : 1 990
    Points
    1 990

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

  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 chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 720
    Points
    720

    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 chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 720
    Points
    720

    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 chevronné
    Avatar de Florian Goo
    Profil pro
    Inscrit en
    septembre 2008
    Messages
    680
    Détails du profil
    Informations personnelles :
    Âge : 28
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 720
    Points
    720

    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 Expert
    Avatar de Goten
    Inscrit en
    juillet 2008
    Messages
    1 580
    Détails du profil
    Informations personnelles :
    Âge : 23

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 580
    Points : 1 990
    Points
    1 990

    Par défaut

    Moi je parlais en comparaison de asp ou autre techno web du framework .NET .

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

    Informations forums :
    Inscription : septembre 2008
    Messages : 680
    Points : 720
    Points
    720

    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
    Expert Confirmé
    Avatar de Klaim
    Homme Profil pro Joel Lamotte
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Nom : Homme Joel Lamotte
    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 718
    Points : 3 026
    Points
    3 026

    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 Alexandre Laurent
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    15 567
    Détails du profil
    Informations personnelles :
    Nom : Homme Alexandre Laurent
    Localisation : France

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

    Informations forums :
    Inscription : mai 2008
    Messages : 15 567
    Points : 71 918
    Points
    71 918

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

  17. #17
    Expert Confirmé
    Avatar de Klaim
    Homme Profil pro Joel Lamotte
    Développeur de jeux vidéo
    Inscrit en
    août 2004
    Messages
    1 718
    Détails du profil
    Informations personnelles :
    Nom : Homme Joel Lamotte
    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 718
    Points : 3 026
    Points
    3 026

    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é Sénior
    Homme Profil pro Mathias Gaunard
    Ingénieur développement logiciels
    Inscrit en
    décembre 2003
    Messages
    3 550
    Détails du profil
    Informations personnelles :
    Nom : Homme Mathias Gaunard
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : décembre 2003
    Messages : 3 550
    Points : 4 178
    Points
    4 178

    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 Confirmé Sénior
    Avatar de Alp
    Homme Profil pro
    Inscrit en
    juin 2005
    Messages
    8 586
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 25
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : juin 2005
    Messages : 8 586
    Points : 10 409
    Points
    10 409

    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 Loïc Joly
    Développeur informatique
    Inscrit en
    août 2004
    Messages
    4 929
    Détails du profil
    Informations personnelles :
    Nom : Homme Loïc Joly
    Âge : 39
    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 : 4 929
    Points : 11 071
    Points
    11 071

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •