A nostalgia for efficiency.
Date: March 15th, 2010 @ 10:53
In response to a great article on programming books written by Mike Taylor, I couldn’t resist writing a few thoughts on the subject. It often comes up in these days when writing video games and having the end result being unplayable on mid-range systems is seen as a good thing.
In some ways, the atrociousness of the Commodore 64’s BASIC was its best asset. The Atari 8-bit BASIC was useful, intelligent, and very well-designed (for the era). I remember just fuddling around with it. I could create drawing programs that used four joysticks for four different cursors, different functions, and could save the results to tape.
On the C64, none of this was possible in BASIC without throwing the whole thing to machine language subroutines. Certainly, this sort of non-BASIC BASIC was beyond my ability, but for people who actually could manage it, it made that sort of “deep knowing” you’re talking about not only relevant but necessary in a way it wouldn’t have been if the BASIC had been more accessible and powerful.
The C64 was, to a very real degree, the last of the era of monolithic computing; a vast userbase whose machines were identical (or if not identical, extremely similar with any important differences fairly well-documented). There was a real payoff for efficient, ruthlessly optimized programming. Elements of this continued on in the 16-bit era with the Atari and Amiga machines, but after that, it was a-la-cart hardware.
Today, game developers in particular are at the opposite end of the spectrum; faced with slow, inefficient code, it’s usually just easier to wait for the next generation of videocard to make your bloated code run faster.
While I’m certainly not eager to return to the days of single-tasking, when “please stand by” actually meant “feel free to go make lunch”, when downloading a 64K program was a 30 minute experience (and, single tasking, meant you should go find something else to do for a while), and single-line BBSes whose email function was limited strictly to those users on that BBS, there was something lost in the process.
At the end of the C64’s mainstream life, the device was far better documented than any other comparable machine, and it was being used to do things that, quite frankly, the developers of it would have told you was impossible had you asked them at the end of the C64’s development cycle.
I can’t even imagine what today’s hardware would be capable of if that by-necessity ethos of coding efficiency was in vogue today.
Categories: random? thoughts