Linguagens de Programação Brasileiras: 5 Projetos para Conhecer
Conheça cinco linguagens e projetos brasileiros: Lua, Elixir, ADVPL, Portugol Studio e NCL, com história, usos, exemplos e caminhos para estudar.

Quando se fala em linguagens de programação brasileiras, Lua costuma ser o primeiro nome lembrado. Porém, o país também originou projetos voltados a sistemas distribuídos, gestão empresarial, educação e televisão digital. Conhecê-los amplia a visão sobre o que é produzido no Brasil e mostra que uma linguagem nasce para resolver problemas muito diferentes.
Este guia apresenta Lua, Elixir, ADVPL, Portugol Studio e NCL. A seleção não é um ranking de popularidade: reúne cinco projetos relevantes por sua origem, proposta técnica ou impacto. Alguns têm alcance internacional; outros atendem um nicho específico. Essa distinção é essencial para escolher o que estudar sem criar expectativas erradas sobre mercado ou aplicação.
Como interpretar a expressão “linguagem brasileira”
Neste artigo, “brasileira” indica que a criação inicial, a instituição responsável ou a equipe fundadora possui vínculo direto com o Brasil. Isso não significa que o projeto seja usado apenas aqui. Software livre pode receber contribuições de muitos países, enquanto uma tecnologia proprietária pode permanecer ligada ao ecossistema de uma empresa nacional.
Também é importante separar linguagem, implementação e ambiente. Lua e Elixir são linguagens de propósito geral. ADVPL é ligada ao ERP Protheus. Portugol Studio combina uma linguagem didática com ferramentas de aprendizagem. NCL é uma linguagem declarativa especializada em documentos hipermídia. Portanto, comparar apenas sintaxe ou número de vagas seria pouco útil.
Quadro geral dos cinco projetos
| Projeto | Origem principal | Tipo | Uso característico |
|---|---|---|---|
| Lua | PUC-Rio | Linguagem imperativa e extensível | Scripts incorporados a jogos, dispositivos e aplicações |
| Elixir | Criada por José Valim | Linguagem funcional sobre a BEAM | Sistemas concorrentes, distribuídos e tolerantes a falhas |
| ADVPL | Microsiga/TOTVS | Linguagem do ecossistema Protheus | Regras e customizações de ERP |
| Portugol Studio | UNIVALI | Ambiente e linguagem educacional | Ensino de lógica e algoritmos em português |
| NCL | TeleMídia/PUC-Rio | Linguagem declarativa hipermídia | Experiências multimídia e TV digital interativa |
O quadro mostra por que não existe uma “melhor” opção universal. O ponto de partida deve ser o problema que você pretende resolver. Se ainda estiver formando a base, vale revisar os fundamentos da programação antes de escolher uma tecnologia pela fama.
1. Lua: pequena no núcleo, ampla nas integrações
Lua é o caso mais claro de linguagem criada no Brasil e adotada globalmente. Seu projeto prioriza portabilidade, eficiência e integração com programas escritos em outras linguagens. Em vez de tentar controlar toda a aplicação, Lua frequentemente funciona como uma camada de extensão: o sistema hospedeiro oferece recursos e o script define comportamentos.
Origem e proposta de Lua
A história oficial de Lua informa que a linguagem foi projetada, implementada e mantida por uma equipe da PUC-Rio. Roberto Ierusalimschy, Luiz Henrique de Figueiredo e Waldemar Celes estão associados à criação do projeto, que nasceu no Tecgraf e hoje está no LabLua.
A linguagem ganhou espaço porque é compacta e pode ser incorporada a um programa maior por uma API em C. Jogos, simuladores, ferramentas e equipamentos podem expor funções do domínio para os scripts. Assim, uma regra pode mudar sem exigir a reconstrução completa do software hospedeiro.
Tabelas, funções e metatables
Lua possui poucos mecanismos centrais e os combina de forma flexível. Tabelas representam listas, mapas, registros e até a base para estilos de orientação a objetos. Funções são valores, podem ser atribuídas a variáveis e passadas como argumento. Metatables permitem definir comportamentos para operações realizadas sobre tabelas e outros valores.
local tarefas = {
{nome = "documentar API", concluida = true},
{nome = "escrever testes", concluida = false}
}
for _, tarefa in ipairs(tarefas) do
if not tarefa.concluida then
print("Pendente: " .. tarefa.nome)
end
end
A sintaxe é acessível, mas dominar Lua exige entender o ambiente em que ela está incorporada. O script disponível em um motor de jogos pode ter APIs completamente diferentes das oferecidas por um roteador ou aplicativo. Para aprofundar a base, veja o guia dedicado à linguagem de programação Lua.
Quando vale a pena estudar Lua
- Você quer criar scripts para jogos, ferramentas ou dispositivos que já suportam Lua.
- Precisa oferecer configuração programável sem expor todo o núcleo da aplicação.
- Deseja aprender uma linguagem pequena e compreender como ela conversa com C.
- Encontrou Lua em um produto real que precisa manter ou estender.
2. Elixir: produtividade sobre a máquina virtual Erlang
Elixir é uma linguagem funcional criada pelo brasileiro José Valim. Ela roda sobre a BEAM, a máquina virtual do ecossistema Erlang, e aproveita décadas de recursos voltados à concorrência, distribuição e tolerância a falhas. O resultado é uma sintaxe moderna conectada a uma plataforma madura.
Como Elixir começou e evoluiu
A página oficial sobre o desenvolvimento de Elixir registra que José Valim criou a linguagem em 2012 como um projeto de pesquisa e desenvolvimento na Plataformatec. Com o tempo, o núcleo e o ecossistema tornaram-se internacionais. Por isso, é correto reconhecer a origem brasileira sem descrever o projeto atual como restrito ao país.
O modelo funcional favorece dados imutáveis e transformação explícita. Na BEAM, processos leves isolados trocam mensagens; eles não correspondem diretamente a processos do sistema operacional. Supervisores podem reiniciar partes com falha, uma estratégia importante para serviços que precisam permanecer disponíveis.
Pipeline e casamento de padrões
pedidos = [
%{status: :pago, total: 120},
%{status: :pendente, total: 80},
%{status: :pago, total: 200}
]
receita =
pedidos
|> Enum.filter(&(&1.status == :pago))
|> Enum.map(& &1.total)
|> Enum.sum()
O operador de pipeline encaminha o resultado de uma etapa para a próxima e deixa a transformação legível. Já o casamento de padrões permite decompor estruturas e selecionar caminhos por formato. Em aplicações web, Phoenix é uma escolha conhecida, mas Elixir também aparece em processamento de eventos e serviços distribuídos. Consulte o conteúdo sobre a linguagem Elixir para continuar.
Quando vale a pena estudar Elixir
- Seu problema envolve muitas conexões simultâneas, mensagens ou tarefas concorrentes.
- Você quer aprender programação funcional aplicada a sistemas reais.
- A equipe precisa de isolamento de falhas e mecanismos de supervisão.
- Você pretende construir um serviço web e comparar Phoenix com outras opções de linguagens de backend.

