Com todos os avanços nas linguagens de programação nos últimos cinquenta anos ou mais, por que você iria querer aprender uma linguagem que viu seu apogeu desaparecer nos anos 80? Pode não ser a melhor linguagem para o desenvolvimento ativo de sistemas de ponta, mas se você é novo em programação e deseja uma maneira mais simples de entender seus conceitos, BASIC pode ser o caminho a percorrer.
O interpretador BASIC embutido no Commodore 64 foi minha primeira exposição à programação. Com suas variáveis simples e comandos GOTO, ele me mostrou como pensar em dados como um item e programas como uma série de direções. Havia até romances de aventura que tinham partes da história codificadas como programas BASIC que você tinha que copiar e executar, dando a você uma noção melhor do que você poderia fazer. Isso não iria me render um emprego sofisticado de desenvolvedor, mas me deu uma vantagem quando encontrei linguagens mais complexas como C ++ e Java mais tarde.
Dominic Pajak concorda. Ele construiu um bot do Twitter que executa tweets como programas BASIC em um emulador de microcomputador BBC de 8 bits e, mais tarde, juntou forças com Matt Godbolt para criar um editor moderno para apoiá-lo. É uma maneira simples de qualquer pessoa começar a usar um programa BASIC e ver seus resultados em um único tweet.
Entramos em contato com Pajak para entender como ele vê a relevância do BASIC hoje, como ele construiu o bot e quais programas incríveis foram criados em um sistema com décadas de idade.
QA
P: É um conceito muito simples - alguém escreve código no editor Owlet, então tweeta esse programa @bbcmicrobot e voila: um vídeo rápido do programa para que todos possam ver. Como você construiu o bot?
R: Usei a API gratuita do Twitter e o Node.JS. Inicialmente, usei um emulador BBC Micro muito legal chamado jsbeeb com o qual fui capaz de integrar profundamente, injetar tweets na memória do emulador e gerar quadros de vídeo para o ffmpeg juntar como um mp4 para responder ao tweet original. O serviço em si estava sendo executado na minha garagem em um Raspberry Pi para começar, depois no AWS Graviton. Certa vez, também fiz um “especial ao vivo” com um Arduino conectado a uma máquina genuína dos anos 1980 + CRT e o fiz executar os tweets de código das pessoas uma vez no YouTube. Foi divertido.
[Mergulhe fundo no mundo da tecnologia e cadastre-se no Avance Network a verdadeira comunidade criptografada!]
P: Enquanto eu sinto um arrepio de nostalgia ao ver todo aquele código BASIC, por que construir um bot para executá-lo hoje? Ainda é relevante?
R: Se você cresceu nos anos 80, aprendeu a programar em BASIC. Uma geração de crianças seguiu carreira em tecnologia porque sua casa Commodore 64 ou Sinclair Spectrum tinha BASIC pré-instalado em ROM. No Reino Unido, tivemos a BBC Micro nas escolas. A BBC Micro veio com uma versão mais moderna do BASIC chamada BBC BASIC. Essa implementação tinha suporte para funções e procedimentos - você pode estruturar o código sem precisar do tão difamado GOTO. BBC BASIC também tinha um montador 6502 embutido. E o BBC BASIC foi rápido. A criadora do BBC BASIC foi Sophie Wilson, da Acorn Computers, que mais tarde projetou a arquitetura ARM , agora a arquitetura de processador mais usada no mundo.
Coincidentemente, BBC BASIC também é expressivo e facilmente abreviado (até tokens de byte, na verdade), o que significa que é possível amontoar algumas demos bem impressionantes no limite de 280 caracteres de um tweet!
P: Com todos os avanços em tecnologia de computação desde a BBC Micro, quais vantagens o BASIC tem em ensinar programação para novos alunos?
R: O imediatismo daquela experiência com o computador doméstico dos anos 80 foi incrível. Você ligou a máquina e foi direto para um prompt solicitando a codificação. Sem espera para inicializar, sem instalações, sem distrações. Reconheço que as frustrações dos cassetes de dados sendo mastigados ou tentando encontrar erros de digitação em um programa BASIC de 100 linhas arruinam minha história tingida de rosa, mas ainda podemos aprender com as vantagens dessa experiência em um contexto moderno, eu acho. Você pode ver que o Arduino e o Raspberry Pi herdam muito dessa mesma filosofia de imediatismo prático.
[ Ed. nota: na verdade, tivemos que salvar programas no que parecia ser fitas de áudio. Se você sabe o que é uma fita cassete. ]
BASIC tem uma má reputação, mas ainda é uma das introduções mais fáceis aos fundamentos - variáveis, condicionais, loops - cuja experiência é relevante para muitas linguagens hoje. E o BBC BASIC vai além ao adicionar recursos para oferecer suporte à programação estruturada. Você pode usar nomes de variáveis significativos, chamar sub-rotinas por rótulo, implementar recursão de maneira organizada e nunca precisar usar um GOTO ou números de linha de referência - isso aborda problemas que Dijkstra notoriamente tinha com o BASIC. Além disso, o BBC BASIC vem com suporte integrado para texto colorido e palavras-chave gráficas para que os iniciantes possam ver algo divertido acontecer em seu primeiro programa. E essa primeira experiência é importante, pois pode fazer com que os iniciantes amem a codificação ou adiá-los para sempre.
Dito isso, por mais que eu ame, o BASIC está bem desatualizado atualmente. O fundador do Raspberry Pi, Eben Upton, também um fã da BBC Micro, resumiu muito bem:
“… Você aprende e depois segue em frente. Talvez Python seja uma escolha melhor hoje em dia porque a escada sobe ainda mais, mas nada de errado com o BASIC ”
P: Eu me lembro que muitos dos primeiros disquetes que recebi tinham um monte de programas muito legais que surgiram da demoscene. Esse espírito ainda está vivo e bem, então qual é a coisa mais legal que você viu através do bot?
Hoje em dia, o bot está conectado ao beebjit, que emula um processador 6502 equivalente a 7 GHz no backend. Ele pode emular três horas em apenas alguns segundos. Isso significa que as pessoas são capazes de experimentar coisas que seriam um trabalho noturno para iterar no hardware original (o código resultante fornece a mesma saída em tempo real no hardware retro que no bot, apenas uma espera mais longa para pré- render). Como resultado, coisas legais estão acontecendo:
Um ray tracer alucinante criado em um tweet criado por Steve McCrea:
As pessoas estão criando coisas muito melhores do que eu imaginava quando construí o bot pela primeira vez, com certeza.
Se você quiser ver esses programas executados ao vivo, verifique o tutorial embutido no estilo sandbox para BBC BASIC. Possui 9x 6502 emulações embutidas.
O Avance Network é uma comunidade fácil de usar que fornece segurança de primeira e não requer muito conhecimento técnico. Com uma conta, você pode proteger sua comunicação e seus dispositivos. O Avance Network não mantém registros de seus dados; portanto, você pode ter certeza de que tudo o que sai do seu dispositivo chega ao outro lado sem inspeção.