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

Feedback and Suggestion for Clarification in the Iced Guide #17

Open
josuhudu opened this issue Jan 26, 2025 · 3 comments
Open

Feedback and Suggestion for Clarification in the Iced Guide #17

josuhudu opened this issue Jan 26, 2025 · 3 comments

Comments

@josuhudu
Copy link

Dear Team Iced,

I hope you are doing well.

I recently followed along with the Iced guide and found it to be an excellent resource for learning the framework. I appreciate the effort put into making it accessible and engaging. However, I wanted to share a small challenge I encountered, which might also affect other newcomers to Rust and Iced.

In the section Displaying the Interface, the reference to a "magical function" initially caused some confusion. As someone with limited experience in Rust, I wasn't sure whether I needed to install an additional package or if I had made an error in my implementation. It wasn't until a second read-through—along with a visit to the Iced crate on crates.io—that I realized it was intended as a joke and placeholder code.

To improve the guide's clarity and help readers avoid similar confusion, I kindly suggest adding an early disclaimer or a brief note explaining that the term "magical function" is used humorously as a placeholder and does not require additional dependencies. This small addition could help set expectations and reduce potential misunderstandings for newcomers.

Thank you for your time and for the valuable work you're doing with Iced. I look forward to seeing the framework grow and evolve.

Best regards,
Joseph Suhudu

@hecrj
Copy link
Member

hecrj commented Jan 26, 2025

I personally think it's very clear that the magic module is being used as a way to hide certain implementation details from the topic at hand—which is the runtime.

That’s easy! We just need to open a window in whatever OS the user is running, initialize a proper graphics backend, and then render the widgets returned by our view logic—properly laid out, of course!

What? You have no clue of how to do that? Don’t worry, I have this magical function: display. It takes a reference to any interface and displays it to the user. It totally works!

I do not think my sarcasm is in any way subtle here.

In any case, some confusion is fine! Sometimes I get confused too, but I normally just keep on reading to see if things are clarified further later on. I think this is the case for this chapter.

You can simply read on for a bit and realize what the purpose of magic is, easily. There is no need to explain absolutely every single thing beforehand.

It takes two to tango.

@josuhudu
Copy link
Author

Myself I was able to figure it out eventually so I understand what you mean. What you do not seem to account for is the sudden change in tone/delivery of the material. Up until that section all snippets and instructions provided thus far do not exhibit this sarcasm. So the reader is inclined to continue coding along even through the sarcasm. The problem comes in when you notice errors and can't help but wonder what you did wrong.

@hecrj
Copy link
Member

hecrj commented Jan 26, 2025

What you do not seem to account for is the sudden change in tone/delivery of the material.

There are only two prior chapters. The first one is a basic introduction; and the second one does have some sarcasm sprinkled in:

Also, we know some users are crazy and they may want to count a lot of things. Let’s give them 64 bits to play with:

[...]

If a crazy user counted 1000 things every second, it would take them ~300 million years to run out of numbers. Let’s hope that’s enough.

I hope no one really thinks I am being serious here.

So the reader is inclined to continue coding along even through the sarcasm.

I have a really hard time picturing this. Can I rely on the reader having a brain and common sense? Or do I need to treat them like a robot that cannot understand that importing a magic module or trying to find a magic crate dependency on crates.io is quite insane? At which point does the reader think and engage with what is written? Is that too much to ask?

If anything, I am happy this particular section may kick readers out of auto-pilot mode. You are making my point for me!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants