Il y en a deux Phobos et Tango. Autant que je sache, ils sont redondants et incompatibles. Y a-t-il des projets pour les rejoindre? Si oui, quand cela arrivera-t-il?Quel est le statut actuel des bibliothèques standard D?
Répondre
Un noyau commun, appelé druntime, a été créé pour D2. Le matériel d'exécution de bas niveau, comme la collecte des ordures et le filetage, était auparavant l'obstacle à l'interopérabilité entre Phobos et Tango dans le même projet. La fonctionnalité de niveau supérieur de Phobos dépendait du runtime de Phobos et de Tango.
Une mise à jour majeure de Phobos a été publiée (juste hier (20/04/09)). Cette mise à jour essaie d'utiliser certaines des nouvelles fonctionnalités de D2 et introduit le concept de gammes, qui sont comme des itérateurs mais plus faciles à travailler et plus puissants. D2 Phobos est très différent de son homologue D1 sous-alimenté.
Tango est de loin la meilleure bibliothèque standard pour D1. Un port D2 est en cours, et progressera probablement beaucoup plus rapidement lorsque D2 est stable. Une grande question est de savoir si les développeurs de Tango vont le mettre à jour pour profiter pleinement des fonctionnalités de D2, ou s'ils vont simplement se concentrer sur le faire fonctionner avec D2 de la même manière qu'avec D1. En contraste avec les deux bibliothèques, Phobos a tendance à se concentrer davantage sur la simplification des choses simples, le sucre syntaxique, la commodité et à repousser les limites de ce qui peut être fait dans une bibliothèque standard. C'est quelque chose d'un croisement entre STL et la bibliothèque standard de Python, aussi étrange que cela puisse paraître. Le tango a tendance à avoir un aspect plus proche de Java. Il est plus axé sur l'ampleur des fonctionnalités et la manipulation des cas d'utilisation inhabituelle gracieusement. Il reste plus dans le sous-ensemble sain de D (pas autant de métaprogrammation de modèle, etc., bien que D puisse être considéré comme une caractéristique majeure de promouvoir la métaprogrammation de modèles dans un état de sous-ensemble sain).Ma propre supposition (spéculation, mais cela a beaucoup de sens) est que Phobos deviendra analogue à STL, c'est-à-dire une bibliothèque vraiment standard de fonctionnalités de base, et Tango deviendra une bibliothèque utilitaire, un peu comme Boost, comme plus de ses fonctionnalités de base est absorbée par Phobos et/ou druntime. Enfin, comme d'autres l'ont noté, D1 est supposé être stable, donc rien ne change ici.
On dirait d'Octobre ils étaient moving toward compatibility, mais je ne sais pas ce qui est arrivé depuis ...
Edit:
J'ai aussi trouvé this, ce qui semble indiquer qu'il n'y a pas de plans à en fait fusionner:
La situation pour D1 ne sera pas modifiée. Cependant D2, à partir de version 2.020, a eu Phobos divisé en 2 bibliothèques, druntime.lib et phobos.lib. Ceci permet d'utiliser un temps d'exécution commun avec les deux Phobos et Tango. Bien qu'il n'y ait pas de plan pour fusionner les deux bibliothèques ou même inclure Tango avec des versions de DMD, ce sera permettre aux deux bibliothèques d'être utilisés au même temps sans une couche de compatibilité .
Tangobos est un effort pour rendre les deux compatibles.
Dans 2.0, Tango pourra fonctionner comme une bibliothèque utilitaire au-dessus d'un noyau partagé. Le noyau partagé est déjà en place, cependant, le projet Tango n'a pas encore de support 2.0.
Dans 1.0, il n'y aura pas de changement. C'est parce que la spécification 1.0 est effectivement gelée pour permettre à une cible stable de se développer.
- 1. Quel est le statut actuel de LOGO? (Le langage de programmation)
- 2. Quel est le statut actuel de GCJ en ce moment (mi 2009)?
- 3. Bibliothèques Standard Flash?
- 4. C bibliothèques non-standard
- 5. SharpZipLib - quel est le statut de ce produit?
- 6. Quel est le transport sous-jacent pour D-Bus?
- 7. Quel est le statut actuel de RIA pour les navigateurs mobiles et quelles sont les solutions disponibles?
- 8. Quel est le moyen de vérifier le statut IIS d'autres serveurs de la page asp.net?
- 9. Quel est le meilleur contrôle VB.NET (standard/personnalisé) pour afficher la liste des fichiers?
- 10. Niveau de conformité standard actuel de IronPython & IronRuby
- 11. Quel est le moyen le plus efficace de mémoriser le statut de lecture/non lu sur plusieurs éléments?
- 12. Inclure les bibliothèques standard Python dans votre distribution
- 13. Types de bibliothèques standard et types définis par l'utilisateur
- 14. Quel est le meilleur cadre de validation actuel pour les applications asp.net?
- 15. JSR305 vs. JSR308 (Java Type Anotations) - Quel sera le standard?
- 16. Restaurer le statut de l'application
- 17. Quel est l'état actuel des algorithmes de compression de type text-only?
- 18. Quel est le boîtier standard avec tables et champs de base de données?
- 19. VB6 P & D Installations, "Le fichier de destination est utilisé ..."
- 20. comment supprimer tout [d +] sauf le dernier [d +]?
- 21. Quel est le directoy actuel de travail par défaut d'un service dans Windows?
- 22. Quel est le niveau actuel de support XHTML dans les navigateurs et les moteurs de recherche?
- 23. Quel est le meilleur moyen de déployer des applications Web?
- 24. quel est le codage?
- 25. Comment obtenir le statut Checkbox?
- 26. Comment trouver le chemin depuis lequel le processus/exécutable actuel est en cours d'exécution?
- 27. C++: Modèle de statut et de contrôle
- 28. Quel est le langage de modélisation de base de données standard de l'industrie?
- 29. Quel est le GC parallèle standard appelé dans les vidages sur incident JVM?
- 30. Dépôt des spécifications BDD "standard"