
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.