This is an automated archive made by the Lemmit Bot.

The original was posted on /r/java by /u/cyrilou242 on 2023-11-03 16:27:07.


Years after jshell first release, interactive programming, notebook style development and data viz is still not Java’s forte.

The Jupyter notebook way has its con and IMHO does not really integrate well with the java development flow and tools. Recently there’s been many new interesting approaches to the notebook paradigm with systems like Observable and Clerk.

Here is my attempt to build a reactive notebook system for java: jnotebook

Specifically I try to address the following problems:

  1. notebook editors are less helpful than IDE editors

–> jnotebook interprets JShell files and renders them as notebook. You can use the IDE of your choice to edit the files. Code completion and all IDE nice things stay available. Version control is straightforward. 2. out-of-order execution causes reproducibility issues

–> jNotebook always evaluates from top to bottom. jnotebook

builds a dependency graph of Java statements and only recomputes the needed changes to keep the feedback loop fast. 3. the Java ecosystem does not provide a great experience for visualization and document formatting

–> cells outputs are interpreted as html. This gives access to great javascript visualization libraries and standard html for formatting. Helpers are made available for this.

If you find this interesting, I’d love to get your feedbacks.