scipy-conference / scipy_proceedings

Tools used to generate the SciPy conference proceedings
Other
223 stars 512 forks source link

Paper: Funix #948

Open forrestbao opened 1 month ago

forrestbao commented 1 month ago

If you are creating this PR in order to submit a draft of your paper, please name your PR with Paper: <title>. An editor will then add a paper label and GitHub Actions will be run to check and build your paper.

See the project readme for more information.

Editor: Chris Calloway @cbcunc

Reviewers:

stevejpurves commented 1 month ago

Hi @forrestbao - looks like you have made changes to .gitignore outside of the paper folder, could you please revert that change (adding a .gitignore in your paper folder if you need to), then the checks will pass.

github-actions[bot] commented 1 month ago

Curvenote Preview

Directory Preview Checks Updated (UTC)
papers/funix 🔍 Inspect 65 checks passed (8 optional) Jun 25, 2024, 8:50 AM
cbcunc commented 3 weeks ago

Review reminders sent to @chongshenng and @cpk26

chongshenng commented 2 weeks ago

Hi @forrestbao 👋, I'm Chong Shen one of the reviewers. I'll add my comments to your PR shortly.

cpk26 commented 2 weeks ago

This paper introduces the early-stage Python project Funix. The aim of Funix is to automatically generate a web-based GUI for Python programs based on the types of function parameters and return values. It differentiates itself from existing frameworks by not requiring users to explicitly select the GUI elements used. Rather, Funix automatically selects elements based on types such as text boxes for string parameters or checkboxes for Boolean parameters. The correspondence between types and elements can be modified via themes. The motivation for Funix are the observations: that scientists and engineers are not necessarily experts in front-end development, that numerous use-cases exist for 'disposable' frontends where the idea is to provide a minimum-viable product or proof-of-concept, and that there exists relatively straight forward relationships between input/output elements and parameter types. The underlying mechanics of the project are implemented by transpiling Python into React.

Overall my impression of the project and paper are positive. It's well motivated in its discussion of simplifying GUI development for non-frontend developers, the mechanics of using Funix are described using examples, and there are three demos showcased at the end. As mentioned at the end of the paper, it has parallels to frameworks like Fire which automate generating a command line interface, which are quite useful. This paper makes good use of code examples and corresponding figures. The writing however, could use another pass at polishing. This includes fixes to the grammar, clarifying certain non-obvious points, and removing unnecessary opinions. See individual comments for more details.

While I did not run all the examples, getting the hello world example running was frictionless.

forrestbao commented 2 weeks ago

@chongshenng @cpk26 Thank you both for the positive reviews and detailed feedback. Glad you liked Funix. We will go over the paper a couple of times to polish the writing.