It is a real interesting research question: How an you build Systems that can evolve over a long time ?
Systems which evolve over time need to have a very tiny core which is supremely malleable. For one, I would start with a "Forth" and add an object-system to it using the "Metaobject Protocol" along with a Common Lisp like "Condition System".
Forth in the context of the core of an object system is interesting⦠someone did in 1979 a Smalltalk and Forth inspired system called âRosetta Smalltalk"
https://dl.acm.org/doi/10.1145/1113572.1113555 <https://dl.acm.org/doi/10.1145/1113572.1113555>
But: the nice thing of evolving a system is that you *always* can show a real, working result. You can have users, including yourself⦠you can find ways of financing your work that is not just promising something for the future. (which you can only do so often before people get sceptical).
I think being part of the early Squeak community kind of burned for me the âletâs not improve that (relatively) simple thing A, instead wait for <genius X> to finish <amazing Project Z>.
Imagine instead you would build a feedback-loop *inside* of your system...
Marcus
Agree about what you felt within the Squeak community, I was there too around 1999~2000. There were a bunch of geniuses there, but the way I understand it, geniuses produce the initial spark, but you need strong-willed, perseverent people to kindle the project there-after.
The reason I was drawn to Pharo is because of what Ducasse and you and others like you have done with the core spark of Smalltalk-80 based Squeak running Morphic. Though, I've always liked the MVC environment more and fell in love with the "Third-Way" project to deliver a full-blown widget-set for MVC developed by a guy called Gartner (I think) from Germany.
Do you have a pointer?
Can you elaborate on your feedback-loop *inside* the system idea? Especially in the context of Pharo?
So your âSystems which evolve over time need to have a very tiny core which is supremely malleableâ I actually think is very true.. and Pharo clearly is not there yet. (and what that even is supposed to be.. has many answers). But what we technical people are the quickly to say âa malleable system needs a very tiny core, so letâs first do thatâ. And abandon what we have. But if you step back, for the end-âuserâ (that is programmer) it would not change much, it would solve nothing on that level of the problem of how to evolve a platform *and* the systems using it. Which might be even harder to do right than the kernel... Another aspect is that âlets build the perfect evolvable systemâ is as impossible as âlets build the perfect systemâ⦠when you are done, you realise that you could do even better! Marcus