Questions D(iverses)
You are not allowed to reply
17:25:43 09/03/2008
Droit d'abord.

Ma question concerne la licence pour l'utilisation (personnelle, libre, commerciale, et autres) du langage D. Evidemment, ça inclue aussi les compilateurs associés (gnu D et DMars).

Ensuite, tant que j'y suis :

Quelles sont les classes natives du D, et ses fonctions prédéfinies ? On va me dire qu'il y a la doc de DMars, mais j'aimerai juste un résumé de nos pros D.

Voila, c'est tout pour l'instant
17:31:23 09/03/2008
GNU pour tout me semble-t-il.
Les fonctions c'est celles du C. Après les classes natives, je les connais pas, j'ai pas assez potasser encore, mais peut etre Juju pourra plus te renseigner, il a plus regardé ces dernières semaines ;)
18:42:00 09/03/2008
C'est pas tant le D que Tango que j'ai regardé, une multi librairie qui en gros reprend les librairies classiques C, mais avec une approche objet histoire de pas trainer des concepts un rien vieux comparé au cœur du langage.

Pour les classes natives, les fonctions prédéfinies... Le D est un langage modulaire, de base il n'y a pas forcement grand chose de très euh... fancy, mais c'est pas bien compliqué d'y remédier, en général par une ligne genre import ...

Après je ne saurais pas faire de liste exhaustive, en l'absence de projet concret qui démarrerais à court terme, je n'avance que très très lentement. Mais dans le D "tout nu", il y a au moins la classique superclasse objet, et ses précieux héritages. Les principaux types de bases sont les entiers, flottants et caractères, plus les tableaux, statiques et dynamiques. Quelque part, j'imagine que si tu exhumes tes souvenirs du C, mais que tu reconstruits tout avec une approche objet, ça devrais pas en être trop loin, en fait ;p Ou peut être penser au C# sinon, dunno.
18:20:41 10/03/2008
OK.

Donc c'est plutôt bon dans ce cas. Mais maintenant (je fais mon casse-pied) :

Quid d'une uniformisation / standardisation ? (les autres langages en ont aussi, donc bon...).
19:05:31 10/03/2008
Etant donné qu'il n'y a qu'une seule version du D officielle, la question se pose pas je crois.
19:47:05 10/03/2008
La standardisation / uniformisation n'est pas lié au numéro de la version, mais aux librairies...

Un exemple tout bête :

Si je fait une librairie C++ où je définit une classe "Point" symbolisant un ensemble de tableaux, et utilisant les variables A, B, C, D, E, F, G, nous sommes bien d'accord que c'est complètement aberrant, et surtout en totale contradiction avec le reste (existant, ou l'attendu).

Donc la question que je pose est un peu plus complexe que "quelle est la version du langage ?". Je rappelle que pour le C++, c'est un organisme qui s'en est chargé...
22:23:55 10/03/2008
Tu peux toujours définir des classes/structures/modules en leur donnant un nom trompeur, hein, que se soit en C, en ST, en...
Pour ce qui est des librairies, je ne suis pas sur que DM se réserve un droit de regard, j'irais même jusqu'à dire que j'en doute. Ce qui ne signifie pas grand chose, mis à part l'absence de label "certifié" éventuellement présent, non ? Et sans aller jusqu'à dire qu'on peut trouver du crap en C+++... en fait si, on peut en trouver. Après, je ne suis pas intime avec ledis C++, et j'ai pas particulièrement l'intention de le devenir ;p

En plus du D "tout nu", il y a quelque librairies standards de base. Après, je ne sais pas trop quelle quantité de librairies "officielles", ou "certifiée" il peut y avoir, mais... Je ne suis pas non plus sur que ça veulent dire grand chose... Même si les spec du C font 500 pages, celles du C++ 750, je me rappelle qu'en C, certaines fonctions renvoient 0 en cas d'exécution sans problème, d'autres 1, pratique quoi.

Pour le D, il y a cette "meta librairie", Tango, qui contient pas mal de choses, des collections à la gestion de fichier, en passant par un parseur xml, un moteur regex, et même un truc nommé tango.net.ftp.FtpClient dont je me demande ce qu'il y a vraiment dedans. Un jour j'arrêterais de survoler tout et n'importe quoi pour m'intéresser à un point en détail, avant de passer à un autre. Sans doute.
Mais bon, comme le développement de Tango est assez centralisé, ça doit être unifié.
Et il ne gère pas les UI, me semble, mais d'autres trucs à coté le font, et il y a au moins les SDL qui sont envisageable (puisqu'ils sont utilisé dans les prog ABAGame), et les GTK doivent aussi être utilisable. (Il y a DFL, mais en survolant le site j'ai pas trouvé d'info sur la licence... Je regarderais mieux plus tard, fatigué là. Mais sinon, c'est un truc en D, et qui précise supporter Tango... A creuser, peut être ?)

D'ailleurs, ça me fait penser qu'il faudra que je regarde quelques sources de Tango, voire s'il y a des contrats et tests unitaire dedans, par curiosité (fichue association d'idées...)
Et tant que j'y pense, ledit Tango comporte aussi des alternatives aux librairies standards D (on dois pouvoir coder un modèle uniquement avec des import tango.[...] donc, si ça aide sur l'uniformisation toussa)

Quelques liens, si des gens veulent creuser à ma place ;p
  Tango
  DFL
  DM est déjà indiqué, je le repète pas
08:31:38 11/03/2008
Merci pour cette réponse constructive Ferg'.

Je soulevais le point, parce qu'il me semble que c'est ce qui arrête le plus de monde sur le C++ (en dehors du fait que c'est un langage pas super propre). D'où l'utilité d'avoir une volonté de standardisation (mais point trop n'en faut, n'est-ce pas ?), pour ne pas avoir à faire des imports' crade, et se retrouver avec un code qui ne marche pas pour une obscure raison de conversion entier-flottant-caractère-pointeur-kernel32 :p.

Si je pose ces questions, c'est bien parce que le D est un langage potentiellement intéressant (à voir si l'écart avec le C++ est suffisant ou non, et si le ramasse-miette C++ ne pourrait pas être fait plus efficacement que celui implémenté de base en D sans se casser la tête), mais duquel j'attends certainement trop (bah oui, sinon, ce n'est pas fun).