this post was submitted on 25 Nov 2023
1 points (100.0% liked)
Emacs
7 readers
1 users here now
A community for the timeless and infinitely powerful editor. Want to see what Emacs is capable of?!
Get Emacs
Rules
- Posts should be emacs related
- Be kind please
- Yes, we already know: Google results for "emacs" and "vi" link to each other. We good.
Emacs Resources
Emacs Tutorials
- Beginner’s Guide to Emacs
- Absolute Beginner's Guide to Emacs
- How to Learn Emacs: A Hand-drawn One-pager for Beginners
Useful Emacs configuration files and distributions
Quick pain-saver tip
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I'd rate this as a story about the benefits of literate programming, and emacs org-babel is certainly best-of-breed for that. A more mainstream workflow for it might be through Jupyter notebooks, but they have several deficiencies compared to org-babel, chief of which is that one can't present blocks out-of-order in Jupyter, but can do with org-babel-tangle. as far as I know, no literate-programming solution can pull code off disk and put it in a document (the anti-tangle direction), let alone update a doc when code is modified. It's doable (start with git-actions, maybe?) but difficult. The lack of anti-tangle stopped my team from adopting literate programming as a collaboration tool, but it's still great in the downward direction, i.e., from doc to code.
I'm hoping Quarto will Jupiter - it's still not as flexible as org-babel but better version-controlled than Jupiter.
Pluto.jl apparently is reactive and immediately updates.
I'd agree but it goes a bit beyond. Each file has pointers to the source code that is locally checked out. Sure it's not dynamic (e.g. my comments and understanding of what's going on don't sync with the codebase as it changes), but it still allows me to keep a mental map of what's going on and where each piece of the pipeline resides.
It's a mixture of roam, literate programming and an IDE for me. E.g. I can easily spin up a vterm, ssh into a spark node and test some of the code if I don't understand what it's doing thoroughly or to check if something isn't doing what is intended.
In my use case, collaboration is not required. I'm doing it for me so there's no real cost to the documentation and understanding getting out of date. I find emacs an invaluable tool to deepen my understanding and test things in the codebase. An IDE just doesn't fit the bill in that regard.