3. ADVPL: programação dentro do ecossistema Protheus
ADVPL significa Advanced Protheus Language e está ligada à evolução das soluções empresariais da Microsiga, posteriormente TOTVS. Diferentemente de Lua e Elixir, sua relevância é concentrada: ela serve principalmente para desenvolver e customizar rotinas do ERP Protheus.
O contexto empresarial de ADVPL
Na apresentação institucional sobre ADVPL publicada pela TOTVS, a empresa descreve a linguagem como exclusiva de seu ecossistema e utilizada nas aplicações do Protheus. Esse vínculo explica tanto a demanda profissional quanto a principal limitação: aprender ADVPL faz mais sentido quando existe contato com o produto, seus módulos, regras fiscais e processos de negócio.
A sintaxe carrega influências do universo xBase e permite escrever funções, estruturas condicionais, laços, chamadas a APIs da plataforma e classes. Porém, um exemplo isolado não representa todo o trabalho. Customizações corretas precisam respeitar pontos de entrada, dicionários de dados, contexto de empresa e filial, transações e recomendações da versão instalada.
Exemplo introdutório em ADVPL
#Include "TOTVS.ch"
User Function TotalPedido()
Local aValores := {120, 80, 200}
Local nTotal := 0
Local nIndice
For nIndice := 1 To Len(aValores)
nTotal += aValores[nIndice]
Next
ConOut("Total: " + CValToChar(nTotal))
Return nTotal
O exemplo mostra uma função simples, variáveis locais e a indexação de arrays a partir de 1. Em produção, não copie rotinas sem verificar a documentação correspondente ao ambiente. Uma atualização de produto ou uma premissa errada pode afetar dados empresariais. Para avançar com contexto, consulte o guia de programação em ADVPL.
Quando vale a pena estudar ADVPL
- Você trabalha em uma empresa usuária do Protheus ou em uma consultoria do ecossistema TOTVS.
- Precisa manter customizações existentes com segurança.
- Deseja combinar conhecimento de programação com processos de ERP.
- Tem acesso a um ambiente de estudo, documentação da versão e orientação sobre dados de teste.
4. Portugol Studio: linguagem e ambiente para aprender algoritmos
Portugol é um nome usado por diferentes notações e ferramentas educacionais inspiradas em pseudocódigo escrito em português. Aqui, o foco é o Portugol Studio, projeto da UNIVALI que oferece editor, execução, depuração, exemplos e materiais de apoio para iniciantes.
O repositório oficial do Portugol Studio o descreve como um ambiente didático para quem fala português. A interface reduz a barreira do inglês técnico no primeiro contato e permite observar variáveis, decisões, repetições, funções e vetores antes de enfrentar um ecossistema profissional mais amplo.
Exemplo simples no Portugol Studio
programa
{
funcao inicio()
{
inteiro idade
escreva("Digite sua idade: ")
leia(idade)
se (idade >= 18) {
escreva("Maior de idade")
} senao {
escreva("Menor de idade")
}
}
}
O valor pedagógico está na relação direta entre o algoritmo e sua execução. O aluno pode alterar uma condição, acompanhar variáveis e entender por que determinado caminho foi escolhido. Esse ciclo curto ajuda mais do que decorar palavras reservadas.
O que Portugol Studio ensina — e o que não substitui
Portugol Studio pode ensinar raciocínio algorítmico, decomposição de problemas e controle de fluxo. Entretanto, não substitui a etapa de migrar para uma linguagem utilizada na área desejada. Depois dos exercícios iniciais, reimplemente os mesmos problemas em Python, JavaScript, Java ou outra tecnologia do seu objetivo.
A transição deve incluir ferramentas profissionais: terminal, gerenciador de pacotes, testes, documentação e controle de versão. O guia sobre Git e GitHub ajuda a transformar exercícios em um histórico verificável de aprendizagem.
5. NCL: uma linguagem declarativa para hipermídia
NCL, sigla de Nested Context Language, é uma linguagem declarativa criada no ambiente de pesquisa do TeleMídia, na PUC-Rio. Seu foco não é implementar um backend ou calcular regras empresariais. Ela descreve documentos hipermídia: quais objetos de mídia existem, como são organizados e quais relações temporais, espaciais e interativas conectam esses objetos.
Como pensar em uma aplicação NCL
Em vez de escrever uma sequência longa de comandos, o autor declara mídias, regiões, conectores e elos. Um evento em um vídeo pode iniciar um áudio, exibir uma imagem ou habilitar uma interação. A ferramenta oficial NCL Composer apresenta esse contexto de autoria de aplicações para TV digital interativa.
<ncl id="exemplo" xmlns="http://www.ncl.org.br/NCL3.0/EDTVProfile">
<head>
<regionBase>
<region id="tela" width="100%" height="100%"/>
</regionBase>
</head>
<body>
<media id="video" src="abertura.mp4" region="tela"/>
</body>
</ncl>
O trecho apenas declara uma mídia em uma região. Projetos reais acrescentam descritores, conectores, elos e tratamento de interação. Como NCL é especializada, estudá-la é especialmente relevante em pesquisa, TV digital, acessibilidade multimídia e experiências sincronizadas.

