]> git.llucax.com Git - z.facultad/75.00/informe.git/blobdiff - source/d.rst
Agregar agradecimientos
[z.facultad/75.00/informe.git] / source / d.rst
index ddf849db502fd88feb84bd976b2ed9895ee5c801..449109b71cb167fa57bbf83a390b5208bc8c0bc0 100644 (file)
@@ -2,9 +2,11 @@
 .. Introducción y breve reseña del lenguaje de programación D. También
    se presentan las necesidades particulares de D con respecto al
    recolector de basura y su estado actual.
-   ESTADO: TERMINADO, CORREGIDO, REVISADO
+   ESTADO: TERMINADO, CORREGIDO (A)
 
 
+.. highlight:: d
+
 .. _d_lang:
 
 El lenguaje de programación D
@@ -16,8 +18,9 @@ Historia
 
 D_ es un lenguaje de programación relativamente joven. Nació en 1999 y el
 2 de enero de 2007 salió su `versión 1.0`__. Poco tiempo después se continúo
-el desarrollo del lenguaje en la `versión 2.0`__, aún inestable y en la cual
-se está experimentando principalmente sobre multi-procesamiento.
+el desarrollo del lenguaje en la `versión 2.0`__, que pasó a ser considerada
+estable aproximadamente en junio de 2010 con el lanzamiento del libro "The
+D Programming Language" [ALX10]_, pero aún es un trabajo en progreso.
 
 __ `D 1.0`_
 __ `D 2.0`_
@@ -104,13 +107,17 @@ tiempo considerable en asegurarse de que funcione con ambas).
 
 Esto hace que la compatibilidad de programas y bibliotecas esté muy
 fragmentada entre las dos bibliotecas base. Si bien no parece que vaya a haber
-solución alguna a este problema para D 1.0, D 2.0 va en camino a solucionar
-este problema ya que utiliza DRuntime_, un nuevo intento de Sean Kelly por
-proveer una biblioteca *runtime* bien organizada y mantenida, que es una
-adaptación de la biblioteca *runtime* de Tango_ a `D 2.0`_. Si bien todavía
-Tango_ no fue adaptada a `D 2.0`_, se espera que cuando esto pase compartan la
-misma biblioteca *runtime* permitiendo que bibliotecas y programas hechos para
- y Phobos_ 2.0 puedan coexistir sin problemas.
+solución alguna a este problema para `D 1.0`_, `D 2.0`_ va en camino
+a solucionar este problema ya que utiliza DRuntime_, un nuevo intento de Sean
+Kelly por proveer una biblioteca *runtime* bien organizada y mantenida, que es
+una adaptación de la biblioteca *runtime* de Tango_ a `D 2.0`_. Sin embargo
+Tango_ no fue adaptada a `D 2.0`_ todavía, y no hay muchas perspectivas de que
+sea portada en algún momento, por un lado porque en general la comunidad sigue
+fragmentada entre muchos usuarios de `D 1.0`_ que no están contentos con los
+cambios introducidos en `D 2.0`_, en su mayoría usuarios de Tango_, y que no
+planean migrar a esa versión; y por otro porque el desarrollo de Phobos_ 2.0
+se ha abierto mucho y tiene muchos colaboradores, por lo tanto la mayor parte
+de la gente que utiliza `D 2.0`_ está contenta con el estado de Phobos_ 2.0.
 
 
 Descripción general
@@ -1061,25 +1068,29 @@ compilador pero no lo convierte en `Software Libre`_, siendo el único de los
 __ http://www.digitalmars.com/d/1.0/changelog.html#new1_041
 
 El compilador GDC_ es el *front-end* de DMD_ utilizando al compilador GCC_
