D Lenguaje de programación en el mundo real? [cerrado]


138

¿Alguien está usando D para aplicaciones del mundo real? Si es así, ¿para qué lo usa? Parece que no puedo encontrar nada grande en la web escrito en D.

A pesar de la falta de grandes usuarios conocidos, D me parece un lenguaje muy prometedor y, según TIOBE , es bastante popular.


11
Recientemente anunciado en los foros de dlang , Facebook ahora está usando D en producción.
sghill

No hay nada grande porque D en sí es bastante pobre para construir aplicaciones grandes y complejas. Se ve muy bien en la superficie, pero una vez que intentas hacer algo comercial, comienzan a aparecer todas las grietas y los fanáticos desean muy poco crear un software estructurado adecuado para la audiencia comercial (estoy seguro de que el dinero tiene mucho que ver con pero también lo hace el liderazgo y la organización). Una cosa es escribir una utilidad de línea de comandos o un algoritmo de línea de 5k, pero completamente diferente para crear una aplicación comercial muy compleja que involucre múltiples áreas como GUI, audio, etc.
Stretto

Claro que puedes hackear algo juntos, pero eso no es comercial. Una empresa no va a invertir su tiempo / dinero en algo que es tan escamoso. No hay un IDE adecuado y cada uno de los que he usado me ha dado ganas de criticar algo. Es aproximadamente 10 veces más lento depurar aplicaciones correctamente porque los mensajes de error son terribles, el depurador no funciona ni funciona en su contra, las características modernas que esperamos son inexistentes o deficientes, y la biblioteca está fubarizada porque no tiene una estructura lógica (las cosas se mueven "arbitrariamente", esquemas de nombres extraños como "chomp" y "detabber", etc.
Stretto

Supongo que es el yin / yang. Ciertas cosas en D son increíbles y nada se acerca (todavía) ... pero por otro lado, las cosas en las que falla también son bastante fuertes. Uno solo descubre esas cosas cuando realmente dedican tiempo a escribir aplicaciones reales en lugar de hacer cosas triviales o algorítmicas. Hasta que la organización D lo haga todo bien (¿cuánto tiempo les llevará? ¿10, 20 años?), Las empresas reales no van a invertir en él. El tiempo es dinero y ninguna empresa quiere gastar 10 veces más tiempo para depurar una aplicación porque el IDE no está listo.
Stretto

@Stretto, ¿qué quieres decir? dlang.org/orgs-using-d.html
Bauss

Respuestas:


77

Estoy usando D para mi trabajo de investigación en el área de gráficos por computadora. Yo y otros hemos publicado artículos en nuestros campos basados ​​en el trabajo realizado con D. Creo que definitivamente está listo para su uso en proyectos de investigación pequeños a medianos donde el rendimiento es importante. Es una buena opción para el trabajo de investigación porque, a menudo, está comenzando desde cero de todos modos, por lo que no tiene mucho código heredado para preocuparse por la integración.

Otra área popular de uso parece ser los servicios web. Esperemos que alguien más pueda comentar quién está en este espacio, pero también creo que la idea es que el rendimiento a menudo es realmente importante, por lo que desea un lenguaje compilado al metal. Los servicios son a menudo procesos bastante pequeños e independientes, por lo que la interoperabilidad con grandes cantidades de código C ++ heredado no es realmente necesaria ni útil. Así D puede poner su pie en la puerta.

Creo que D continuará ganando seguidores de base de esta manera, en proyectos más pequeños que por cualquier razón pueden permitirse deshacerse del legado de C ++ para obtener un lenguaje de programación que sea mucho más agradable de usar y quizás también más productivo.

Pero hasta que haya una gran cantidad de usuarios de base, sospecho que no habrá muchos usuarios corporativos.


10
Desarrollo aplicaciones cliente / servidor puramente en D con algunos enlaces a bibliotecas C, pero solo para la parte GUI del cliente para uno de los servicios más populares en los Países Bajos. Aunque tuve que convencer a mi jefe, parece que no se arrepiente. ;-) - D brilla especialmente aquí porque la biblioteca estándar proporciona una implementación de sockets BSD, incluso en Windows. Escribir una vez, desplegar en todas partes, muy agradable.
Jesse Brands

@JesseBrands ¿Usas phobos o tango?
qed

88

Realizo trabajos de bioinformática en D. Para mí, la clave de D es que adopta un enfoque muy equilibrado para las compensaciones y reconoce el principio de rendimientos decrecientes.

A diferencia de C ++, que se adhiere rigurosamente al principio de cero gastos generales, D permite características que pueden tener un pequeño costo de rendimiento / espacio si hacen que el lenguaje sea mucho más útil. Estos incluyen recolección de basura, un objeto de monitor para cada clase, información de tipo de tiempo de ejecución, etc.

