Porque é que o Joãozinho não escreve código

Por David Brin.

Tradução parcial. Original pode ser lido aqui.

Por três anos - desde que o meu filho Ben estava no quinto ano - envolvemo-nos numa missão quixotesca, mas determinada: procurámos uma maneira simples e direta de correr a linguagem de programação introdutória BASIC no meu Mac ou PC.

Porque é que quereríamos fazer tal coisa, numa era de brilhantes motores de animação -renderização e sofisticados mundos avatar? Porque se quiser dar a jovens estudantes os fundamentos sobre como realmente funcionam os computadores, ainda não há nada melhor do que um pouco de experiência de programação linha-a-linha.

Só que, em silêncio e sem alarde, sem mesmo qualquer comentário ou aviso por especialistas de software, caímos numa situação em que quase nenhum dos milhões de computadores pessoais nos Estados Unidos oferece uma linguagem de programação suficientemente simples para crianças a usarem facilmente. Nem mesmo aquele que era um software de “língua franca” em quase todas as máquinas, apenas uma década atrás. E isso não é apenas um problema para Ben e para mim, é um problema para a nossa nação e civilização.

Os desktops e laptops de hoje oferecem muitas outras coisas extravagantes - uma variedade estonteante de serviços sofisticados que se tornam mais deslumbrantes cada semana que passa. Caramba, eu sou parte desse espasmo criativo.

Só há uma dificuldade. A maioria destas inovações posteriores foram-nos trazidas por programadores que primeiro aperfeiçoaram as suas habilidades com linguagens de programação como o BASIC. Sim, eles usam principalmente linguagens de alto nível agora, empilhando e organizando serviços orientados a objetos, ou usando outros processos pretensiosos que vêm pré-embalados e prontos a usar, da mesma forma como um artista usa tintas pré-fabricadas. (Muito poucos pintores ainda moem os seus próprios pigmentos. Deveriam?)

E todavia os processos de pensamento que os melhores programadores de hoje aprenderam ao nível da linha de código ainda servem bem estes designers. Sheldon Brown, artista técnico de renome e mágico da renderização digital, líder do Centro de Computação nas Artes, diz: "No meu curso Eletrónica para as Artes, cada aluno construiu o seu próprio computador monoplaca, cujo CPU continha uma ROM BASIC [um chip permanentemente codificado com software BASIC]. Primeiro fizemos isso com o 8052 e, depois, com um chip chamado BASIC Stamp. O PC era apenas a interface do terminal para esses computadores, cujos programas serão gravados em memória flash. Esses afortunados estudantes de arte moeram as suas próprias arquiteturas de computadores, juntamente com seus pigmentos de código - ao longo do percurso para controlar esculturas robóticas e ambientes de instalação".

Mas hoje, muito poucos jovens estão a aprender estes padrões mais profundos. Na verdade, parece-lhes ser totalmente proibido qualquer acesso a esse mundo.

E, no entanto, eles estão entusiasmados! Ben queixa-se à muito de que todos os seus livros de matemática apresentam pequenos programas tecle-você-mesmo no final de cada capítulo - ao lado dos conjuntos de problemas - que oferecem ao aluno a oportunidade de experimentar alguns simples algoritmos num computador. Geralmente, é uma equação ou processo iterativo que ilustra o princípio discutido no capítulo. Estes exercícios "experimenta em BASIC" têm muitas vezes apenas uma dúzia de linhas de texto. Os objetivos são ilustrar o tópico do capítulo (estatística, por exemplo) e oferecer um pouco de sabor da programação.

Só que nenhum aluno faz estes exercícios. Nem o meu filho nem qualquer dos seus colegas de classe. Nem ninguém que eles conheçam. Na verdade, ficaria chocado se em toda a nação mais de umas poucas dúzias de estudantes realmente digitassem essas linhas que ainda são publicadas em incontáveis livros por todo o país. Aqueles que querem (como Ben) simplesmente não podem.

Então, eu reclamava sobre isso à três anos. Mas sempre que eu mencionava o problema a algum especialista da indústria de computadores numa conferência ou reunião social, a resposta era sempre a mesma: "Ainda há programas BASIC em livros escolares?".

Pelo menos uma dúzia de altos funcionários da Microsoft deram-me exatamente a mesma resposta. Depois de considerarem o facto como um sintoma de ignorância no setor de livros didáticos, falavam de seguida sobre como o BASIC é obsoleto, e das tantas mais coisas que se podem fazer com linguagens de alto nível. "Não se preocupe", acrescentavam invariavelmente, "os livros mais recentes não terão quaisquer desses pequenos textos de BASIC."

Tudo isso é absolutamente verdadeiro. BASIC é realmente demasiado enfadonho e absurdo para atingir o vasto conjunto de objetivos ambiciosos que são típicos de um programador moderno. Certamente, qualquer jovem que quer realizar algo no mundo moderno não iria utilizá-lo por muito tempo. E, claro, é óbvio que novos textos vão abandonar o "experimenta em BASIC" como uma técnica de ensino, se já não o fizeram.

Mas tudo isto falha o alvo. Esses exercícios de livros escolares eram fáceis, eficazes, universais, pedagogicamente interessantes - e nada nem remotamente parecido com eles pode ser feito com qualquer outra língua que não o BASIC. Digitar um simples algoritmo, vendo exatamente como o computador calcula e itera de uma maneira que se pode duplicar com lápis e papel - por exemplo, executar uma experiência de lançamento de uma moeda, ou fazer um ponto mudar de posição num monitor, impulsionado pela matemática e lógica, e só por matemática e lógica: Tudo isso não tem preço. Como não tinha preço há 20 anos. Só que há 20 anos atrás, era fisicamente possível para milhões de crianças fazê-lo. Hoje não é.