Eu sei que isso soa contraditório depois de ter feito um post sobre a Go, mas a realidade é que eu não quero aprender a programar com a Go, eu quero aprender a programar com uma linguagem low-level, tipo a C (que eu também estou estudando), e é aí que a Hare entra.

Praticamente C, mas com diversas melhorias

A Hare é uma linguagem da família das linguagens C-like, e a sua sintaxe deixa isso bem explícito, porém, ela tem algumas das inovações das últimas décadas consigo e também se inspira na sintaxe de outras linguagens, como a Rust. Porém, diferente de Rust, você não vai ter que esperar por minutos ou horas para o compilador terminar o serviço, nem quebrar a cabeça com o seu código para que ele seja "memory safe", ela não tem garbage collectors nem nada desse tipo, é como eu disse, ela é praticamente C.

Contudo, ela não é uma linguagem com as mesmas limitações ou problemas que C possue, e além disso ela tem uma sintaxe que, para mim, não só é mais clara, como mais fácil de entender o que está acontecendo. Claramente isso é apenas algo que depende da minha experiência, mas até mesmo a minha namorada conseguiu entender como um Struct estava sendo usado em um dos exemplos que eu escrevi em Hare, enquanto isso, o mesmo exemplo em C foi... Confuso para dizer no mínimo.

QBE como backend

O compilador da Hare usa o QBE Backend, o que torna o compilador dela extremamente rápido e leve, e também facilita o processo de criar ports do compilador para outras arquiteturas. Eu não irei entrar muito em detalhes sobre o que é um Compiler Backend, mas devo parafrasear algo vindo do próprio site do QBE:

QBE é um backend para compiladores, com o foco de providenciar 70% da performance de compiladores otimizados da indústria com 10% de código.

Site do QBE (Traduzido)

De certa forma, o QBE se encaixa até mesmo na filosofia suckless, o que para mim pelo menos, é um grande ponto possitivo.

O que eu planejo fazer aprendendo a programar?

Atualmente, eu vejo a programação como um hobbie para mim, um hobbie que eu gosto e muito, mas isso não me impede de colocar essa habilidade no meu currículo, um dia isso pode vir a ser extremamente útil. Por enquanto eu estou aprendendo o básico, recém fiz o meu primeiro Struct, ainda falta muito para eu dizer que eu sei fazer alguma coisa, quanto mais dizer que eu sei programar. Mas isso só depende do meu esforço, então irei correr atrás.

Fin

Enfim, é isso, até o próximo post!