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:
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ā¦
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.
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?
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!
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.
So youāre saying Mac creators are as big of douchebags as Mac users?
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.
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.