Je suis d'accord sur le fait que cette présentation n'est pas très réussie, elle passe du temps sur des trucs qui ne font pas l'intérêt du langage (comme les boucles ou les classes), tant en délaissant quantité de choses bien plus intéressantes. Il y en a de bien meilleures sur le net si vous êtes anglophone. Pour ma part, je considère que D est l'un des langages natifs les plus puissants actuellement (si ce n'est LE langage natif le plus puissant).
Pour ce qui est des delegates, voici un exemple plus intéressant:
// find est une fonction template qui prend un delegate en predicat// le if(is(typeof...)) est une condition sur le prédicat vérifiée par le compilateur// celui-ci doit retourner un bool// input[1..$] dénote le tableau input[i] pour i = 1 .. length-1T[]find(aliaspred,T)(T[]input)if(is(typeof(pred(input[0]))==bool){// on raccourcit le tableau d'un elem, ce qui revient à avancer le pointeur *inputfor(;input.length>0;input=input[1..$]){if(pred(input[0]))break;// si le prédicat est vérifié, on s'arrête}returninput;}// exemple d'usageunittest{int[]a=[1,2,3,4,-5,3,-4];// trouve le premier nombre < 0autob=find!(delegatebool(intx){returnx<0;})(a);// idem, notation raccourcie qui tire parti de l'inférence de typeautob=find!((x){returnx<0;})(a);}
Vous voyez dans l'exemple ci-dessus plusieurs notions de D: les templates, les contraintes de signature, les fonctions d'ordre supérieur, et l'inférence de type. C'est la combinaison de toutes les features de D qui en font sa puissance.
Enfin je suis amusé par une légère forme de langue de bois en fin de dépêche. Tu dis que le langage "n'est pas propriétaire" (je ne sais pas exactement ce que ça veut dire) mais le paquet conseillé pour Debian est "dmd", un compilo qui est justement propriétaire. Je note aussi que si on va sur la page officielle du langage et qu'on clique sur "téléchargement", on ne se voit proposer que celui-là; c'est bien qu'il existe des implémentations libres à côté mais encore faut-il qu'elles soient à jour, compétitives et utilisées, ce qui reste à prouver. Bref il me semble un peu optimiste (voire autruche) de classer cette remarquer dans la catégorie "mythes et légendes fausses".
Le source est sur Github
Quand aux autres compilos, si LDC (LLVM) est fortement en retard, LDC (gcc) est en etard de 2 versions, soit environ 4 mois, sur DMD. Il est parfaitement utilisable et utilisé en pratique.
[^] # Re: Bof
Posté par lovelydear . En réponse à la dépêche Le langage D. Évalué à 3.
Bonjour,
Je suis d'accord sur le fait que cette présentation n'est pas très réussie, elle passe du temps sur des trucs qui ne font pas l'intérêt du langage (comme les boucles ou les classes), tant en délaissant quantité de choses bien plus intéressantes. Il y en a de bien meilleures sur le net si vous êtes anglophone. Pour ma part, je considère que D est l'un des langages natifs les plus puissants actuellement (si ce n'est LE langage natif le plus puissant).
Pour ce qui est des delegates, voici un exemple plus intéressant:
Vous voyez dans l'exemple ci-dessus plusieurs notions de D: les templates, les contraintes de signature, les fonctions d'ordre supérieur, et l'inférence de type. C'est la combinaison de toutes les features de D qui en font sa puissance.
C'est inexact. La licence du backend du compilo DMD est propriétaire, mais le frontend est complètement open source. Et on peut contribuer au backend à volonté. La seule chose qui est interdite par la licence, c'est de redistribuer le backend.
Le source est sur Github
Quand aux autres compilos, si LDC (LLVM) est fortement en retard, LDC (gcc) est en etard de 2 versions, soit environ 4 mois, sur DMD. Il est parfaitement utilisable et utilisé en pratique.