
Historicamente, o desenvolvimento de software foi feito digitando texto simples. Por várias décadas, a abordagem principal da programação tem sido um conjunto sequencial de caracteres que devem formar estruturas em um nível superior ao desses caracteres. O programador não deve apenas digitar os mesmos atalhos de teclado repetidamente, mas também monitorar a formatação correta do código, caso contrário, o computador simplesmente se recusará a entender o que está escrito no código. Um personagem esquecido ";" pode produzir erros de compilação / interpretação completamente vagos. Além disso, o uso da representação textual do programa não apenas define requisitos adicionais para a programação, mas também limita severamente a capacidade do programador de escrever e usar código com eficiência.Além disso, a representação textual das informações complica muito a análise dessas informações de forma programática. Vamos dar uma olhada em uma abordagem alternativa para escrever programas.

- MetaIDE. / . ( for, if, while) , . - , . , AST - Abstract syntax tree ( ). MetaIDE AST, .
. , MetaIDE : wh while, fo for .. , . , , , , . . . , IDE . , , . . , .. , - () VR. - , - .

, . , (Scratch, Blockly), (UML, ), (blueprints - Unreal, Unity). MetaIDE . .

, . , , -, .

. , . (enum) . - , . - ( ), ( ), ( " " ).
. MetaIDE ( ), - , . (, , ), , . , . . , , . , . MetaIDE . . , .
MetaIDE MVC (Model-View-Controller, --) . . , ( , , ) , - . , , .
- ( ), , . . .
MetaIDE , IDE, . . , IDE IDE - ( SDK API, ).
, DSL
fix code main table
name: varLocal node: var get local fn: varLocal switch: ndPtr
name: varMember node: var get member fn: varMember switch: ndPtr
name: varGlobal node: var get global fn: varGlobal switch: ndPtr
name: varUnkn node: var unknown fn: varUnkn switch: ndPtr
name: call node: call fn fn: call switch: ndPtr
name: inline node: inlineCall fn: inline switch: ndPtr
name: subClass node: getSubClass fn: subClass switch: ndPtr
name: subNode node: var get subnode fn: subNode switch: ndPtr
name: nextFn node: nextFn fn: nextFn switch: ndPtr
, , , enum, , .. . , , , . , - . . , . MetaIDE - DSL ( UI) , . .
IDE

MetaIDE , . MetaIDE ( ) - (mind map), (outliner), ( HSB, LCH, HSLuv, HPLuv). , MetaIDE, , , (undo/redo) . ( git), , .

, . – , , , . , , .
Delight

MetaIDE Delight. ++, , - ( ), .

MetaIDE. Lazarus, . , . , . , ( , ). , , . , . Delight, – , Delight. ( ), . IDE Delight. , - . . , , , . . , . , , Delight - . . MetaIDE Delight - , .
. , , . , , IDE .
№2
Atualmente MetaIDE e Delight estão em desenvolvimento e estão disponíveis apenas como uma prévia (nem mesmo como uma versão alfa). Longe de tudo foi finalizado e nem todas as coisas são feitas convenientemente. A escala de desenvolvimento é muito grande e não há tempo suficiente para resolver todos os detalhes de uma vez.

conclusões
No momento, MetaIDE representa uma abordagem completamente nova para escrever programas, abrindo novos horizontes para o programador na organização de todo o fluxo de trabalho. Ambos trabalham com o código como um todo e os aspectos individuais da programação são bastante simplificados.