2009-04-21 19 views

Respuesta

13

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í.

6

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 .

4

Tangobos es un esfuerzo para hacer que los dos sean compatibles.

4

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.

Cuestiones relacionadas