Project Mage is an effort to build a power-user environment in Common Lisp
1–10 of 74 posts
Re: Project Mage is an effort to build a power-user environment in Common Lisp
#2https://news.ycombinator.com/item?id=34375137
The Emacs is Not Enough is quite ranty, and its style is not to some people's taste (well, it is kind of a rant, after all).
If you want the meat, indeed, please see any other articles on the homepage, or, for an overview of the project, this:
https://project-mage.org/the-power-of-structure
Thank you.
Re: Project Mage is an effort to build a power-user environment in Common Lisp
#3Hi! I am the author of the project. There's a discussion on Emacs is Not Enough that has been taking place today here: https://news.ycombinator.com/item?id=34375137 The Emacs is Not Enough is quite ranty, and its style is not to some people's taste (well, it is kind of a rant, after all). If you want the meat, indeed, please see any other articles on the homepage, or, for an overview of the project, this: https://pro…
Re: Project Mage is an effort to build a power-user environment in Common Lisp
#4Re: Project Mage is an effort to build a power-user environment in Common Lisp
#5Re: Project Mage is an effort to build a power-user environment in Common Lisp
#6Re: Project Mage is an effort to build a power-user environment in Common Lisp
#7https://project-mage.org/the-power-of-structure#org63e88da
> Fern is the most technical section of the bunch. Perhaps that's because much of it is implemented already (KR, constraints, basic geometry, and linear algebra).
and it doesn't do everything from zero, but is somehow based on Garnet
> Fern is a spiritual successor to Garnet, a Common Lisp project for building graphical user interfaces (GUIs). Garnet originated at CMU in 1987 and became unmaintained in 1994. It's a great toolkit which was used for many research projects, some of which are still active.
with some unit tests. This makes me want to explore more. But what does the code do? An exercise for the reader.
Re: Project Mage is an effort to build a power-user environment in Common Lisp
#8Hi! I am the author of the project. There's a discussion on Emacs is Not Enough that has been taking place today here: https://news.ycombinator.com/item?id=34375137 The Emacs is Not Enough is quite ranty, and its style is not to some people's taste (well, it is kind of a rant, after all). If you want the meat, indeed, please see any other articles on the homepage, or, for an overview of the project, this: https://pro…
But JFX captures much of this. It doesn't have your schemas (its obviously based on Javas class and object system), but it does have constraints, it does have bindings (not as sophisticated as yours, but they exist and quite useful in practice). It has the scene graph, it handles contextual styling via CSS. It has its layout components, and GUI components. It even has 3D ;).
I will say about the bindings that when the graph gets large it can be fun to try to keep in your head, and, unfortunately, there's no real way to visualize it. So, when something changes (or changes in a way you don't like), it can be an endeavor to source the change and navigate the relationships.
The primary reason I mention this is just to lift it up as an example of many of the concepts you're discussing, but in "production" code, used by many, for quite some time. There may be insights there that can be mined as to possibly decisions that were made that you could apply (or not) to your work. Are the limitations of JFX done by design? Limited by Java? Limited by performance? Limited by "haven't got to it yet"? I don't know, but, anyway, just something you may want to study a little.
I wish you luck on your project!
Re: Project Mage is an effort to build a power-user environment in Common Lisp
#9Flexibility usually interacts poorly with performance as well. Specialisation to a domain is usually faster and can be dramatically faster, but the plumbing that makes the specialisation possible has a cost everywhere.
I'm curious whether lisp's macros are sufficient to splice together dissimilar code and provide the domain specific optimisations one would want to eliminate the plumbing overhead. I would expect not but it'll be interesting to be proven wrong.
It's interesting that you're starting with the user interface instead of the sufficiently smart compiler. "I'll rebuild the world in lisp" projects sometimes (usually?) stall in the first stage of writing their compiler. I think it's quite encouraging that you're building on an existing language implementation.
That would be a lot to build in five years. Good luck and happy hacking.
Re: Project Mage is an effort to build a power-user environment in Common Lisp
#10Flexibility interacts poorly with composability. When everything is specialised at the whim of the developer, tying different pieces together is difficult. A lot of the rigidity in programming languages is there because it gives programmers (and programs) common ground to work from. Flexibility usually interacts poorly with performance as well. Specialisation to a domain is usually faster and can be dramatically fast…