2009-05-26 16 views
20

¿Alguien ha tenido alguna experiencia con el D programming language?Experiencias con D-programming-language

Parece que tiene muchas características agradables, pero ¿alguna vez alcanzará la popularidad de los lenguajes actualmente extendidos como C++, Java o C#?

Entonces, ¿vale la pena aprender o es un lenguaje aislado con perspectivas menores.

+0

Vale la pena aprender, ya que tiene alguna característica interesante pero no vale la pena invertir para escribir aplicaciones del mundo real porque las herramientas y la biblioteca son una porquería. Simplemente no está bien organizado y demasiados problemas sutiles con cosas que desperdician mucho más tiempo del que uno se da cuenta. Ningún negocio quiere eso. Creo que muchos pueden percibir inconscientemente que es una lata de gusanos. Es como comprar un porche en línea por 10k que se ve increíble y funciona bien ... pero cuando lo manejas por un mes empiezas a notar que las cosas no funcionan bien ... entonces, finalmente, las cosas empiezan a desmoronarse. – Stretto

+0

Creo que el mejor uso para D es hacer ciertos algoritmos y herramientas de alto nivel que no son grandes o interconectados, y luego usarlos de otros idiomas. De esta forma, uno gasta menos en D pero puede usar sus potentes funciones de forma más ventajosa. Desafortunadamente, esto es complicado debido a la interoperabilidad entre él y otros lenguajes (terminará escribiendo en C en lugar de en C++ porque las plantillas no se traducen entre los dos ... aunque posiblemente uno podría superar eso con algunas envolturas que funcionan bien). – Stretto

Respuesta

37

Pasé unos días jugando con D para ver cómo se compara con C++ y java. Está posicionado como otra forma de lograr las mismas cosas que C++, pero sin todo el comportamiento indefinido, y con la adición de un recolector de basura, un bucle foreach y algunas otras sutilezas modernas. Se compila con código nativo para que pueda acceder a todas las optimizaciones habituales que pueden producirse a partir de este escenario.

El lenguaje C completo se encapsula como un subconjunto de D como los bloques de construcción de nivel inferior a partir de los cuales se construye la mayor parte del lenguaje. Esto puede ayudar con la portabilidad, pero también evita que D evolucione hacia una metodología única y consistente.

La capacidad de ejecutar cualquier función nativa en C D abre el reino de la posibilidad de incluir la programación de sistemas - sistemas operativos, controladores, etc.

Existen dos marcos de clase de uso común en D. El valor por defecto es Fobos , que es bastante espartano y simple en el diseño, lo que le permite crear las estructuras que necesita, pero proporcionando pocos bloques de construcción grandes o complejos. El otro es Tango, que es una reminiscencia de la biblioteca de clase java y contiene un marco mucho más completo. También hay un proyecto para permitir la interoperabilidad de las dos bibliotecas.

En mi experiencia, D es un lenguaje bastante agradable para la codificación, tiene mucho en común con C# y java, y permite el acceso a la maquinaria en bruto a través de C e incluso la interoperabilidad de ensamblaje. La principal limitación que veo es la falta de un buen soporte para herramientas de desarrollo. Hay algunos IDE y complementos por ahí, pero nada muy completo, por lo que puede que estés mejor con un editor de texto y una herramienta de compilación de línea de comandos.

Hay dos versiones del idioma, D1 y D2. D1 está mejor respaldado por marcos y compiladores por ahora, y D2 ha agregado algunas características de conveniencia que hacen que el lenguaje sea más fácil de manejar y usar.

Update (junio de 2009): recientemente he estado buscando en D de nuevo y pensé que debería llamar la atención sobre DSource, que ahora tiene un número de diferentes proyectos del compilador, y es la sede de la biblioteca de Tango, varios enlaces, varios juegos de herramientas GUI y un par de IDEs. Algunos de los proyectos fueron abandonados en sus inicios, pero creo que hay bastantes que hoy se fortalecen y que progresan mucho. En esta etapa, se parece mucho a que el éxito de D estará determinado por el movimiento de código abierto mucho más que por sus progenitores.

actualización (febrero de 2012) Aunque no he visto mucho en D desde mi última edición, que tendrá en cuenta que D2 es ahora, con el apoyo de un gran libro, The D Programming Language. Típico de Alexandrescu, expone muchos detalles del sistema de plantilla, incluidas las restricciones de plantilla, que hacen que D sea una herramienta mucho más expresiva y segura que el estado actual de C++.

Aparte de leer el libro, no he tenido contacto con el lenguaje D o sus herramientas y su comunidad desde 2009, así que no puedo comentar sobre su maduración o crecimiento hasta la fecha.Conozco a un pequeño grupo de programadores profesionales que desearían poder utilizar el idioma en el trabajo, pero la mayoría de nosotros estamos generalmente atrapados con C++ y otros lenguajes populares en las áreas donde D debería estar en su mejor momento.

+1

+1. Una evaluación justa del estado actual de las cosas, aunque se está progresando rápidamente en el frente de la cadena de herramientas. Ver LDC (http://www.dsource.org/projects/ldc) y Descent (un plugin de Eclipse: http://www.dsource.org/projects/descent). – dsimcha

+2

@dsimcha: Lo mismo con el comentario de la cadena de herramientas, está mejorando rápidamente. Si la cadena de herramientas fuera incluso el 80% tan buena para D como para C++, entonces creo que C++ se convertiría rápidamente en un lenguaje heredado. Con el tiempo, creo que llegará allí. – BCS

+0

@BCS: Estoy de acuerdo, el hecho de que D tenga incluso este nivel de apoyo tan temprano en su vida puede ser un indicador de su éxito futuro. –

1

Al mirar las cosas como su popularidad lengua, etc He encontrado Tiobe para ser un buen recurso http://www.tiobe.com/content/paperinfo/tpci/index.html

Como se puede ver D está en la parte superior 20.

+2

Acabo de verlo ahora (febrero de 2012) y desafortunadamente ahora está en 40. Dicho esto, todavía está por encima de Haskell, Go, Eiffel, Clojure, Scala y otros idiomas muy hablados. Según Tiobe, ¡uno de los idiomas emergentes es LOGOTIPO! – Justin

+0

Está de vuelta a solo 39 :( – Demi

+0

agosto de 2014, disparó a 28. Me pregunto por qué el montaje es tan popular. – simonzack

Cuestiones relacionadas