A diferencia de Ruby, Python, PHP, etc., D intenta ser casi tan rápido como C, incluso si es menos dinámico y un poco más difícil de programar que los lenguajes de secuencias de comandos.
El resultado es un lenguaje que es óptimo cuando el tiempo de desarrollo y el tiempo de ejecución son igualmente importantes, lo que en mi campo es la mayor parte del tiempo.

Del mismo modo, D adopta un enfoque de seguridad muy equilibrado frente a la flexibilidad. Asume que los programadores básicamente saben lo que están haciendo, pero cometen errores.

A diferencia de C y C ++, se supone que no desea utilizar punteros, conversiones inseguras, administración manual de memoria, etc., en todas partes de su código, porque son propensos a errores, y se supone que no desea filtrar a través de múltiples mensajes de error de plantilla de página cuando lo arruinas solo para usar matrices redimensionables.

A diferencia de Java y otros lenguajes de servidumbre y disciplina, D asume que a veces los punteros, los lanzamientos inseguros, la administración manual de memoria, etc. son un mal necesario, y asume que eres lo suficientemente inteligente como para manejar plantillas reales, sobrecarga de operadores, etc. sin escribir código ofuscado También se supone que puede equivocarse y acceder a una matriz fuera de los límites, pero que el programador sabe mejor qué compensación se debe hacer entre seguridad y velocidad en cualquier situación dada. Por lo tanto, si las matrices son límites comprobados simplemente se determina mediante un conmutador de compilación.


2
¿Qué es un objeto monitor? Parece que no puedo encontrar resultados para esto.
Samaursa

2
Me encanta mucho el lenguaje D en comparación con C ++. Tiempos de compilación más rápidos, la capacidad de usar menos código, sin archivos de encabezado, etc. Sin embargo, el problema es que carece de alguien que haga un trabajo serio de GUI. Claro, puedo usar GtkD, pero intente dibujar una serie de gráficos elegantes. Veo un trabajo prometedor en la integración con Chromium para una GUI, pero ese proyecto está en gran parte indocumentado y necesita más jugadores en ese espacio. Espero que eso cambie, pero eso es lo que veo aquí en septiembre de 2015.
Volomike

El monitor de objetos es tonto **. Bloquea todo el método, es realmente un desperdicio ...
dev1223

@Volomike También he estado mirando D últimamente y, de manera similar, ha sido difícil crear herramientas de interfaces gráficas con él. Actualmente no tengo ninguna solución de facto para crear herramientas GUI elegantes con D y eso es algo que puedo comenzar a abordar pronto.
dimiguel

32

Sé de una pequeña empresa que ha enviado un producto de servidor de correo al mercado. Tenían al menos 2 personas trabajando a tiempo completo en el proyecto.

Además, un jugador importante en el negocio de TI tiene varios empleados que usan D en proyectos internos más grandes.

Además, sé de una compañía que busca fondos de riesgo, varios (al menos 4) empleados en compañías más pequeñas que usan D ya sea a tiempo parcial o completo, y al menos un par (incluido yo) que busca activamente oportunidades en el mercado de consultoría.

Probablemente he omitido algunos de los que debería haber sabido, y probablemente algunos de los que no he oído hablar, pero que todavía existen, ya que lo anterior es más o menos lo que conozco a través de la comunidad.

Un pequeño porcentaje de mis ingresos actuales proviene de D.


¿Podría por favor nominar a las organizaciones? También sería bueno saber más sobre estos proyectos.
nbro

28

Yo uso D para el desarrollo web y resultó ser mucho más productivo en comparación con C / C ++. Hay muchos frameworks basados ​​en ruby ​​/ php / python, por supuesto. Pero cuando desea desarrollar algo único que también tiene que ser tan rápido como C y casi tan fácil como programar con él como lo hace en muchos lenguajes de script, entonces D es una buena opción.


3
¿Puedo preguntar? ¿Qué marco o biblioteca utilizas?
Zelenova

26

Yo uso D para un entorno de prueba de hardware en el bucle (HIL). Esto es para pruebas de software en el área automotriz. D se puede usar aquí, porque como lenguaje de programación del sistema se puede usar en programas en tiempo real (controladores IRQ en una extensión en tiempo real de Linux RTAI-LXRT).

Con el puerto actual de SWT / JFace planeo hacer más y trabajar en D, lo que hubiera hecho en Java antes.



19

Estoy usando D en la investigación sobre la traducción del código de tiempo de compilación. La plantilla avanzada combinada con tuplas y mixins hace que la traducción del código sea mucho más fácil y permite que la traducción del código se realice durante el tiempo de compilación sin requerir una herramienta separada.

