Login Barrapunto
Congreso sobre el lenguaje D
editada por Candyman
el 27 de Agosto 2007, 00:10h
desde el dept. tenemos-la-tecnología,-tenemos-eldinero
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.
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)( http://www.luisdigital.com/ | Última bitácora: Jueves, 20 Marzo de 2008, 04:12h )
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
(Puntos:5, Informativo)( http://www.100foros.com/ )
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]
Pregunta
(Puntos:2)( http://barrapunto.com/ | Última bitácora: Jueves, 28 Febrero de 2008, 23:31h )
Tonterías...
(Puntos:4, Divertido)*A mí** me *re->sul->ta m*uy &intuitivo.
Con lo de siempre...
(Puntos:4, Informativo)( http://barrapunto.com/ | Última bitácora: Sábado, 21 Abril de 2007, 09:43h )
Saludines para tod@s.
Have a nice day ;-) TooManySecrets
No parece un mal lenguaje
(Puntos:1)( http://es.geocities.com/julio_sao | Última bitácora: Viernes, 11 Enero de 2008, 19:59h )
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)
No veo que aporte gran cosa
(Puntos:1)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)( http://tecnochapuzas.zapto.org/ | Última bitácora: Sábado, 09 Febrero de 2008, 02:51h )
Con ese nombre preveo problemas en las entrevistas de trabajo.
¿Conoce usted D?
¿de qué?
--- Si te gusta la electrónica y la informática, nos vemos en #Tecnochapuzas del IRC-hispano
Phobos vs Tango
(Puntos:1)( http://hklab.net/ )
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 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.
Re:C++ mejorado
(Puntos:2)( http://barrapunto.com/ )
Eso es discutible.
Efectivamente, pero habrá que hacerlo con argumentos
"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,
"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
¡¡Democracia directa ya!! Fuera parásitos
Re:y yo que creia...
(Puntos:3, Divertido)Re:compiladores nativos de Java
(Puntos:1)