Para alguém que estava começando a entrar nessa arte estranha, BASIC parecia positivamente taumatúrgico. Era uma conjuração de feitiços: você proferia palavras que davam vida ao ferro e ao silício e os faziam fazer coisas. (Como diz a engenheira de software Erin Spiceland, codificar é “dizer às pedras o que pensar”.) Se você fosse, como eu, marinado em Tolkien e outros romances floridos de alta fantasia, havia um profundo romance na ideia de que a linguagem cotidiana poderia afetar a realidade. Fale, amigo, e entre.
O BASIC também encorajava a experimentação. Incomum para a época, era uma linguagem “interpretada”. Com muitas linguagens anteriores, você escrevia o código, mas antes de poder executá-lo, você tinha que “compilá-lo” em um pequeno pacote de 1s e 0s. Este era um assunto hesitante: escreva, compile e execute. Com o BASIC, em contraste, a máquina respondia instantaneamente. Você escrevia algumas linhas, apertava RUN e bum — a máquina interpretava, ali mesmo.
Isso transformou a codificação em uma conversa com a máquina. Programar era como pensar em voz alta. Eu estaria trabalhando em um chatbot, por exemplo, então eu inseria algumas linhas no analisador — então apertava RUN para ver como ele se saía. Eu adicionava mais algumas linhas, observava o que funcionava e o que não funcionava, então executava novamente. Essa dança de vai e vem com a máquina tornava todo o processo de codificação menos proibitivo. Parecia menos como fazer Very Important Design e mais como apenas brincando. Muitas das linguagens mais populares do mundo (como JavaScript e Python) agora também são interpretadas na hora. Mas BASIC estava entre as primeiras.
O BASIC também criou a primeira cultura de código aberto em massa do mundo. As pessoas compartilhavam código livremente: se um amigo escrevesse um jogo de blackjack legal, todos nós fazíamos uma cópia — à mão, como escribas em monastérios medievais — e o executávamos nós mesmos. Todo mês, a revista Compute imprimia resmas de BASIC enviadas por amadores. Passei uma tarde digitando meticulosamente centenas de linhas do “Jogo da Vida” de Conway que encontrei em uma edição, então assisti, hipnotizado, enquanto um organismo artificial florescia na tela.
Há um ditado no mundo dos programadores que diz que o código é escrito principalmente para outros programadores lerem, e somente secundariamente para a máquina rodar. O BASIC provou isso em escala.
Mas como um linguagem prática? Para fazer software entregável?
O BASIC nem sempre foi ótimo.
Os gráficos, por exemplo, eram glaciais. Tentei criar um jogo de tiro espacial, e ele era incrivelmente lento. É por isso que muitos criadores de jogos BASIC se concentraram em aventuras de texto: as palavras, pelo menos, eram renderizadas rapidamente. A explosão cambriana de exploradores de masmorras baseados em texto no final dos anos 70 e 80 foi, em parte, um produto das limitações internas do BASIC.
O BASIC também tinha alguns elementos realmente mal pensados. Infamemente, ele incluía o comando ignorante GOTO (lido como “go to”). Isso permitia que você escrevesse um código que pulava de um lado para o outro: se o programa chegasse à linha 120, você poderia dizer ao computador para, de repente, GOTO para a linha 25, por exemplo.
Para um programador novato, essa era uma maneira fácil de escrever as coisas! Mas isso encorajava uma estrutura complexa de “espaguete”, onde a lógica limitava e ziguezagueava por todo o lugar. Se eu escrevesse um programa longo — chegando a centenas ou milhares de linhas — e usasse várias dezenas de instruções GOTO, meu código se tornaria um labirinto de mistérios, impenetrável até para mim. O cientista da computação Edsger Dijkstra detestava tanto esse estilo que escreveu um ensaio inteiro criticando-o: “Declaração Go To considerada prejudicial”. Qualquer um que aprendesse a programar em BASIC seria, como ele escreveu mais tarde, “mentalmente mutilado além da esperança de regeneração”.
Dijkstra estava sendo hiperbólico. Mas ele não estava totalmente errado: depois do seu apogeu, o BASIC despencou em popularidade. Novas linguagens surgiram, incentivando estilos de escrita mais limpos e modernos, e rodando mais rapidamente. O BASIC ainda vive hoje em dia — ele próprio modernizado, com o GOTO (principalmente) banido — no mundo do Microsoft Visual Basic, que muitos funcionários de escritório não programadores usaram para improvisar aplicativos para uso interno. Mas hoje em dia, apenas 4% dos desenvolvedores profissionais admitem usar o BASIC. Eu, quando comecei a programar novamente na década de 2010 — após um intervalo de 25 anos —, recorri a linguagens mais novas, como Python e JavaScript.
De vez em quando, porém, vou caçar um emulador para o Commodore PET. Vou digitar aquele ur-programa que escrevi pela primeira vez, há mais de 40 anos, e apertar RUN.
Ainda parece mágica.