The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Thursday, November 05, 2009

The dinosaur that I am

Wlofie and I discussed The Question for a few hours today. Wlofie's answer was something along the lines of: a tool is a crutch when it's removed from a practitioner who can not conceive of a way of continuing their job without it.

It's a nice definition, and it certainly fits my biased viewpoints on the subject, but in thinking about it longer, to most programmers, even a simple text editor is a crutch.

Imagine being given a 1982 era IBM PC with a floppy drive and a single disk that contains a bootable MS-DOS system with IO.SYS, MSDOS.SYS and COMMAND.COM (the minimum required to boot to a usable (for various values of “usable”) system at the time) and a stack of reference materials. Your goal (assuming you are a programmer) is to write a program that does something simple, like, play a game (however badly) of tic-tac-toe. No editor. No assembler. No compiler. No linker. Just COMMAND.COM and a stack of reference materials.

It's not impossible. Just difficult and insanely tedious. First order of business would be to write a program (by typing binary data directly from the keyboard to a .COM file) that accepts octal codes [1] and outputs the binary values (I don't even need to deal with files as file redirection can help here).

From there, I can hand write a simple Forth environment and using my “octal to binary conversion” program, enter it in and debug it. Once that's working, I can bootstrap myself further.

Would I ever seriously do such a thing? Well … I doubt it, unless, perhaps, if I ever felt the need for a programmer's version of survival camp (dropped in the middle of the Rockies with nothing more than the clothes on my back and a rusty pocket knife—see you a month!) but more importantly, I could do it.

And it's entirely conceivable that I'm overintellectualizing this into the ground (or I'm upset that kids programmers today just have no concept of what it's like to walk eight miles uphill in 10′ snow drifts to school program in only 16K without benefit of a full-screen editor).

  1. Why octal and not hexadecimal? Because the instruction set just makes more sense when viewed octally (that is, in groupings of eight) than hexadecimally (in groupings of sixteen), which would make hand-assembly of instructions easier to do. [Back]

Obligatory Picture

[It's the most wonderful time of the year!]

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2019 by Sean Conner. All Rights Reserved.