-como *back-end*. Fue un muy buen compilador pero en la actualidad está
-abandonado. No hay un *release* desde agosto de 2007 y no hay actualizaciones
-serias del código desde mediados de 2008, por lo que no parece haber muchas
-probabilidades de que se siga manteniendo.
-
-LDC_ es lo opuesto; un compilador joven, nacido a mediados de 2007 como un
-proyecto personal y privado de Tomas Lindquist Olsen, que estuvo trabajando de
-forma privada en el proyecto hasta mediados de 2008, momento en que decide
-publicar el código mediante una licencia libre. Para ese entonces el
-compilador era todavía inestable y faltaban implementar varias cosas, pero el
-estado era lo suficientemente bueno como para captar varios colaboradores muy
-capaces, como `Christian Kamm`_ y Frits Van Bommel que rápidamente se
-convirtieron en parte fundamental del proyecto. El primer *release* (0.9) de
-una versión relativamente completa y estable fue a principios de 2009 que fue
-seguido por la versión 0.9.1 que como puntos más salientes agregó soporte para
-x86-64 y assembly embebido. El compilador tuvo y sigue teniendo un crecimiento
-excepcional. En la actualidad inclusive pasa más pruebas de estrés que el
-compilador de referencia DMD_. Como *back-end* utiliza LLVM_, otro proyecto
-joven y con una tasa de crecimiento muy alta.
+como *back-end*. Fue un muy buen compilador pero estuvo abandonado por casi
+tres años. A mediados de este año recibió un nuevo impulso y de a poco se está
+poniendo al día con los *front-ends* actuales de DMD_ 1.0 y 2.0, aunque la
+versión 2.0 viene bastante más rezagada y todavía no es una alternativa viable
+a DMD_.
+
+LDC_ sufrió una suerte similar, es un compilador joven que utiliza como
+*back-end* a LLVM_ (una infraestructura modera para construir compiladores),
+nacido a mediados de 2007 como un proyecto personal y privado de Tomas
+Lindquist Olsen, que estuvo trabajando de forma privada en el proyecto hasta
+mediados de 2008, momento en que decide publicar el código mediante una
+licencia libre.  Para ese entonces el compilador era todavía inestable
+y faltaban implementar varias cosas, pero el estado era lo suficientemente
+bueno como para captar varios colaboradores muy capaces, como `Christian
+Kamm`_ y Frits Van Bommel que rápidamente se convirtieron en parte fundamental
+del proyecto. El primer *release* (0.9) de una versión relativamente completa
+y estable fue a principios de 2009 que fue seguido por la versión 0.9.1 que
+como puntos más salientes agregó soporte para x86-64 y assembly embebido. El
+compilador tuvo un crecimiento excepcional pero estuvo muy inactivo por algún
+tiempo y, si bien sigue siendo mantenido, en general los nuevos *front-end* de
+DMD_ llevan tiempo de integrar y no está al día con el *back-end* de LLVM_
+(por ejemplo desde que se actualizó para utilizar LLVM_ 2.7 que perdió la
+capacidad de generar símbolos de depuración).
 
 Además de estos compiladores hay varios otros experimentales, pero ninguno de
 ellos de calidad suficiente todavía. Por ejemplo hay un compilador
@@ -1089,10 +1100,12 @@ Dil_.
 
 Originalmente, dado que GDC_ estaba siendo mantenido y que LDC_ no existía,
 este trabajo iba a ser realizado utilizando GDC_ como compilador, dado que al
-ser `Software Libre`_ podía ser modificado de ser necesario. Finalmente,
-gracias a la excepcional tasa de crecimiento de LDC_ y al abandono de GDC_ se
-terminó desarrollando el trabajo utilizando LDC_.
-
+ser `Software Libre`_ podía ser modificado de ser necesario. Pero finalmente,
+dada la poca confiabilidad que presenta la continuidad del desarrollo de tanto
+GDC_ como LDC_, y que el código de DMD_ está disponible en su totalidad
+(aunque no sea `Software Libre`_ por completo), se optó por utilizar este
+último, dado que es la implementación de referencia que fue más constantemente
+mantenida y desarrollada.
 
 
 .. include:: links.rst