Comparativo prático: objetivo, entrada e principal cuidado
| Projeto | Boa porta de entrada | Principal cuidado |
|---|---|---|
| Lua | Scripts e pequenos programas | Aprender também a API do sistema hospedeiro |
| Elixir | Transformação de dados e processos | Não aplicar hábitos imperativos sem entender imutabilidade |
| ADVPL | Rotinas em ambiente Protheus de estudo | Respeitar versão, regras empresariais e segurança dos dados |
| Portugol Studio | Exercícios de lógica | Planejar a transição para outra linguagem |
| NCL | Documento simples com uma mídia | Entender o modelo declarativo e o domínio hipermídia |
Qual projeto escolher para estudar?
Para aprender lógica do zero em português, Portugol Studio oferece a entrada mais guiada. Para scripting e integração com um produto, Lua é uma escolha enxuta. Para sistemas concorrentes e distribuídos, Elixir apresenta um modelo poderoso. ADVPL é coerente quando o destino profissional envolve Protheus. NCL faz sentido quando o problema pertence à autoria multimídia e à interatividade.
Se o objetivo é empregabilidade geral, pesquise vagas da sua região e escolha uma tecnologia com demanda compatível. Uma linguagem brasileira pode ser parte do repertório sem precisar ser sua única especialização. Fundamentos, banco de dados, testes, APIs e comunicação continuam transferíveis entre ecossistemas.
Uma trilha prática de quatro semanas
- Semana 1: instale ou acesse o ambiente oficial, execute exemplos e anote o modelo mental da linguagem.
- Semana 2: resolva cinco problemas pequenos com entrada, validação, transformação e saída.
- Semana 3: construa um projeto ligado ao domínio real da tecnologia, como script incorporado, serviço concorrente ou documento multimídia.
- Semana 4: escreva testes quando aplicável, documente decisões e publique o código sem dados ou materiais protegidos.
O projeto deve demonstrar uma capacidade específica. Para Elixir, uma fila supervisionada ensina mais do que uma calculadora. Para Lua, um sistema de configuração incorporável é mais representativo. Caso precise de ideias estruturadas, adapte os projetos backend para praticar ao ecossistema escolhido.
Erros comuns ao pesquisar linguagens brasileiras
- Confundir autoria com uso exclusivo: um projeto pode ter origem brasileira e comunidade mundial.
- Transformar a lista em ranking: popularidade depende da métrica, do período e do nicho observado.
- Chamar qualquer ferramenta de linguagem: IDE, runtime, framework e linguagem têm papéis diferentes.
- Escolher apenas pelo nacionalismo: a tecnologia precisa corresponder ao problema e ao objetivo profissional.
- Ignorar documentação oficial: tutoriais antigos podem usar sintaxe, APIs ou práticas que já mudaram.
Perguntas frequentes
Estas são as cinco linguagens brasileiras mais populares?
Não. Esta é uma seleção editorial de cinco projetos com origens e propósitos diferentes. Um ranking exigiria definir métricas comparáveis, como vagas, repositórios, downloads ou uso em produção. Essas métricas podem favorecer nichos distintos e mudar com o tempo.
É correto dizer que Elixir é brasileira?
É correto destacar que Elixir foi criada pelo brasileiro José Valim e começou em uma empresa brasileira. Também é importante explicar que a linguagem evoluiu como projeto aberto, com equipe e comunidade internacionais. As duas informações evitam simplificações.
Portugol Studio serve para desenvolver sistemas profissionais?
Seu objetivo principal é educacional. Ele é excelente para visualizar algoritmos e praticar estruturas fundamentais, mas o estudante deve migrar depois para uma linguagem e um ecossistema usados no tipo de aplicação que deseja construir.
Qual delas tem mais relação direta com mercado de trabalho?
Depende do setor. ADVPL possui demanda concentrada em Protheus; Elixir aparece em equipes que precisam de serviços escaláveis e concorrentes; Lua surge em produtos que a incorporam. Portugol Studio é mais associado ao ensino, e NCL a pesquisa e multimídia interativa. Consulte vagas reais antes de montar uma trilha.
Qual delas é mais fácil para começar?
Para quem nunca programou, Portugol Studio oferece a entrada mais pedagógica. Lua também possui um núcleo pequeno, mas o contexto de integração pode adicionar dificuldade. Facilidade inicial não deve ser o único critério: o projeto que mantém sua motivação e oferece bons exercícios costuma produzir uma aprendizagem mais consistente.
Conclusão
Lua, Elixir, ADVPL, Portugol Studio e NCL mostram contribuições brasileiras em camadas muito diferentes da computação. Lua tornou-se uma referência de linguagem incorporável; Elixir renovou a experiência sobre a BEAM; ADVPL sustenta customizações empresariais; Portugol Studio facilita o ensino de algoritmos; NCL organiza experiências hipermídia interativas.
O melhor próximo passo é escolher uma delas pelo domínio, não apenas pela origem, e produzir um pequeno projeto verificável. Ao comparar proposta, ambiente e limitações, você transforma curiosidade em uma decisão de estudo mais consciente.