Talk:Tokio (software)/GA1

GA Review
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
I 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:


 * 1) 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.
 * 2) 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
Going 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
The 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

 * Could 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

 * Who 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-blocking
 * RPC
 * JVM
 * IOCP
 * "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
It 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
✓ It passes.Rjjiii (talk) 02:42, 1 January 2023 (UTC)

Criteria 5: Stable
✓ It passes.Rjjiii (talk) 02:42, 1 January 2023 (UTC)

Criteria 6: Illustrated
I 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
Update: 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)