Re: Multiple Inheritance / Generated Hidden Code

Holger Kleinsorgen <[email protected]> Mon, 25 Aug 2025 12:03:15 +0200
Newsgroups gmane.comp.lang.smalltalk.vwnc
Message-ID <CAGhifEzd+7CtMgwKK2YKSWRtUcfAwHda82iq=6KVTyZzys1SWw@mail.gmail.com>
--000000000000ceb1f1063d2daac3
Content-Type: text/plain; charset="UTF-8"

Code compiled on-the-fly (e.g. anonymous subclasses) didn't work for me,
because it gets unmaintainable (especially with regard to debugging) pretty
soon.
While it doesn't cover resource management, something
like ViewEventController and its composition of ViewBehaviors is pretty
flexible and might be adapted to your needs.

Holger

Am Fr., 15. Aug. 2025 um 11:23 Uhr schrieb stephan <[email protected]>:

> On 15-08-2025 10:03, andre wrote:
>
> Thanks, Helge.
>
> Having said that, none of this hasn't got wide acceptance. Probably
> because the problems they were thought to be solving weren't in the end so
> ubiquitous that it made sense to pursue them any further.
>
>
> With most business applications these problems may not arise.
>
> Multiple-inheritance shines with deep UIs (e.g. Dragable, Audible,
> Exportable, Browseable, Convertible) and complex resource management, where
> responsibilities and roles are shared  across different class hierarchies.
>
> With Smalltalk it's easy to build up large convoluted structures, but its
> hard to properly tear them down and clean up *immediately* (i.e. where GC
> is not enough). MI helps with encapsulating these responsibilities because
> the entire life cycle of each role/feature/capability  is coded only in a
> single place.
>
>
> An Entity Component System can also be build using just single inheritance
> and composition.
>
> Stephan
>

--000000000000ceb1f1063d2daac3
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Code compiled on-the-fly (e.g. anonymous subclasses) =
didn&#39;t work for me, because it gets unmaintainable (especially with reg=
ard to debugging) pretty soon.</div><div>While it doesn&#39;t cover resourc=
e management, something like=C2=A0ViewEventController and its composition o=
f=C2=A0ViewBehaviors is pretty flexible and might be adapted to your needs.=
</div><div><br></div><div>Holger</div></div><br><div class=3D"gmail_quote g=
mail_quote_container"><div dir=3D"ltr" class=3D"gmail_attr">Am Fr., 15. Aug=
. 2025 um 11:23=C2=A0Uhr schrieb stephan &lt;<a href=3D"mailto:stephan@stac=
k.nl">[email protected]</a>&gt;:<br></div><blockquote class=3D"gmail_quote" =
style=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);pa=
dding-left:1ex"><u></u>

 =20
   =20
 =20
  <div>
    <div>On 15-08-2025 10:03, andre wrote:<br>
    </div>
    <blockquote type=3D"cite">
     =20
      <div>Thanks, Helge.</div>
      <br>
      <blockquote type=3D"cite"><span style=3D"color:rgb(0,0,0);font-family=
:Menlo-Regular;font-size:13px">Having
          said that, none of this hasn&#39;t got wide acceptance. Probably
          because the problems they were thought to be solving weren&#39;t
          in the end so ubiquitous that it made sense to pursue them any
          further.</span></blockquote>
      <div><br>
      </div>
      <div>With most business applications these problems may not arise.</d=
iv>
      <div><br>
      </div>
      <div>Multiple-inheritance shines with deep UIs (e.g. Dragable,
        Audible, Exportable, Browseable, Convertible) and complex
        resource management, where responsibilities and roles are shared
        =C2=A0across different class hierarchies. <br>
      </div>
    </blockquote>
    <blockquote type=3D"cite">
      <div>With Smalltalk it&#39;s easy to build up large convoluted
        structures, but its hard to properly tear them down and clean up
        *immediately* (i.e. where GC is not enough). MI helps with
        encapsulating these responsibilities because the entire life
        cycle of each role/feature/capability =C2=A0is coded only in a sing=
le
        place.</div>
    </blockquote>
    <br>
    An Entity Component System can also be build using just single
    inheritance and composition. <br>
    <br>
    Stephan<br>
  </div>

</blockquote></div>

--000000000000ceb1f1063d2daac3--