Criando uma Linguagem de Programação

2024-09-13 | aprates.dev

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.

fry, O Interpretador FatScript

Benchmarking

FatScript Playground

Outros Spin-Offs

FatScript YouTube channel

Página Oficial

Veja também

Arquivos da Cápsula

Home da Cápsula

Quer mais?

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

Assine o feed da Cápsula

Confira o projeto FatScript no GitLab

Confira meus projetos no GitHub

Confira meus projetos no SourceHut

© aprates.dev, 2021-2024 - o conteúdo deste site está licenciado sob

Licença Creative Commons BY-NC-SA 4.0

Construído orgulhosamente com GemPress

Política de Privacidade