Minha visão para o futuro D

Quando Andrei Alexandrescu renunciou ao cargo de chefe adjunto do departamento de linguagem de programação D, me pediram para assumir esse papel no futuro. Não há necessidade de falar sobre isso, mas ainda vou dizer que esse chapéu é muito grande para mim.
Ainda estou entrando no meu novo papel na sociedade e descobrindo como quero agir e o que realmente é. Esse processo não ocorre no vácuo, pois Walter também está conosco.

Nos fóruns de D, fui convidado a escrever um post sobre meus “sonhos e próximos passos para D”, então aqui está o resultado. O que eu gostaria de me tornar com D em um futuro próximo:

Segurança de memória


"Mas D é uma linguagem com GC!", Eu ouço suas exclamações. Sim, mas também é uma linguagem de programação de sistema com tipos e ponteiros sem referência, o que significa que hoje o D não é completamente seguro para trabalhar com memória. O DIP1000 foi um passo na direção certa (aprox. Sistema de empréstimos, como em Rust, veja aqui ), mas trabalhar com memória deve ser seguro até que o programador se recuse através de "Eu sei o que estou fazendo" com @ atributo ou função de bloco confiável . Isso implica uma mudança para @ safe por padrão.

Multithreading simples e confiável


Na maioria das vezes, já estamos no ponto certo - o uso do modelo de ator elimina muitos dos problemas que geralmente surgem. Resta terminar o trabalho no atributo compartilhado e fazer tudo @ seguro .

Tornar D a linguagem de programação padrão


As possibilidades de D em termos de reflexão estática e geração de código o tornam um candidato ideal para a criação de código que deve ser chamado de várias linguagens e ambientes diferentes (por exemplo, Python, Excel, R, etc.). Isso geralmente é feito especificando estruturas de dados e chamadas RPC em uma linguagem de definição de interface (IDL) e, em seguida, convertendo-as em idiomas suportados com o protocolo de troca apropriado.

No caso de D, nada disso é necessário. Você pode escrever código industrial em D e, com a ajuda de bibliotecas, esse código pode ser chamado automaticamente de outros idiomas. Adicione tudo isso, você pode escrever facilmente um código D que funciona tão rápido ou mais rápido que as alternativas, e será uma vitória em todas as frentes.

Reflexão incomparável


Em vez de maneiras diferentes de trabalhar com APIs fragmentadas (__traits, std.traits, bikes), eu gostaria de ter uma biblioteca que centralize todas as necessidades de reflexão com uma API bonita. Eu já estou trabalhando nisso.

Simplifique a interoperabilidade com C ++


Como mencionei em meu discurso no DConf 2019 , o C ++ obteve sucesso, tornando a transição do C quase perfeita. Eu gostaria que os programadores atuais de C ++ com uma base de código desatualizada iniciassem a escrever código em D. com facilidade. Foi por isso que escrevi dpp ( note tradutor para cabeçalhos de C ++ em D), mas isso não é tudo, e talvez seja necessário fazer alterações no idioma para adaptar isso no futuro.

Velocidade de desenvolvimento


Acho que precisamos de um intérprete incrivelmente rápido para podermos recusar a geração e o layout constantes do código da máquina. Na minha opinião, essa deve ser a maneira padrão de executar blocos mais unidos (testes de unidade primitivos são incorporados à linguagem) para fornecer feedback rápido e, assim, os programadores precisam compilar seu código apenas para obter o desempenho máximo e / ou para implantação nos usuários finais. Permitiria também a introdução do REPL .

Cordas interpoladas


Inicialmente, eu era contra, mas quanto mais eu pensava, mais era lógico para D. Por que? String mixins. A geração de código é um dos pontos fortes de D, e os tokens de string permitem que você delicie visualmente os blocos de código que são realmente "apenas strings". A interpolação de cadeias simplificaria bastante seu uso. Até agora, um DIP preliminar está em desenvolvimento.

Foi o que me ocorreu depois de uma longa caminhada pelo lago de Genebra. Gostaria de saber o que a comunidade pensa sobre isso, quais são seus calos e oportunidades favoritos em D e como, na opinião deles, isso ajudará ou dificultará o progresso de D.

Discussão no fórum D aqui

Traduzido usando www.DeepL.com/Translator (não é uma tradução automática se alguém não notou, mas ao mesmo tempo esse tradutor com elementos de IA ajuda muito)

PS: Quem perdeu o artigo anterior do blog sobre os planos D para desenvolvimento móvel. Ela era suspeita de publicidade (ah, o donat é mencionado) e expulso do hub D.

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


All Articles