Talk:Tokio (software)
Tokio (software) was a Engineering and technology good articles nominee, but did not meet the good article criteria at the time. There may be suggestions below for improving the article. Once these issues have been addressed, the article can be renominated. Editors may also seek a reassessment of the decision if they believe there was a mistake. | ||||||||||
| ||||||||||
A fact from this article appeared on Wikipedia's Main Page in the "Did you know?" column on December 31, 2021. The text of the entry was: Did you know ... that the Tokio platform for the Rust programming language uses a work stealing scheduler? |
This article is rated C-class on Wikipedia's content assessment scale. It is of interest to the following WikiProjects: | ||||||||||||||
|
Potential sources
edit- https://www.zdnet.com/article/awss-shane-miller-to-head-the-newly-created-rust-foundation/
- https://rustacean-station.org/episode/046-alice-ryhl/
- https://www.infoq.com/news/2019/11/rust-async-await/ (about async/await, doesn't mention Tokio)
Legoktm (talk) 01:49, 22 November 2021 (UTC)
- Also https://rustacean-station.org/episode/041-carl-lerche/. I still haven't finished listening to it yet though. Legoktm (talk) 07:34, 3 December 2021 (UTC)
Did you know nomination
edit- The following is an archived discussion of the DYK nomination of the article below. Please do not modify this page. Subsequent comments should be made on the appropriate discussion page (such as this nomination's talk page, the article's talk page or Wikipedia talk:Did you know), unless there is consensus to re-open the discussion at this page. No further edits should be made to this page.
The result was: promoted by Theleekycauldron (talk) 23:22, 21 December 2021 (UTC)
- ... that Tokio uses a work stealing scheduler to implement an asynchronous runtime for the Rust programming language? Source: "Recently announced Tokio 1.0 supports TCP, UDP, timers, a multi-threaded, work-stealing scheduler, and more."
- ALT1: ... that Tokio provides an asynchronous runtime and standard library for the Rust programming language? Source: "Rust Asynchronous Runtime Tokio Reaches 1.0", "...An asynchronous version of the standard library."
- Reviewed: n/a, less than 5 credits
- Comment: I did my last DYK nom 9 years ago, let me know if I missed anything or can improve. Thanks!
Created by Legoktm (talk). Self-nominated at 11:18, 28 November 2021 (UTC).
- Article was expanded 13× between September and time of nomination. Meets newness and length requirements, no close para or neutrality issues. QPQ exempt (only four prior credits found). Hooks are naturally techy, but I like ALT0 because "work stealing scheduler" sounds kinda funny. Added a sentence about AWS Lambda and Discord using the library. Should be good to go. DigitalIceAge (talk) 16:34, 20 December 2021 (UTC)
- @Legoktm and DigitalIceAge: While I agree that "work stealing scheduler" is quite good, I know what this means and even I don't know what the hell this means, you know what I'm sayin'? Any way to cut back on the jargon at the of the hook a bit? theleekycauldron (talk • contribs) (they/she) 19:32, 21 December 2021 (UTC)
- @Theleekycauldron: Maybe rearrange the sentence to place "work stealing scheduler" at the end (and therefore put emphasis on it): ... that the Tokio runtime for Rust uses a work stealing scheduler? DigitalIceAge (talk) 19:43, 21 December 2021 (UTC)
- Ah, very noice—I'll promote in a second. theleekycauldron (talk • contribs) (they/she) 19:45, 21 December 2021 (UTC)
- @DigitalIceAge: rearranging it sounds good to me. I would like to keep it as "Rust programming language" though, since a different "Rust" has been in the news more recently. Legoktm (talk) 19:58, 21 December 2021 (UTC)
- Good thinking. DigitalIceAge (talk) 20:00, 21 December 2021 (UTC)
- @Theleekycauldron: Maybe rearrange the sentence to place "work stealing scheduler" at the end (and therefore put emphasis on it): ... that the Tokio runtime for Rust uses a work stealing scheduler? DigitalIceAge (talk) 19:43, 21 December 2021 (UTC)
- @Legoktm and DigitalIceAge: While I agree that "work stealing scheduler" is quite good, I know what this means and even I don't know what the hell this means, you know what I'm sayin'? Any way to cut back on the jargon at the of the hook a bit? theleekycauldron (talk • contribs) (they/she) 19:32, 21 December 2021 (UTC)
- Article was expanded 13× between September and time of nomination. Meets newness and length requirements, no close para or neutrality issues. QPQ exempt (only four prior credits found). Hooks are naturally techy, but I like ALT0 because "work stealing scheduler" sounds kinda funny. Added a sentence about AWS Lambda and Discord using the library. Should be good to go. DigitalIceAge (talk) 16:34, 20 December 2021 (UTC)
- ALT2: ... that the asynchronous Tokio runtime for the Rust programming language uses a work stealing scheduler? Source: "Recently announced Tokio 1.0 supports TCP, UDP, timers, a multi-threaded, work-stealing scheduler, and more." Legoktm (talk) 20:09, 21 December 2021 (UTC)
- Looks good. DigitalIceAge (talk) 20:15, 21 December 2021 (UTC)
Features subsections
edit@ElijahPepe: Can you explain why you added subsections in the Features section? They all feel short enough that just writing it in separate paragraphs would be fine?
I'm also not sure about "Compile-time green threading", since we don't explain "compile-time", and Rust is just a compiled language... Legoktm (talk) 07:51, 12 December 2022 (UTC)
- I used the verbiage from the docs for "compile-team", and I intend to expand those sections. elijahpepe@wikipedia (he/him) 14:50, 12 December 2022 (UTC)
GA Review
editThe following discussion is closed. Please do not modify it. Subsequent comments should be made on the appropriate discussion page. No further edits should be made to this discussion.
GA toolbox |
---|
Reviewing |
- This review is transcluded from Talk:Tokio (software)/GA1. The edit link for this section can be used to add comments to the review.
Reviewer: Rjjiii (talk · contribs) 02:42, 1 January 2023 (UTC)
Hi, I posted on the talk page before and decided to go ahead and do the GA Review. I see on your user page that you are taking breaks to deal with stress. I hope you find some peace, and I will leave these comments with no timeframe expected for a response. Reach out if you have questions, issues, etc.
Criteria 1: Well-written
editI don't want to go over the specifics of writing mechanics yet because I'd like to see the article expanded. After an expansion, I can provide feedback in this area. The overall issue I find here, is that I do not think even the lead would be comprehensible for a non-programmer. I would expect a non-programmer to be able to read the lead and get a general idea of what Tokio is. I understand that the features section and anything that goes into usage will inherently be technical.
I also think the history section would benefit from expansion. The first 2 sentences, for example, are somewhat unclear. They include much technical terminology, no clear action verbs, and use a complex structure where most of the meaning is placed within several clauses at the end of the sentence.Rjjiii (talk) 02:42, 1 January 2023 (UTC)
I had intended to do more of a line-by-line critique once there was more content in the article. I may become very busy for reasons I did not expect next week, so instead I'll provide a more general critique. There are 2 main recurring issues I see in the article's prose:
- Structure. The 2 most common structures for prose are chronological ("This happened. Then that happened next.") and the inverted pyramid ("This happened. This is similar to that."). Both work fine but most of the paragraphs in Tokio don't seem to use either. I don't see the string of connections holding many sentences together. Some of the paragraph breaks feel arbitrary because of it. This is the biggest issue with writing for me.
- Unclear actions.' I'll use some examples for this one. In the history section especially, it is not always clear what is happening. Part of that is the prose and I think part is likely that it still needs to be fleshed out. The first 2 sentences are very complex and begin with somewhat abstract "Tokio began" and "Tokio was". It would be helpful for the reader to get more concrete details in a history section. Break down "Tokio began" a bit. When did Lerche start it? Was he alone or part of a group? Where was he working on it? Where did he anounce it? What was the reaction? I like the added information on Ryhl but again the actions are somewhat unclear. I think "developing the project and assisting its users" is true, but the sources seem to give more concrete insight on her role. I believe she was in charge of pull requests? One of the sources says, "For over a year, she has been the front line for answering questions, responding to issues, reviewing and merging pull requests." That's solid concrete information and the would give the reader better insight into why she was the first paid dev.Rjjiii (talk) 05:58, 10 January 2023 (UTC)
Criteria 2: Verifiable
editGoing over sources:
- De Simone appears to verify its sentence. Why 2 additional sources?
- Lerche appears to verify the Finagle connection. It could violate WP:BLOG unless Lerche is part of the project. Could the history give some insight on Lerche, Ryhl, etc.?
- Lerche again would verify the name if he's a developer. He's listed as the original author in the infobox, but I don't see a source for that and there no mentions of him in the body text.
- Announcing Tokio 0.1 verifies the preliminary release.
- Krill verifies the release and as a 2nd party source would be preferable. Why 2 sources?
- InfoQ verifies the Rust statement.
- Asynchronous Programming in Rust verifies the statement about requirements.
- Krill verifies the work-stealing statement.
- Matsakis verifies the await statement.
- Krill verifies Discord and AWS Lambda usage.
- Rappl verifies Deno usage.
- Features section looks good. I especially liked the usage of the 2nd party published Blandy to verify broadcasting. This is a bit technical so you may want to seek a peer review from a Rust programmer.
✓ This passes. It appears to use some non-controversial 1st party sources from developers. This would be more clear with brief mentions of who those people, especially Lerche and Ryhl are as they relate to Tokio. The infobox lists Lerche as the primary author but there are no references in the body of the article.Rjjiii (talk) 07:54, 1 January 2023 (UTC)
Criteria 3: Broad in its coverage
editThe biggest issue I see with the article is Criteria 3. I'm going to quote the list of questions I had reading the article. Some of these are full questions and others are highly specific terms that I would not expect a non-programmer to use:
Lead
editCould we have one brief sentence explaining what Rust is.How does asynchronous I/O change things for a programmer. What are differences or benefits?How did Tokio begin? Who is developing it? Do we know why/how they started development?Can we get a brief explanation of broadcasting? It has more common usage regarding broadcasted media. What is the specific usage in this article?
Update: I've crossed out resolved issues.Rjjiii (talk) 01:51, 5 January 2023 (UTC)
History
editWho started the project? What is the development team like? Who is Ryhl? Why was Ryhl the first dev paid?What is the connection to Finagle?The connections between Finagle, mio, and system calls are not entirely clear.non-blockingRPCJVMIOCP"io suffix""Deno""node.js"
Also, I'm just realizing that Lerche is listed as the project's author in the infobox but not in the body of the article. A sourced comment about Lerche in the body text would (a) provide the citation for the original author, (b) reinforce the Lerche authored citations, (c) give some perspective on Tokio's founding, and (d) provide a cleaner way to present the etymology of the name.Rjjiii (talk) 07:58, 1 January 2023 (UTC)
Update: Crossed out resolved issues.Rjjiii (talk) 01:49, 5 January 2023 (UTC)
Features
editIt make sense for this to target a more technical reader. I liked having a code example. You have several small subsections. If these warrant subsections, I would expect more than a single line for each.Rjjiii (talk) 02:42, 1 January 2023 (UTC)
- Are you still adding to the "features" sections? I see last month on the talk page you mentioned
I intend to expand those sections.
and sections 2.2 and 2.3 look the same. If you let me know when you finish here, I'll go through the prose. Rjjiii (talk) 02:03, 5 January 2023 (UTC)
Criteria 4: Neutral
edit✓ It passes.Rjjiii (talk) 02:42, 1 January 2023 (UTC)
Criteria 5: Stable
edit✓ It passes.Rjjiii (talk) 02:42, 1 January 2023 (UTC)
Criteria 6: Illustrated
editI would pass this article without an image, but it would benefit greatly with a diagram of asynchronous i/o.
Quoting again from the talk page: Are there any free images depicting asynchronous io that could be used as a base for an infographic in this article. Like this one: https://commons.wikimedia.org/wiki/File:HMPP_RPC.png Rjjiii (talk) 02:42, 1 January 2023 (UTC)
- Another potential image to use as a base for illustration: https://commons.wikimedia.org/wiki/File:Wiki_HW.png Rjjiii (talk) 01:52, 5 January 2023 (UTC)
Closing Comments
editUpdate: Let me know when you have finished expanding the article. I'm waiting until then to check the prose. Also let me know if you intend to use any kind of diagram. I need to check off the copyright info for the image if so.Rjjiii (talk) 03:02, 9 January 2023 (UTC)
As there are no comments from the nominator and no work on the article this week, I will go ahead and fail this. It is still a valuable article. I hope this review was helpful and I wish you luck editing the article in the future. You are welcome to renominate the article for GA at any time, and if you do improve the article I would encourage you do so. Thank you for your time, Rjjiii (talk) 10:01, 13 January 2023 (UTC)
Half of this article is LLM generated
editThe lower part of the article is of extremely low quality/non factual and seems to be generated by an LLM. What's wikipedia stand on this? 87.221.192.240 (talk) 11:22, 6 June 2024 (UTC)