Replies: 2 comments 2 replies
-
@jcmkk3 Thanks for your detailed post. I used Python notebooks some years back when going through some fast.ai courses. My impression at the time was that it was nice for presenting results (and replicating the results of others) but for things that got larger I felt quite a bit of frustration (e.g. searching within a single browser page looking for the appropriate thing to evaluate). Perhaps things have improved in recent times :) Do you know of any good resources that summarize / give rationale for why the notebook / Jupyter approach is a good one? |
Beta Was this translation helpful? Give feedback.
-
Thanks for these links, this definitely looks like a fun project to investigate. |
Beta Was this translation helpful? Give feedback.
-
I've been working on and off over the last few weeks to get Janet working with Jupyter. Much of this time has been spent just gaining familiarity with C and C++ (the kernel implementation that I was attempting to use). I have mostly been spinning my wheels and realize that I'm in way over my head. Even if I do get it working, it will be too much of a hack job. While I'm abandoning implementing this myself, I did want to outline the value proposition in case someone else more capable would be interested in picking it up.
For those not too familiar, Jupyter is an ecosystem of projects built around common APIs for the purpose of interactive computing. In practice, this manifests itself most commonly as developing in notebooks (example in python). I think that there are probably many similarities to lispy staples like network repls and repl driven development, but I don't come from that world and can't speak too deeply about it. Notebooks are not the only way to work in Jupyter, however (see below). The real essence of Jupyter is a focus on interactive computing with rich outputs (it works just fine with textual output as well) and a surrounding ecosystem.
To use Janet in Jupyter, a kernel would need to be implemented. This kernel allows the rest of the Jupyter ecosystem to interface with Janet. Luckily, Janet is built with C so it can be implemented using the xeus reference kernel. The documentation is very detailed and there is a minimalistic example that can be used as a starting point. I believe that for someone with C and C++ knowledge, it would be relatively straight forward.
Below are some additional details, if anyone's interested in the greater Jupyter ecosystem. Many of these would just work by implementing a kernel, however, some would need some additional support for Janet.
If anyone is interested, I'm happy to provide any support that I can (most likely my knowledge of the ecosystem itself).
More About Jupyter
Editor Tools
Use Case Ideas
Other Interesting Projects
Beta Was this translation helpful? Give feedback.
All reactions