Executando verificação de segurança...
4

Pitch: Criando uma linguagem inspirada em VBA fora do Office usando Rust

Em meados de 2023 eu comecei a desenvolver um projeto bastante interessante chamado "VBA 2". A proposta era simples: conseguir remover o VBA do ecossistema do Office e poder rodá-lo em qualquer plataforma, seja Windows, macOS, Linux e até Android.

Inicialmente desenvolvi ele em Python para ter mais clareza e implementar as funcionalidades com mais facilidade, mas à medida que fui evoluindo o projeto ele foi ficando complexo demais para continuar naquele caminho.

O projeto além de tirar o VBA do Office também tinha uma proposta de modernização muito inspirada no VB.NET. A ideia nunca foi criar um clone perfeito do VBA ou do Office, mas sim pegar a produtividade absurda da família Visual Basic e trazer isso para um runtime moderno, standalone e multiplataforma.

Por que Rust?

Nesse ano de 2026 eu decidi recomeçar o projeto de forma séria e precisei escolher uma linguagem para isso. Pensei bastante entre C++, C e Rust.

No fim escolhi Rust.

O motivo principal foi perceber que o projeto não era mais "só um interpretador". Ele estava virando uma plataforma inteira:

  • parser
  • semântica
  • runtime
  • FFI
  • módulos
  • namespaces
  • interoperabilidade nativa
  • tooling
  • embedding
  • VM no futuro
  • ecossistema

Com Rust eu consegui algo que seria muito mais complicado em C ou C++:

  • segurança de memória
  • arquitetura modular
  • concorrência segura
  • runtime mais confiável
  • organização melhor para crescer no longo prazo
  • integração excelente com múltiplas plataformas
  • ecossistema moderno
  • interoperabilidade muito forte

O projeto hoje

Hoje o projeto oficialmente se chama Valo.

E sinceramente, ele virou algo muito maior do que eu imaginava lá em 2023.

Atualmente o Valo já possui:

  • parser e interpretador próprios
  • compatibilidade com .bas e .cls
  • classes, interfaces, herança e generics estilo VB.NET
  • namespaces
  • modules/imports
  • On Error, Err, Resume
  • arrays multidimensionais
  • file I/O estilo VBA
  • Declare, PtrSafe, AddressOf
  • FFI nativo
  • COM interoperability
  • CreateObject
  • integração usando windows-rs
  • REPL
  • foundation para packages/runtime ecosystem
  • arquitetura preparada para HIR/VM futuramente

Compatibilidade VBA

Uma coisa importante: quando falamos em compatibilidade VBA, estamos focando principalmente no VBA em si e não nas APIs específicas do Office.

Então a ideia não é replicar "PowerPoint VBA", "Excel VBA" ou coisas específicas das aplicações da Microsoft.

Porém, como o runtime já possui COM interoperability e CreateObject, fica muito mais fácil consumir automações externas caso o usuário queira integrar com Office ou outros componentes COM.

Objetivos do Valo

A visão do projeto é bem mais ampla.

Quero transformar o Valo em uma linguagem/runtime realmente utilizável fora do Office:

  • aplicações desktop
  • automações
  • CLI tools
  • servidores
  • scripting
  • interoperabilidade nativa
  • embedding em outras aplicações
  • futuramente WebAssembly/WASM
  • talvez mobile no futuro

Basicamente algo como:

"E se a família Visual Basic tivesse evoluído fora da Microsoft?"

Open-source

Outra coisa importante: o projeto é totalmente open-source sob licença MIT e qualquer pessoa pode contribuir.

Meu sonho desde muito novo sempre foi criar uma linguagem de programação funcional de verdade. Não só uma brincadeira ou um parser experimental, mas algo que pudesse realmente virar um ecossistema e ser útil para pessoas reais.

Ainda tem MUITA coisa pela frente, mas finalmente sinto que o projeto começou a tomar uma forma bem séria.

GitHub

https://github.com/valolang/valo

Carregando publicação patrocinada...