The ideas of what I wanted to do were always somewhat within reach but I just didn't have the time to dive that deep into the code.
Anyone have any ideas or experience on this? Just curious to start the discussion.
The ideas of what I wanted to do were always somewhat within reach but I just didn't have the time to dive that deep into the code.
Anyone have any ideas or experience on this? Just curious to start the discussion.
gave up because -- well, Lisp, right?
kids these days ... get away from the computer, sit down and read the wizard book alreadyhttps://mitp-content-server.mit.edu/books/content/sectbyfn/b...
That would be an utterly misguided approach. Lisp is amazing, you just need to give it a chance to be appreciated. Accept it with all its flaws and immense power, surrender to the malleability of the structure, dynamism of types and its homoiconic nature and you may find something incredible that would last you a lifetime.
You need to conquer two aspects - structural editing and REPL. Learn basic structural editing idioms - find a way in Emacs (or whatever editor of your choice) for automatically balancing parentheses, for slurping, barfing, transposing s-expressions, cutting and pasting them. That will make all your programming like literally assembling lego blocks - something every other (more traditional) programming language promises yet somehow fails to deliver.
Then learn eval commands - get into the habit of REPL-driven development. With Lisp, you don't have to wait for compiler, transpiler, linker, linter, etc., you can just write anything and see how it runs in-place. Often, you don't even have to save anything to a file. Relevant video to watch: https://www.youtube.com/watch?v=8Ab3ArE8W3s - Stop Writing Dead Programs by Jack Rusher.
Try modern Lisp dialects - there's plenty to choose from depending on what kind of tasks you're trying to solve - Clojure, Janet, Fennel are all very fine candidates. Clojure is especially nice if you need to deal with data. In my opinion it's hands down the best medium for data manipulation - nothing even comes close to the joy of how you can quickly filter, sort, group, slice, dice any kind of data - json, csv, streamed, etc.
Besides, nature of Lisp simplifies certain problems to the jaw-dropping level of near absurdity. Watch this presentation and ask yourself, how would someone build anything like that in Python, JS/TS, Rust, etc. https://www.youtube.com/watch?v=nEt06LLQaBY - SpreadSheesh! talk by Dennis Heihoff
Kiboneu•6mo ago
Yes! I experimented with it on my EXWM setup. After some back and forth via Aider, it made me a module to help me control and monitor tasks on my timewarrior setup, giving me a pomodoro-like indicator on my taskbar (changing colors as it approaches one hour).
It was a cool experience! I had it evaluate the code via commands to the emacs daemon, without reloading EXWM (ballsy, but I was prepared for failure).
EXWM is extremely flexible, but there is a high barrier of entry to using and customizing it. Having an LLM embedded to a live-evaluate desktop environment makes the interface more approachable without reducing its flexibility as much.
It also allows you to create explicit controls that map to the user’s muscle memory and sub-symbolic sensing of the environment, while staying out of the way during normal usage — a different paradigm than embedding an agent as an interface in its own right to control the environment (via speech or text).
Since open source software is readily modifiable, maybe soon it will unironically be the year of the linux desktop.