Less Wrong is a community blog devoted to refining the art of human rationality. Please visit our About page for more information.

V_V comments on Sensual Experience - Less Wrong

13 Post author: Eliezer_Yudkowsky 21 December 2008 12:56AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (84)

Sort By: Old

You are viewing a single comment's thread. Show more comments above.

Comment author: V_V 17 January 2013 03:04:05PM *  9 points [-]

It was tried countless times: Visual programming languages. It never worked outside some specific application domains.

Keep in mind that text is a visual representation. It is a visual representation optimized to express our thoughts, trivial or complex, in a precise, efficient, and succint way. We went from making artistic cave paintings and wood carvings to writing simple, standardized characters.

Programming is about expressing how to do something in an extremely precise way, so precise that it can be understood by a machine with little or no intelligence.

Non-textual media might provide an aid when communicating between intelligent humans, and even there it is often used for superficial communication (e.g. advertising). When you need precision, text is probably the most effective choice.

Comment author: Peterdjones 17 January 2013 04:03:00PM 0 points [-]

OTOH, flowcharts and such are still in widespread use. And that a graph (mathematical sense) can be as precise as you like.

Comment author: V_V 17 January 2013 04:14:36PM 2 points [-]

OTOH, flowcharts and such are still in widespread use.

Flowcharts and other types of diagrams are indeed in widespread use, but as design documents to be understood by humans, not as executable specifications. Being made to describe the high-level design of a system to humans, these diagrams are highly abstract and omit most of the details that would be required for an executable specification.

You can define executable graphical languages, as listed in the link I provided, but once you try to use them for anything but a toy example, your diagrams become excedingly large and complicated, essentially unusable.

And that a graph (mathematical sense) can be as precise as you like.

Irrelevant.

Comment author: TheOtherDave 17 January 2013 06:25:19PM 2 points [-]

You can define executable graphical languages, as listed in the link I provided, but once you try to use them for anything but a toy example, your diagrams become excedingly large and complicated, essentially unusable.

There are entire management chains of my acquaintance on whose eyelids I could wish that sentence engraved.

Comment author: bogus 17 January 2013 07:04:27PM *  0 points [-]

There is research being done in improving abstractions for graphical languages. For instance, this applies to graphical representations of monoidal categories (so-called "string diagrams"), which can be used to represent functional programming, monad-based programs (at least to some extent), data-flow, control flow and the like.

It is still the case that textual syntax has a higher information density, though.

By the way, natural language generation could also be used to make programming closer to the cognitive style of humans, and thus more stimulating. I'm not talking about primitive efforts like COBOL here: we could take inspiration from linguistically-inspired formalisms such as Montague grammar to map commonly used calculi and programming languages to natural language in a fairly straightforward way.

Comment author: insufferablejake 19 January 2013 02:11:56PM 0 points [-]

I agree with you in that text is a visual representation of 'units' of ideas, if I were to be not very precise about this, that we string together to convey more complex ideas. And I agree with you that in the kind of complex scaffolding of little ideas into big ones ad. infinitum, that happens in computer science, that the kind of 'coding' medium I was suggesting, would be inefficient. But still the idea has a novelty for us humans who are more at home with spatially manipulating objects and stringing them together as opposed to doing all of this in abstract space.