An experimental new in-browser IDE is attempting to provide software developers with a programming environment that has the interactivity and richness of data notebooks like Jupyter.
Carbide can be used either anonymously or with a GitHub account to save work as GitHub gists. The Carbide editor lets you type code in a right-hand pane and execute it interactively; the left-hand pane can be used to provide line-by-line Markdown-format code annotations. In-line comments can still be used, but this method allows code comments that are more freeform -- they can include hyperlinks, images, or anything else Markdown allows.
Highlighting any expression in the code and hitting Ctrl-I (Cmd-I on the Mac) attaches a "probe" to that expression. Probes are essentially live inspection tools that show the value of whatever they're attached to, but also allow live manipulation of those values, with the results shown in real time.
Multiple blocks of code, aka cells, can be inserted into a document, and they work in much the same manner as different files would in a conventional IDE. Cells can interoperate with ES6's
In an intriguing development, Carbide allows live manipulation of values that are computed rather than assigned. "To figure this out, we have to essentially run the program backward -- fixing the outputs, and solving for the inputs," states Carbide's documentation. It's unlikely that Carbide could do this for all data types in all circumstances, but the point is clear: It allows programmers to experiment with data as freely as possible in conjunction with running code.
Another currently available project, Tonic, has many of the same live-notebook-coding features as Carbide. Kevin Kwok, one of Carbide's creators, stated in a discussion thread on Hacker News that the two have key functional differences:
As far as I'm aware, Tonic is designed so that there is only one way that a program can execute, so there's any notebook is automatically trivially reproducible. This has the side effect of making every notebook essentially equivalent to a single file which is evaluated in-order. Essentially, they've made it so cells only mediate what output is displayed, and not what gets executed. Carbide takes the opposite approach -- leaving cells to only control what gets executed, and introducing something else (probes) to visualize output within a cell.