{"action":"created","issue":{"url":"https://api.github.com/repos/rust-lang-nursery/futures-rs/issues/760","repository_url":"https://api.github.com/repos/rust-lang-nursery/futures-rs","labels_url":"https://api.github.com/repos/rust-lang-nursery/futures-rs/issues/760/labels{/name}","comments_url":"https://api.github.com/repos/rust-lang-nursery/futures-rs/issues/760/comments","events_url":"https://api.github.com/repos/rust-lang-nursery/futures-rs/issues/760/events","html_url":"https://github.com/rust-lang-nursery/futures-rs/issues/760","id":296813480,"number":760,"title":"Can we find a better name for select?","user":{"login":"KasMA1990","id":6695040,"avatar_url":"https://avatars2.githubusercontent.com/u/6695040?v=4","gravatar_id":"","url":"https://api.github.com/users/KasMA1990","html_url":"https://github.com/KasMA1990","followers_url":"https://api.github.com/users/KasMA1990/followers","following_url":"https://api.github.com/users/KasMA1990/following{/other_user}","gists_url":"https://api.github.com/users/KasMA1990/gists{/gist_id}","starred_url":"https://api.github.com/users/KasMA1990/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KasMA1990/subscriptions","organizations_url":"https://api.github.com/users/KasMA1990/orgs","repos_url":"https://api.github.com/users/KasMA1990/repos","events_url":"https://api.github.com/users/KasMA1990/events{/privacy}","received_events_url":"https://api.github.com/users/KasMA1990/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2018-02-13T17:02:15Z","updated_at":"2018-02-13T20:38:57Z","closed_at":null,"author_association":"NONE","body":"When the [crossbeam-channel RFC](https://github.com/crossbeam-rs/rfcs/pull/22) was introduced a few months ago, I found it very hard to understand what `select` meant. I have the same issue in future-rs, where I find the name equally as opaque as in crossbeam. Luckily I have since been pointed in the direction of [some Unix history](https://idea.popcount.org/2016-11-01-a-brief-history-of-select2/) which explains the design and naming behind `select`, but I feel like we can still do better than requiring a history lesson for a function name to make sense.\r\n\r\nTherefore I would like to propose that `select` is slightly renamed to make it more clear what it is actually doing, to e.g. `select_any` or `select_any_ready` maybe (or any other name that is deemed better). Although the presence of `select_ok` already makes the naming tough, and not having a pure `select` breaks somewhat with the precedent for this functionality (since it is named as such in Unix and Go for example), but I think there are many Rust users who are not familiar with these precedents and will hence be confused by the name (myself included). At the same time, by keeping the word \"select\" in the name, it is still easy to search for, for those that do know the precedent (and if \"select\" is kept as the first part of the name, anyone just looking to type select in their IDE will also be helped by autocomplete).\r\n\r\nI feel this would be a very rustic improvement to make; it should still be easy for veterans to use, but welcomes newcomers at the same time, by optimizing for readability over familiarity."},"comment":{"url":"https://api.github.com/repos/rust-lang-nursery/futures-rs/issues/comments/365396555","html_url":"https://github.com/rust-lang-nursery/futures-rs/issues/760#issuecomment-365396555","issue_url":"https://api.github.com/repos/rust-lang-nursery/futures-rs/issues/760","id":365396555,"user":{"login":"alexcrichton","id":64996,"avatar_url":"https://avatars1.githubusercontent.com/u/64996?v=4","gravatar_id":"","url":"https://api.github.com/users/alexcrichton","html_url":"https://github.com/alexcrichton","followers_url":"https://api.github.com/users/alexcrichton/followers","following_url":"https://api.github.com/users/alexcrichton/following{/other_user}","gists_url":"https://api.github.com/users/alexcrichton/gists{/gist_id}","starred_url":"https://api.github.com/users/alexcrichton/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexcrichton/subscriptions","organizations_url":"https://api.github.com/users/alexcrichton/orgs","repos_url":"https://api.github.com/users/alexcrichton/repos","events_url":"https://api.github.com/users/alexcrichton/events{/privacy}","received_events_url":"https://api.github.com/users/alexcrichton/received_events","type":"User","site_admin":false},"created_at":"2018-02-13T20:38:56Z","updated_at":"2018-02-13T20:38:56Z","author_association":"OWNER","body":"I think one suggested by @aturon historically as well has been `Future::race` akin to `Promise.race` in JS, which may be more evocative as well for non-Unix programmers perhaps?"}}
{"actor":{"display_login":"alexcrichton"}}