(no title)
some-mthfka | 3 years ago
Yep, and, presumably, you could then interact with it with your mouse, like draw something in it.
(One correction though: it doesn't have to be a Lisp IDE, but just any Runic document.)
There are a few facts at play: 1. Lenses are cells, which means they are just graphical objects responsible for their own graphical output and input handling (among many other things). 2. An image editor would be a cell as well. 3. A lens could, at runtime, dynamically, inherit from the image editor via an :is-a relationship, and, thus, become an image editor too.
Of course this would require some UI programming to get right, but that's the idea.
> Also, what is it about Lisp specifically that makes it suitable for this undertaking?
Please, see: https://project-mage.org/why-common-lisp
TLDR: It's an image-based language, and interactivity is a top-priority for power use. For instance, if something goes wrong, you don't want the application to crash. Incremental development for GUIs in general is pretty crucial. So, the only other candidate could be Smalltalk, but I like Lisp better.
aleks224|3 years ago
To clarify, the specificity of Emacs is that it fully exposes it's internal function sets to the world. This could be done by other applications in an organized way. For example, in the picture-editing app example, it would amount to allowing scripting over the features that the app exposes. The scripting feature would come from the environment, not from anything specific the app itself does (apart from being built in that environment). The previously mentioned IDE could then be thought of simply the multi-tasking environment in which such generic applications are running.
Does this roughly correspond to what the project is about?
some-mthfka|3 years ago
I also like to think about this in terms of "building blocks", not just an exposition of API. So, Emacs has the notion of a buffer for its building block (the only one, I believe). Cells and lenses will be building blocks.