I'm thinking about compiling this diagram to code. I don't know if this thought experiment should be posted to thinking-together or devlog-together.
Towards Higher Level Syntax for Programming Languages 2025-12-01-1
Could you link to some example files that you allude to in the post?
- The original graphML
- The culled graphML
- The graphML for the large drawio drawing which OhmJS took up too much memory for.
In general, it seems to me that you're depending on too many tools, and the essential complexity is getting lost in the shuffle between them. You like to complain about the epicycles of function calls, but to me they're miniscule next to the epicycles of too many tools. Which is why I tend to first focus on minimizing the tools I depend on..
If you get me the files I'll take a stab at parsing them in Lua. It's hard to imagine a drawing so large that parsing it takes up a lot of memory on anything close to a modern machine..
As a meta point, Substack is another external tool you're depending on that introduces epicycles for your reader. I think it didn't always require Javascript to dismiss the nag popup to read the article, but it does now. Didn't you used to have everything on Github pages? Do you derive benefit from moving to Substack? (Sorry to side-track. It's boring, I know. I won't bring it up every time, just nag you say once in 10 times 🙂)
I have a few ideas in my head about diagrams but they are not a priority.
- visualizing the static code analysis is not that interesting. Tons of attempts. More interesting is if the current state of a running system is superimposed upon the static state diagram. Stately does this
- If you had to pick code to diagram or diagram to code. I think I pick code -> diagram as thats the least maintenance. But I think I want to aim for bidirectionality.
To that end I have a tiny prototype of super imposing the active state of a FSM on the FSM diagram. observablehq.com/@tomlarkworthy/fsm
I just read Red Blob Game's excellent drag handler post. But wouldn't it be even more communicative if the diagrams were synced to the runtime state?!
📝 Stately - Build complex logic intelligently
Build and deploy workflows and app logic with Stately’s AI enhanced, collaborative tools.
Kartik Agaram re. meta: Argh, as the substack author, I don't get to see what you see. My ideal would be to divide writing into WX and RX (Writing eXperience, Reading eXperience). Right now, for WX, I most like Keynote (basically Powerpoint) for editing one page of points with automatic-flexi-font (to instantly show me when I'm not being concise-enough - it's not the slides, but the instant feedback I want), along with Apple Pages (like Word, but more features ... it's a word-processor and a page-layout tool) and pasting .pngs (screenshots, draw.io and excalidraw exports ; .pngs instead of .svgs due to Apple) into the doc. For RX, I want both text and drawings to show immediately with no extra clicking (PDF would work, but github, Obsidian, substack, etc., etc. require extra clicking to show PDFs). But,,, I have to settle for Apple Pages and cut/paste into substack (annoying workflow for me, but, displays diagrams instantly, and, no paywall required). I tried Scrivener, github+emacs, Obsidian (I have to pay to publish - they deleted something like 100 posts when I didn't send money), YouTube+Descript, Gumroad, but, ultimately no cigar. I expected to use something off-the-shelf, instead of futzing with zillions of options or rolling my own. I guess I expect Apple to take care of the writing tools for me (it comes closer to this ideal than Linux). Maybe I need to re-visit these wishes? Hmm, maybe I just need to write an .RTF parser in OhmJS, then transpile my Apple .pages docs to markdown? How hard could that be?
You used to have github pages containing links to pdfs. I didn't appreciate them back then, but absence has made the heart grow fonder.
Kartik Agaram, I was very inspired by your comments and meta-comments! They caused me to create a YouTube Video Future of Programming converted to a Substack article Future of Programming and another set of articles on Pond'ring Aloud: Writing Articles and Blog Posts. [I'm on #3 or #4 now].
If you honestly want to get rid of tools, first, get rid of time-sharing, memory-sharing and context-switching and Windows and MacOS and Linux. These things, all, cause software bloat. Use all that stuff during software development but don't include them in the shipped app .
Use a version of Lua that runs on bare hardware, not on an operating system. Forth did that. Lisp 1.5 did that. Smalltalk kinda did that.
To me, it's the very same thing. Function-based programming needs an O/S for scaffolding. I guess that I'm playing with camera positions and trying to find one that works. It doesn't sound like I've found it, yet :-).
They're not the same thing, though. As technical artifacts, yes maybe it's a matter of fiddling with "camera positions" as you put it. But you ignore that there's an alien organism constantly moving your camera for its own ends. You have to first have stability before you can learn anything with your instruments.
(I assumed you were teasing me when you responded to my comment about taking on alien organisms as epicycles by adding yet another epicycle in the form of Youtube. But now I'm not so sure. Maybe we're just speaking different languages.)