-
Notifications
You must be signed in to change notification settings - Fork 438
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Live programming ideas #1351
Comments
I loved Projection-boxes, I had to watch the slowed down version to understand what's going on and it blew my mind. The approach is awesome, and it's seems like a great tool for live programming. Going through other links. |
The Microsoft paper, Usable live programming, is interesting but looks ugly in comparison to Projection Boxes. I wish there was a tool like, Kernel.dbg, for Recursive code, so I don't have to trace it manually or have a mental model for it. The paper had links to two YouTube videos, which made some sense compared to the paper itself 😅: |
This is really awesome, I liked the usage of Emoji, which made it lot less confusing than the Projection Boxes method. It's like the stepping through code and debug is happening simultaneously while coding, so no more separate code, run and debug cycle. It also has Polyglot thing, so Elixir & Erlang both can benefit I guess. Elixir will be even more developer friendly. |
Jupyter Notebook also uses the GraalVM for live feedback: Ipolyglot |
This is a great recent talk in that space too: |
I liked how he said: "Stuff it in a docker container & then ship it out to the cloud for a CI job, wait for it to compile, why do we tolerate this, Docker shouldn't exist, it exists only because everything else is terribly complicated that they added another layer of complexity to make it work, it's like they thought if deployment is bad, we should make development bad too!" No one will say no to Live Programming. A self documenting, always running code, that removes the mental burden about the state of the code while writing, it will be a game changer. I think Elixir will have the best implementation. |
Here's a related talk that explores "an immediate connection to your creation" with programming. Has some interesting examples. |
This is a much fleshed out video, with lots of working examples and filled with ideas to the brim, thank you. It points out all the pain points in programming. I really liked Swift Playground because of REPL and the immediate feedback while coding. Mapping between code and the output was next level!! The way he used that magnifying glass and it pointed out which code made that, is something I want badly. |
LiveView feels like the perfect tech to do Bret Victor's Media for Thinking the Unthinkable! |
Yup, @100phlecs also pointed out a talk by him: Bret Victor - Inventing on Principle It's like Serendipity: "The occurrence and development of events by chance in a happy or beneficial way." |
I was blown away by the the demo when Swift was introduced, back when I wanted to make games. The demo felt extraordinary!! |
At this point, there are about a dozen code notebooks. Several of these are support multiple programming languages and a couple even support Elixir. This begs the question "what can (should) Livebook do that the others can't (or won't)". One possible answer is that Livebook can support the growing variety of BEAM-based languages. In particular, it could support Erlang. I even have a minor use case to suggest for this. There is an Erlang test suite that I'd like to play with. If Livebook supported Erlang, I could incorporate these tests as executable code. |
@RichMorin there has been a discussion for it: #190 - I would suggest moving it there to keep this issue focused. |
Related to
It would be useful to have a way to navigate to a module using a keyboard shortcut, similar to what symbol navigation looks like in a code editor. |
ZeroBrane Studio Lua IDE has some nice live coding features https://youtu.be/FpxIfCHKGpQ?si=IdG7abN7w5BhEPAp&t=86 |
This is a meta issue to describe what we want to implement in relation to live programming:
dbg
. The idea is to automatically run doctests and have their output in a specific frame with a re-run button.dbg
only keeps the first/last value. We want to allow it to register several values but, not only that, have a frame that shows have the values of multipledbg
s changed over time, in order. For example with you have a loop with a nested loop, we should have alldbg
in order and control how they were emitted. See proof of concept here: https://szymonkaliski.com/projects/live-coding-livebookReferences on probing/example-based live programming:
The text was updated successfully, but these errors were encountered: