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

chore: Apply Nezar nits to manuscript #707

Merged
merged 2 commits into from
Oct 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
79 changes: 0 additions & 79 deletions paper/export-pdf.ts

This file was deleted.

38 changes: 0 additions & 38 deletions paper/myst.yml

This file was deleted.

26 changes: 13 additions & 13 deletions paper/paper.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,18 +43,18 @@ reusable web-based widgets in interactive computing environments
(\autoref{fig:overview}). First, it defines a standard for widget front-end
code based on the web browser's native module system. Second, it provides tools
to author, distribute, and execute these modules across web-based computing
platforms. Since its release a year and a half ago, anywidget has steadily
gained adoption. Nearly 100 new widgets have been created or ported to
anywidget and published to the Python Package Index (PyPI), along with many
standalone scripts and notebooks. These tools cover general-purpose
platforms. Since its release in February 2023, anywidget has steadily gained
adoption. As of October 2024, nearly 100 new widgets have been created or
ported to anywidget and published to the Python Package Index (PyPI), along
with many standalone scripts and notebooks. These tools cover general-purpose
visualization libraries [@jscatter; @Heer2024] as well as notebook integrations
for applications in biology [@gos; @vitessce; @viv; @cev], mapping [@lonboard],
astronomy [@ipyaladin], and education [@drawdata]. Anywidget has also been
integrated into popular visualization libraries like Altair [@altair],
enhancing interactivity in notebooks and deepening user engagement with
visualizations and code.

![The anywidget project. The Anywidget Front-End Module (AFM) is a specification for widget front-end code based on ECMAScript (ES) modules [@ecma]. AFM can be written in web-standard ES or with _authoring tools_ that support popular front-end frameworks. The `anywidget` Python package adapts Jupyter-compatible platforms (JCPs) into AFM-compatible _host platforms_, enabling Jupyter Widgets to be authored and distributed with AFM. Other _host platforms_ support AFM directly. The _project CLI_ can be used to bootstrap new anywidget projects that are ready to publish to PyPI. \label{fig:overview}](overview.png)
![The anywidget project. Components highlighted in magenta. The Anywidget Front-End Module (AFM) is a specification for widget front-end code based on ECMAScript (ES) modules [@ecma]. AFM can be written in web-standard ES or with _authoring tools_ that support popular front-end frameworks. The `anywidget` Python package adapts Jupyter-compatible platforms (JCPs) into AFM-compatible _host platforms_, enabling Jupyter Widgets to be authored and distributed with AFM. Other _host platforms_ support AFM directly. The _project CLI_ can be used to bootstrap new anywidget projects that are ready to publish to PyPI. \label{fig:overview}](overview.png)

# Statement of need

Expand All @@ -78,13 +78,13 @@ interactive components, hindering the development of a composable solutions.
The Jupyter Widgets system shows potential for aligning interactive
visualization systems with the broader notebook ecosystem. However, the
complexity and error-prone nature of authoring custom widgets has limited their
adoption by the visualization community. Widget development is hindered by the
need to integrate front-end code across diverse environments, fragmented
distribution models, and a cumbersome development experience [@scipy].
Moreover, Jupyter Widgets are Jupyter-specific, with the widest support limited
to Python kernels, leaving gaps in addressing new and alternative interactive
computing environments. A universal protocol is needed to simplify authorship
and support an ecosystem of pluggable interactive widgets.
adoption by the visualization community. Widget development is hindered by
fragmented distribution and cumbersome development experience due to complex
integration requirements from diverse environments [@scipy]. Moreover, Jupyter
Widgets are Jupyter-specific, with the widest support limited to Python
kernels, leaving gaps in addressing new and alternative interactive computing
environments. A universal protocol is needed to simplify authorship and support
an ecosystem of pluggable interactive widgets.

# Overview

Expand Down Expand Up @@ -120,7 +120,7 @@ communicate with the host and modify the output user interface (UI).
Importantly, AFM does not impose specific implementations for widget state or
UI management. By making host requirements explicit, it decouples widget
front-end code from host implementations, thereby improving widget portability
[@scipy]. With AFM, developers can author a widget writing a web-standard ES
[@scipy]. With AFM, developers can author a widget by writing a web-standard ES
module, either inline or in a separate file, without a build process
(\autoref{fig:afm-and-anywidget}a, top). For better ergonomics when creating
UIs, developers can introduce a build step targeting AFM to utilize advanced
Expand Down
Loading