Skip to content

Create IRKernel without zmq #685

@DonJayamanne

Description

@DonJayamanne

I'm one of the engineers working on VSCode + Jupyter + Python.
VS Code has a native Notebook editor. Today we have .NET, Python, Julia and a few other languages using this (the Jupyter for VS Code extension supports running native jupyter kernels in VS Code as well without the need to install Python or Jupyter, when dealing with non-pyton kernels).

I've been working on support for noteboooks in R (building on top of the existing work, see here)
REditorSupport/vscode-R#394

I was wondering whether it would be possible to have a version of the R kernel without the zmq dependencies and talk over JSON rpc or the like (see the PR).
This way, we can have a VS Code extension that ships the R code and provided users have R, then things will just work out of the box.

Whats wrong with REditorSupport/vscode-R#394. Absolutely nothing. I'd prefer we could work together on this, as opposed to re-doing all of the great work. this way users get the exact same experience (if not better) in VS Code as they would in Jupyter.

The problem with zmq is the distribution. If we create a VS Code extension, it will be written in node.js and this will need to talk over zmq and shipping that is a big pain (bits not available for all platforms, etc).

My suggestion is:

  • Talk over JSON rpc or the like (see above PR)
  • Ship this version of R kernel with a VS Code extension in some form
  • Support extensibility for plots, variables, etc (custom messages to get this out into VS Code)

Benefits

  • R user will get support for R notebooks with the exact same features already available in Jupyter with the IRKernel

Please note, I'm not an R developer, hence don't know much about distributing R code. But my assumptino is that we can ship some of the R code just as we've attempted to do in REditorSupport/vscode-R#394

Here's the existing R extension in VS Code marketplace https://marketplace.visualstudio.com/items?itemName=Ikuyadeu.r

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions