Potigol: Uma nova maneira de aprender a programar

Logo do Potigol, Twitter

Quem fez algum curso técnico ou superior na área de tecnologia provavelmente já ouviu falar do VisuAlg. O software, que permite que iniciantes no mundo da programação aprendam os conceitos básicos utilizando palavras-chave em português e uma sintaxe simples, tornou-se largamente utilizado por instituições de ensino no Brasil nos últimos anos. Criei alguns de meus primeiros algoritmos no VisuAlg, e posso dizer que ele foi um grande aliado no meu aprendizado, não pelo código em si, mas por me ensinar a pensar como um programador.

Contudo, o VisuAlg não é mais o único. Recentemente descobri o Potigol, um projeto open-source que também tem como objetivo tornar o aprendizado de programação mais simples para os brasileiros, contudo ao mesmo tempo utilizando uma sintaxe mais clara e explorando conceitos como orientação a objetos e programação funcional. Nesse post eu gostaria de falar de 6 pontos que me agradam no Potigol (e 1 que não me agrada tanto assim):

1 – Orientação a objeto: é possível trabalhar conceitos de O.O com os estudantes desde o início utilizando o Potigol. Não há necessidade de migrar para outras linguagens (como Java, por exemplo) para abordar esse conteúdo.

tipo Pessoa
nome: Texto
idade: Inteiro
fim
p1 = Pessoa("José", 18)
escreva p1.nome

2 – Dados mutáveis e imutáveis: tanto na declaração de variáveis quanto de listas é possível fazer uma separação clara entre variáveis e constantes, conceitos fundamentais na programação funcional.

var x = 10
x = 9

# Ao executar o código acima, será printada a seguinte mensagem no console:
# A variável 'x' já existe.
# Se quiser modificar o valor de 'x' use ':=' ao invés de '='.

3 – Operações com listas: operações com listas são importantes, principalmente considerando que estes conceitos já estão consolidados em linguagens populares atualmente (como JavaScript e Kotlin).

var numeros = [1, 2, 3, 4, 5, 6, 7, 8] 

# filtra e mantém os pares: [2, 4, 6, 8]
escreva numeros.selecione(n => n mod 2 == 0)

# soma todos: 36
escreva numeros.injete(0)((a,b) => a + b)

# multiplica todos por 2: [2, 4, 6, 8, 10, 12, 14, 16]
escreva numeros.mapeie(n => n * 2)

4 – Escreva menos, faça mais: em muitos casos um algoritmo escrito em Potigol fica mais enxuto que sua contraparte em VisuAlg. Por exemplo, enquanto o VisuAlg exige os uso das palavras-chave “fimse”, “fimpara” e “fimalgoritmo” (entre outras) no Potigol há somente uma simples marcação de “fim”. É possível também utilizar template strings e até resumir algumas estruturas, como pode ser visto no exemplo abaixo:

# VisuAlg - Printando a tabuada do 1 ao 5
para i de 1 ate 5 faca
para j de 1 ate 10 faca
escreval (i, " * ", j, " == ", (i * j));
fimpara
fimpara

# Potigol - Printando a tabuada do 1 ao 5
para i de 1 até 5,
j de 1 até 10 faça
escreva "{i} * {j} == {i * j}"
fim

5 – Usar acentos: OK, eu sei que muita gente odeia os acentos da língua portuguesa, e que ter suporte ao uso de acentos em uma linguagem de programação não é uma coisa inédita. Ainda assim, achei interessante o fato de o Potigol permitir que o usuário escolha entre usar ou não usar a acentuação nas palavras-chave (diferente do VisuAlg, que permite os acentos somente dentro de strings). O exemplo abaixo compila no Potigol, mas para compilar no VisuAlg os acentos teriam de ser removidos.

se falso então                     
escreva "falso"
senão
escreva "verdadeiro"
fim

6 – Multiplataforma: por ser baseado em Java, o Potigol roda em Linux/Mac/Windows (ou qualquer outro SO para o qual exista uma JVM). Já o VisuAlg possui versão somente para Windows, e para utilizá-lo em outros sistemas operacionais é necessário utilizar uma máquina virtual (ou do Wine, no caso do Linux).

7 – Projetos relacionados: além da linguagem voltada para iniciantes, o Potigol conta também com uma biblioteca para desenvolvimento de jogos (Jerimum) e um editor de código próprio, assim como o VisuAlg. E é tudo open-source!

1 problema – A instalação: da primeira vez que baixei o Potigol, não consegui testá-lo em minha máquina (eu uso Linux Mint, uma distribuição baseada em Debian). Mesmo os algoritmos mais simples não rodavam. Foi então que entrei em contato com os desenvolvedores pelo Twitter (@potigol) e eles prontamente esclareceram que atualmente o programa funciona apenas com Java 8. Ou seja, se assim como eu você está utilizando uma versão mais recente do Java, estas são suas opções:

  • Testar pelo navegador via Gitpod (recomendo)
  • Utilizar o SDKMAN para instalar o Java 8 sem afetar seu ambiente atual
  • Esperar a próxima atualização do Potigol (que trará suporte mais amplo)
  • Fazer downgrade para o Java 8

Considerações finais: apesar de ainda não oferecer suporte à versão mais recente do Java, o Potigol é uma ferramenta sensacional para trabalhar algoritmos de forma prática e moderna, trazendo um leque de funcionalidades bem maior que o do VisuAlg.

Fontes: