Ma vision de l'avenir D

Lorsque Andrei Alexandrescu a démissionné en tant que chef adjoint du département du langage de programmation D, on m'a demandé d'assumer ce rôle à l'avenir. Il n’est pas nécessaire d’en parler, mais je dirai quand même que ce chapeau est trop gros pour moi.
J'entre toujours dans mon nouveau rôle dans la société et je trouve comment je veux agir et ce que c'est vraiment. Ce processus ne se déroule pas dans le vide, car Walter est également avec nous.

Sur les forums D, on m'a demandé d'écrire un blog sur mes «rêves et prochaines étapes pour D», alors voici le résultat. Ce que je voudrais devenir avec D dans un futur proche:

Sécurité de la mémoire


"Mais D est une langue avec GC!", J'entends vos exclamations. Oui, mais c'est aussi un langage de programmation système avec des types et des pointeurs non référencés, ce qui signifie qu'aujourd'hui D n'est pas complètement sûr pour travailler avec la mémoire. DIP1000 était un pas dans la bonne direction (système d'emprunt prim., Comme dans Rust, voir ici ), mais travailler avec la mémoire devrait être sûr jusqu'à ce que le programmeur refuse par "Je sais ce que je fais" avec @ attribut ou fonction de bloc de confiance . Cela implique un passage à @ safe par défaut.

Multithreading simple et fiable


Pour la plupart, nous sommes déjà au bon point - l'utilisation du modèle d'acteur élimine de nombreux problèmes qui se posent généralement. Il reste à terminer le travail sur l'attribut partagé et à tout faire @ en toute sécurité .

Faire de D le langage de programmation par défaut


Les possibilités de D en termes de réflexion statique et de génération de code en font un candidat idéal pour créer du code qui devrait être appelé à partir de plusieurs langages et environnements différents (par exemple Python, Excel, R, etc.). Cela se fait généralement en spécifiant les structures de données et les appels RPC dans un langage de définition d'interface (IDL), puis en les traduisant dans les langues prises en charge avec le protocole d'échange approprié.

Dans le cas de D, rien de tout cela n'est nécessaire. Vous pouvez écrire du code industriel en D et à l'aide de bibliothèques, ce code peut être appelé automatiquement à partir d'autres langues. Ajoutez à tout cela, vous pouvez facilement écrire du code D qui fonctionne aussi rapidement ou plus rapidement que les alternatives, et ce sera une victoire sur tous les fronts.

Réflexion inégalée


Au lieu de façons disparates de travailler avec des API fragmentées (__traits, std.traits, bikes), j'aimerais avoir une bibliothèque qui centralise tous les besoins de réflexion avec une belle API. J'y travaille déjà.

Simplifiez l'interopérabilité avec C ++


Comme je l'ai mentionné dans mon discours à DConf 2019 , C ++ a réussi en rendant la transition de C presque transparente. J'aimerais que les programmeurs C ++ actuels avec une base de code obsolète commencent tout aussi facilement à écrire du code en D. C'est pourquoi j'ai écrit dpp ( remarque: traducteur pour les en- têtes C ++ en D), mais ce n'est pas tout, et il se peut que nous devions apporter des modifications à la langue afin de l'adapter à l'avenir.

Vitesse de développement


Je pense que nous avons besoin d'un interprète incroyablement rapide pour pouvoir refuser la génération et la mise en page constantes du code machine. À mon avis, cela devrait être la façon standard d'exécuter les blocs les plus unittes ( les tests unitaires primitifs sont intégrés dans le langage) pour fournir un retour rapide, et pour que les programmeurs doivent compiler leur code uniquement pour des performances maximales et / ou pour le déploiement auprès des utilisateurs finaux. Cela permettrait également l'introduction de REPL .

Chaînes interpolées


Au départ, j'étais contre, mais plus j'y pensais, plus c'était logique pour D. Pourquoi? Mixins à cordes. La génération de code est l'une des forces de D, et les jetons de chaîne vous permettent de ravir visuellement des blocs de code qui ne sont en fait que des chaînes. L'interpolation de chaînes simplifierait considérablement leur utilisation. Jusqu'à présent, un projet de DIP est en cours d'élaboration.

C'est ce qui m'est venu à l'esprit après une longue promenade le long du lac Léman. J'aimerais savoir ce que la communauté en pense, quels sont ses callosités et opportunités préférées en D, et comment, à leur avis, cela aidera ou entravera les progrès de D.

Discussion sur le D-forum ici

Traduit en utilisant www.DeepL.com/Translator (ce n'est pas une traduction automatique si quelqu'un ne l'a pas remarqué, mais en même temps ce traducteur avec des éléments d'IA aide beaucoup)

PS Qui a manqué l' article précédent du blog sur les plans D pour le développement mobile. Elle était soupçonnée de publicité (oh, donat est mentionné) et expulsée du hub D.

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


All Articles