Live data from Hacker News

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

project-mage.org

51–60 of 74 posts

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

#51
post #43

Me: this task is big, I’m not at all sure whether it’ll take a week or two, let’s better subdivide it into subtasks and estimate each one in turn This guy: I am pretty sure I can get done in ~5 years Seriously, though, fingers crossed! I no longer use CL professionally, but it will always have a dedicated spot in my heart. I’ll be keeping a close eye on this.

Planing long and talking big is simple, because you don't need to face the harsh reality of the actual challenge. You just define some goal, assume it's working and call it done. But when you plan short, you are already in front of the problems, and see the cracks, and must build your plan around them. This is a bit similar to how everyone can build and promise some elaborated framework, but still fails on the small important parts.

So not planing big, might be actual a hint that you are just more based in reality, than in wishful thinking. Which can be seen as good.

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

#52

It makes me sad to see these kinds of efforts in 2023. It just seems very likely that we will have various advancements in AI (for example Hey GitHub) for input methods/ text-editing before this reaches to an MVP stage. While even 5 years ago I would choose Emacs and split ergonomic keyboards over any other cool new solution, I feel like recent developments in AI are just too good.

How exactly do you expect advancements in AI to make this kind of project redundant?

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

#54

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 enjoyed Emacs is Not Enough, I think it nailed trying to make it's point on why modern computing is so user hostile. I've sent it to emacs users I know, and they, too, have enjoyed it.

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

#55

Earlier quoted context omitted.

I think you mean you like emacs but got hit by autocorrect. I think the key is to duplicate a mid nineties office suit that is hackable with a programmers IDE thrown in. Something like AppleWorks or MS Works with a database that is universal across all the documents in the suite with structures that allow reuse

I think he meant Common Lisp macros, a powerful feature of the language (and missing from Smalltalk) that allows one to easily write code that writes code.

Are macros performant enough to allow a power user to replace a scripting language like elisp for a long file of strings, which if I remember correctly was the main issue with using emacs over clisp, unstructured strings.

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

#56

Earlier quoted context omitted.

I think he meant Common Lisp macros, a powerful feature of the language (and missing from Smalltalk) that allows one to easily write code that writes code.

Are macros performant enough to allow a power user to replace a scripting language like elisp for a long file of strings, which if I remember correctly was the main issue with using emacs over clisp, unstructured strings.

Common Lisp macro expansion happens at compile time, so they wouldn't affect runtime performance.

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

#57

As a user that is annoyed but some of the things you mention. Will I require to learn Common Lisp to use project-mage?

The thing about power-user software is that you can customize and package it to the point where it's indistinguishable from any other software, a polished end-user experience -- the user accepts the workflow of the given configuration and rolls with it, without ever touching the config. That's how some people use Emacs -- they just learn the bindings of the default distribution. But, for Emacs, there are also some distributions like Doom Emacs and such. They are just different user-friendly distros.

What's more, if you have good GUI capabilities (which Mage will have), you could build visual user interfaces for configuration (I don't plan to make such UIs btw, but someone with a good-enough UI sense and interest in this stuff could attempt it at some point, I guess).

If all you do is stick to some distro with some visual config tool, then you won't even have to know it's common lisp (unless some error is signalled and the interactive debugger pops up).

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

#58
post #56

Earlier quoted context omitted.

Are macros performant enough to allow a power user to replace a scripting language like elisp for a long file of strings, which if I remember correctly was the main issue with using emacs over clisp, unstructured strings.

Common Lisp macro expansion happens at compile time, so they wouldn't affect runtime performance.

...but it's a fair thing to think about if the "poweruser" interface encourages creating new macros on the fly. Common Lisp can "compile" at the REPL or otherwise in the live environment.

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

#59
post #52

It makes me sad to see these kinds of efforts in 2023. It just seems very likely that we will have various advancements in AI (for example Hey GitHub) for input methods/ text-editing before this reaches to an MVP stage. While even 5 years ago I would choose Emacs and split ergonomic keyboards over any other cool new solution, I feel like recent developments in AI are just too good.

How exactly do you expect advancements in AI to make this kind of project redundant?

It's not about making it fully redundant, but more about taking away a good chunk of the critical mass of users.

If you could manipulate code by just voice or if you can write entire programs by natural language descriptions, would you really need a very capable and extensible text editor most of the time?

Just for context, I'm an Emacs user for almost my entire programming career. And I enjoy crafting my Emacs for speed and efficiency.

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

#60
post #28

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…

Isn't It Obvious That C Programmers Wrote Git also a bit ranty. It was never made clear how Mage would make what-git-does better. And isn't it obvious that C Programmers also wrote unix, kernels and userspaces?

My point isn't so much to reinvent Git's model (aka tree of blobs/commit/commit-graph), but rather to make it a part of a programmable interactive environment, and then just do the right thing from the user perspective.

That would include:

(1) Develop a UI for navigating the model,

(2) Develop a set of commands that act on the objects of that model.

I do want to append to the Git model by introducing the staging step for the whole tree (this, unlike with commits, won't have to have a history). I also think it could be possible to make it more flexible. So, you could say that there are blobs. But instead of blobs you could have some other kind of object too: for example the kind that would lazily compute itself from the definition of some other similar object. Or the kind of of object that would have knowledge about its contents, have an efficient way of storing it, maybe. So, I don't really want blobs (binary large objects), but rather a general kind of objects. Such objects would obviously need to conform to some API spec. Such objects could be written by the user (although, then he would have to supply the definitions to the others who want to use this). A tree could hold different kinds of such objects.

There's definititely some design that will have to go into commands. The commands would have to be taught to be context-sensitive (e.g. to selections or to the current state of the graph or commit).

A session-time undo graph for the repo-staging tree could be built as well. Easy implementation: copy the whole damn thing to memory on every change (only works for small repos, but that's a start). Harder implementation: define the inverses for the commands and build an undo graph.

I will admit: I am by no means an expert on version control systems. So, thanks for expressing the fact I didn't write about this, there's definitely some challenge to this, and I don't have any sort of final design in my head quite yet.

Post reply on HN