unit - vitamina d 50000 unidades para que sirve
¿Está el lenguaje D2 listo para la producción? (3)
He estado aprendiendo con entusiasmo el lenguaje D estos últimos días. Parece un sueño para mí como partidario de varios millones de líneas de código C ++. Admitimos un sistema de baja latencia de alto rendimiento y está claro que C ++ fue la única opción en los últimos diez años. Ahora, veo D.
Por lo tanto, mis preguntas son bastante obvias. ¿Puedo empezar a pensar en la migración del producto de software comercial al lenguaje D? ¿Hay algún ejemplo de tal migración o producto de software comercial existente escrito en D desde el principio?
¿Cómo es seguro invertir en este idioma ahora? ¿Tenemos compilador y depurador de calidad de producción? ¿Podemos asumir que serán apoyados y desarrollados?
Si tiene alguna experiencia en la migración de C ++ a D, sería genial escucharlo de usted.
PD. Por DI significa D2
Gracias
¿Hay algún ejemplo de tal migración o producto de software comercial existente escrito en D desde el principio?
No creo que haya habido grandes migraciones comerciales a D, aunque hay algunas compañías que usan D1 . Aún no conozco ninguna compañía que use D2.
¿Cómo es seguro invertir en este idioma ahora?
¿Tenemos compilador y depurador de calidad de producción?
El compilador DMD es muy fuerte y está mejorando continuamente, pero aún falta en algunas áreas clave. Por ejemplo, su generación de código para operaciones de punto flotante es bastante deficiente, y el soporte de 64 bits es inestable (aunque mejora). También hay GDC, que no he usado, pero tengo la impresión de que es más débil que DMD.
¿Podemos asumir que serán apoyados y desarrollados?
Creo que es muy seguro asumir que los compiladores serán compatibles y desarrollados. Basta con mirar la github La actividad es fuerte y creciente. El número de correcciones de errores se está produciendo a un ritmo rápido y no veo señales de que se esté desacelerando.
Bueno, la recomendación general para cualquier idioma es no reescribir una base de código existente. Escribir un nuevo código o porciones de conversión, donde los errores necesitan reparación, puede ser una buena estrategia.
La repetición rápida y sucia: si tiene que preguntar, todavía no debería usar D en producción.
Algunos no consideran que D sea una mejora y otros piensan que permanecerá en las "esferas de la irrelevancia". Mirar su historia muestra que tiene lo que se necesita para sobrevivir.
Personalmente, si tuviera que lanzar la idea de tener un producto de producción usando D, probablemente consideraría:
- Tamaño del equipo. Cuántos desarrolladores necesitan ser educados en D en las primeras etapas hasta su finalización.
- Qué bibliotecas se necesitarán y tendremos el tiempo y el poder humano para construir o envolver una biblioteca.
- Podríamos manejar parches de errores en las bibliotecas utilizadas.
- ¿Sería necesaria una arquitectura que no es compatible con DMD
Estas son preocupaciones que serán parte de cualquier discusión, especialmente para un lenguaje joven como D, que incluso ha roto la compatibilidad con las bibliotecas existentes por lo que tiene solo 4 años de edad (y aún sobrevivió). No uso otros compiladores, por lo que no sería preocupante tener soporte de DMD, la historia de los otros compiladores no es estelar y es bueno tener el conocimiento de que podría haber otro compilador al que recurrir. Por supuesto, si tienes un equipo que podría mantener un compilador ...
Creo que D se puede usar en producción, pero es algo que probablemente debería estar muy controlado. Querría que alguien familiarizado con D en un equipo que va a hacer un producto de producción con él, por ahora.
No consideraría que D2 esté listo para la producción todavía, pero se está acercando. La definición del lenguaje es bastante estable. Muy pocos cambios importantes deberían estar ocurriendo en este punto (aunque pueden ocurrir algunos cambios aditivos para resolver problemas clave en el lenguaje). El desarrollo en el compilador avanza muy rápido, y muchos errores se arreglan. Pero en este punto, si usa D2 en gran medida, se encontrará con errores de compilación, especialmente si usa características de lenguaje más nuevas. Y no todas estas características se han implementado completamente (p. Ej., alias this
e inout
), por lo que si bien TDPL es en su mayoría correcto, dmd todavía está algo atrasado.
Además, si bien la biblioteca estándar, Phobos, es muy buena en general y gran parte de ella es estable, todavía es un trabajo en progreso. Estamos tratando de evitar causar cambios bruscos inmediatos colocando cosas que estamos eliminando a través de la ruta de desactivación adecuada (generalmente 6 meses como está previsto para depreciación y 6 meses como obsoleto antes de la eliminación completa), pero a veces se producen cambios inmediatos (y a veces el compilador causa cambios bruscos a medida que se trabaja). En algunos casos, se revisarán módulos enteros (por ejemplo, std.xml y std.stream). Posiblemente, la mayor molestia en ese sentido es el estándar, que es bastante nuevo, todavía no tiene mucho, y podría tener un rediseño significativo, ya que Andrei Alexandrescu explica cómo vamos a manejar la administración de memoria en eso. Por lo tanto, el soporte de contenedores está mejorando, pero en general no existe. Con todo, una gran cantidad de Phobos es bastante estable, pero definitivamente no está escrito en piedra.
Definitivamente hay soporte tanto para dmd como para Phobos, ya que si bugzilla cosas en bugzilla o las discutes en el grupo de noticias , la gente generalmente será muy útil y los desarrolladores intentarán corregir los errores de manera oportuna, pero la mayoría de las personas que trabajan en él hacerlo en su tiempo libre, por lo que a veces puede tomar un tiempo. Sin github cambio a github definitivamente ha mejorado. Sé que Digital Mars proporciona soporte adicional para dmc si pagas, pero no sé si harán lo mismo para dmd. Espero que haya una buena posibilidad de que lo hagan (ciertamente, si no lo hacen ahora, esperaría que lo hagan en el futuro).
En cuanto a la calidad del compilador, dmd usa Digital Mars ''dmc como su backend, y dmc es la encarnación más nueva del primer compilador de C ++ para compilar código de forma nativa (en lugar de traducirlo a C primero), y Walter Bright, el creador de D, ha estado trabajando en eso desde que lo creó. Es uno de los mejores escritores de compiladores y ha creado varias optimizaciones que se han convertido en estándar en los compiladores de C ++ (como la Optimización del valor de retorno ), pero dmc no tiene mucha gente trabajando en ello, y hay algunas áreas en el que se ha retrasado (como las optimizaciones de punto flotante), y D es lo suficientemente nuevo como para que haya mucho trabajo por hacer para optimizarlo. A medida que se corrigen los errores, estoy seguro de que más atención se desplazará hacia la optimización del lenguaje, y finalmente estará a la par con C ++ en la mayoría de las circunstancias (y mejor en algunas), pero en este momento realmente depende de tu código. A veces D está a la par; a veces no lo es
Algunas personas usan D2 en el código de producción (en particular, sé que Adam D. Ruppe lo usa para el desarrollo web con las empresas con las que trabaja, es un afiche frecuente en el grupo de noticias D), pero no creo que haya son muchos de ellos, y generalmente evitan las características más nuevas y elegantes del lenguaje (que generalmente es donde están los peores errores). Cuán estable va a ser realmente va a depender de lo que hagas con el lenguaje.
El wiki tiene buena información sobre el trabajo que queda por hacer, y este hilo reciente en el grupo de noticias tiene también buena información.
D se está acercando definitivamente al punto en el que lo consideraría listo para la producción, pero definitivamente hay cierto riesgo en este punto. Es genial para cosas de pasatiempos, pero si tu sustento depende de ello, no sé si el riesgo vale la pena todavía. Sin embargo, se está acercando. Probablemente valga la pena verlo, probarlo, experimentar con él, etc. Pero no me limitaría a sumergirme con tu código de producción y convertirlo todo en D. Podría funcionar muy bien, pero podría no ser así. Espero que dentro de un año, pueda decir que D2 está listo para la producción, pero no sé cuánto antes me sentiré cómodo al decirlo.