This probably fits more into "coordination languages" than with "ASCII
art", but what *I've* always wanted was a programming language that
would let me draw arbitrary shapes and connectors on a canvas, like
XFig, Dia or Visio, and then let me assign more or less arbitrary
behaviors to them. One such behavior would be animation -- objects need
to move about.

There are specialized tools that sort of do this: Max/MSP and its open
source clones Jmax and PureData will let you design basic digital signal
processing systems this way, but the shapes aren't necessarily
customizable, and the behavior of the objects is mostly limited to
things that make sense in computer music and digital signal processing.

QTDesigner, Korundum and Kommander will let you design GUIs with
"standard" things like list boxes, buttons, etc., but again, the shapes
are given. And there are plenty of graphical languages, UML-based tools,
etc. Hypercard was close, actually, except for its metaphor of a stack
of cards.

What I'd like is a single graphical language that would let me build,
for example, Petri nets, queuing networks, Mind Maps, dialog maps,
entity-relationship diagrams, clouds of tags -- about any kind of
graphical tool you could think of -- and have the elements all be active
objects/actors, with methods, etc. And, of course, it needs to be open
source.

I'm probably going to revisit Kommander to see if it can do what I want,
because it's compatible with QTRuby. I also think Blender might be able
to do it, although I'm not all that interested in "physical realism" --
I don't want cars or people, but abstract symbolic diagrams. Anybody
here have any ideas on tools I might be overlooking?

Benjohn Barnes wrote:
> This is a fantastic quiz. I find it very interesting that ASCII art is
> so effective for quickly generating basic graphics. I think the great
> thing about it is its supreme ubiquity. There can't be too many
> languages where you can't  print out some monospace text with a
> handful of lines of code.
>
> However, it seems a little sad that in today's world of stupendous
> graphical processing power, and lovely displays, we can't trivially go
> a little bit further. I'd really like to see a library that is:
>
>     1) Completely ubiquitous. ASCII's degree here will be hard to
> match, but for a given set of platforms (say Ruby on Unix, Win, OS X,
> common hand-helds) it should be possible.
>     2) Works out of the box. It _must_ come as part of a standard
> instal, and before that, be well packaged. It must not need lots of
> extra installation of components. It's got to be pure ease in a glass.
>     3) Makes the easy things easy.
>     4) Make hard things quite easy.
>
> 3) Making the easy things easy.
>
> ASCII does this wonderfully. You can't get much easier than "puts
> ':)'". BBC BASIC did it too with: "MOVE 100,100; DRAW 200,100". Logo
> also did it well with "fd 100".
>
> Right from the outset, you can start to draw things. You don't need to
> create contexts, add them to windows, create an event loop, blah blah
> blah. You just begin. Brilliant.
>
> 4) Make the Harder things quite easy.
>
> Ok, so full on GUI packages have useful things in them. Widgets that
> know how to behave and render themselves. We've got 3d, and scrollable
> surfaces and particle systems... All sort of great stuff. I think
> these things shouldn't be so much harder though, and their presence
> should not stop the easy things being easy. It's important to have a
> gentle progression from simple stuff to harder stuff.
>
> Anyone got any thoughts in this area? :)
>
> Cheers,
>     Benjohn
>
>
>

-- 
M. Edward (Ed) Borasky

http://linuxcapacityplanning.com