On Thu, Apr 10, 2008 at 3:23 PM, James G. Sack (jim) <[EMAIL PROTECTED]> wrote: > The statement Humans are way easier to 'program' than computers. > is interesting to interpret.
I had an "Aha!" moment re this. A significant part of my work is technical documentation. In a sense, I program humans. When I document a procedure for doing something I have to consider what are the essential steps, condense them for efficiency if possible, and present them in a straightforward and unambiguous way that someone I don't know can follow. There are things I think I can take for granted, and things that I explain just for completeness' sake or "just in case". In other words, I have to manage a set of primitives. I can say "change the password in PWM" and just assume that the target audience will know how to do that. If they won't know how I can either explain it in the procedure or I can put that in another document or section, sort of like calling a procedure in a library. Thinking about it, if a person doesn't know how to do a thing that I've assumed they do, what are they going to do? They're going to go looking for the procedure. They're going to Google it, pull up a man page, ask somebody, something like that. Maybe that's something missing from programming today: the ability to look up unknowns. What if you didn't have to explicitly import libraries? Most languages now let you call a function defined elsewhere in the code and you don't have to tell the program what line it's on. Why not the same with libraries? And what if you could say "do this" and if the computer doesn't have a library for it it goes out and asks other computers around it? Package management systems kind of do this now. In my Kubuntu if I say 'kate', for example, it'll say "You don't have kate, you have to install it using apt-get install kate". I think if we're going to talk about programming humans we should concentrate on technical documentation, and forget about the simplistic "go pick up that ball" type statements. Another issue is the level of statements you can give a computer versus a human. In this regard, I think everyone understands the issue, and I think progress is being made in this regard. From machine language to assembly to C style "high level" to languages like Java that do garbage collection without you having to tell it to and languages like Perl that mimic human language syntaxes to a high degree without me having to tell it what "until" means. This is a problem under control, if not licked. -todd -- [email protected] http://www.kernel-panic.org/cgi-bin/mailman/listinfo/kplug-list
