SkillsTecnológicas

Pesquisar

Entrar
Menu

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 RodriguesBack-endPublicado em Atualizado em 12 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.