Partage
  • Partager sur Facebook
  • Partager sur Twitter

Votre avis sur le langage D

    12 février 2011 à 21:48:00

    en tout cas je suis en train de lire la référence du langage sur le site officiel (faute de tuto correct, même en anglais), et quand le créateur dit que le D est plus simple que le C++, ça a un peu l'air d'une blague...
    je n'ai jamais lu la référence du C++, donc difficile de comparer, mais disons par rapport à Java (dont je n'ai pas non plus lu la référence mais le cours sur le site de Sun, qui devrait logiquement être complet), c'est bourré de détails syntaxiques pour ajouter plein de petites fonctionnalités, et à mon avis ça contribue à rendre le code difficilement compréhensible si on commence à partir là dedans, mais bon ça ne doit pas être là pour rien.
    enfin ça a quand même l'air sympa quand on utilise les trucs "indispensables" de base comparé aux autres langages.
    • Partager sur Facebook
    • Partager sur Twitter
      13 février 2011 à 10:24:17

      Citation : Lumin0u

      en tout cas je suis en train de lire la référence du langage sur le site officiel (faute de tuto correct, même en anglais), et quand le créateur dit que le D est plus simple que le C++, ça a un peu l'air d'une blague...
      je n'ai jamais lu la référence du C++, donc difficile de comparer, mais disons par rapport à Java (dont je n'ai pas non plus lu la référence mais le cours sur le site de Sun, qui devrait logiquement être complet), c'est bourré de détails syntaxiques pour ajouter plein de petites fonctionnalités, et à mon avis ça contribue à rendre le code difficilement compréhensible si on commence à partir là dedans, mais bon ça ne doit pas être là pour rien.
      enfin ça a quand même l'air sympa quand on utilise les trucs "indispensables" de base comparé aux autres langages.


      Le Langage D par bioinfornatics - Débuter avec le Langage D (pour D1) .
      Tu trouves que la syntaxe est compliquée ? Personnellement je la trouve beaucoup plus fluide que celle de C++(surtout quand y'a utilisation de template)
      • Partager sur Facebook
      • Partager sur Twitter
        13 février 2011 à 15:02:27

        merci! je connaissais pas ceux là, il faut dire que le mot-clé "D" dans google est pas très efficace ("digital mars" non plus apparemment).
        en voyant quelques exemples de code (vite fait), je préfère quand même sophos à tango, ça a l'air plus "naturel".
        • Partager sur Facebook
        • Partager sur Twitter
          13 février 2011 à 15:34:37

          Citation : Lumin0u

          merci! je connaissais pas ceux là, il faut dire que le mot-clé "D" dans google est pas très efficace ("digital mars" non plus apparemment).
          en voyant quelques exemples de code (vite fait), je préfère quand même sophos à tango, ça a l'air plus "naturel".


          Il faut taper "d programming language" pour trouver des trucs .
          Si jamais tu veux te lancer dans l'apprentissage de D, contacte moi que je te donne tous les sites importants etc...;)

          EDIT: J'ai oublié le message de bluestorm :

          Citation : bluestorm

          Il me semble qu'une partie des problèmes de D est lié aux questions louches de licence des compilateurs. Un langage dont le compilateur officiel n'est pas libre, aujourd'hui, autre part que chez Microsoft, Apple ou une poignée d'autres grandes boîtes, il me semble assez normal que ça ne marche pas très fort.


          Effectivement c'est un gros problème, mais c'est une décision propre à Walter . Il dit que c'est pour encourager la création d'autres compilateurs libres pour D, parce que c'est son "rêve" :D .
          Dommage que LDC ne supporte pas encore D2, car pour l'instant il donne quand même de meilleurs résultats que DMD, surtout en terme de performances :) !
          • Partager sur Facebook
          • Partager sur Twitter
            13 février 2011 à 18:40:23

            ni gdc je crois (pas la version du dépôt ubuntu en tout cas), il ne supporte pas les fonctions ref et la propriété idup :/, donc obligé d'utiliser dmd (32 bits sur du 64 en plus).
            • Partager sur Facebook
            • Partager sur Twitter
              13 février 2011 à 19:26:48

              Citation

              Effectivement c'est un gros problème, mais c'est une décision propre à Walter . Il dit que c'est pour encourager la création d'autres compilateurs libres pour D, parce que c'est son "rêve" :D .



              Je ne cherche pas à insister sur un point qui fâche, et j'imagine que tu es encore plus conscient que moi du problème. Mais le fait qu'une mauvaise décision soit légitime et qu'il existe une (mauvaise) explication n'en fait pas une bonne décision.

              Je n'utiliserai pas un langage dont le compilateur n'est pas libre. Pour D 1.0, la situation est moins problématique car il existe des implémentations libres (ça passe donc de "jamais de la vie !" à "boarf"); ce serait encore mieux si l'implémentation officielle était libre, mais tous les langages n'ont pas cette chance (Java) et il ne faut pas tomber dans l'excès.


              Je me suis renseigné un peu plus sur le langage D. Globalement c'est un autre essai de "C++ propre" (après Java), pas forcément très innovant mais qui montre que les langages mainstream ont quand même appris des choses des langages plus innovants qui sont développés depuis longtemps. Je n'utiliserai sans doute jamais ce langage moi-même (je n'en ai pas l'usage), mais le discours de ses concepteurs est intéressant à ce titre. Par exemple, ils insistent sur l'importance des opérations "pures" (sans effets de bord observables) et reconnaissent qu'on peut faire plus simple que les itérateurs (avec les séquences, qui commencent à se généraliser dans les langages mainstream : Python, D, Go...).

              Ce qui ne me plaît pas beaucoup en D, c'est le système de templates. Le système de templates de C++ est une fonctionnalité qui était pensée au départ pour des choses simples, et dont les gens ont découvert ensuite qu'ils pouvaient en abuser de façon horriblement compliquée pour faire des choses très compliquées. Cela a donné lieu à un grand nombre de choses totalement délirantes parfois utiles (genre de l'optimisation de code numérique) et toujours dégoûtantes. L'approche de D est essentiellement de faire tout ce qu'on faisait avant en C++, mais de soigner la forme pour que ce soit moins repoussant syntaxiquement. C'est donc un peu plus présentable mais le fond est le même : c'est certainement puissant, mais ce n'est sûrement pas la bonne façon de faire.

              Je crois que les gens qui ont comme principale vision de la métaprogrammation les templates C++ s'auto-restreignent à des choses bancales. Il faudrait mieux isoler les différents usages des templates et choisir pour les plus propres d'entre eux une autre façon de faire plus sémantique. C'est par exemple ce qui est fait avec les génériques de C# ou Scala, ou plus généralement le paramétrisme polymorphique qu'on connaît depuis un certain temps déjà. La programmation multi-stage à la MetaOCaml est une autre technique qui couvre la partie "calculs à compile-time" assez développée dans D.

              Bien sûr, tous les usages ne peuvent pas rentrer dans ces boîtes bien propres et il y aura toujours des gens qui voudront faire des choses dégoûtantes; il faut choisir ou pas d'accéder à leurs demandes et je peux comprendre que les concepteurs de langages décident d'ajouter des choses sales pour ce cas de figure, mais c'est dommage qu'ils persistent à mettre ensemble ces usages si différents.
              • Partager sur Facebook
              • Partager sur Twitter
                13 février 2011 à 19:31:58

                Citation : Lumin0u

                ni gdc je crois (pas la version du dépôt ubuntu en tout cas), il ne supporte pas les fonctions ref et la propriété idup :/, donc obligé d'utiliser dmd (32 bits sur du 64 en plus).


                C'est normal, D2 est tout neuf et GDC aussi(enfin on va dire ca) :D .
                Les fonctions ref tu peux t'en passer, mais c'est vrai que .idup c'est assez important :) .

                Citation : bluestorm

                Je ne cherche pas à insister sur un point qui fâche, et j'imagine que tu es encore plus conscient que moi du problème. Mais le fait qu'une mauvaise décision soit légitime et qu'il existe une (mauvaise) explication n'en fait pas une bonne décision.


                Je n'en doute pas :p . Je t'informe juste du "pourquoi ?", après c'est vrai que j'aurai préféré un compilo' officiel libre ;) .
                • Partager sur Facebook
                • Partager sur Twitter

                Votre avis sur le langage D

                × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                • Editeur
                • Markdown