Historias
Slashboxes
Comentarios

Login Barrapunto

Login

[ Crear nueva cuenta ]

Lenguaje de programación "D"

editada por Candyman el 05 de Diciembre 2005, 11:23h   Printer-friendly   Email story
desde el dept. A,-B,-C,-D,-E...
beosman nos cuenta: «En mis asiduas incursiones por páginas de programación como OSNews, he visto ya hace algún tiempo un nuevo lenguaje de programación llamado D. Fui a su página pensando que iba a ser un lenguaje como todos, pero resultó que no. Después de leer y leer casi toda su documentación se me ha llenado la cabeza de pájaros (pájaros: esos proyectos casi imposibles que los informáticos tenemos en la cabeza, como el sueño recurrente de crear un Sistema Operativo nuevo, innovador, estable, escalable, etc.).» D es un lenguaje tipo C con muchas opciones de gestión de memoria, y lo usa por ejemplo Kenta Cho para sus juegos (algunos de los cuales ya van entrando en Debian). Sigue Beosman con su análisis en el texto ampliado de la noticia.
«Las características principales de D las podéis encontrar en la propia página pero, más o menos, son:
  • Sintaxis similar a la de C y C++
  • Permite programación estructurada y orientada a objetos
  • El lenguaje es muy independiente de la plataforma donde se esté desarrollando, aunque también se puede incluir assembler de una arquitectura concreta
  • Los arrays pueden ser dinámicos sin necesidad de reservar espacio explícitamente
  • Puede haber arrays indexados por una cadena de caracteres (tablas hash)
  • Manejo de strings nativo (como un array dinámico de chars)
  • Los tipos de datos tienen propiedades, por ejemplo, un entero tiene la propiedad .max (int.max) que devuelve el mayor entero que cabe en dicha variable
Y muchas más cosas buenas. Quizás yo, después de haber leído su documentación, cambiaría un par de cosas, por ejemplo, pondría un tipo bool ya que, aunque están los valores true y false, el tipo booleano se representa con un int. También pondría un tipo string aunque sólo por mejorar la legibilidad del programador y, por supuesto, multiherencia (aunque en la página se explican los motivos por los que no está introducida).

Recomiendo que visitéis su página web. Yo, escéptico al principio, visito ahora casi cada día la página, leyendo la documentación y, quizás algún día (cuando mejore mi nivel de inglés), metiéndome en el foro para dar mis opiniones. Además me he bajado el compilador y estoy haciendo mis primeros “Hola mundo!” en D. También, cuando mi nueva página esté lista (donde se podrán poner entradas de blog y además mis proyectos, downloads, etc.) publicaré una entrada completa dando mis opiniones completas sobre el lenguaje de programación D.

También tengo que decir que de todos los proyectos que he visto en estos últimos (7) años, este es el que más me ha llamado la atención, por su innovación y “rotura” con el pasado para construir un “nuevo” futuro tecnológico.»

