Re: [livecode] is live coding aiming to audience with particular programming knowledge

From: David Barbour <dmbarbour_at_gmail.com>
Date: Sun, 13 Jan 2013 13:08:34 -0800

On Sun, Jan 13, 2013 at 12:49 PM, Ross Bencina
<rossb-lists_at_audiomulch.com>wrote:

>
> Do you mean that you believe that a mix of:
> (1) TC extents for time and IO, plus
> (2) non-TC expressions everyewhere else
>
> is superior for live programming.
>

I don't mean TC extensions, but rather that the language only becomes TC
when IO or time-steps is considered. E.g. consider Conway's Game of Life.
It's Turing Complete, but each 'step' is guaranteed to terminate
(potentially in bounded time, with a finite board). There are many
programming languages (admittedly, not in mainstream programming) where
every function terminates, guaranteed, but you can hook them up to an
infinite stream of inputs.


>
> superior compared to what? TC expressions everywhere? or non-TC everywhere?
>

Such languages are "non-TC everywhere" in the sense that (spatially and
syntactically) there's no expression you can point to that is Turing
complete.


>
> in either case can you elaborate on your reasoning? and explain your
> crtiteria for "superior"
>

By 'superior for live programming' I mean that it's much easier to reason
about - and gain intuitions about - the consequences of an edit on the
future of the program. Knowing that every expression "returns" makes it
much easier to design systems that maintain valuable consistency and
composition properties across edits, e.g. since you can apply the updates
between executions.


>
> In an artistic live coding context the reason I am pushing for TC
> languages is purely moral (ok, maybe aesthetic too). But then I have never
> programmed in a really expressive non-TC language, only a bunch of
> brain-dead DSLs.


Expressive power (a language's ability to add features to an application
without making widespread/shotgun edits, cf. Felleisen's "On the Expressive
Power of Programming Languages") is a property that is entirely orthogonal
to Turing completeness (the ability to express every computable function).

There are plenty of inexpressive TC languages, too.
Received on Sun Jan 13 2013 - 21:09:04 GMT

This archive was generated by hypermail 2.4.0 : Sun Aug 20 2023 - 16:02:23 BST