Hay algunos ejemplos de físicos que usan D para mejorar sus programas con metaprogramación en D.

video - Charla de la conferencia, no se pudo encontrar el sitio de origen del uso físico.


Un proyecto mío categóricamente similar, también en D dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS

17

Toda nuestra infraestructura de red (de alto tráfico) se basa solo en D1 y tango. Somos una empresa joven y nueva en Berlín: sociomantic.com


14

Mi tarea de trabajo actual es un sistema para traducir C # a D. Esto es parte de un proyecto con fines de lucro para desarrollar un sistema de software.




7

Muchos de los juegos lanzados por ABA Games están escritos en D 1.x, aunque imagino que los puertos de la consola tuvieron que reescribirse en C ++.

He escrito bastantes prototipos de juegos en D, pero no estoy seguro de si eso califica como "mundo real" ya que los escribí para mi propio beneficio y nunca he lanzado ninguno de ellos.


¿Podría ser más específico con respecto a qué juegos se han creado con D?
nbro

7

Escribí (y sigo manteniendo y desarrollando) un software para la conversión de protocolos de prueba de varias estaciones de prueba de hardware a un formato de salida estandarizado para la trazabilidad y cosas por el estilo.

Todos juntos a lo largo de 5k líneas de código, escritas con D 1.xy la biblioteca Phobos.

D es muy fácil de aprender, y sin tener en cuenta algunas trampas (en la biblioteca de Phobos) es un verdadero placer programarlo.


6

Usé D para mi proyecto de investigación sobre el desarrollo de un algoritmo de optimización global. Lo apliqué al problema del entrenamiento de redes neuronales. Depende de usted si quiere llamar a este "mundo real".


¿Está disponible el código fuente o alguna información sobre lo que hiciste?
nbro


6

Yo uso D2, el segundo estándar de la versión. Escribí aplicaciones en tiempo real (motor 3D, por ejemplo).

El idioma se vuelve más y más poderoso cada día. D es muy pragmático y todas las características integradas, especialmente el paradigma de metaprogramación, en mi opinión, superan con creces a C ++. La sintaxis es más clara, puede usar la fuerza de la programación funcional a través de funciones como filtrar o reducir , y una de las características más importantes: puede usar todas las bibliotecas de C.

Definitivamente es mi idioma favorito, y estoy bastante seguro de que será un lenguaje usado extendido.


¿Es posible ver el código fuente de algo que creaste usando D?
nbro

¡Ha pasado un tiempo desde ese comentario! Estoy codificando en Rust y Haskell principalmente ahora, pero tengo algunos proyectos. Tengo algunas cosas en mi github, pero no creo que valga la pena cavar. ¡Ese comentario tiene 4 años! Debería echar un vistazo al estado actual de todo esto ...
phaazon

4

Supongo que podemos leer algo sobre la falta de respuestas inmediatas a esta pregunta y es que no muchos / ninguno de los respondedores activos de stackoverflow están usando D. También me sorprendió un poco el nivel de su clasificación en la lista TIOBE que usted enlace a.

Dicho esto, Walter Bright ha estado trabajando en el lenguaje durante bastantes años y creo que tiene bastantes seguidores que recuerdan el buen trabajo que hizo con el compilador Zortech C ++ en los años 90. También noto que el lenguaje parece inclinarse hacia la dirección funcional ahora.


3
En realidad, es imposible buscar D en este sitio web en este momento. Buscar "d" o "programación d" dice "no hits", y buscar en las etiquetas "d" enumera una página llena de etiquetas que contienen "d" pero no "d" en sí. Entonces eso podría tener algo que ver con eso también.
Baxissimo

20
busque [d] en el cuadro de búsqueda para obtener búsquedas basadas en etiquetas.
Gregg Lind el


0

Estoy comenzando un proyecto para reescribir algunas de nuestras herramientas internas de Perl a D. Elegí D porque estoy muy entusiasmado con las filosofías de diseño del lenguaje. He estado programando durante mucho tiempo y he usado muchos lenguajes, desde ensambladores hasta lenguajes de alto nivel (principalmente C) y scripts (principalmente Perl), y D es el primer idioma que me ha entusiasmado aprender en muchos años. .

Decidí pasar a un lenguaje compilado por una razón principal: la seguridad. Funcionalmente, Perl funciona bastante bien para el conjunto de herramientas en el que trabajo, pero es inseguro: cualquiera que pueda ejecutar un script también puede leer, copiar y crear su propia versión modificada de la herramienta. (Y lo hacen). Sé que hay métodos tortuosos para solucionar este problema (más o menos), pero para ser honesto, no tengo suficientes horas en el día para manejar todo eso y todavía hacer mi trabajo principal.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.