[PD] Re: [PD-dev] Re: prepend w/ set message - ignore
Mathieu Bouchard
matju at sympatico.ca
Tue Jan 4 11:44:14 CET 2005
On Tue, 4 Jan 2005, Johannes M Zmoelnig wrote:
> Mathieu Bouchard wrote:
> > On Mon, 3 Jan 2005, Krzysztof Czaja wrote:
> >
> > which one should be produced?
> >
> > (b) first 'test this bang', second no-op
> hmm, i disagree with that.
> [bang( is bang and not a symbol "bang"!
Alrighty, here's a second issue I hid in the carpet so as to not distract
from my first issue, but that I have to uncover to answer you here:
Since every possible symbol can be used in any message, save for a few
reserved keywords, what would be a logical way of distinguishing those
from symbol messages, which have "symbol" as their selector and whatever
symbol as their $1 ?
In GridFlow,
[foo( -> [messageprepend zzz] gives 'zzz foo'
[symbol foo( -> [messageprepend zzz] gives 'zzz symbol foo'
[foo\ -> [messageprepend zzz] gives 'zzz symbol foo'
(where [\ is a symbolbox)
Where I designed [messageprepend], among other things, having in mind a
mental model of Pd that is concise, consistent, and founded on the
preconceptions I have learned while trying several shovelfuls of different
programming languages. (which is why I sort of bang my head on the wall
with issues like this one and the one in the previous mail: I don't
understand those behaviours; they make no sense to me, and I expect to be
able to make sense of them given how much time i spend on semantics!)
In the previous mail, the second and third entry would have given the
first result. Now, until here, I have assumed that [prepend] should be
"injective", that is, it is possible to know which inputs were put in just
by looking at the output. If we drop that requirement, then [foo( and
[symbol foo( could give the same result for convenience, but it would be
inconsistent with the fact that, in general, to write in a messagebox a
symbol compatible with a symbolbox, you actually have to write "symbol" in
front of it, else it is rejected as "no method for ...".
> bang is an atomic event not containing data (not even a timestamp) how
> do you encapsulate such a time-based event within a data-set (like
> "test this bang") ?? this does not make sense to me at all
could you please elaborate on this?
> > PS: (*please* don't say "you know, pd is not a programming language...")
> but it is turing complete, so who cares...
Well, there are many turing-complete languages for which no-one expects
a quality experience when programming them. Examples are:
* Turing Machine
* Lambda Calculus
* Game of Life
* COBOL
It turns out that even though the intent of the original creator of a
given programming language is often largely ignored by its users, that
doesn't mean it's always the case. For example, the first three examples
were designed specifically to prove a point about really unwieldy
languages still being "universal computers". Because of their features (or
incredible absence thereof) it's normal that no-one expects anything from
them.
However, in the case of PureData, after the intent of the author (or the
marketing line) has been rejected/ignored, people *are* willing to ascribe
new intents and meanings to PureData. The model of the language "talks to
them": they *do* expect to find quality time with PureData, or at least a
system that is 90% like PureData: and this is where the feature requests
pour in, like
* Pd should do pixel video (solved in 1998)
* Pd should allow ~-objects to do batchjobs nonrealtime (not yet)
* Pd should have true strings (cross fingers for this year)
* etc
as well as bug reports, which may sound like my last two mails.
_____________________________________________________________________
Mathieu Bouchard -=- Montréal QC Canada -=- http://artengine.ca/matju
More information about the Pd-list
mailing list