[music-dsp] graphical programming languages

David Olofson david at olofson.net
Tue Mar 1 12:22:59 EST 2005


On Tuesday 01 March 2005 11.40, Sébastien Métrot wrote:
[...]
> When I see such a mess I really hope this is not the future of 
> programming :D.

Same here. I want less mouse and more keyboard; not the other way 
around. (Programming IDEs that cannot be controlled entirely from the 
keyboard are annoying enough as it is.)

The only time the mouse is superior is when entering "analog" style 
data. In all other situations, it's quite literally like operating a 
keyboard with a long stick. :-)


> I've been working on functional and graphical 
> languages research in a previous life. My experience is that while
> the mix of them really sounds like a good idea I've yet to see a
> working real world application built from the ground up from a
> graphical language.

Well, there are quite a few games created with fully visual, "coding 
free" tools, but I wouldn't call that programming, since the 
object/object interaction in such tools is usually too limited to 
support systems of significant program-like complexity. You just wire 
a small set of events to a small set of actions for each object, and 
that's about it.


> IMHO graphical language try to trick people into 
> believing they can program without learning a language.

...though they do seem to have superior "formatting" capabilities for 
certain problem spaces. Building networks of objects in text (which 
is like 1.5D, or 2D if you're really pushing it) tends to get messy 
and hard to read, whereas it's handled brilliantly by the popular 
"objects and wires" style GUIs.

I'd like to think of visual programming interfaces as tools for 
certain problem domains. Just like C, C++ and Python have their uses, 
so do visual languages, but no single language will ever be perfect 
for any type of problem. To efficiently deal with a larger problem 
domain, I think the only viable option is to glue two or more 
languages into one "environment".

Can't express it graphically? Hack some script code. Too slow? Hack a 
module/plugin/whatever in some native compiling language.

The problem, however, seems to be to smoothly integrate multiple 
languages into one development environment.

There are many nice bindings between various high and low level 
languages, probably because that's usually rather easy to do. After 
all, they're all (rather traditional, text based) programming 
languages, and differ only slightly in implementation and syntax 
details.

However, when it comes to integrating a traditional programming or 
scripting language with a visual programming of some sort, it seems 
like the gap is too big or something. Why is is that crossing the 
line from the visual side to the scripting side feels like moving 
from some scripting language to asm? :-) Is there nothing in between 
fully visual "wire objects together" programming and raw text?


> I wish it was possible but I don't think it is.

If there is any way to even get close, it would be to build on the 
idea of generating code from specifications, along with some kind of 
"intelligent" interactive specification editor. That could turn 
programming into something similar to discussing the problem with a 
programmer, who writes the code and lets you try and comment on the 
results interactively.

I think the problem with implementing such a tool is that the 
interactive part would need a *very* good understanding of "normal" 
human (ie non-programmer) ways of thinking.


> You can really easy build a small demo for the language but once you  
> pass that milestone you end up with a huge mess or a functional dead
> end
> :-). 

I suspect something similar would happen if you try to do something 
like what I suggest above. It breaks down as soon as it becomes 
aparent that the "interactive programmer" doesn't *really* think like 
a human being.


//David Olofson - Programmer, Composer, Open Source Advocate

.- Audiality -----------------------------------------------.
|  Free/Open Source audio engine for games and multimedia.  |
| MIDI, modular synthesis, real time effects, scripting,... |
`-----------------------------------> http://audiality.org -'
   --- http://olofson.net --- http://www.reologica.se ---



More information about the music-dsp mailing list