Live data from Hacker News

Project Mage is an effort to build a power-user environment in Common Lisp

project-mage.org

1–10 of 74 posts

Re: Project Mage is an effort to build a power-user environment in Common Lisp

#2
Hi! 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://project-mage.org/the-power-of-structure

Thank you.

Re: Project Mage is an effort to build a power-user environment in Common Lisp

#3

Hi! 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…

thanks for this! have you thought about hierarchical data structure manipulation in emacs style cl environments? any tools to look at?

Re: Project Mage is an effort to build a power-user environment in Common Lisp

#5
I admire your bravery for even trying to tackle this. Your rant about Emacs spoke to my soul. It's such a pain to use, but nothing else even comes close to playing the same game. I've been mulling over similar thoughts for years and there's clearly some space in the overlap between Emacs, Excel, Smalltalk and web browsers for a true power user computer interface. I'll be keeping an eye on this for sure.

Re: Project Mage is an effort to build a power-user environment in Common Lisp

#7
It was unclear to me, but some code was written.

https://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.

https://project-mage.org/Code

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

#8

Hi! 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…

I hate to taint this, but reading up on Fern I have to point to JavaFX. It rings a lot of similarity with what is being talked about here. There may be other frameworks also.

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

#9
Flexibility 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 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

#10

Flexibility 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…

Do you have examples of other "rebuild the world in lisp" projects? I'd be curious to see how and why historical attempts have foundered
Post reply on HN