3 ms·
I read this Wikipedia article and some examples: https://en.m.wikipedia.org/wiki/Common_Lisp_Object_System https://en.m.wikipedia.org/wiki/Common_Lisp_Object_Sy
by opportune 3y ago
I read this Wikipedia article and some examples: https://en.m.wikipedia.org/wiki/Common_Lisp_Object_System https://en.m.wikipedia.org/wiki/Common_Lisp_Object_System
Yes, the article calls it powerful, but aside from the ability to update classes and their functions at runtime - which, maybe I’m missing the utility of so I won’t say it’s useless although in my experience a SharedInstanceSingleton or LocalImmutableConfig or BatchedMonitoringEvent wouldn’t need it - it’s “just” dynamically resolving the method implementation to use based on argument types dynamically and letting you provide an order of precedence for diamond inheritance.
I think it does solve one problem I have - with some solid tooling and a guarantee that class updates at runtime don’t disrupt ongoing calls, it might let me patch running binaries without doing a full update. Though, the cost is that I seem to incur a few extra lookups or even sorts on each dynamically dispatched method, to resolve the implementation? Besides that it doesn’t seem to really solve most problems I have regarding I/O or state - having the option to update some of these at runtime is interesting but it seems like something I’d only want to selectively enable
- varjag 3y agoin my experience a SharedInstanceSingleton or LocalImmutableConfig or BatchedMonitoringEvent wouldn’t need it When you can't have something, it often becomes felt that you don't need something.