Friday, 24 of May of 2013

A nostalgia for efficiency.

Wherein the author has a few words about the Commodore 64, and the coding practices that it necessitated.

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.


Leave a Comment


Comments RSS TrackBack 2 comments

Brules

in April 6th, 2010 @ 11:42

Delusion, how does one reach you by email? I would like to know what ever happened to the iB web site and your alls forums…..has everyone from UO LS gone their seperate ways finally? Email me pls.


David

in January 31st, 2011 @ 18:34

i’m a big c64/128 user who later went to amiga then ibm pc clone. You could take a soldering iron and connect the rasters to make a c64 a 128 with a few limitations. Which was very useful for me since i needed 128k to run wildcat with bluewave. as for email on the bbs, that is what fidonet was for. God sometimes i miss the old days ;)