* * * * *
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]