Component Framework and FIDL together absolutely weave together to make up the foundation of developing Fuchsia software. This is why they are the core components of
Fuchsia Fundamentals. This is where new developers learn about these two concepts, how they fit together, and form the basis for Fuchsia development. Today, the examples that drive this content are under
//examples/components, and specifically the "one sample" that ties these two elements together is
//examples/components/routing. It covers the simplest form of both so developers can see how the pieces fit together.
So what comes after that point? This is where I think the two start to diverge. After that initial learning stage, Component Framework and FIDL both have more to teach us separately, and this is where those additional tutorials come in. FIDL has concepts like sync/async clients and pipelining while CF includes things like expanded capability types (storage, events, etc.) and parent/child management. Diving deeper into those additional features of each API surface is where the existing FIDL tutorials and future CF tutorials can lean in.
Having said that, there is some technical debt here that we probably should address since these two examples evolved over time around essentially the same FIDL protocol (Echo). At a minimum, we probably don't need a fuchsia.examples.Echo and a fidl.examples.routing.echo.Echo definition. This branching has also created some fragmentation in the different test artifacts that have come to depend on either example. But there's also an opportunity to expand the FIDL tutorials to a protocol that better encompasses additional FIDL features we don't really cover in the Echo examples; and this is another way of differentiating the two. I could also envision having some of these foundational examples moved elsewhere (//examples/basic?) to help clarify that the content under //examples/components and //examples/fidl are both more free to explore the specifics of those APIs.
The CLs you referenced here are directly in service of improving Fuchsia Fundamentals with support for C++ in addition to Rust, and eventually for developers using the SDK. If you have any thoughts on the Fuchsia Fundamentals learning pathway that could improve how we discuss these FIDL and Components concepts as a pair, I'd love to chat about them too!