top | item 1407867

(no title)

nfnaaron | 15 years ago

"So who created programming languages?"

We did, but we did it on purpose. Programming languages are mere tools, subsets of human language. Human language evolved as part of human evolution, and is as intimately part of the definition and condition of "human" as a beating heart and a gleam in the eye.

Programming languages are created for limited and specific purpose, relative to human language. They take a few months to a few years to create. They're "received" by most of us, and only if we volunteer.

Human language wasn't created, it evolved, like feet and stereo vision, over hundreds of thousands of years, from grunts to sonnets. We have no choice to absorb language because language is part of the bath of human existence. It grows with us as the result of interaction between environment and genetic capacity, just as we grow arms.

To refer to computer languages as "language" is somewhat grandiose. They are very little like human language, and more like the rules and vocabulary of baseball. In other words, a computer language is merely one use of human language. You could refer to the traffic code or the penal code as language, and it makes about as much sense as referring to computer code as language. They all three are the same thing, a description of rules and vocabulary, meant to accomplish a set of goals in a constrained environment.

In contrast, human language has no purpose, not in the sense that traffic code and computer code have purpose. You can't decide to use human language or not, no more than you can decide not to use blood. Human language just is, and it's that difference in specified purpose and no purpose that tells me they are not the same thing, nor even like each other. At best, computer language is an extremely small and constrained subset of human language.

The answer to "why are objects so unintuitive" is in the question's implied requirement that a computer language be able to describe an object as fully as human language, and that we can understand such an object with all the precision and ambiguity which human language allows; that's impossible.

The relationship between real world objects is both: physical and independent of human thought; and subjective, contextual and dependent on human thought.

A real world object, like a car or a row in a database table, obeys physical or mathematical laws independent of human thought.

Objects also have relationships that don't exist without humans. The car and row mean different things depending on how we decide to perceive them. The row, in the limited context of SQL, is a collection of data that must adhere to constraints, and that's expected to be produced and consumed in limited ways. The car, in the limited context of the traffic code, is an object that moves through the traffic system according to (or not) designed and learned rules of motion and safety.

The row, in the limited context of love and ambition, is potentially my partner for the rest of my life, or this afternoon's rejection. The car in the same language is a symbol of desperate love, as so memorably programmed by Bruce Springsteen in Born To Run.

To expect a computer language to completely, intuitively and consistently describe an object makes no more sense than to expect a love song to determine the rules of traffic.

Or something.

discuss

order

No comments yet.