<html><head></head><body>
<p>Such a constructed DynamicObject would be useful for Raven. The
plan is to extend ASN1 de/encoding to callback to the Scope for
each object in the graph being serialized to check for
substitution. So using ASN1 to encode between machines. Consider a
machine at level 1 and another machine who has advanced to level
3. Level 3 knows about #passByCopy objects that the level 1
machine knows not.</p>
<p>DynamicObject use cases, A) model an unknown class' instance, B)
class generation & C)dynamic code loading<br/>
</p>
<p>A) Level 3 machine sends such an advanced class to the level 1
machine. As this class structure gets decoded, without such a
class available, construct as a DynamicObject and set the modeled
instance variables with values. I am assuming that in addition to
methods, instance variables can be defined with the DynamicObject,
to model the ASN1 encoded object.</p>
<p>B) At this point level 1 does not know what to do about the level
3 dynamicObject. During development, an engineer could convert
this DynamicObject to a class. So class definition meta-protocol
will be needed. <br/>
</p>
<p>C) During deployment, the DynamicObject could lookup the code
Monticello package on the code server, for this new instance's
class, and load it. In this fashion a network of nodes can stay
updated.</p>
<p>Anyways, here are my use cases for DynamicObject or a similar
construct.</p>
<p>K, r<br/>
</p>
<div class="moz-cite-prefix">On 4/20/20 5:03 AM, Marcel Taeumel
wrote:<br/>
</div>
<blockquote type="cite" cite="mid:Mailbird-786b6275-f477-4cd7-9ca7-e2ca03e3c032@hpi.de">
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
<div id="__MailbirdStyleContent" style="font-size:
10pt;font-family: Arial;color: #000000"> Uhh! This feels like
JavaScript ... :o) I would rather work on improving Squeak's
meta-object protocol and with it class construction and
refinement. Especially for tests. Let's not undermine the idea
of having classes in Smalltalk.
<div><br/>
</div>
<div>-1 for DynamicObject.</div>
<div><br/>
</div>
<div>Objects in Squeak/Smalltalk are quite dynamic already. That
name is misleading. :-)</div>
<div><br/>
</div>
<div>Best,</div>
<div>Marcel</div>
<blockquote class="history_container" type="cite" style="border-left-style: solid;border-width: 1px;margin-top:
20px;margin-left: 0px;padding-left: 10px;min-width: 500px">
<p style="color: #AAAAAA; margin-top: 10px;">Am 18.04.2020
19:55:05 schrieb Thiede, Christoph
<a class="moz-txt-link-rfc2396E" href="mailto:christoph.thiede@student.hpi.uni-potsdam.de"><christoph.thiede@student.hpi.uni-potsdam.de></a>:</p>
<div style="font-family:Arial,Helvetica,sans-serif">
<div id="divtagdefaultwrapper" style="font-size: 12pt;color:
#000000;font-family: Calibri,Helvetica,sans-serif" dir="ltr">
<blockquote style="margin: 0 0 0 40px;border:
none;padding: 0px;min-width: 500px">
<p>
</p>
<div>d := DynamicObject withMethods: {</div>
<p>
</p>
<p>
</p>
<div><span style="white-space:pre"></span>#origin ->
[2 @ 3].</div>
<p>
</p>
<p>
</p>
<div><span style="white-space:pre"></span>#corner ->
[3 @ 7] } asDictionary.</div>
<p>
</p>
<p>
</p>
<div>d origin "2@3"</div>
<p>
</p>
</blockquote>
<p>
</p>
<p>
</p>
<p><br/>
</p>
<p>Did we already have something like this for Squeak? May
this become a pattern for situations where you
actually don't need a class (e. g., when writing very
small mock objects for tests)?</p>
<p><br/>
</p>
<blockquote style="margin: 0 0 0 40px;border:
none;padding: 0px;min-width: 500px">
<p>
</p>
<div>d := DynamicObject new.</div>
<p>
</p>
<p>
</p>
<div>d xxxMethodAt: #foo put: [self inform: 'Hi!'].</div>
<p>
</p>
<p>
</p>
<div>d xxxMethodAt: #foo: put: [:x | x halt].</div>
<p>
</p>
<p>
</p>
<div>d foo: 3.</div>
<p>
</p>
</blockquote>
<p>
</p>
<div><br/>
</div>
<div>Best,</div>
<div>Christoph</div>
<p>
</p>
<div id="Signature">
<div id="divtagdefaultwrapper" dir="ltr" style="font-size: 12pt;color: rgb(0, 0,
0);font-family: Calibri, Helvetica, sans-serif,
EmojiFont, "Apple Color Emoji", "Segoe
UI Emoji", NotoColorEmoji, "Segoe UI
Symbol", "Android Emoji", EmojiSymbols">
<div name="divtagdefaultwrapper" style="font-family:
Calibri,Arial,Helvetica,sans-serif;font-size:
;margin: 0">
<div><span style="font-size: 10pt;color: #808080"></span></div>
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
</blockquote>
<pre class="moz-signature" cols="72">--
Kindly,
Robert</pre>
</body></html>