Historias
Slashboxes
Comentarios
 

Congreso sobre el lenguaje D

editada por Candyman el 27 de Agosto 2007, 00:10h   Printer-friendly   Email story
desde el dept. tenemos-la-tecnología,-tenemos-eldinero
Estos días se ha celebrado el Seattle el primer congreso sobre el lenguaje D, el "C++ mejorado" de Walter Bright. Bright se ha pasado un par de décadas haciendo compiladores para C++, y su idea al diseñar D, aparte de limpiar la sintaxis (la forma de escribir los punteros es mucho más clara) e integrar librerías más modernas (como por ejemplo, strings usables al estilo de las de Perl o Python), es que el compilador le quite el mayor trabajo posible al programador, pero que los programas no pierdan en velocidad (D es igual de rápido que C++: no usa una máquina virtual sino código nativo, a pesar de tener gestión de memoria automática) ni los programadores en expresividad (D ofrece facilidades para metaprogramación, para integrarlo con código en otros lenguajes, y la memoria se puede gestionar a mano si uno lo desea). Ah, y por cierto: ya hay un compilador libre de D en Debian.

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.
  • Y así dicen

    (Puntos:1)
    por Luis Digital (803) el Lunes, 27 Agosto de 2007, 00:45h (#950957)
    ( http://www.luisdigital.com/ | Última bitácora: Viernes, 05 Noviembre de 2010, 15:35h )
    que C/C++ es perfecto y hasta el nombre le van a quitar.

    Cuando desaparezca dirán: Es que evolucionó a la letra D.

    Claro, ahora no dicen lo mismo de Pascal, dicen: Pascal y Object Pascal son otra cosa.
    --
    La verdad es menos creíble que la mentira. 08:22 A.M. - 04/08/01 No dejes que una mancha oscurezca tu vida.
    • Re:Y así dicen de Luis Digital (Puntos:1) Lunes, 27 Agosto de 2007, 00:58h
    • Re:Y así dicen de mastermemorex (Puntos:2) Lunes, 27 Agosto de 2007, 01:03h
    • Re:Y así dicen

      (Puntos:5, Informativo)
      por infinit (22037) el Lunes, 27 Agosto de 2007, 01:56h (#950983)
      ( http://www.100foros.com/ )

      Cuando desaparezca dirán: Es que evolucionó a la letra D.
      El nombre de C no viene por otra cosa si no por seguir a la B.
      De unos de los primeros lenguajes de progrmación (BCPL) nació otro un poco más avanzado, con el nombre de B como abreviatura. Después Dennis Ritchie cogió catacteristicas de B y creó C. Después al meter abstracción de datos y objetos en C, en vez de llamarlo D lo llamaron C++ de forma humorística. Ahora ellos han cogido C/C++, lo han mejorado (o eso dicen/creen) y han creado D.
      --

      Skate [zona-skate.com]
      [ Padre ]
  • Pregunta

    (Puntos:2)
    por Liveral (17846) el Lunes, 27 Agosto de 2007, 00:50h (#950958)
    ( http://barrapunto.com/ | Última bitácora: Martes, 02 Junio de 2009, 23:28h )
    Pone que gdc-4.1 package is based on the gcc-4.1. En la práctica, ¿pueden estos dos compiladores compartir aquellos módulos de reorganización/optimización ajenos a la sintaxis del lenguaje? ¿O dos compiladores de dos lenguajes diferentes están "condenados" a mantenerse por separado? ¿O eso lo marca el paradigma (OO,funcional,estructurado...) ?
    • Re:Pregunta de mastermemorex (Puntos:2) Lunes, 27 Agosto de 2007, 01:21h
    • Re:Pregunta de bugmenot (Puntos:1) Lunes, 27 Agosto de 2007, 01:45h
      • Re:Pregunta de bugmenot (Puntos:2) Lunes, 27 Agosto de 2007, 01:55h
  • Tonterías...

    (Puntos:4, Divertido)
    por pobrecito hablador el Lunes, 27 Agosto de 2007, 01:18h (#950975)
    Y**o no&&**se qu->e hay de ** malo en (**)-> la forma de tra*&&**tar &&lo->s *&*punteros ***en *C&.

    *A mí** me *re->sul->ta m*uy &intuitivo.
  • Con lo de siempre...

    (Puntos:4, Informativo)
    por TooMany (4713) el Lunes, 27 Agosto de 2007, 06:23h (#950997)
    ( http://barrapunto.com/ | Última bitácora: Sábado, 21 Abril de 2007, 09:43h )
    Y digo yo, que si hay compilador D para Debian, en realidad estás queriendo decir que lo hay para la plataforma GNU/Linux ¿no?, igual que lo hay para FreeBSD desde la versión 0.8 desde el 18 de Noviembre del 2004. Y estoy segurísimo que también por aquel entonces, y bajo cualquier sistema GNU/Linux, BSD y/o *NIX, también compilaría. En fins... seguimos con lo de siempre...

    Saludines para tod@s.
    --
    Have a nice day ;-) TooManySecrets
  • por Julio_sao (29798) el Lunes, 27 Agosto de 2007, 07:26h (#951011)
    ( Última bitácora: Miércoles, 19 Mayo de 2010, 18:32h )
    Nunca me ha gustado mucho C ni soy un experto en el tema pero no parece pintar mal (en cuanto a sintaxis)
    Otra cosa es que acabe siendo aceptado, el mercado está saturado de derivados de C, C++, Java, C#...
    Necesitaría tener muy buenas librerías y un gran soporte para que la gente dejara esos lenguajes tan usados (y en algunos casos con tantos años de asentamiento)
    --
    JulioSAO xD.
  • por Fayser (12345) el Lunes, 27 Agosto de 2007, 09:18h (#951052)
    Para que merezca la pena el esfuerzo de aprender un nuevo lenguaje, tendría que aportar cosas realmente novedosas.

    No sólo no veo nada nuevo, sino que sigue sin dar respuesta a cosas realmente necesarias, como una gestión de excepciones que realmente sea usable. Si un método puede lanzar cualquier tipo de excepción, es imposible gestionarlas apropiadamente (¿cómo reaccionar ante una excepción desconocida?), para eso prefiero la aproximación de Java (que obliga a declararlas como parte de la interfaz del método).
  • Con ese nombre ...

    (Puntos:4, Divertido)
    por EsePibe (372) el Lunes, 27 Agosto de 2007, 13:49h (#951206)
    ( Última bitácora: Jueves, 07 Octubre de 2010, 21:22h )

          Con ese nombre preveo problemas en las entrevistas de trabajo.

        ¿Conoce usted D?
        ¿de qué?
    --
    --- 404 Firma no encontrada.
  • Aquí nadie ha discutido todavía el gran problema que existe con este lenguaje: ¡hay 2 bibliotecas básicas incompatibles entre si! Estoy hablando de phobos [digitalmars.com] y tango [dsource.org]

    Esta es una circunstancia desafortunada que seguro frenará y retrasará el uso masivo de este lenguaje, al menos hasta que sepamos cuál de las dos biliotecas es la que triunfará.

    D es realmente interesante, es como coger todo lo bueno de Pascal y añadir un recolector de basura, que además se puede desactivar, que es lo mejor de todo.

    Los tipos de datos básicos como strings, vectors (con slices), lists, incluso los números complejos forman parte del propio lenguaje (increíble). Esto seguro que no le gusta nada a los puristas pero le va a permitir al compilador optimizar el código hasta la náusea.

    Por cierto, ya hay un número de "bindings" para este lenguaje muy importante. Está todo en dsource.org [dsource.org]
    --
    "Es un milagro que la curiosidad sobreviva a la educación reglada" (Albert Einstein)
  • Re:C++ mejorado

    (Puntos:1)
    por mastermemorex (34927) el Lunes, 27 Agosto de 2007, 10:37h (#951096)
    El C++ soporta un el string como parte de la librería standard, pero no es un tipo nativo, sino que es una clase con unas 1000 lineas de codigo. Aunque suponemos que estará bien programada, es un mal asunto, ya que el rendimiento y el tiempo de compilación caen en picado. De hecho no conozco a casi nadie que utilize el std::string, sino que todo el mundo se crea su propia clase string.

    Por otra parte, con D y en C# los punteros están solo cuando los necesitas, no se utilizan para pasar argumentos como en C++, lo que lleva a errores embarazosos y a una sintaxis demasiado compleja. (Yo nunca se cuando hay que usar el '.' o '->'). Además, los punteros son conceptos demasiado complejos para un newbye
    De los paradigmas de programación (Orientado a objetos, procedimental, metaprogramación, flujo de datos, programación de agentes, etc...) Cualquiera que se haya dado de cabezazos con el C++ descubre que malamente soporta ninguno de ellos.

    Tiene clases, pero no puedes crear clases abstractas, ni propiedades, ni heredar constructores, ni todos esos conceptos que han aparecido en lenguajes modernos.
    Tiene templates, pero no existe herencia, ni genéricos, ni les puedes poner restricciones.
    Las funciones solo pueden devolver tipos básicos Si quieres devolver más de un parámetro existen las tuplas. Pero eso ya es indicativo de un mal diseño.

    No existe modularidad en C++. Los proyectos hay qu ecompilarlos de principio a fin cn todas las librerias. Mal asunto si se quiere trabajar con grandes proyectos.

    Y por ultimo, la sintaxis del C es demasido poco estructurada, lo que no se lo pone nada fácil al compilador. ¿A quien no le han aparecido 50 errores de compilación por un ';' mal puesto?

    Un ejemplo de como horripilante puede llegar a ser el C++ es este stream:
    http://www.allegro.cc/forums/thread/552652 [allegro.cc]

    Lo dicho, el C++ ya no da la talla frente a otros lenguajes modernos. Ahora está bajo un proceso de revisión que se espera que termine en el 2009, pero incluirán conceptos que ya llevaban años en otros lenguajes.
    No soy un profeta, ni un visionario, a lo mejor consiguen levantarlo, pero personalmente yo creo que le queda poco de vida. Ya no puede competir con lenguajes propietarios como el C# o el Java. A lo mejor el D es una alternative, pero tengo mis dudas.
    [ Padre ]
  • Re:C++ mejorado

    (Puntos:2)
    por Mjollnir (5744) el Lunes, 27 Agosto de 2007, 10:37h (#951097)
    ( http://barrapunto.com/ )
    "el C++ mejorado"
    Eso es discutible.


    Efectivamente, pero habrá que hacerlo con argumentos ... ¿no?


    "y su idea al diseñar D, aparte de limpiar la sintaxis (la forma de escribir los punteros es mucho más clara)"
    ¿Sí? ¿Qué de poco claros tienen los punteros al estilo C?


    ¿qué te parecen las referencias de java? ¿los slices de arrays en python? En D tienes los punteros de C, referencias, weak references, slices, delegates, dynamic closures, ... todo con una sintaxis más clara y elegante


    "strings usables al estilo de las de Perl o Python"
    ¿No existen clases string para C++? ¿No se pueden usar al estilo de Perl o Python? ¿No existe la sobrecarga de operadores y parámetros para tal fin?


    Claro que hay clases de string para C++, de hecho hay muchas clases, todas incompatibles entre sí. Ni C ni C++ tienen strings como tipos de primera clase, tema totalmente resuelto en cualquier otro lenguaje, incluso en el Basic de 8 bits.


    "es que el compilador le quite el mayor trabajo posible al programador, pero que los programas no pierdan en velocidad (D es igual de rápido que C++: no usa una máquina virtual sino código nativo, a pesar de tener gestión de memoria automática)"

    La gestión de memoria "automática" hace perder rendimiento, sí o sí. Sobre la velocidad del código, todo depende de la competencia del programador y la calidad del compilador; muy poco depende del lenguaje si este es normal.


    O no. Que yo sepa los malloc también cuestan su tiempo y no es determinista (y de hecho si programas para tiempo real no puedes usarlos en regiones críticas).

    Los métodos de recolección de basura permiten que el código sea más compacto y por tanto entre más fácilmente en la caché, además te ahorras el liberar memoria hasta que no es estrictamente necesario. Además, en D, si quieres, puedes usar la alocación de memoria tradicional, desactivar el recolector, usar ambos, ...

    D ha sido diseñado por un escritor de compiladores (de hecho hizo uno de los primeros compiladores de C++ que existieron). El lenguaje está nivelado para que sus características sean fácilmente implementables y permita una optimización más avanzada ...


    "ni los programadores en expresividad (D ofrece facilidades para metaprogramación, para integrarlo con código en otros lenguajes, y la memoria se puede gestionar a mano si uno lo desea"

    ¿Y todo esto C++ no lo ofrece? ¿No existe la metaprogramación en C++? ¿No puedes usar ficheros objeto de diferentes lenguajes para enlazar a un binario común final? ¿En C++ no se puede gestionar la memoria "a mano"?

    Por favor, échale un vistazo a los templates en C++ y en D. En C++ muchas funcionalidades vienen de efectos secundarios no previstos en el diseño de las plantillas, incluso en errores de implementación que se han convertido en features. En D se ha pensado todo desde el principio viendo el uso que se hace en la práctica de las plantillas para hacerlas más sencillas y potentes (hay quien ha escrito un raytracer exclusivamente con plantillas, cuya ejecución es realmente la compilación de la plantilla). También se han incorporado los mixins de Ruby y otras muchas mejoras.


    Si queréis comentar a D, hacedlo con cosas nuevas e innovadoras, no con lo que ya hace C++.


    También depende de cómo de bien o mal lo haga ... ya sabemos que también se puede programar orientado a objetos en ensamblador ... otra cosa es que sea práctico y robusto.

    --
    DDT para los 350 parásitos ...
    [ Padre ]
  • Re:y yo que creia...

    (Puntos:3, Divertido)
    por mastermemorex (34927) el Lunes, 27 Agosto de 2007, 20:35h (#951389)
    No, si acaso sería el ++C. El C++ es una postoperación.
    [ Padre ]
  • por bugmenot (27209) el Miércoles, 29 Agosto de 2007, 02:48h (#952028)
    Bueno, el que Sun demandase a Microsoft por el suyo y montase la campaña inquisitorial "100% Pure Java" para convencer a Borland, Symantec y cía de que abandonasen no ayudo tampoco mucho :-)
    [ Padre ]
  • 4 respuestas por debajo de tu umbral de lectura actual.