Every language takes a philosophical stance. This is true for natural informal human languages--English, French--and the formal languages of computer science and mathematics: Lisp, first-order logic. The problem is that the stances taken by all past languages were ultimately unrealistic. Language designers had a philosophically naive sense of reality. They took the conveniences made by their minds as real and carried these useful lies into every language.
Specialized languages aren't the problem. They admit their limiting presumptions. What bad presumptions do all-purpose languages make? I'm still amazed by the uniformity of natural human languages. They all share the same metaphysics, the same ideas about the kinds of things that really exist. I skimmed a book on ancient Egyptian and still saw the standard human set.
- Things: you, the Sun--persistent objects.
- Predicates: blue, heavy, inside.
- Proper nouns: Plato.
- Definite articles: 'the'.
- Subjects: there are things that act and have effects.
- Prepositions, possession.
- Male/female dichotomy: the bias of sexually reproducing organisms.
- Linear syntax: meaning from the order of symbols in a line of space or time. Why not three of four dimensional syntax? Linearity is the bias of animals that communicate by vibrating air.
Natural human languages are only distinguished by superficial variations of syntax and vocabulary. You find real diversity in formal languages. The list below is distinguished by dismissing the usual descriptions. I instead expose the at best half intended metaphysical axioms of each language and the trade-offs bought.
- Imperative: series of opaque actions. If one fails, assuming failure's detected, then the chain breaks. The language can't do otherwise because it doesn't know what any statement is for. Not knowing what a statement was for, an interpreter of the language can't know what depended on it, so it can't know what can and can't now be done. Almost all computer languages are essentially imperative. This is why computers suck. Metaphysically, within the imperative world there is time--which statement you're reading--but no cause or effect.
- Functional: only define relations. An expression has no effect, only its timeless meaning. Admirably pure, but this is purely the opposite of reality. It's the world of math, not the world of action, which is what math should inform. Again, no cause or effect and not even time.
- Object-oriented: things exist and have properties. This paradigm was meant to make programming more natural, by better approximating reality. But objects, as devices to predict impressions, exist only in our minds, so it only served to fit a human presumption. It diverted programming farther from ultimate reality.
- First-order logic: things exist and have properties and relations. Logical languages work in a world of theory removed from action. One upside: you can say what you want to prove, not how to prove it. The interpreter is free to create proofs.
- Parallel: more than one thing can happen at once. Only independent processes can run in parallel and humans still have to discover and define most of these independencies.
- Agent-oriented: things exist and act in parallel. They also act on each other. Whether they 'communicate' depends on whether the things are really agents in the strong sense of having goal-seeking minds.
- Lazy: nothing is determined until ultimately needed. Resembles some quantum theory. Requires either a purely functional language, without time, where nothing is caused by anything else, or a language that admits and can express dependencies.
But they are all wrong.
If all natural and formal languages are wrong then what is right? A teleological language. Teleology is the study of purpose, of goal-seeking. This is the only valid paradigm because it admits that everything is for action and that an act's effects are all uncertain and infinite.
Contrast the same intention written in imperative and teleological language.
Imperative:
- Try to move forward one step.
- Try to turn right.
- Try to move forward one step.
Teleological:
- You want to be at 1, 1.
- You have a sense of position, now 0, 0.
- You have a sense of orientation, now North.
- You can try to turn.
- You can try to move forward.
We make seemingly imperative statements to other humans but a human interpreter has the commonsense to interpret the statements as goals. A machine just blindly presses a series of buttons.
How does the metaphysics of the teleological differ?
- There are only unordered beliefs, not sequences of instructions.
- Special kinds of beliefs: ends and means. They imply action. The interpreter applies means while any end is unmet.
- The effects of a means are hoped but never presumed. That 'x caused y and will again' is always uncertain. So an interpreter must be free to doubt any belief.
- Senses divided from means: separate action from confirmation of the intended effect.
- Effects are always separated by an uncertain length of time from application of the means.
- Belief in objects in the world is merely a means to predict changes in raw sensation.
- A uniform syntax. Any belief must fit into any other: goals to means, means to means, means to senses, etc. Generality requires that the language can form the loops and spirals of an unlimited mind.
Teleological and functional languages are opposites--'everything has infinite effects' vs. 'nothing affects anything else'--yet the mirror image purity leads to some identical benefits, mainly automatic laziness--make it only when you need it--and memoization--remember what you made as long as its true. Unlike functional programming, TP (teleological programming) is perfectly compatible with other paradigms. They merely become its means as long as the expression in the non-teleological language, no matter how large, can be framed as attempting to have an effect.
Goal-seeking is the essence of mind. Anything else that you might imagine as intelligence--emotion, wisdom, memory, speed, deduction, induction--is only another means to better reach ends. They are powerless alone. Neither is raw mind trivial. Any attempt to make machines more intelligent should be based on a teleological language. The only valid general language is one that starts beneath the conveniences that our minds produce and then rebuilds those ideas above.
This is the first of a series of quick polemics on the applications of teleological philosophy. Patrick Roberts is the author of
Mind Making: The Shared Laws of Natural and Artificial Intelligence.