On 7/6/06, William Pearson <[EMAIL PROTECTED]> wrote:
This is an interesting term. If we could define what it means
precisely we would be a long way to building a useful system. What do
you think the closest system humanity has created to a pgpps is?

The Internet.

A
generic PC almost fulfils the description, programmable, generic and
if given the right software to start with can solve problems. But I am
guessing it is missing something. As someone interested in RL systems
I would say an overarching goal system for guiding programmability,
but I would be interested to know what you think.

A useful line of inquiry. Okay, let's see... a PC isn't a general purpose problem solver at all. To see why not, suppose you just have bare hardware, a PC and whatever peripherals you want but no software at all. Well the thing'll just sit there, it won't solve any problems. So you have to improvise a way to toggle in binary machine code like they did in the old days so you can bootstrap a primitive assembler, editor and file system. Let's suppose you get up to the level of assembler.

Now assembler might seem general purpose, yes? But in practice you find when you set out to actually solve any problem in it, you spend almost all your time dealing with the headaches of assembler, leaving so little for actually solving the problem that you'll die of old age before you get very much done. If you get up to a block structured language like C (Algol, PL/1, Pascal etc), it might appear to be closing off possible ways of doing things but in practice the way of doing things it provides is greatly superior in very many contexts so you'll get much more done.

So we have the distinction between:

Generic: equally good or bad across a wide range of situations.

General: Good across a wide range of situations.

And we note that to be generic you need only be flexible, but to be general you need to be high level, have a powerful collection of prebuilt tools. (You can be perfectly generic: Turing machines, lambda calculus, predicate calculus, AIXI etc. You can't be perfectly general: no free lunch theorems etc. You can find problems where C loses to assembler and humans lose to rats. So it goes.)

So what's the next step? Well programming language-wise, the big wins beyond C so far are garbage collection and batteries-included libraries, but those obviously aren't enough to make tractable a significant fraction of the problems we want to solve. The biggest attempt at something more in a system billed as a programming language as opposed to a framework is Prolog, which takes the potentially big step of including a search engine, sadly the engine in question is too weak to be of any use for other than carefully selected toy problems but it's an interesting idea.

But that is a way to think of the problem: how to create a software system that includes a sufficiently powerful collection of tools to render tractable things you can't do with what we have at the moment.

(Rest of post snipped and agreed with, and subject line updated.)

To unsubscribe, change your address, or temporarily deactivate your subscription, please go to http://v2.listbox.com/member/[EMAIL PROTECTED]

Reply via email to