Mi visión para el futuro D

Cuando Andrei Alexandrescu renunció como subdirector del departamento de lenguaje de programación D, me pidieron que asumiera este papel en el futuro. No hay necesidad de hablar de eso, pero aún diré que este sombrero es demasiado grande para mí.
Todavía estoy ingresando a mi nuevo rol en la sociedad y descubriendo cómo quiero actuar y qué es realmente. Este proceso no tiene lugar en el vacío, ya que Walter también está con nosotros.

En los foros de D, me pidieron que escribiera una publicación de blog sobre mis "sueños y próximos pasos para D", así que aquí está el resultado. En lo que me gustaría convertirme con D en un futuro cercano:

Seguridad de la memoria


"¡Pero D es un lenguaje con GC!", Escucho tus exclamaciones. Sí, pero también es un lenguaje de programación del sistema con tipos y punteros que no son de referencia, lo que significa que hoy D no es completamente seguro para trabajar con memoria. DIP1000 fue un paso en la dirección correcta (aprox. Sistema de préstamo, como en Rust, ver aquí ), pero trabajar con memoria debe ser seguro hasta que el programador se niegue a través de "Sé lo que estoy haciendo" con @ atributo o función de bloque de confianza . Esto implica un cambio a @ safe por defecto.

Multithreading simple y confiable


En su mayor parte, ya estamos en el punto correcto: el uso del modelo de actor elimina muchos de los problemas que suelen surgir. Queda por terminar el trabajo en el atributo compartido y hacer todo @ seguro .

Haga que D sea el lenguaje de programación predeterminado


Las posibilidades de D en términos de reflexión estática y generación de código lo convierten en un candidato ideal para crear código que debería llamarse desde varios lenguajes y entornos diferentes (por ejemplo, Python, Excel, R, etc.). Esto generalmente se realiza especificando estructuras de datos y llamadas RPC en un lenguaje de definición de interfaz (IDL), y luego traduciéndolas a los idiomas compatibles con el protocolo de intercambio apropiado.

En el caso de D, nada de esto es necesario. Puede escribir código industrial en D y, con la ayuda de bibliotecas, este código se puede invocar automáticamente desde otros idiomas. Además de todo esto, puede escribir fácilmente código D que funcione igual o más rápido que las alternativas, y será una victoria en todos los frentes.

Reflexión inigualable


En lugar de formas dispares de trabajar con API fragmentadas (__traits, std.traits, bikes), me gustaría tener una biblioteca que centralice todas las necesidades de reflexión con una hermosa API. Ya estoy trabajando en eso.

Simplifique la interoperabilidad con C ++


Como mencioné en mi discurso en DConf 2019 , C ++ logró el éxito al hacer que la transición de C sea casi perfecta. Me gustaría que los programadores actuales de C ++ con una base de código obsoleta comiencen a escribir código con igual facilidad en D. Es por eso que escribí dpp ( traductor de notas para encabezados de C ++ en D), pero eso no es todo, y Es posible que tengamos que hacer cambios en el idioma para adaptarlo en el futuro.

Velocidad de desarrollo


Creo que necesitamos un intérprete increíblemente rápido para poder rechazar la generación y el diseño constantes del código de máquina. En mi opinión, esta debería ser la forma estándar de ejecutar bloques de prueba unitaria ( las pruebas unitarias primitivas están integradas en el lenguaje) para proporcionar retroalimentación rápida, y para que los programadores tengan que compilar su código solo para un rendimiento máximo y / o para la implementación a los usuarios finales. También permitiría la introducción de REPL .

Cuerdas interpoladas


Inicialmente, estaba en contra, pero cuanto más lo pensaba, más lógico era para D. ¿Por qué? Cadena mixins. La generación de código es uno de los puntos fuertes de D, y los tokens de cadena le permiten deleitar visualmente los bloques de código que en realidad son "solo cadenas". La interpolación de cadenas simplificaría enormemente su uso. Hasta ahora, se está desarrollando un borrador de DIP .

Esto es lo que se me ocurrió después de una larga caminata por el lago de Ginebra. Me gustaría saber qué piensa la comunidad al respecto, cuáles son sus callos y oportunidades favoritas en D y cómo, en su opinión, esto ayudará o dificultará el progreso de D.

Discusión sobre el foro D aquí

Traducido usando www.DeepL.com/Translator (esta no es una traducción automática si alguien no lo ha notado, pero al mismo tiempo este traductor con elementos de IA ayuda mucho)

PD: ¿Quién se perdió el artículo anterior del blog sobre los planes D para el desarrollo móvil? Era sospechosa de publicidad (oh, se menciona donat) y expulsada del centro D.

Source: https://habr.com/ru/post/471950/


All Articles