Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Why is built gos using python rather than js? #69

Closed
zhangzhen opened this issue Oct 11, 2021 · 1 comment
Closed

Why is built gos using python rather than js? #69

zhangzhen opened this issue Oct 11, 2021 · 1 comment
Labels
question Further information is requested

Comments

@zhangzhen
Copy link

vega-lite api is a good example of apis for creating vega-lite json specs. Gos is similar to vega-lite api, but for creating gosling json specs. I think it's more convenient for me to create a dataviz app with js apis rather than python apis because I use React to build the frontend for such kind of apps.

@manzt
Copy link
Member

manzt commented Oct 11, 2021

Thank you for taking interest in gos. We are not opposed to developing a JS API for creating gosling specs (similar to vega-lite-api), but we believe the Python API 1.) enables a new set of users to author Gosling specs and 2.) integrates within computational notebooks environments (e.g. Jupyter, Google Colab) to allow interactive exploratory analysis.

Many biologists and computational biologists aren't familiar with data-viz "apps" or Javascript, so we want to enable the the use of Gosling in many contexts. If you are using Gosling within a React application, many of the features gos offers are available. You may use language features like variables, for-loops, functions, conditionals, etc to build a spec that can be passed to the GoslingComponent directly.

Additionally, since gos is written in Python there are features that the library offers that could not be implemented in a Javascript alternative. The core feature is the GoslingDataServer which allows users to transparently load both in-memory (pandas datafames) or local data in a computational notebook environment. A challenging aspect of Gosling is that a server must be configured to host HTTP-accessible data, and the data-server component of gos removes that complexity entirely.

@manzt manzt added the question Further information is requested label Oct 11, 2021
@manzt manzt pinned this issue Nov 8, 2021
@manzt manzt closed this as completed Jul 15, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants