SkillsTecnológicas
Menu
Back-end

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.

Marcos RodriguesPublicado em 13 de fevereiro de 2024Atualizado em 23 de agosto de 202612 min de leitura
Desenvolvedor observa cinco módulos que representam projetos brasileiros de programação

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

ProjetoOrigem principalTipoUso característico
LuaPUC-RioLinguagem imperativa e extensívelScripts incorporados a jogos, dispositivos e aplicações
ElixirCriada por José ValimLinguagem funcional sobre a BEAMSistemas concorrentes, distribuídos e tolerantes a falhas
ADVPLMicrosiga/TOTVSLinguagem do ecossistema ProtheusRegras e customizações de ERP
Portugol StudioUNIVALIAmbiente e linguagem educacionalEnsino de lógica e algoritmos em português
NCLTeleMídia/PUC-RioLinguagem declarativa hipermídiaExperiê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.
Três módulos representam programação embarcada, sistemas distribuídos e aplicações empresariais
Lua favorece extensão e integração; Elixir explora concorrência sobre a BEAM; ADVPL atende customizações do ecossistema Protheus.

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.

Fluxos de algoritmos educacionais conectam-se a uma experiência multimídia interativa
Portugol Studio aproxima iniciantes da lógica de programação; NCL descreve como objetos de mídia se relacionam no tempo e no espaço.

Comparativo prático: objetivo, entrada e principal cuidado

ProjetoBoa porta de entradaPrincipal cuidado
LuaScripts e pequenos programasAprender também a API do sistema hospedeiro
ElixirTransformação de dados e processosNão aplicar hábitos imperativos sem entender imutabilidade
ADVPLRotinas em ambiente Protheus de estudoRespeitar versão, regras empresariais e segurança dos dados
Portugol StudioExercícios de lógicaPlanejar a transição para outra linguagem
NCLDocumento simples com uma mídiaEntender 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

  1. Semana 1: instale ou acesse o ambiente oficial, execute exemplos e anote o modelo mental da linguagem.
  2. Semana 2: resolva cinco problemas pequenos com entrada, validação, transformação e saída.
  3. Semana 3: construa um projeto ligado ao domínio real da tecnologia, como script incorporado, serviço concorrente ou documento multimídia.
  4. 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.