It's a little bit of explanation of a project I'm doing as well as something I'd have liked to read years ago when I was sure I was just doing it wrong.
It's a little bit of explanation of a project I'm doing as well as something I'd have liked to read years ago when I was sure I was just doing it wrong.
I've always been searching for this mindset but I rarely read / hear about it.
Would be cool if it targets WASM, this something I'm super interested right now, there are a lot of advantages on targeting WASM one of them is the interoperability with other components written in different languages, this will be when the component model[1] get's finished and implemented.
[0]http://unison-lang.org [1]https://component-model.bytecodealliance.org
It is actually one of the problems I have with common lisp, its impossible to do a semantic hash on arbitrary common lisp functions so I create more history that I need, since a reordering of independent let forms cannot be easily detected to preserve functionality
I've tried all of them, I think the closest thing I've seen to what you describe, which I also find very attractive, is the GT Smalltalk environment: https://gtoolkit.com/
Have you tried that? They call this idea "moldable development" as you can "mold" your environment to your needs.
Even though I loved it, I ended up not using it much, mostly because it's a bit too heavy to keep handy for exploration all the time when needed (it takes like 1GB of RAM even when idle!)... as I already can do most of that with emacs, which is much lighter, I just stick with it.
It's a simplified smalltalk (like pharo, forked from squeak), where the emphasis is on having a base system that you can reasonably fit in your head (think scheme vs common lisp).
Here you'll find much of what you described, including per-method revision history.
BTW, it comes with a rebuilt morphic gui with flawless scaling - unlike most smalltalk, this one actually looks crisp - even on large displays