
Olá Vou começar o artigo com uma pequena digressão. Você ficou decepcionado quando encontrou a programação pela primeira vez? Eu assumi que a criação de programas ocorre através da interação com alguma ferramenta complexa, mas muito interessante, na qual eu posso fazer minha coisa favorita (coletar construtores) em um novo nível. No entanto, tive que aprender a escrever arquivos de texto que consistem em vários operadores, colchetes, seqüências de caracteres e outras construções de texto. Décadas passaram, aprendi a programar e já havia me esquecido dessa decepção, mas quando vi as notícias sobre o Google Blockly e o Scratch na rede, senti nostalgia ...
Essas ferramentas, mesmo sem pretender ser profissional, são muito interessantes! Sem textos e compilações - você arrasta blocos e obtém o resultado instantaneamente. Isso pode ser feito para profissionais? Tenho certeza que você pode! E neste artigo, gostaria de expressar minha visão de como.
Qual é o objetivo?
Se nos afastarmos da maneira de escrever programas, precisamos separar a estrutura do código do programa e seu tipo ...
Como é isso?
Para fazer isso, primeiro de tudo, precisamos armazenar os códigos-fonte em uma forma diferente. Eles devem ser uma descrição das instruções e dos dados do programa em uma das formas existentes de armazenamento de dados, como json, xml ou qualquer outra. Esse arquivo (Figura 1, à esquerda) pode ter uma aparência bastante feia e não sucumbe a nenhuma maneira razoável de editá-lo diretamente; no entanto, em um ambiente de programação, ele se transforma em código de bloco (Figura 1, à direita).
O próprio ambiente de programação não lida com códigos de texto, mas com os "blocos" dos quais o código do programa é criado.
O que isso nos dará?
1. Primeiro, nos livraremos de diferenças insignificantes na sintaxe de vários idiomas. Por exemplo, os blocos de código em C ++ são separados por chaves e Ruby presta atenção às palavras-chave ... No editor, você pode configurar os dois tipos de programas, nada mudará nele. As configurações de exibição pessoal permitirão que o desenvolvedor veja o programa como quiser. Além disso, podemos usar qualquer caractere na nomeação, incluindo espaços.
2. Em segundo lugar, a velocidade de escrever um programa aumentará. Agora, para escrever uma instrução for em uma linguagem C, precisamos escrever o próprio texto for, depois os colchetes, parâmetros, ponto-e-vírgula, chaves e pressionar enter. Em nossa versão, o ambiente de programação, clicando em uma certa combinação de teclas, insere um ciclo e requer apenas a inserção de seus parâmetros. Por exemplo, pressionar "f" colocará o loop for no lugar do cursor e oferecerá a inserção do número de repetições e o nome do contador via tabulação, pressionando a tecla Enter no final.
3. Em terceiro lugar, será possível garantir independência da linguagem do programador. Os operadores de idioma podem ser indicados por alguns caracteres ou as palavras-chave podem ser exibidas no idioma nativo do programador. Se ele deseja que os operadores sejam chamados em inglês, russo ou em qualquer outro idioma, ele seleciona esse idioma nas configurações do editor e os nomes dos operadores mudam "on the fly". Quanto aos nomes de objetos e métodos, é mais complicado, mas, de qualquer forma, se o programa for desenvolvido por desenvolvedores russos, você poderá nomear tudo em russo - se você selecionar esse cenário, não haverá discrepância entre os nomes dos operadores e os nomes de objetos e métodos - tudo será em russo. Isso pode simplificar o aprendizado para estudantes e adultos não familiarizados com o inglês. Além disso, nas equipes multinacionais, é possível usar dois nomes para nomear objetos e métodos - em inglês e no idioma do desenvolvedor.
4. Quarto, será possível atualizar a estrutura do programa. Se algum novo recurso aparecer na nova versão do padrão que altera a aparência dos designs de blocos, será possível lançar patches para programas antigos que os trarão automaticamente para uma nova aparência. Na Figura 4, você pode ver quais construções de linguagem antiga podem ser transformadas pelo ambiente de programação para um novo formulário.
5. Em quinto lugar, será possível representar a estrutura do programa de qualquer maneira conveniente. Por exemplo, na forma de uma sala tridimensional pela qual você pode navegar como jogos de computador e editar o relacionamento de classes e objetos tridimensionais.
Ambiente de programação
Essa maneira de apresentar o programa não permitirá mais alterá-lo em um simples editor de texto. Para editar o programa, você precisará de um ambiente de programação especial. O desenvolvimento da primeira versão desse ambiente de programação é mais difícil do que para as linguagens tradicionais, mas existem maneiras de começar mais facilmente. Por exemplo, você pode começar com o editor de arquivo de dados, que permite editar arquivos de qualquer formato (xml, json, yaml etc.) da mesma maneira - usando blocos. Nesse caso, o usuário será poupado da necessidade de estudar a sintaxe desses arquivos e poderá editá-los aprendendo a editar arquivos de dados apenas neste programa.
Depois, haverá a tarefa de desenvolver um compilador que possa "on the fly" criar um programa durante sua edição. E, no futuro, será mais fácil fornecer a funcionalidade de preenchimento automático e adicionar funções ao ambiente de desenvolvimento que exijam um conhecimento "profundo" do código do programa, pois você não precisa analisar os códigos de texto. Além disso, o ambiente de programação “saberá” tudo o que é necessário sobre o programa para melhor realce e refatoração de sintaxe, pois todos os dados necessários para isso podem ser armazenados de forma invisível para o programador no arquivo de dados do programa.
Conclusão
Estou certo de que o método de programação descrito abrirá enormes oportunidades para os programadores e acelerará e simplificará bastante o desenvolvimento de aplicativos. No entanto, um no campo não é um guerreiro. O desenvolvimento de um produto desses exige uma abordagem e recursos poderosos. Sou um solitário e trabalho remotamente - esse projeto é muito difícil para mim ... Talvez se você se interessasse por ele, poderíamos trabalhar juntos?