Este hilo ha sido archivado. No pueden publicarse nuevos comentarios.
Mostrar opciones Umbral:
Y recuerda: Los comentarios que siguen pertenecen a las personas que los han enviado. No somos responsables de los mismos.
  • Nuevo?

    (Puntos:2, Informativo)
    por irracional (22056) el Lunes, 05 Diciembre de 2005, 12:00h (#652812)
    ( http://flogco.blogspot.com/ )
    Nuevo en el sentido de que lleva menos de 10 años, porque yo ya habia oido hablar de él en la carrera, y ha llovido bastante.

    copipasteo
    D was conceived in December 1999 by Walter Bright as a reengineering of C and C++
    --


    y esto es mi web [blogspot.com]
  • por DiThi (4433) el Lunes, 05 Diciembre de 2005, 12:14h (#652820)
    typedef int bool;
    --
    DiThi
  • por DiThi (4433) el Lunes, 05 Diciembre de 2005, 12:38h (#652837)
    Hace un tiempo lo ví y me dio muy buena impresión. En la tabla comparativa [digitalmars.com] veo muchos puntos a favor.

    Pero estoy viendo en la página de D cómo puedo usar librerías C externas, en mi caso las SDL. D es compatible con C en el sentido de que puede enlazarse con archivos objeto de C, pero no se puede usar SDL.h directamente: hay que convertirlos a sintaxis D (sustituir #defines y macros por constantes y templates), y eso es lo que me hecha un poco para atrás.
    ¿Hay algún proyecto de convertir estas cabeceras a D? ¿No podría D aceptar 'extern C' o algo por el estilo?

    P.D. A ver si podéis evitar que el filtro antimayúsculas se dispare con palabras tan cortas
    --
    DiThi
  • Tu mismo.

    (Puntos:2, Inspirado)
    por Tei (4535) el Lunes, 05 Diciembre de 2005, 13:56h (#652872)
    ( http://barrapunto.com/ | Última bitácora: Martes, 05 Agosto de 2008, 14:28h )
    Un lenguaje de programacion es interesante por si mismo, y muchas veces tambien por la comunidad que tiene detras. Probablemente D nunca tenga una comunidad gigantesca, porque para eso hay que invertir el dinero de una gran empresa o llenar un nicho muy bueno.
    Ademas ocurre con D que ni desaparece como otros, ni explosiona su uso. Se ha mantenido ahi en el candelero como una eterna promesa. No se, quizas encuentre su nicho en un desconocido futuro. Pero en principio es demasiado clasico para que tenga reservada una plaza en un futuro lejano. Claro que nadie conoce el futuro :I
    --
    ]]]]><![CDATA[> fear teh dopefish!!
    • Re:Tu mismo. de Candyman (Puntos:2) Lunes, 05 Diciembre de 2005, 14:40h
    • Re:Tu mismo. de JAM (Puntos:2) Lunes, 05 Diciembre de 2005, 15:17h
      • Re:Tu mismo. de TomR (Puntos:1) Lunes, 05 Diciembre de 2005, 19:24h
  • bool y algo más

    (Puntos:1)
    por beosman (8596) el Lunes, 05 Diciembre de 2005, 16:04h (#653044)
    ( http://beosman.dyndns.org/ )
    En cuanto al bool (typedef int bool) pues digamos que no está dentro del lenguaje y por eso no me gusta. Lo mismo me pasa con string (typedef char[] string) pero no son más que cuestiones personales en cuanto al estilo.

    En cuanto a que es un lenguaje que lleva muchos años y no explota... es cierto, pero hay que darse cuenta de que somos informáticos, y que cualquier proyecto que haya bueno hay que apoyarlo, pero también hay que darse cuenta de que la mitad de los desarrolladores están de parte del código libre apoyando lo que ya hay y no quieren innovar y la otra mitad está para ganar dinero, con software cerrado y sin apoyar proyectos innovadores.

    Personalmente opino que hay apoyar lo que es bueno, y no lo que usa la mayoría de la gente.

    Un saludo y gracias por vuestros comentarios.

  • Sobre el string y otros temas.

    (Puntos:4, Informativo)
    por jcarrascal (22641) el Lunes, 05 Diciembre de 2005, 16:40h (#653087)

    El string ha sido fuente de muchas discusiones en el grupo oficial, digitalmars.D. En D, el tipo de datos char[] no es un objeto "string" como en otros lenguajes (C#, Java, C++ STL) si no que simplemente es un slice (parecido al array de C pero más poderoso) en formato UTF8. Éste es el tipo de datos "string" oficial pero también hay slices para UTF16 y UTF32 por lo que para la mayor parte de las funciones para manejo de strings en Phobos tienen versiones para los tres tipos de datos.

    Esto es porque a los norte-americanos, latino-americanos y europeos occidentales nos basta con los 8 bits de UTF8 (char[]) para codificar la mayor parte de nuestros alfabetos y dos bytes para unas cuantas letras. Los paises árabes y europa oriental prefieren el UTF 16 (wchar[]) ya que la sus alfabetos están por encima del caracter 128 en el standard Unicode y los paises asiáticos prefieren UTF32 (dchar[]).

    El hecho es que el lenguaje nos permite escoger y facilita la optimización de la aplicación para la región en la que queremos distribuirla. Y si te parece que esto es optimización temprana o quieres distribuirla por todo el mundo, escoges uno y solo traduces en las entradas o salidas de datos.

    Sobre el bool ya comenté más arriba y sobre la herencia múltiple, deberías revisar los mixins.

    El lenguaje facilita escribir programas muy rápidos para procesamiento de texto y cálculos matemáticos (una o dos órdenes de magnitud en comparación con el equivalente en C++).

    Ya hay una razonable cantidad de proyectos disponibles en, un sitio estilo SourceForge llamado, DSource: http://www.dsource.org/

    También son muy interesantes las últimas características que le han agregado para metaprogramming como los mixins, static ifs, tipos auto (Como el var de C# 3) y próximamente automatic template instantiation. La semana pasada, por ejemplo, publicaron un loader de DLLs que itera sobre una cadena de texto y realiza el name mangling en tiempo de ejecución. ¡Increible! http://www.digitalmars.com/drn-bin/wwwnews?digital mars.D/30781

    Hay tantas características nuevas que se me alargaría demasiado el post si las describiera una por una.

    Yo llevo varios años siguiendo el desarrollo del lenguaje através de los grupos disponibles y los invito a que se unan a cualquiera de ellos y conozcan este lenguaje. No se van a arrepentir.

    Felicidades Candyman. Me encanta el entusiasmo que tienes sobre este lenguaje que tanto quiero.

  • por dsevilla (1681) el Lunes, 05 Diciembre de 2005, 17:03h (#653113)
    ( http://neuromancer.inf.um.es/blog | Última bitácora: Jueves, 20 Enero de 2005, 13:05h )
    ¿Realmente qué tiene de nuevo? Me da igual que haya salido en el 99 que en el 2000, o incluso en el 2005. Lo que sí que me interesaría es ver algo realmente nuevo. Todo lo que comentas ya está más que resuelto en C++, como han comentado otros en otros mensajes anteriores. La gestión de memoria ya no es ningún problema en C++ gracias a las STL. Tampoco la implementación de "hash" como comentas ni de otros tipos de datos complejos, que también lo aporta la STL. Y si las unes a las librerías Boost [boost.org] ya ni te cuento (threads, python, etc., etc.).

    Saludos!
    diego.
  • los juegos...

    (Puntos:1)
    por duga (17772) el Lunes, 05 Diciembre de 2005, 18:37h (#653207)
    ( http://coincidance.net/ | Última bitácora: Sábado, 14 Abril de 2007, 23:29h )
    los juegos que comenta la noticia son sencillitos, pero de los que enganchan.
    La música y efectos de sonido los hacen muy jugables.

    Acabo de probar el Wok, que lo podéis instalar en Debian desde este repositorio:
    http://muse.19inch.net/~daf/debian/
  • por ActiveMan (9870) el Lunes, 05 Diciembre de 2005, 20:04h (#653279)
    Es cierto que salen nuevos lenguajes como D, Cyclone o Objective-C que superan a C++ en claridad y conceptos, pero a los lenguajes les pasa como a los SO: BeOS o Mac OS X son también ejemplos de SO mejor diseñados que Windows. Pero, ¿qué es lo importante para que un lenguaje/SO triunfe?. Yo he llegado a la conclusión de que principalmente son dos factores:

    1) Base de usuarios que lo hayan aprendido a usar
    2) Software para ese lenguaje / SO

    A los teclados también les pasa algo parecido: Si se volvieran a diseñar seguro que no pondrían la 'a' en el dedo meñique. A los idiomas también: Seguro que el or exclusivo se hubiera incluido, o las palabras cortas serían las de uso más frecuente.

    Aun así siempre habrá una pequeña base de powerusers que aprecien los buenos lenguajes/SO.
  • por TomR (22646) el Miércoles, 07 Diciembre de 2005, 03:46h (#653859)
    Acá hay varios benchs de D vs. otros lenguajes (INCLUIDO EL DYLAN ESE FEO que además es funcional y horrible, prefiero el Haskell como me han recordado por ahí).

    http://shootout.alioth.debian.org/benchmark.php?te st=all&lang=dlang&lang2=gwydion

    No hay que olvidarse además de que los backend generadores de código para D no están optimizados y llegará a ser más rápido aún. D no está oficialmente en estado de release, siendo una versión pre-1.0 todavía falta para poder compararlo con lenguajes maduros usados hoy para proyectos serios. Otra cosa, la tabla de comparaciones habrá sido hecha por el creador del lenguaje pero no es más ni menos que la verdad y el que diga lo contrario debe mostrar un contraejemplo o callarse.
  • por Boooring (10001) el Lunes, 05 Diciembre de 2005, 14:07h (#652876)
    ( http://www.proli.net/ )
    Es un lenguaje no idioma :P.

    No creo que un lenguaje así en desarrollo sea bueno para empezar (no creo que haya muchos proyectos hechos... en D).

    Porque no pruebas con otro? (C++, Python, Perl... el que tú quieras).

    [ Padre ]
  • Re:¿moemoria?

    (Puntos:1, FueraDeTema)
    por codelair (11869) el Lunes, 05 Diciembre de 2005, 14:33h (#652911)
    ¿La polla propia o la polla ajena?. En el primer caso, me gustaría ver alguna foto... :-)
    [ Padre ]
  • por JAM (999) el Lunes, 05 Diciembre de 2005, 15:20h (#652978)
    ( http://barrapunto.com/ )
    No es que sus características sean una novedad (aunque yo escuché hablar de D antes que de C#), aunque alguna novedosa si que tiene, es la forma de aglutinar esas características de forma práctica y razonable, además de su velocidad (es compilado y casi tan rápido como el C), lo que lo hace fantástico.

    Para que nos entendamos, si C++ era un C de los años 80-90 D es un C del 2000.
    [ Padre ]
  • por TomR (22646) el Lunes, 05 Diciembre de 2005, 19:43h (#653261)
    ¿Cómo estás tan seguro de que Dylan es más potente que D? Una opinión más que leo de gente que desprecia antes de conocer más sobre un asunto. Eiffel tiene una sintaxis bastante fea en mi opinión y es mucho menos eficiente que el D. A D hay que pensarlo como una hermosa mezcla entre C++ y Java mejorados.
    [ Padre ]
  • 7 respuestas por debajo de tu umbral de lectura actual.