7 pontos por GN⁺ 2025-04-04 | 2 comentários | Compartilhar no WhatsApp
  • Os 50 anos de inovação da Microsoft começaram com o código do Altair BASIC
  • Foi o primeiro produto da empresa, anterior ao Office, Windows 95, Xbox e IA
  • Esse código abriu a era do computador pessoal e serviu de base para o crescimento da Microsoft

O código mais incrível que já escrevi

  • Em 1975, Bill Gates e Paul Allen fundaram a Microsoft com a visão de “um computador em cada mesa e em cada casa
  • O fato de a Microsoft chegar aos 50 anos deve muito a grandes líderes como Steve Ballmer e Satya Nadella, além de inúmeros funcionários
  • Ao chegar a esse momento marcante, Gates sentiu alegria, mas também certa nostalgia
    • Parecia que havia sido ontem quando ele programava em frente ao PDP-10 em Harvard
  • O início da Microsoft veio da capa da revista Popular Electronics de 1975, onde Gates viu o computador Altair 8800
    • O Altair era um PC em kit feito pela pequena empresa de eletrônicos MITS e, para a época, era um produto revolucionário
    • No instante em que viram a revista, Gates e Allen perceberam que a revolução do PC estava chegando e decidiram fazer parte dela

O que levou à decisão de escrever o código BASIC

  • Os dois ficaram fascinados por computadores ainda quando eram estudantes na escola Lakeside
  • Eles se impressionaram com o fato de que o Altair poderia dar ao público em geral a oportunidade de programar
  • Gates e Allen primeiro propuseram à MITS desenvolver uma linguagem BASIC para o Altair
  • Mas, na realidade, o software ainda nem existia, então eles precisaram criá-lo

Conceitos básicos da linguagem BASIC

  • BASIC é uma linguagem de programação para iniciantes criada em 1964 por dois professores de Dartmouth
  • Ela foi projetada para que mesmo pessoas sem qualquer experiência com computadores pudessem criar seus próprios programas após um curto aprendizado
    • Ex.: calculadora de saldo de conta, jogo da velha etc.
  • Foi a primeira linguagem de programação aprendida por Gates e Allen, e ainda é usada até hoje
  • BASIC é uma linguagem para instruir o computador a executar tarefas, quase como se fosse inglês, permitindo executar comandos, resolver problemas matemáticos e realizar funções

Como fazer o computador entender BASIC

  • O problema era que o computador não entendia BASIC
  • Gates e Allen decidiram criar um interpretador (Interpreter) que traduzisse e executasse o código BASIC linha por linha em comandos de computador
    • Isso tinha a vantagem de fornecer feedback em tempo real, permitindo que iniciantes corrigissem erros rapidamente
  • Eles também consideraram a abordagem de compilador (Compiler), que traduz todo o programa de uma só vez, mas concluíram que o modelo de interpretador era mais adequado para iniciantes

Início do desenvolvimento

  • Como eles não tinham o chip Intel 8080 usado no Altair, Paul desenvolveu no PDP-10 de Harvard um programa para emular esse chip
  • Gates escreveu o código principal do interpretador, e o amigo Monte Davidoff ficou responsável pelo módulo de operações matemáticas
  • Os três trabalharam dia e noite por dois meses e concluíram um software que, até então, nem existia de fato

Superando as limitações de memória

  • Na época, memória de computador era extremamente cara, e adicionar memória ao Altair podia custar mais do que o próprio PC
  • A meta era implementar o interpretador BASIC em menos de 4 KB
    • Assim, os usuários ainda teriam memória disponível para executar seus próprios programas
  • Gates alcançou esse objetivo usando várias técnicas de otimização de memória
    • Ex.: estruturas de dados compactadas e algoritmos eficientes

O nascimento da Microsoft

  • Depois de muitas noites em claro, eles demonstraram o interpretador BASIC concluído a Ed Roberts, CEO da MITS
  • A demonstração foi bem-sucedida, e a MITS comprou a licença do software
  • Com esse sucesso, o Altair BASIC se tornou o primeiro produto da Microsoft, e nasceu o nome Micro-Soft (mais tarde, o hífen foi removido)
  • Esse único código se tornou o ponto de partida de todas as inovações da Microsoft ao longo dos 50 anos seguintes
  • Mais detalhes podem ser encontrados no livro de memórias Source Code

Download do código-fonte

  • É possível conferir diretamente o código-fonte original do Altair BASIC que deu início à Microsoft
  • Como documento histórico, ele mostra o quanto a programação evoluiu nos últimos 50 anos, e Gates ainda sente grande orgulho desse código

Download do código-fonte (PDF)

2 comentários

 
iolothebard 2025-04-06

O código-fonte do BASIC para 6502 fornecido pela Microsoft como OEM (Apple II, Commodore, etc.) foi restaurado(?) a um estado compilável.
https://github.com/mist64/msbasic

Também há bastante gente que monta seu próprio SBC com 6502 e faz o port do MSBASIC para ele.
https://github.com/beneater/msbasic

Só admirar já é legal, mas talvez seja ainda mais divertido colocar a mão na massa… ;)

 
GN⁺ 2025-04-04
Comentários no Hacker News
  • O código-fonte é uma leitura divertida. Encontrei o código-fonte do GW-BASIC, e há alguns comentários interessantes
    • Há um comentário dizendo que, como não foi possível encaixar o número no buffer, foi preciso retirar todos os caracteres da pilha novamente, recuperar a posição inicial do buffer e inserir o símbolo "%"
    • Há um comentário dizendo para não alterar as constantes do gerador de números aleatórios sem consultar Knuth Vol 2, Capítulo 3
  • Correção: GW-BASIC, não QBASIC
  • Steve Jobs costumava dizer que o problema da Microsoft era não ter bom gosto
    • O efeito de a fonte piscar ao rolar faz lembrar essa fala. É muito distrativo, e não pode ser desativado nem usando o modo de leitura
    • Dito isso, gosto de Bill Gates e do que ele fez pelo mundo
  • Escrevi um emulador de Intel 8080 de forma portável entre Dec10/VAX/IBM VM CMS. O 8080 podia ser implementado de forma simples com uma chave de 256 valores. Foi escrito em FORTRAN77
    • Escrever um interpretador BASIC com ponto flutuante é muito mais difícil. O BASIC de Gates, Allen e outros colaboradores era muito bom
  • Um pouco de sorte e disposição para assumir riscos trouxe resultados de maneiras inesperadas. Não tenho certeza de que verei algo como a era do PC novamente em minha vida. Talvez o celular ou a internet
  • O código-fonte está linkado no final (aviso: é um PDF de 100 MB)
  • Fico me perguntando por que é preciso ativar JS para ver este site
  • É interessante ler este texto depois de ler Palo Alto, de Malcolm Harris
  • Isso é realmente muito legal. Acho que texto é um meio ainda pouco explorado no design
  • Eu ia dizer "estou esperando um repositório no GitHub com este código em ASCII", mas percebi que a Microsoft provavelmente não permitiria isso
  • A Microsoft (e talvez o próprio Bill Gates) despertou uma forte "antipatia" na comunidade hacker. Mas não dá para negar que ele e Paul Allen eram hackers em estado puro e ajudaram muito o avanço da tecnologia. Claro, todos nós preferimos OSS e escolheríamos Linus (ou o nome de qualquer outro desenvolvedor de OSS) 100 vezes antes de um "capitalista perverso", mas eles merecem reconhecimento