<div dir="ltr">not confusing, thanks</div><div class="gmail_extra"><br><br><div class="gmail_quote">2014-04-03 19:54 GMT-03:00 Roman Haefeli <span dir="ltr">&lt;<a href="mailto:reduzent@gmail.com" target="_blank">reduzent@gmail.com</a>&gt;</span>:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="">On Don, 2014-04-03 at 18:32 -0300, Alexandre Torres Porres wrote:<br>
&gt; &gt; Wow, you keep beating that horse after its dead<br>
&gt; &gt; for quite a while by now<br>
&gt;<br>
&gt;<br>
&gt; &gt; I don&#39;t think this debate is going lead anywhere<br>
&gt;<br>
&gt;<br>
&gt; please, cope with my lack of knowledge in computer science/languages<br>
&gt; jargons.<br>
<br>
</div>I&#39;m sorry. I sure will (though I don&#39;t feel I have in any way less of a<br>
lack of knowledge). Actually, I don&#39;t have any computer science<br>
background myself.<br>
<div class=""><br>
&gt; All I&#39;m doing is asking to learn more about it and get what you guys<br>
&gt; mean. I&#39;m not debating, since I&#39;m even stating I couldn&#39;t do it when I<br>
&gt; say I probably won&#39;t be able to grasp all the details and will just<br>
&gt; take the word for it...<br>
<br>
<br>
<br>
<br>
&gt; So relax, you keep misjudging before reading more carefully. I&#39;m not<br>
&gt; looking for a debate, and I&#39;m also saying I&#39;m cool with Pd&#39;s<br>
&gt; workaround myself, so there&#39;s no personal frustration. As I said, I&#39;m<br>
&gt; not even thinking about me as my concerns come from luring people into<br>
&gt; using Pd, while I&#39;m already sold for it.<br>
&gt;<br>
&gt;<br>
&gt; Anyway, having said that, I&#39;d appreciate if anyone could help me<br>
&gt; understand Pd&#39;s structure and developing issues.<br>
<br>
</div>I think I can&#39;t answer that.<br>
<div class=""><br>
&gt; For instance, I don&#39;t think I understand what &quot;inconsistencies&quot; mean<br>
&gt; in this context.<br>
<br>
</div>I try to explain some more. The confusion probably comes from the fact,<br>
that a similar looking syntax is used for two relatively different<br>
things in Pd. A $1 in an object box is substituted by the first argument<br>
I give to the parent abstraction. If I create [myabs 0.3] and myabs<br>
contains an [f $1], the value of $1 actually is &#39;0.3&#39;. If I have a<br>
message box [bla $1( in the same abstraction [myabs], we actually don&#39;t<br>
know yet what the value of this $1 is. Only when we send message to [bla<br>
$1( we know what the value of $1.<br>
<br>
[1.7(<br>
|<br>
[bla $1(<br>
<br>
When I click the [1.7( message box, we know that the $1 in [bla $1( is<br>
going to be substituted by 1.7. So far, so good.<br>
<br>
We now have encountered two different $1s in the same abstraction. Once<br>
it got substituted by 0.3 and once by 1.7, although both are written $1.<br>
Confusing, isn&#39;t it?<br>
<br>
I know that is nothing new to you at all as you most likely have used<br>
dollar variables in both ways already. What I am trying to say is that a<br>
$1 in a message box [bla $1( is a different animal from a $1 in an<br>
object box [f $1]. Pd could have been designed to make this distinction<br>
more explicit. It could have used # variables for message boxes and $<br>
variables for object boxes. Then we would be able to do both with<br>
message boxes, namely expanding to a parent&#39;s argument AND expanding to<br>
an element of the incoming message, depending on whether we use the # or<br>
the $ syntax.<br>
<br>
[1.7(<br>
|<br>
[bla #1(<br>
<br>
In our hypothetical Pd, #1 would be substituted by &#39;1.7&#39; as soon as we<br>
click the [1.7( message box (as does $1 in the real Pd). Clicking on<br>
[1.7( would output &#39;bla 1.7&#39;.<br>
<br>
[1.7(<br>
|<br>
[bla $1(<br>
<br>
In our hypothetical Pd, $1 would hold the value of the first argument<br>
given to the parent abstraction [myabs 0.3], in our example &#39;0.3&#39;.<br>
Clicking the [1.7( message box would output a message &#39;bla 0.3&#39;.<br>
However, there is no such thing in the real Pd (yet).<br>
<br>
In the real Pd, the $1 in the message box works totally differently from<br>
the $1 in the object box. The canvas local-ID unique to each instance of<br>
a .pd file (abstraction or patch) can be considered as an argument to<br>
that abstraction or patch. Thus it can easily be accessed by $0 in<br>
object boxes.<br>
<br>
When you propose that $0s in message boxes are substituted by the<br>
canvas-local ID, then you want the function of the dollar variables to<br>
be different depending on what number follows the dollar sign. You want<br>
$0 to access an argument given to the parent, but $1 to be substituted<br>
by the first element of the incoming message. That is where the<br>
inconsistency happens: Why should the function be different based on the<br>
value I put after the dollar sign?<br>
<br>
In our hypothetical Pd, this would be a non-issue. You wouldn&#39;t expect a<br>
#0 in message box to get substituted by the canvas-local ID. You would<br>
use $0 for that. In the real Pd, we unfortunately don&#39;t have direct<br>
access to the arguments of the parent from message boxes. When you ask<br>
&quot;Why can&#39;t a $0 in a message box be substituted by the canvas-local ID&quot;,<br>
then you also should ask &quot;Why isn&#39;t a $1 in message box substituted by<br>
the first argument given to the parent?&quot; The answer is that this is the<br>
way Pd is designed.<br>
<br>
I&#39;d prefer our hypothetical Pd, if it would exist. However, switching<br>
from today&#39;s Pd to our hypothetical Pd would surely break compatibility,<br>
which makes its introduction a bit less likely. Finally, I don&#39;t see any<br>
other concise solution than our hypothetical Pd for the<br>
$0-in-message-boxes problem.<br>
<br>
I hope I didn&#39;t cause even more confusion.<br>
<span class="HOEnZb"><font color="#888888"><br>
Roman<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
&gt; 2014-04-03 17:03 GMT-03:00 Roman Haefeli &lt;<a href="mailto:reduzent@gmail.com">reduzent@gmail.com</a>&gt;:<br>
&gt;         On Don, 2014-04-03 at 16:13 -0300, Alexandre Torres Porres<br>
&gt;         wrote:<br>
&gt;         &gt; thanks for explaining it all<br>
&gt;         &gt;<br>
&gt;         &gt;<br>
&gt;         &gt; &gt; imagine trying to design something like that<br>
&gt;         &gt; &gt; which is also backwards compatible with the<br>
&gt;         &gt; &gt; crude namespacing tools that already exist in Pd.<br>
&gt;         &gt; &gt;  It&#39;s not possible<br>
&gt;         &gt;<br>
&gt;         &gt;<br>
&gt;         &gt; ok, here&#39;s where I&#39;m a bit confuse. You&#39;re not saying it&#39;d<br>
&gt;         be<br>
&gt;         &gt; impossible to make messages inherit the $0 value, are you?<br>
&gt;<br>
&gt;<br>
&gt;         Wow, you keep beating that horse after its dead for quite a<br>
&gt;         while by<br>
&gt;         now. It is _not_at_all_ about technical difficulties (probably<br>
&gt;         it is<br>
&gt;         indeed difficult, I don&#39;t really know). It&#39;s about breaking<br>
&gt;         consistency.<br>
&gt;         Expanding arguments of the parent is different from expanding<br>
&gt;         to<br>
&gt;         elements of incoming messages.<br>
&gt;<br>
&gt;         While I understand your frustration to some degree, I don&#39;t<br>
&gt;         think this<br>
&gt;         debate is going lead anywhere, simply because of that fact<br>
&gt;         that I don&#39;t<br>
&gt;         believe any dev will deliberately introduce inconsistencies<br>
&gt;         just for the<br>
&gt;         sake of convenience. And yes, I understand the convenience of<br>
&gt;         $0<br>
&gt;         expanding to the canvas-local ID and yes, it would probably<br>
&gt;         make<br>
&gt;         patching simpler. I am very much with you in this respect.<br>
&gt;<br>
&gt;         Roman<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt;         _______________________________________________<br>
&gt;         <a href="mailto:Pd-list@iem.at">Pd-list@iem.at</a> mailing list<br>
&gt;         UNSUBSCRIBE and account-management -&gt;<br>
&gt;         <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
<br>
<br>
<br>
_______________________________________________<br>
<a href="mailto:Pd-list@iem.at">Pd-list@iem.at</a> mailing list<br>
UNSUBSCRIBE and account-management -&gt; <a href="http://lists.puredata.info/listinfo/pd-list" target="_blank">http://lists.puredata.info/listinfo/pd-list</a><br>
</div></div></blockquote></div><br></div>