Yew: Add ROADMAP.md

Created on 13 Aug 2019  路  2Comments  路  Source: yewstack/yew

Description

I'm submitting a ...

  • feature request

A roadmap is a document summarizing the high-level direction of a project and enumerating its milestones. Roadmaps are useful to current users and prospective users alike.

As Yew matures, and a 1.0 release begins to come slowly into view, I think it would be a good addition.

documentation

Most helpful comment

Yew 1.0

Ergonomics/Usability:

  • Some CSS in Rust functionality: https://github.com/yewstack/yew/issues/533
  • I'm in favor of waiting until expression proc macros stabilize so we can move away from proc-macro-hack to lift the limit on number of nested html! invocations. That may take some time though.
  • VDom access: https://github.com/yewstack/yew/issues/665
  • I want to see pure components make their way into the ecosystem in some form.
  • I'm finding that having the returned Html<_> require a type parameter relating to the component it's callbacks have messages for gets in the way of writing concise generic components that can contain arbitrary content, especially nested components. Sadly, I don't have any real suggestions on how to remove this type parameter and allow simplification of the message/callback system.

Performance:

Documentation:

  • Getting started guide.
  • Internal implementation details, opinionated guidance to achieve best performance in apps.
  • Best practices for readability.
  • Global State management strategies.
  • Other misc patterns

Punting for Yew 2.0+

These would be breaking changes to a 1.0 release, and I am of the opinion that they could wait until 2.0.

  • callbacks vs futures: https://github.com/yewstack/yew/issues/364

    • Edit: I looked a little closer at that PR, and it seems like significant progress is being made there. I don't think this feature is required for 1.0, but if it gets finished before then, then I'm all for it.

    • Edit again: Delaying support for futures would be done on the basis that a callback model is good enough. I've done a 180 on this topic and now think that callbacks aren't good enough. Having to involve a component or agent's update loop makes code reuse rather hard, while there are many places where futures that can be composed together would be significantly more ergonomic, performant and readable.

  • I don't think we should abandon the virtual dom as it is right now. I don't know how hard it will be to adapt Yew to use an alternative VDom implementation. https://github.com/yewstack/yew/issues/482

    • There might be performance benefits to doing this that make it worthwhile for a 2.0 breakage.

Orthogonal to 1.0

Toss up

  • I would really rather not wait until 2.0 for a transition to web_sys from stdweb (if that's a thing that is going to happen). But it seems like a huge thing to change and would consume a bunch of resources to implement it. https://rustwasm.github.io/wasm-bindgen/api/web_sys/

    • I'm just scared that a breakage this large could break most existing libraries reliant on yew, so ripping the band-aid off sooner rather than later would be a be a good choice if this is going to happen.

All 2 comments

Yew 1.0

Ergonomics/Usability:

  • Some CSS in Rust functionality: https://github.com/yewstack/yew/issues/533
  • I'm in favor of waiting until expression proc macros stabilize so we can move away from proc-macro-hack to lift the limit on number of nested html! invocations. That may take some time though.
  • VDom access: https://github.com/yewstack/yew/issues/665
  • I want to see pure components make their way into the ecosystem in some form.
  • I'm finding that having the returned Html<_> require a type parameter relating to the component it's callbacks have messages for gets in the way of writing concise generic components that can contain arbitrary content, especially nested components. Sadly, I don't have any real suggestions on how to remove this type parameter and allow simplification of the message/callback system.

Performance:

Documentation:

  • Getting started guide.
  • Internal implementation details, opinionated guidance to achieve best performance in apps.
  • Best practices for readability.
  • Global State management strategies.
  • Other misc patterns

Punting for Yew 2.0+

These would be breaking changes to a 1.0 release, and I am of the opinion that they could wait until 2.0.

  • callbacks vs futures: https://github.com/yewstack/yew/issues/364

    • Edit: I looked a little closer at that PR, and it seems like significant progress is being made there. I don't think this feature is required for 1.0, but if it gets finished before then, then I'm all for it.

    • Edit again: Delaying support for futures would be done on the basis that a callback model is good enough. I've done a 180 on this topic and now think that callbacks aren't good enough. Having to involve a component or agent's update loop makes code reuse rather hard, while there are many places where futures that can be composed together would be significantly more ergonomic, performant and readable.

  • I don't think we should abandon the virtual dom as it is right now. I don't know how hard it will be to adapt Yew to use an alternative VDom implementation. https://github.com/yewstack/yew/issues/482

    • There might be performance benefits to doing this that make it worthwhile for a 2.0 breakage.

Orthogonal to 1.0

Toss up

  • I would really rather not wait until 2.0 for a transition to web_sys from stdweb (if that's a thing that is going to happen). But it seems like a huge thing to change and would consume a bunch of resources to implement it. https://rustwasm.github.io/wasm-bindgen/api/web_sys/

    • I'm just scared that a breakage this large could break most existing libraries reliant on yew, so ripping the band-aid off sooner rather than later would be a be a good choice if this is going to happen.

Thanks @hgzimmerman we've made a lot of progress on the things you've listed here! I've written up a roadmap doc here: https://yew.rs/docs/roadmap let's work together to flush that out 馃憤

Was this page helpful?
0 / 5 - 0 ratings

Related issues

Boscop picture Boscop  路  4Comments

FrontMage picture FrontMage  路  4Comments

thienpow picture thienpow  路  3Comments

nixpulvis picture nixpulvis  路  4Comments

wldcordeiro picture wldcordeiro  路  4Comments