If anyone is looking to avoid relatives over the winter holiday season,
here's an idea for a big feature to add to DrRacket (which I really wish
I could do myself right now)...
If you've not seen a "notebook" interface, like in Jupyter Notebook and
some other data science-oriented tools, one way to look at it is like a
literate programming REPL that can be edited, stored to a file, and
loaded. You can also share these notebooks with others, or generate
formats like HTML or Markdown (such as for blog posts).
The notebook is a document that's a sequence of text cells and code
cells, and the code cells include the output (e.g., expression results,
displayed plots) from the last time the code cell was evaluated (if it
was). Each code cell also displays a small serial number that indicates
in what order it was last evaluated (if it has been), which is not
necessarily the top-to-bottom order of the document while you're working
with it. Of course, you can clear this code evaluation and output at
any time, and cause all the code cells to be evaluated in-order.
IIRC, DrRacket emphasizes the Definitions window over the Interactions
window (aka REPL), to reduce confusion for students. I think the
confusion level of the Notebook interface is somewhere between that of
Definitions window and a REPL. So the notebook interface might not be
good for new students, unless they're already comfortable with the
notebook interface from other classes.
Implementation-wise... the people here who built DrRacket can correct me
or say more about this, but it seems DrRacket implementation might
already include most of the difficult work of implementing a notebook
interface. The evaluation engine is there, and there's UI for snips in
the Interaction window, and UI for embedding blocks of other formats in
the Definitions window. Maybe combine/adapt that in a new Notebook
window, or implement this as features of the Definitions window. Then
you can decide whether to also implement the JSON save format of Jupyter
Notebook, for possible later interoperation. And other things after
that, like in-buffer Markdown or Scribble rendering of text cells.
--
You received this message because you are subscribed to the Google Groups "Racket
Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to racket-users+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.