Hay dos de ellos Phobos y Tango. Hasta donde yo sé, son redundantes e incompatibles. ¿Hay algún plan para unirse a ellos? Si es así, ¿cuándo sucederá?¿Cuál es el estado actual de las bibliotecas estándar D?
Respuesta
Se ha creado un núcleo común, denominado tiempo de ejecución, para D2. El tiempo de ejecución de bajo nivel, como la recolección de basura y el enhebrado, fue anteriormente la barrera para que Phobos y Tango interfuncionen en el mismo proyecto. La funcionalidad de nivel superior de Phobos dependía del tiempo de ejecución de Phobos y del Tango.
Se ha publicado una actualización importante de Phobos (ayer (20/04/09) como una cuestión de hecho). Esta actualización intenta utilizar algunas de las nuevas características de D2 e introduce el concepto de rangos, que son como iteradores pero más fáciles de trabajar y más potentes. D2 Phobos es muy diferente de su contraparte D1 sin potencia.
Tango es de lejos la mejor biblioteca estándar para D1. Un puerto D2 está en progreso, y probablemente progresará mucho más rápidamente cuando D2 sea estable. Una gran pregunta es si los desarrolladores de Tango lo actualizarán para aprovechar al máximo las características de D2, o si simplemente se centrarán en hacer que funcione con D2 de la misma manera que lo hace con D1.
En contraste con las dos bibliotecas, Phobos tiende a centrarse más en hacer que las cosas simples, azúcar sintáctica, conveniencia y empujar el sobre de lo que se puede hacer en una biblioteca estándar. Es algo así como un cruce entre STL y la biblioteca estándar de Python, por extraño que parezca. Tango tiende a tener una sensación más similar a Java. Está más enfocado en la amplitud de las características y el manejo de casos de uso inusual con gracia. Permanece más dentro del subconjunto sano de D (no tanto metaprogramación de plantillas, etc., aunque podría decirse que una característica principal de D es promover la metaprogramación de plantillas a un estado de subconjunto sano), y adopta un enfoque más pragmático para el diseño de API.
Mi propia conjetura (especulación, pero tiene mucho sentido) es que Phobos se convertirá en análogo a STL, es decir, una biblioteca verdaderamente estándar de funcionalidad central, y Tango se convertirá en una biblioteca de utilidad, algo así como Boost, como más de su funcionalidad principal es absorbida por Phobos y/o tiempo de ejecución.
Finalmente, como señalaron otros, se supone que D1 es estable, por lo que nada está cambiando aquí.
Parece que a partir de octubre eran moving toward compatibility, pero no sé lo que ha pasado desde entonces ...
Editar:
También encontré this, lo que parece indicar que no hay planes a realmente combinar:
No habrá cambios en la situación para D1. Sin embargo, D2, a partir de versión 2.020, ha dividido Phobos en 2 bibliotecas, druntime.lib y phobos.lib. Esto es para permitir que se use un tiempo de ejecución común tanto con Phobos como con Tango. Si bien no hay un plan para fusionar ambas bibliotecas o incluso incluir Tango con versiones de DMD, esto permitirá permitir que ambas bibliotecas se utilicen en el mismo tiempo sin una capa de compatibilidad .
Tangobos es un esfuerzo para hacer que los dos sean compatibles.
En 2.0, Tango podrá funcionar como una biblioteca de utilidades en la parte superior de un núcleo compartido. El núcleo compartido ya está en su lugar, sin embargo, el proyecto Tango aún no tiene soporte 2.0.
En 1.0, no habrá cambios. Esto se debe a que la especificación 1.0 está efectivamente congelada para permitir que un objetivo estable se desarrolle en contra.
- 1. Cuál es el lugar estándar de facto para las bibliotecas D
- 2. ¿Cuál es el estado actual de GWT?
- 3. ¿Cuál es el estado actual de AspectJ?
- 4. ¿Cuál es el estado actual de las mónadas restringidas?
- 5. ¿Cuál es el estado actual de la técnica en látex?
- 6. ¿Cuál es el estado actual de BDD en C++?
- 7. ¿Cuál es el estado actual de la comunidad PHP?
- 8. ¿Cuál es el estado actual de Perl 6?
- 9. ¿Cuál es el estado actual del desarrollo de GWT?
- 10. ¿Cuál es el estado actual de los cierres en Java?
- 11. ¿Cuál es el estado actual de Javascript ES5?
- 12. ¿Cuál es el estado actual de la especificación Cookie2?
- 13. ¿Qué es el estado actual de PocoCapsule?
- 14. ¿Cuál es el estado actual del complemento Scala Eclipse?
- 15. ¿Cuál es el patrón estándar para las validaciones de datos Ember? (estado inválido, becomeInvalid ...)
- 16. ¿Cuál es el estado de PHPDoc?
- 17. ¿Cuál es el estado del lenguaje Javascript?
- 18. Estado del soporte D en iOS
- 19. ¿Cuál es el estado actual de apoyo Prueba de la unidad en el lenguaje R
- 20. ¿Cuál es el objetivo del estándar C99?
- 21. ¿El lenguaje D tiene múltiples bibliotecas estándar y problemas con GC?
- 22. ¿Compilador de C estándar actual?
- 23. ¿Cuál es el estado de JMX 2.0?
- 24. ¿Cuál es el estado de Spring.Net?
- 25. ¿Cuál es el estado de tcl_precision?
- 26. ¿Cuál es el estado actual de LOGO? (El lenguaje de programación)
- 27. "estado persistente" vs. "estado actual"
- 28. ¿Cuál es el estado actual de GHC en Windows de 64 bits?
- 29. ¿Cuál es el estado de CAT.NET?
- 30. ¿Cuál es el estado de JSR 305?