DonJayamanne / typescript-notebook

Run JavaScript and TypeScript in node.js within VS Code notebooks with excellent support for debugging, tensorflowjs visulizations, plotly, danfojs, etc
https://marketplace.visualstudio.com/items?itemName=donjayamanne.typescript-notebook
MIT License
905 stars 40 forks source link

Support for observable notebooks #30

Closed DonJayamanne closed 3 years ago

DonJayamanne commented 3 years ago

Plan is to add this in the next release Provides rich visualizations

RandomFractals commented 3 years ago

That would be awesome. @GordonSmith built this great OJS extension that handles those notebook code cells and previews in JS and md formats: https://github.com/GordonSmith/vscode-ojs

I think we only need Observable kernel that takes into account OJS notebooks cell reactivity to close that loop.

GordonSmith commented 3 years ago

@DonJayamanne I recently went through this exercise for the ECL language / notebook (not quite released) and am looking at doing an observable JS notebook in its own right as well.

Some comments: To add viz to a language I treat each observable cell as a complete "observable notebook", which may be counter intuitive for experienced observable folks - but makes a lot more sense from an ECL (or TypeScript) developers point of view...

DonJayamanne commented 3 years ago

Not gong to do this, this extension focuses on node.js as the runtime and observable notebooks doesn't use pure JS (see here https://observablehq.com/@observablehq/observables-not-javascript). Hence not going ahead trying to squeeze a round peg into a square hole.

Also there are challenges in exposing data from node.js kernel into the observable (browser) environment. This can be done, but the challenge is making this user friendly & intuitive (right now I don't see much of a use case for this, no user requests, haven't seen requests on various channels, hence not doing this)

However supporting that as a renderer I something I'm open to, but not in this issue.

RandomFractals commented 3 years ago

yeah, OJS is not very standard and would require a completely new custom kernel to make those notebooks load and work. Probably best to do that in a separate OJS notebooks extension.

GordonSmith commented 3 years ago

"However supporting that as a renderer I something I'm open to" - this is what I am doing in my ECL plugin, pass the source straight through to the renderer and use @hpcc-js/observable-md to render it...