Bill Gates and DONKEY.BAS

It's hard to imagine now, but in the early days of Microsoft, Bill Gates was an actual programmer. One bit of hard evidence is the BASIC program DONKEY.BAS included with original IBM PCs running IBM DOS 1.10. The history of this weird little program is covered in a 2001 TechEd keynote by Gates himself:


This is a companion discussion topic for the original blog entry at: http://www.codinghorror.com/blog/2007/05/bill-gates-and-donkey-bas.html

http://programming.reddit.com/info/1r4bh/comments/c1r5fj

A very historic moment in Microsoftā€™s history. A bunch of asses in your way, and crashing is pretty much inevitable. My, how things have changed!

Bill Gates was an actual programmer.

In the same way as Iā€™m an actual ballerina, because Iā€™ve attempted a pli?

Oh wow! Now we know where the inspiration for the dogcow comes from!

And you thought it was an original idea by Apple.

I remember being absolutely wowā€™d by Gorillas.bas back in the day. As I learned/toyed with QBASIC (heh) it was a great deal of fun to slowly modify the game so that you could throw super destructive bananas, (by arcing your banana through a ā€˜power ringā€™ in the sky) and all sort of other ridiculous things.

In hindsight, that was probably my first game-modā€¦

Where ignorance is bliss, tis folly to be wise.

Bill Gates WAS an actual programmer. He was also pretty good. Check the website link for details. According to at least one book, he also used to come to DEC (if memory serves) to help fix bugs in their OS.

hehe, what a charming little ā€œgameā€.

Does the story say anything about why 2 guys sitting in a 100 degree room come up with a game about donkeys? :slight_smile:

Anyway, how can a dotnet directx game, show how far visual basic has come?

Aaron: 1987, not 1990, actually.

Later than the PC, but full 640x480x256 (ala VGA, which was only available on the PS/2 in 1987), which shamed the EGA (640x350x16) of most PCs.

Iā€™m not sure that CGA (640x200 mono or 320x240 4-color-of-16) vs. 9" Mac mono (512x342 mono) is something thatā€™s a definite win for CGA simply because CGA had colorā€¦

Iā€™m not much of one for platform wars, having used and liked both PCs and Macs (and unix) for ages upon ages now, but ā€¦ shall we talk about multiple monitor support, then, if weā€™re going to go there?

I wonder why credits stripped.
Bill is so shy :slight_smile:

DONKEY.BAS is actually a great illustration of the early philosophy of MS/PC vs. the Mac philosophy (which has endured to this day, unlike the MS/PC philosophy): The PC and BASIC are for churning out crappy hacks at 4AM that get something simple done acceptably well, not spending days/weeks/months wandering through the Mac toolkit documentation, compiling Pascal, tring to figure the frameworks out, creating icons and graphics, and trying to make some really elegant program.

Compare that idea to Donkey.net to see how much the programming philosophy of MS has changed:

Donkey .NET is a three-dimensional driving simulator game that demonstrates the new features available to Microsoft Visual Basic developers. Written in Visual Basic .NET RTM, this sample uses XML Web services, multithreading, structured exception handling, shaped Windows Forms, and custom-drawn controls. The sample includes the setups for both the game application and an optional XML Web service used with the game. The setups will also install the source code.

jeebus. I know itā€™s supposed to basically be a parody, but that means that thereā€™s somtehing there to parody!

Could Bill Gates write code? Yes, He Bloody Well Could!
Could Bill Gates write code? ā€¢ The Register

Raiders of the Lost Altair BASIC Source Code:
Raiders of the Lost Altair BASIC Source Code ā€¢ The Register

Reuben Harrisā€™ Altair Basic Disassembly:
Altair BASIC 3.2 (4K Edition)

Altair Basic Error Codes, some still used in VB today :wink:
Altair BASIC 3.2 (4K) - Disassembly

Gates, Allen and Davidoff threw every trick at the book to squeeze the interpreter into 4 kilobytes. They succeeded and left some headroom for the programs themselves - without which it would have been pretty useless, of course.

@art: I think the point is that itā€™s probably one of the worst videogames ever made.

I dunno, thereā€™s always FF8 and FF12. Certainly contenders, anyway.

So youā€™re saying Mac creators are as big of douchebags as Mac users? :wink:

Well the possibilities for people to be douchebags are endless. But what Iā€™m saying is if someone whoā€™s a fan of classical music tells you that a cello player isnā€™t very good. You say, ā€œsure, what everā€. If Yo Yo Ma tells you that a cello player isnā€™t very good, you take it more seriously. :wink:

I donā€™t see how Mac creators are anywhere near Yo Yo Ma-like. :stuck_out_tongue:

Hehā€¦ ragging on a quick sample program Gates wrote in a couple hours is exactly the kind of douchebaggery Iā€™ve come to expect from Mac users. :wink:

I can tell you why itā€™s a donkeyā€¦

Conversation:

What are we going to put in the road.
How about a dog.
Okayā€¦ Let me try somethingā€¦
Wow. Thatā€™s a terrible looking dog.
Wellā€¦ We donā€™t have a whole lot of artistic talent or tools hanging around. Weā€™re working with blocks on a screen here.
It does kind of look like a donkeyā€¦

ā€¦ and donkey.bas was formed.

The moral:
If the spec says dog and you code a donkeyā€¦ change the spec to say donkey. =)

While people opinions about MS Bill may vary, Bill wrote a basic interpretor for the ALTAIR and to write it, he had to write an emulator of the ALTAIR. I donā€™t know about you, but writing interpretors and emulators on mid-1970ā€™s machines counts as rocket science in my book. The annotated disassembly of it can still be found on the web.

Interesting, around 1980 I was in 8th grade and we were playing with Commodore PET 2001ā€™s (16K memory and a tape drive for storage) and making games that reminded me of Donkey. A particular one I recall was a skier (A capital W with double quotes beneath for skies) going downhill trying to avoid trees and rocks. We used the natural screen scrolling to make it look like he was going downhill, and ā€˜peekā€™ and ā€˜pokeā€™ commands to place him on the screen and to do collision detection. Maybe it was much simpler, but certainly not very complicated.

It seemed to have better game play that Donkey from what I can tell.

You do know that the author of this site is a Windows coder, dont you @Telos ? Windows users are fully capable of their own anti-Gates douchebaggery.

Anyone remember the game bananas? It was a physics about gorillas slinging bananas, pretty cool!