i liked reading this paper

38 views
Skip to first unread message

Raoul Duke

unread,
Dec 9, 2022, 4:55:44 PM12/9/22
to object-co...@googlegroups.com

about roles in software

James O Coplien

unread,
Dec 10, 2022, 3:49:49 AM12/10/22
to object-co...@googlegroups.com
I’ll give it a gander. I know Uwe, one of his supervising professors.

On 9 Dec 2022, at 22.55, Raoul Duke <rao...@gmail.com> wrote:


about roles in software

--
You received this message because you are subscribed to the Google Groups "object-composition" group.
To unsubscribe from this group and stop receiving emails from it, send an email to object-composit...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/object-composition/CAJ7XQb5V-Eq52RxRD_3RvEkxFCEVGgNZ4Pncs4cmxwUY%2BtufLw%40mail.gmail.com.

Matthew Browne

unread,
Dec 16, 2022, 8:47:55 AM12/16/22
to object-co...@googlegroups.com

For some reason that link took me somewhere else (when I was on my phone), so here's the page that the PDF link is on in case anyone finds it helpful (PDB download button is at the bottom):

https://tud.qucosa.de/landing-page/?tx_dlf%5Bid%5D=https%3A%2F%2Ftud.qucosa.de%2Fapi%2Fqucosa%253A30453%2Fmets

It looks interesting, especially the fact that it can be implemented in some existing languages without any extensions or code transformation. I just glanced through it and it doesn't look like it talks much about DCI unfortunately (a comparison from the author's point of view would be interesting), but the banking example is used, and DCI examples were clearly part of his research.

James O Coplien

unread,
Dec 16, 2022, 8:56:36 AM12/16/22
to object-co...@googlegroups.com
I, too, was a bit disappointed by the lack of familiarity with DCI. DCI was already maturing and published at the time he started his research. By his own admission he cut corners and made compromises out of respect for being able to spend only three years on it — a problem we did not have, and DCI is much the better for it.

In particular, the main thrust of the research — marrying static typing with the duck typing necessary for the role bindings — was already solved by trygve at this point and, in my opinion, in a much more general way (that didn’t have to make concessions to a base language or to the limited time scope of the research.)

If I’m write, this technique still depends on wrappers. Did you come to another conclusion? If so, it is really not of much interest to us at all.

I’ve been working on a mail to Uwe, whom I know, in the interest of trading notes and inquiring a bit further.


Matthew Browne

unread,
Dec 16, 2022, 11:05:20 AM12/16/22
to object-co...@googlegroups.com
Hi Cope,
I am still interested in reading the paper but haven't had time yet...so far I only read the intro and then skimmed the rest. Maybe Raoul can answer your question?

Raoul Duke

unread,
Dec 16, 2022, 1:35:11 PM12/16/22
to object-co...@googlegroups.com
well fwiw it relies on nifty scala features like dynamic mixins and more, that don't exist in more pedestrian languages. 

James O Coplien

unread,
Dec 16, 2022, 1:54:34 PM12/16/22
to noreply-spamdigest via object-composition


On 16 Dec 2022, at 12.34, Raoul Duke <rao...@gmail.com> wrote:

well fwiw it relies on nifty scala features like dynamic mixins and more, that don't exist in more pedestrian languages. 

… and that is very old work. Bill Venners was already experimenting with DCI-like stuff in Scala back in 2006. It was probably never published, but there is certainly nothing new there.

Still, you need a way for classic mix-ins to communicate with each other if they are to behave like DCI roles. There is a smell in the paper that roles both have their own independent instances and have state, both of which kind of make me scratch my head.

Your observation probably also throws water on the hope that the approach broadens to other existing languages, as the paper led Matthew to believe.

Matthew Browne

unread,
Dec 16, 2022, 2:04:58 PM12/16/22
to object-co...@googlegroups.com

The technique uses dynamic mixins in Scala, but not macros, so I suspected that it would be possible in at least a couple other languages. But the paper is clear that "the pattern requires dynamic mixins, compiler-translated function calls, and implicit conversions."

--
You received this message because you are subscribed to the Google Groups "object-composition" group.
To unsubscribe from this group and stop receiving emails from it, send an email to object-composit...@googlegroups.com.
Reply all
Reply to author
Forward
0 new messages