4 ms·
I don't know! Which is exactly why I ask the question. I think it would be a nice option to have, especially on systems that are supposed to run for a long tim
by roeles 4y ago
I don't know! Which is exactly why I ask the question.
I think it would be a nice option to have, especially on systems that are supposed to run for a long time.
I _guess_ it often involves bringing parts of the system down, or living with multiple versions of code inside your system.
I know a little bit about how Erlang does it, but I have never seen a real-world example using Smalltalk. I suspect there must be, since Alan Kay emphasizes "growing" software in some of his talks.
- igouy 4y agoHelps to have some idea of what you might or might not have assumed. As you say "bringing parts of the system down, or living with multiple versions of code inside your system" — at least momentarily some other modifications to data will be paused. In practice, the data is probably in a relational database and that will determine how the transition is done. Here's an experience paper from long ago: https://news.ycombinator.com/item?id=31162816 https://news.ycombinator.com/item?id=31162816 ---- When everything is within Smalltalk — create-update-delete methods to change behavior; to change state, find all instances, copy data to new objects, magically become: all references to reference the new objects instead of the old objects, check that GC removed the old objects, and save. These Computer History Museum videos might show something like that: https://computerhistory.org/blog/introducing-the-smalltalk-zoo-48-years-of-smalltalk-history-at-chm/ https://computerhistory.org/blog/introducing-the-smalltalk-z...
- roeles 4y agoThanks for the exhaustive response!