When your powers combine
See original GitHub issueI’m dealing with an internal struggle right now. There are at least 3 Jupyter kernels for node.
For IJavaScript, Nicolas Riesco extracted the messaging protocol to a separate package (https://github.com/n-riesco/jmp) so it could be used by other node applications (Electron and Atom apps e.g.). My current preference is IJavaScript because I’ve been using it, liked the layout, the documentation, the installation process, etc.
The juptyer-nodejs
package has wonderful magics and I know you (@jaredly) as an active member of the community.
I’m torn because I’d like to refer to one kernel for Node, especially if any of them were to go up on https://try.jupyter.org.
Where do you think the differences are? What would help foster a common set of packages amongst developers?
/cc @n-riesco
Issue Analytics
- State:
- Created 8 years ago
- Comments:11 (6 by maintainers)
Top GitHub Comments
First impressions of
IJavascript
What does IJavascript have that jupyter-node doesn’t have?
What does jupyter-node have the ijavascript doesn’t have?
%%coffeescript
,%%babel
,%%clojurescript
magics (setup extensibly)!echo "shell commandable"
arbitrary shell commands (mimicking ipython), andcd somedir
to change directory (I not positive ijavascript doesn’t have this, but it appears so)The only other difference I see is IJavascript’s use of
$$magic$$
variables.jupyter-node
on the other hand uses adisplay()
function (modeled after ipython’sdisplay()
function) that can be invoked two ways:display(something)
, and it will be automatically determined how to show it (this is not yet very clever)display(something, mimetype or "stderr/out")
for exampledisplay(pngdata, 'image/png')
I find this more flexible than the global magic variable route, for a couple of reasons:
display()
can be called anywhere, and multiple times.$$png$$
can only be set once per execution blockdisplay()
allows for the addition of further mime-types without having to remember more global variable namesdisplay()
can also stream data, e.g.display("error", "stderr")
@jaredly, what is the rubric for deciding which functions go into the sandbox and which don’t?