Reposting a classic in case any of the new folks here haven't seen it.
02/15/2024, 9:44 AM
Video for same paper^:
Reposting a classic in case any of the n...
02/15/2024, 5:59 PM
I would enjoy learning more details about why and how this works under the hood. Details / links / discussion.
02/15/2024, 8:23 PM
I would also enjoy this. I haven't seen any other related publications about this project.
02/16/2024, 3:48 AM
I suggest that we discuss and try to reverse-engineer.
Allow me to begin with an opening salvo. Comments & push-back expected.
If I think only of an MVI (Minimum Viable Implementation - ignore all concerns for "efficiency"), I see something fairly simple:
Basically, the REPL (the slider) clears the IDE state, peels one frame-state out of the frame-state array (database, whatever) and loads that state into the IDE, re-rendering the game window and the editor window. Re-loading the source code can use git-like technology. Re-loading the display list and the debugger state means pasting binary data. If you convert the binary data to text, you can use git here, too.
If you own the code for the debugger, the game display engine and the editor engine, then it shouldn't be a problem to ensure that they all use data that is wholly contained in some convenient state location(s) that can be serialized and deserialized to a database. Modern dev machines are fast and memory-endowed, so there is no reason to optimize this stuff until proven guilty.
I've been playing with this for a week now, happy to answer any questions.
First impressions, this is a really powerful concept. The implementation can be rough around the edges, but nothing a lisper or smalltalker isn't used to these days.
The value of live coding, to me, outweighs everything else.
02/19/2024, 5:26 PM
I'd love to see some screenshots/videos.
02/19/2024, 10:55 PM
02/20/2024, 1:22 AM
I'll post something once I've got more of my code running than crashing :(
But basically it's live coding through late binding.
You can redefine functions and other things at runtime, anything that calls that function after will now run the new code
I was able to live code react for example by running render on a 1s timeout and redefining ui components in the built in code editor
Similar to what webpack hot module reload does, just a little less clever
calculang is a language for calculations...
02/21/2024, 9:49 AM
calculang is a language for calculations, It aims to be:
• shareable, communicable 💬 💌
• transparent, verifiable 🕵️♀️
• understandable, concise 📖
• flexible, reusable ♻️
only for calculations ⇔ numbers ⇔ workings
calculang doesn’t ‘do things’ (“side-effects”) like regular programming languages 💥
This serves to simplify, permitting the aims above for calculations, numbers, and their workings ✅️
02/22/2024, 7:13 AM