Skip to content

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

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

SasView 6.0 - A new user interface concept #2019

Closed
toqduj opened this issue Feb 9, 2022 · 1 comment
Closed

SasView 6.0 - A new user interface concept #2019

toqduj opened this issue Feb 9, 2022 · 1 comment

Comments

@toqduj
Copy link
Contributor

toqduj commented Feb 9, 2022

While current SasView is quite nice and does some stuff quite ok, every increase in functionality increases the complexity of the underlying code and introduces a host of new issues. Batch fit, new fitting engines, composite models, structure factors, new file loaders, etc.

So taking hints from some other pieces of software out there (e.g. BornAgain and others), I've mocked up a possible node-red-style interface that could be kept modular while allowing easy extension. This would force modularity of the code, breaking down the maintenance into much more bite-size chunks. It does look a little LabView-y, but could be a solution for a future interface.

Opinions?

Untitled Diagram drawio-2

Here's a framework that might help realize this: https://github.com/Bycelium/PyFlow
This one looks like a closer match, but hasn't been touched in two years: https://github.com/wonderworks-software/PyFlow
This looks like a nice and current option: https://ryven.org

@lucas-wilkins
Copy link
Contributor

I'm generally a fan of these interfaces, but they do have some drawbacks.

  1. In things like blender, where there are very few different types of data being passed around it works well because most things can be plugged into most other things. If the data is specialised there can be a lot of complexity around deciding what can be plugged into what.

  2. They also work best when the data flow can be represented as a directly acyclic graph, once there loops, there's a lot of difficulties surrounding evaluation order, and the potential for locking up because of "feedback".

  3. Sometimes, enforced modularity can get in the way of things. If you get the modules right, and nothing ever changes, it's good, but when things are in flux, a high degree of modularity turn small problems into giant refactoring projects.

Not that I think its a bad idea. Just highlighting some things that need to be considered before committing to this kind of change.

@SasView SasView locked and limited conversation to collaborators Oct 30, 2022
@lucas-wilkins lucas-wilkins converted this issue into discussion #2343 Oct 30, 2022

This issue was moved to a discussion.

You can continue the conversation there. Go to discussion →

Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants