czw., 12 paź 2023 o 21:20 Alan de Freitas via Boost
I like the idea of some variant of "await" because it's intriguing enough to get people to read the docs.
Agreed.
"await" represents only half the library, but the word that represents both halves, like it or not, is "coroutines". There are also more than these two coroutine halves in the library because of its extensions.
This is where I believe the documentation of the library does not do a good job of explaining to non-experts what are its goals and when it should be used. If we had that information, the choice of the name would be easier. I built the following understanding of the library during the course of the two reviews: 1. It is a triplet: (1) awaitable interface/concept, (2) coroutine-return-types compatible with the interface that help you build your coroutines, (3) algorithms on the awaitables. It is similar to the triplet "containers, iterators, algorithms in STL", where the iterators were the real invention -- that is the interface. 2. The motto of the library is, "if you are planning to write your asynchronous app, consider using this library, it will make your life easier". 3. Out of many possible coroutine-return types, we offer only the ones that are themselves awaitables: nothing like std::generator. So the name should be either something that reflects this, or just something funny, like CIA, or the name of your pet. Regards, &rzej; I'm also OK with some fun names like "CIA" because it implicitly represents
there can be more things included in the library.
About the ones I don't like:
- async.core (i) carries the same problem as the original name and (ii) makes it more confusing because now there's "core" but no "not-core" as it is. If X is everything (as it is), then X cannot be the "core" of itself. - co_async / co_sync (i) include a special character, (ii) still carry "async", and (iii) the alternatives suggests it could also be "sync". But if something is "A || !A", then A discriminates nothing in the context and it probably shouldn't be described in these terms. It has no cognitive significance. - co20 (i) is going to look outdated soon and (ii) doesn't represent the library better than Boost.Co or Boost.Coroutines (if it didn't exist). About (i), people will be talking about C++26 next year already. The name means co>=20 but people will instantly have the intuition of co=20 and feel like we're past that. About (ii), there's no intentionality in "20" in terms of library design. It's just something that happens to be true.
Em qua., 11 de out. de 2023 às 21:51, Klemens Morgenstern via Boost < boost@lists.boost.org> escreveu:
Given the renaming requirement, I'd like to query the list if there are any objections to any of the following names:
async.core await co_async / cosync co20 / cor20
Thanks,
Klemens
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost
-- Alan Freitas https://alandefreitas.github.io/alandefreitas/ https://github.com/alandefreitas
_______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost