<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>