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

Rename system chaining to system welding #3073

Closed
wants to merge 3 commits into from

Conversation

alice-i-cecile
Copy link
Member

System chaining sounds very innocuous and helpful: new users will often want to use it for either general purpose system communication or system ordering.

Both of these are very wrong. Renaming it to system welding better captures the irreversible one-to-one nature of the operation.

Docs have also been cleaned up slightly to steer users in the correct direction.

@github-actions github-actions bot added the S-Needs-Triage This issue needs to be labelled label Nov 5, 2021
@alice-i-cecile alice-i-cecile added A-ECS Entities, components, systems, and events C-Docs An addition or correction to our documentation C-Usability A targeted quality-of-life change that makes Bevy easier to use S-Needs-Review and removed S-Needs-Triage This issue needs to be labelled labels Nov 5, 2021
examples/ecs/system_welding.rs Outdated Show resolved Hide resolved
Co-authored-by: MinerSebas <66798382+MinerSebas@users.noreply.github.com>
@mockersf
Copy link
Member

mockersf commented Nov 6, 2021

I quite dislike weld, but I'm not sure I have anything better to offer. Maybe and_then to at least follow something from rust std lib. fuse could be closer to the weld idea.

@alice-i-cecile
Copy link
Member Author

That's perfectly fair: weld was Ratys's suggestion on Discord when I asked.

pipe is probably my personal favorite, but I'm not sure if the usage here is close enough to the standard use. fuse feels a bit off to me (as does weld) due to the lack of implied directionality to it.

@andresovela
Copy link
Contributor

What about join or combine or merge? They sound like irreversible words and they are not as obscure as weld.

Other options:
https://www.thesaurus.com/browse/link
https://www.thesaurus.com/browse/combine
https://www.thesaurus.com/browse/fuse

I think pipe has a connotation similar to chain that will make users want to use it for system ordering.

@alice-i-cecile
Copy link
Member Author

I think pipe has a connotation similar to chain that will make users want to use it for system ordering.

I think I agree with this.

I'd like to avoid join, combine and merge due to overloading if possible.

The thesaurus links were helpful though: splice captures what we want: a directed, irreversible, one-to-one joining of two systems.

@TheRawMeatball
Copy link
Member

I'm personally not a big fan of splice tbh, since it isn't a very commonly used word, making the API trickier for non-native speakers. I think we should stick to more commonly used words. I'd personally be happier with fuse or weld.

@andresovela
Copy link
Contributor

andresovela commented Nov 7, 2021

I agree, as a non-native speaker, I'd have to look the word up in the dictionary to double-check the meaning. fuse and weld are more common IMO, but I'd be more inclined to use fuse than weld.

@cart
Copy link
Member

cart commented Nov 7, 2021

Theres also a lot of overlap with map semantics. Basically identical if you consider system arguments to fill the same role as captured variables in closures.

@alice-i-cecile
Copy link
Member Author

Closing this out, without consensus and a much better name it's not worth the churn right now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-ECS Entities, components, systems, and events C-Docs An addition or correction to our documentation C-Usability A targeted quality-of-life change that makes Bevy easier to use
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants