Estou criando um projeto de uma linguagem de programação para poder tornar o desenvolvimento local mais facil. Confira!

Introdução.

Ola Dev's, sou Renan Augusto, sou aprendiz de programação, tenho 14 anos e, atualmente, vejo barreiras que impedem chegar a um bom ecossistema nas linguagens atuais, não estou citando linguagens web, elas são outro caso, mas vocês entenderam como elas me inspiraram nessa jornada.

DEFININDO O TIPO E NOME (Ou quase isso).

Para criar qualquer projeto não basta ser um projeto legal, tem que ter um nome chiclete que vai grudar na sua cabeça e não vai sair nunca mais, tento com nomes que rimam ou tem coesão, então tentei chamar de linguagem S, pois tenho o sonho de ter uma startup chamada Smart, ate descobri que o nome S ja existe 😫, então pensei:

Vou aproveitar que a logo e um cavalo marinho (por se parecer com um S) e fazer baseado, em inglês e Sea Horse, então vai se chamar Sea Horse Language, mas claro que eu não vou deixar esse nome gigante 🤣, que tal Sehol? Gostei, so não sei se os outros vão gostar, kkkkk.

A partir daquela escolha de nome tentei pesquisar maneiras de como seria a sintaxe, como funciinaria e o tipo, já pensei em ser uma linguagem transpilada para C++, já que desde o início eu queria que fosse uma linguagem compilada, mas decidi fazer o seguinte, deixe que a linguagem ingere a código assemble e para assim ser compilada, ótimo é só aproveitar as ferramentas Nasm e GoLink, pronto, ja tava quase pronto a ideia, agira vamos desenvolver. 😄

Etapa por etapa, mas um passo a frente a mais nunca faz mal.

Usem com moderação, mas em vez de fazer do método mais fácil ter planejado a versão com terminal eu fui primeiro (e ainda continuo) desenvolvendo a versão da linguagem com programas com interface grafica, o codigo utiliza o Win32 para gerar a janela com os "Elements" como eu chamo, são eles, por enquanto, o drawWindow, drawText e drawButton, você entenderá a seguir seu funcionamento.

Let's go conhecer a suntaxe!

A sintaxe mistura um pouco de CSS e levemente com linguagens funcionais, veja este exemplo:

drawWindow("Teste", 500, 500) { background-color: "white" } drawText hello("hello world") { color: "black" } percebeu a semelhança com o CSS? Isso e porque quis trazer a facilidade dos conceitos web para programas desktop, mas nem so de telas estaticas se vive o programador, então vamos criar um botão: drawButton click("Clique em mim") { width: 50 height: 30 x: 50 y: 50 }

Estou em duvida se passo o width e height como parâmetros, mas isso ja e o suficiente, vamos exibir algo ao cilcar? Com certeza, vamos exibir uma messageBox:

@behind ifClickEvent(click) { drawMessageBox("Esta bem?", YES_NO); }

A notação behind serve para executar codigos logicos, tipo o JavaScript da coisa, se não ficou claro até aqui, recomendo olhar o link do repositorio no final da postagem.

Conclusão.

Se eu conseguir, quero criar uma comunudade em volta disso para criar uma ferramenta poderosa, e é porque eu esqueci de excitar muitas coisas, como a linguagem tem uma launcher para facilitar o gerenciamento da instalação e de pacotes (Em breve) e muitas outras ideias, mas ainda estou no inicio, espero que tenham gostado, se positivo, aperte no botão achei util acima para me ajudar.

Confira o repositorio em: https://github.com/renan-augusto3850/sehol

-Vejo em breve, Renan Augusto.