* * * * * 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 Sean Conner at sean@conman.org .