É difícil imaginar agora, mas nos primórdios da Microsoft, Bill Gates era um programador de fato. Uma evidência concreta é o programa BASIC DONKEY.BAS incluído nos PCs IBM originais que executavam o IBM DOS 1.10. A história desse pequeno e estranho programa é abordada em uma palestra do TechEd de 2001 pelo próprio Gates:
ARI BIXHORN: Bem, estou muito feliz por estar aqui hoje, porque esta semana estamos comemorando o aniversário de dez anos da ferramenta de desenvolvimento mais poderosa, produtiva e popular do mundo. E é claro que estou falando do Visual Basic.
Agora, para ajudar a definir o contexto de quão longe o Visual Basic chegou e, na verdade, quão longe a linguagem Basic chegou, gostaria de voltar alguns anos atrás e ver um aplicativo que foi escrito em Basic. Esse aplicativo, chamado Donkey.bas, foi, na verdade, escrito por ninguém menos que o senhor que está à minha esquerda. Bill, há quanto tempo o senhor escreveu o Donkey.bas?
BILL GATES: Na verdade, fui eu e o senhor. Neil Konzen às quatro da manhã com esse protótipo de IBM PC em uma pequena sala. A IBM insistia que tínhamos de ter uma fechadura na porta e só tínhamos esse armário com fechadura, portanto, tínhamos de fazer todo o nosso desenvolvimento lá dentro e sempre fazia mais de 100 graus, mas escrevemos tarde da noite um pequeno aplicativo para mostrar o que o Basic incorporado ao IBM PC podia fazer. E esse foi o Donkey.bas. Na época, foi muito emocionante. Então, o senhor pode mostrar a eles o que é isso.
Aqui está uma pequena animação que capturei do DONKEY.BAS em execução em uma máquina virtual:
Realmente emocionante. O pessoal do Macintosh estava devidamente desapontados:
[PC-DOS] veio com alguns jogos escritos em BASIC que eram especialmente embaraçosos. O jogo mais embaraçoso era um jogo de direção com gráficos de baixa resolução chamado “Donkey”. O jogador deveria estar dirigindo um carro por uma “estrada” de rolagem lenta e mal renderizada, e podia pressionar a barra de espaço para alternar o movimento brusco. De vez em quando, uma mancha marrom enchia a tela, que deveria ser um burro se manifestando no meio da estrada. Se o senhor não apertasse a barra de espaço a tempo, colidiria com o burro e perderia o jogo.
Achamos que o conceito do jogo era tão ruim quanto os gráficos toscos que ele usava. Como o jogo foi escrito em BASIC, o senhor poderia listá-lo e ver como ele foi escrito. Ficamos surpresos ao ver que os comentários na parte superior do jogo proclamavam orgulhosamente os autores: Bill Gates e Neil Konzen. Neil era um hacker adolescente brilhante que eu conhecia por seu trabalho no Apple II (que mais tarde se tornaria o líder técnico da Microsoft no projeto Mac), mas ficamos surpresos com o fato de um jogo tão ruim ter sido escrito em coautoria com o cofundador da Microsoft, e que ele realmente quisesse levar o crédito por ele nos comentários.
É engraçado pensar que o DONKEY.BAS é parte do legado de Gates como programador. Pelo menos, ele tem um senso de humor saudável sobre seu passado. A única cópia do do código-fonte do DONKEY.BAS que consegui encontrar foi destituído de quaisquer créditos de Gates ou Konzen. É um programa razoavelmente curto, mas também é um lembrete doloroso de como a programação era estranha em 1981. Atualização: Leon teve a gentileza de enviar uma cópia original do DONKEY.BAS dos discos do DOS 1.1.
Durante a apresentação do TechEd 2001, a Microsoft demonstrou uma atualização do Donkey em 3D, escrita na linguagem VB.NET, então em fase beta, para ilustrar o quanto o BASIC avançou nos 20 anos seguintes.
O senhor ainda pode não pode mais baixar a versão VB.NET do Donkey da Microsoft. Fiz o download e o converti para Visual Studio 2005 e .NET 2.0 sem problemas. Mas não consegui executá-lo por causa de sua estranha dependência do DirectX 8.
Donkey .NET é um jogo de simulador de direção tridimensional que demonstra os novos recursos disponíveis para os desenvolvedores do Microsoft® Visual Basic®. Escrito em Visual Basic .NET RTM, esse exemplo usa serviços Web XML, multithreading, tratamento estruturado de exceções, Windows Forms modelado e controles personalizados. A amostra inclui as configurações do aplicativo do jogo e de um serviço Web XML opcional usado com o jogo. As configurações também instalarão o código-fonte.
Suponho que essa seja outra lição duradoura do DONKEY.BAS; as várias implementações do BASIC nunca foram conhecidas por sua compatibilidade estelar.