On Wed, Dec 9, 2020 at 4:36 AM Hans Hübner <hans.huebner@gmail.com> wrote:
Am Mi., 9. Dez. 2020 um 09:10 Uhr schrieb Jean-Claude Beaudoin <jean.claude.beaudoin@gmail.com>:
I would love to see languages with better support for redefinition.
Like unison, or darklang. Unhappily,
update-instance-for-redefined-class, while very cool, is *not enough*.

My point is that it is already too much.

"I don't want to silence a lively discussion, but" several people have made the point that they found CLOS's  mechanisms to deal with class redefinition useful.  I can add myself to the list:  When I was writing a CLOS based database system, I used CHANGE-CLASS and the associated helper methods to support schema evaluation.  It did not work perfectly for all cases, but it worked well enough and felt like the MOP API was made exactly for this kind of thing.

Given the discussion until now, Jean-Claude, what is it that you're trying to accomplish with this debate? 

I am curious to survey the state-of-the-experience-so-far on this issue.
 
Are you up for proving that the MOP is "wrong"?

No, not "wrong" on any "essential" point at least.
 
You have repeatedly indicated that this would be your opinion. 

Had no awareness that I did so up to this point.
 
If so, are you trying to create a new version of the MOP that would not include class redefinition hooks? 

No, I still consider AMOP to be part of the holy scriptures of Common Lisp.
 
Or are you up for creating a new Lisp or a new Lisp object system that is inspired by the MOP but somehow different?

I am not that ambitious. (And make it fly on the top of it, man! I would be out of my mind, wouldn't I?)
 

I think the ship has sailed anyway.  Common Lisp, CLOS and the MOP are what they are.  I still think they're beautiful, but they are also a product of the era in which they were created.  Time has not stood still, and 20 years have passed without CL having changed or adapted to any new developments in computing.  Even though in many respects, Common Lisp has aged well, there are areas in which the language itself is in the way of adapting to the modern world.  Multiple threads come to mind, as do cons cells and CLOS, too.  What else is there?  I'd be interested in reading opinions.

I like using CL when I know that I don't need scalability and when I know that I'll be the only developer of the program that I'm writing.  Under these circumstances, I enjoy it very much because it caters for this setting.


And I'd like it with scalability too, how about that?  The "only developer" part I simply do not get. What is the deal with the solitary state here?

 
-Hans