[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