* * * * *

                            The dinosaur that I am

Wlofie [1] and I discussed The Question [2] 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 [3] PC (Personal Computer) with a floppy
drive and a single disk that contains a bootable MS (Microsoft)-DOS (Disk
Operating System) 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 [4]. 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 [5]. 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] [6] 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 [7] 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 [DELETED-kids-DELETED] programmers today just have
no concept of what it's like to [DELETED-walk eight miles uphill in 10′ snow
drifts to school-DELETED] program in only 16K (Kilobytes) without benefit of
a full-screen editor).

[  1] Why octal [8] and not hexadecimal [9]? Because the instruction set [10]
    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] [11]


[1] http://wlofie.dyndns.org/
[2] gopher://gopher.conman.org/0Phlog:2009/11/03.1
[3] http://www.ibm.com/
[4] http://en.wikipedia.org/wiki/Tic-tac-toe
[5] http://www.awarenetwork.org/home/iqlord/articles/extreme.coding.txt
[6] gopher://gopher.conman.org/0Phlog:2009/11/05.1
[7] http://www.forth.org/whatis.html
[8] http://en.wikipedia.org/wiki/Octal
[9] http://en.wikipedia.org/wiki/Hexadecimal
[10] http://www.pastraiser.com/cpu/i8088/i8088_opcodes.html
[11] gopher://gopher.conman.org/0Phlog:2009/11/05.1

Email author at [email protected]