Criando uma Linguagem de Programação

2024-09-13 | aprates.dev

[1] Read this post in english

                     `,,.`                                                 
                  ,--~~~~:::^'-,                                           
                 :rv++vvvvv+v+v+^                                          
                :rrrv+v:~-~-+vr+^                                          
                -vv;vav:,,`.`.`                                            
                .~-~-r;~+r+v:--`                                           
           '':-~;;a;rr',^,,^`^                                             
        `~;~~-~;-~^''~+++vrv;`                                             
         .,-~;;~--~-,,,-;xv-^                      ^---;;;~~;;~~;;;-       
  .vv+v;''''^^-;-v~--:^--;^--                     ,~;;-~~~~~-~--;==-       
  '=xa=+,,','^:^-::^~~~~-~::^,.                  ,;;-~;~;;--;--vrx~        
   v=aar-:'',':^^-:-::^^::--~-'.                .~-;~v+~---;--;==v         
   ;xa==~;-:,,,::~--:::-^~:r+~-^,.              -v-+~v;~++rv~~+x+          
   .x=x=v-;~~^-,-~:;-;-;-;~xv;;;;-'`..         -+++v-~v+r-r+rvx+.          
    +a===r~-~;~::^-:^:--~-,;vv+vr-;-~:-,'',.  :+vvr~~~-~;r;-vxr,           
    ;x=ax+r~;~~-;;~-;~:-:-,,,~-~--::--~~~.`,,^+vrrrv+++rrr==xa,            
    .=axa=+r+-;--;;-~~~;~~~+-,',,'','::,:-^--vvv+v+v+rr+rxa=x:             
O universo das linguagens de programação é amplo e cheio de nuances, oferecendo uma extensa lista de necessidades e aplicações específicas dentro da computação. Algumas linguagens são preferidas para análise de dados devido à sua simplicidade e ergonomia, enquanto outras são escolhidas para sistemas que exigem altos níveis de controle de hardware e desempenho.

Essa diversidade não provém apenas da evolução tecnológica, mas também das preferências pessoais e da dinâmica peculiar dentro das comunidades de programação. Programadores e comunidades diferentes gravitam em torno de diferentes paradigmas de programação, como a programação funcional e orientada a objetos, cada um carregando seu próprio conjunto de complexidades.

Neste vasto universo, embarquei em um desafio pessoal para criar uma nova linguagem de programação, que nomeei FatScript (mais sobre o nome mais adiante). Iniciado não por necessidade, mas por um desejo de exploração, este projeto nasceu do meu próprio processo de aprender fazendo, construindo algo do zero.

…mas se uma coisa é humanamente possível, considere-a como estando ao seu alcance. - Marco Aurélio

Embora criar uma nova linguagem de programação em 2022–24 possa parecer reinventar a roda, e possivelmente fora do hype devido aos avanços da IA, essa jornada foi, na verdade, sobre a satisfação encontrada no caminho. Enquanto talvez resolvendo o que vejo como problemas de outras linguagens e, com certeza, criando novas falhas de design.

Como engenheiro de software brasileiro com experiência em desenvolvimento de jogos em Flash (bons tempos!) e trabalho com sistemas distribuídos usando Scala (sim, seu tempo de compilação é ruim) e React (gostei em 2018, não tanto com as atualizações recentes), minha jornada no desenvolvimento de linguagens foi alimentada pela curiosidade. O mesmo bicho que me picou quando eu tinha 12 anos de idade e escrevi Pong em Turbo Basic (ah, o barulho do disco rígido e o cheiro de plástico daquele 486, nostalgia).

Então, eventualmente, veio à vida: "FatScript, uma linguagem de programação leve e interpretada, projetada para aplicações baseadas em console. Enfatizando a simplicidade, facilidade de uso e conceitos de programação funcional."

Mas, espere…

FATscript, uma linguagem de programação LEVE?

Hmm, algo sobre essa afirmação parece contraditório…

De fato, há algum contexto faltando! A expressão "açúcar sintático" refere-se a recursos que tornam o código mais fácil de escrever ao ocultar a complexidade subjacente. E, como ao consumir muito açúcar… pode haver consequências: gordura (fat, em inglês). O que, nesse sentido, é algo positivo, pelo menos eu acho - muito peso em poucas linhas de código.

Dito isso, FatScript é uma linguagem relativamente nova e, embora tenha sido projetada para ser simples e intuitiva, é garantido que não é a melhor opção para todas as tarefas, especialmente quando se trata de computação de alto desempenho ou cargas de trabalho extremamente complexas. No entanto, apesar de seu nome, o interpretador do FatScript, fry [2], é minúsculo (leve), com um custo de inicialização quase zero e benchmarking [3] mostra que ele se comporta de maneira comparável a linguagens como Python ou JavaScript.

Então, embora chamar o FatScript de "leve" possa ser discutível, o runtime da linguagem não é inerentemente pesado e mantém um perfil eficiente na prática para a maioria dos casos de uso.

E para ser justo, por que estamos mesmo preocupados com a velocidade? O Python provou que você não precisa de velocidade quando você tem estilo! O Python é conhecido há anos por ser lento e, veja, sua popularidade ainda crescendo. Ele dá seu jeito de encantar e ganhar espaço no kit de ferramentas de todo mundo. Até me atrevo a dizer que uma linguagem ser lenta é irrelevante se for rápida o suficiente e oferecer alguns recursos bacanas, ou mesmo se apenas fizer você se sentir bem ao usá-la, já é uma vitória (certamente não é o caso com COBOL).

Bem, o FatScript, projetado principalmente para aplicações baseadas em console, combina recursos que admiro de outras linguagens:

Onde o FatScript Brilha

Aqui estão alguns lugares onde você pode ver o FatScript em ação:
A simplicidade da linguagem e a capacidade de iteração rápida a tornam adequada para essas tarefas, e me pergunto quão grande será o desafio que posso lançar nela. Só o tempo dirá.

Então, minha "humilde" visão é que todos se beneficiem do uso do FatScript, que ele contribua para a rica tapeçaria das linguagens de programação oferecendo uma mistura única de simplicidade, programação funcional e facilidade de uso.

Para aqueles intrigados por novas linguagens ou aqueles que procuram uma perspectiva fresca em programação, o FatScript oferece um sabor distinto e brincalhão: picante, açucarado e gorduroso… você deveria experimentar!

Para mais insights e demonstrações ao vivo, junte-se às sessões semanais no YouTube [6] todas as segundas-feiras às 20h (horário do Brasil) ou visite a página oficial em FatScript.org [7] para explorar mais sobre esta linguagem super "cool" e fascinante.

[2] fry, O Interpretador FatScript
[3] Benchmarking
[4] FatScript Playground
[5] Outros Spin-Offs
[6] FatScript YouTube channel
[7] Página Oficial

Veja também

[8] Arquivos da Cápsula
[9] Home da Cápsula

Quer mais?

Comente sobre um dos meus posts, fale comigo, diga: hello@aprates.dev

[10] Assine o feed da Cápsula
[11] Confira o projeto FatScript no GitLab
[12] Confira meus projetos no GitHub
[13] Confira meus projetos no SourceHut

Junte-se ao Geminispace

Gemini é um novo protocolo de Internet introduzido em 2019, como uma alternativa ao http(s) ou gopher, para conteúdos em texto leve e melhor privacidade.

Não sabe como, mas quer fazer parte do clube? Veja:
[14] Guia de início rápido Gemini

Já tem um cliente Gemini?
[15] Navegue nesta cápsula via Gemini


© aprates.dev, 2021-2024 - o conteúdo deste site está licenciado sob
[16] Licença Creative Commons BY-NC-SA 4.0
[17] Construído orgulhosamente com GemPress
[18] Política de Privacidade