D: presentación

Domingo 10 Octubre 2010 at 03:37 am. Etiquetas utilizadas: , ,

Hoy voy a hablar de un lenguaje de programación llamado D.
Lo que diga no será demasiado culto, técnico, ni detallado, porque no soy ninguna de esas cosas. Pero me gusta el lenguaje y creo que no tiene mucho reconocimiento, particularmente en castellano. Por eso escribiré una muy breve introducción al mismo.

Contexto
Para empezar, debo decir que, aunque se encuentra bastante información en la red (la mayoría en inglés, lógicamente), poca está actualizada. En el caso de D esto es particularmente importante porque se trata de un lenguaje relativamente jóven (11 años hace de su primera aparición), y que ha evolucionado mucho en los últimos dos o tres años.

D, hoy en día, tiene dos versiones: la 1, estable y que sólo recibe correciones de bugs, y la 2, que es donde todo ocurre :).

La mayor parte de lo que se puede leer por ahí se refiere a la primera versión. Un único desarrollador (Walter Bright), dos librerías estándar incompatibles (Phobos vs. Tango), políticas internas complicadas, etc. De la segunda versión sólo se suele mencionar que es incompatible con la primera, lo que ha deprecado todas las librerías existentes; que evoluciona tan rápido que no se puede utilizar nada con seguridad; y que sólo 1 compilador puede con ella: dmd, el oficial.

La realidad, en estos momentos, es algo mejor que eso: aunque sólo hay un compilador a la altura, dmd (los otros dos existentes, ldc y gdc, se centran más en la versión 1), sólo hay una librería estándar (phobos v.2) en la que están trabajando gente muy capaz; las especificaciones del lenguage están estabilizadas desde que salió el libro de lectura muy recomendada "The D Programming Language" de Andrei Alexandrescu, uno de los principales desarrolladores de Phobos; y poquito a poco empiezan a aparecer o ser actualizadas las librerías.

El lenguaje D
¿Y qué hace interesante a este lenguaje? Bien, muchas cosas, la mayoría de las cuales no sé explicar porque me superan, no he programado a fondo desde demasiados años. La mayor parte no son exclusivas ni novedosas, son ideas probadas y prácticas recogidas de muchos otros lenguajes y una larga experiencia en programación por parte del creador.

Para empezar, el propio lenguaje incluye tests unitarios y Programación por Contratos, lo que ayuda a utilizarlos sin necesitar herramientas o librerías externas.
También incluye un pequeño generador de documentación. Hay muchos así, pero el hecho de que éste ya esté en el compilador elimina cualquier posibilidad de excusa para malcomentar el código.

Es compatible con C: la mayoría de código C es compilable en D. Una de las máximas de diseño de D es: el código C funciona igual en D o da error. Además, D es compatible binariamente con C; es decir, el código compilado es el mismo.
Esto no sólo facilita la conversión de código, también permite utilizar con D cualquier librería escrita en C, lo que de repente lo hace aparecer mucho mejor equipado.

D es, como la mayor parte de los lenguajes modernos, de nivel bastante alto: arrays dinámicos, recolector de basura, orientado a objetos, inferencia de tipo, etc. Sin embargo, también permite la programación de bajo nivel: posibilidad de gestión manual de memoria, punteros, ensamblador incrustado, etc. Además, es un lenguaje compilado, no interpretado: más rápido, no hacen falta intérpretes ni máquinas virtuales en la distribución...
La idea es: por defecto, debemos emplear los métodos más seguros. Pero no debemos por ello impedir los demás. La mayor parte de los lenguajes actuales se centran en la primera mitad de la frase, y prohíben cualquier otra forma, aunque a veces tengan sus usos (programación de sistemas sobre todo).

Bueno, y ya he dicho mucho, ahora a probarlo :P.

Sin comentarios



(optional field)
(optional field)
¿Recordar información personal?
Letra pequeña: Todas las etiquetas html excepto <b> e <i> serán eliminadas de su comentario. Puede introducir enlaces simplemente escribiendo la url o direcciones de e-mail.