posit-dev / posit-dev/positron

JavaScript runtime for Positron

Open
#3,592 0 comments 4 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

area: runtimes enhancement
Dominant language
TypeScript
Stars
4.3k
Forks
184
Avg merge
1d 9h
Merged PRs (30d)
195

Description

As discuss off-line I'm opening this issue as a venue to discuss a possible javascript runtime in Positron.

User profile

I see two main users of this among our core user group:

  1. Developers of immersive/custom data visualisation experiences using e.g. D3.js
  2. Developers of data-centric web applications written directly in JS or requiring custom JS on top of Shiny
  3. (me, developer of algorithmic/generative art in JS)

While there are nascent data manipulation libs in JS I don't think there are many users insisting on doing all there data work in JS

Possible user experience

Again, I see two separate, complimentary ways a JS runtime could work - 1) is probably way easier than 2)

  1. Provide a Node.js based REPL where you can send code to from files etc, just like with R/Python currently. This will allow developers to quickly test out functionality and debug their code (to some extent).
  2. Provide a window environment replicating a browser along with a REPL - I'm unsure whether this can be achieved using Node or whether you need to plumb it into something like chromium, in which case it will all become much more complicated I think.

The last option would make Positron feel like a developer centric version of Chrome/Safari/Mozilla with developer tools opened and I'd be absolutely ecstatic about that.

Apart from the runtime, JS development could be facilitated by build tools and code diagnostics, but I'm pretty sure these already exists in great shape as extensions (currently using Babel JS for linting/highlighting)

These are just quick thoughts - happy to discuss more

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Begin by evaluating the proposed Node.js REPL versus browser-like window; the issue does not define a single implementation scope or completion criterion.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, node.js
Domain
desktop, devtools
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.