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

Add Dart's interop story to the documentation #4563

Open
Tracked by #5475
MaryaBelanger opened this issue Jan 31, 2023 · 2 comments
Open
Tracked by #5475

Add Dart's interop story to the documentation #4563

MaryaBelanger opened this issue Jan 31, 2023 · 2 comments
Assignees
Labels
co.discussion Community discussion on a new feature or change to an existing feature dev.interop Relates to use of native code as part of your Dart app e3-weeks Complete in < 4 weeks of normal, not dedicated, work from.team Reported by Dash docs team member meta.evaluation Need to consider what changes if any are needed p3-low Valid but not urgent concern. Resolve when possible. Encourage upvote to surface. st.triage.ltw Indicates Lead Tech Writer has triaged
Milestone

Comments

@MaryaBelanger
Copy link
Contributor

MaryaBelanger commented Jan 31, 2023

This issue is so I remember I want to do this, but it's not tied to any release or development work.

@sigmundch described Dart's interop story in a meeting the other day, and I think it would be nice to have a little paragraph or two about it somewhere adjacent to all the interop docs.

The progression of Dart's interop history and the goals it's moving towards are interesting in their own right, but I especially liked how it's also kind of a microcosm of the whole Dart story, i.e. that Dart started with a very specific use case in mind, but we're constantly widening that scope, becoming more applicable to more developers, and always evolving to be as sustainable and well-rounded as possible.

I don't have an idea about exactly what I want to say yet, but these are some notes:

  • Dart started as a web language, for use directly in the browser
  • Dart is always used "inside" something, called the embedder
  • So, emphasis has always been on exposing things from the underlying system
  • Examples, like...
    • running in the vm, the embedder is the vm that has access to the local machine,
    • libraries like dart:io give access to the file system,
    • dart:html for access to the browser, etc.
  • APIs to access embedder stuff is the focal point
  • As we evolved as a system, e.g. incorporating Flutter and now Wasm, we're generalizing the idea that Dart has a core that's independent of where it's embedded
  • We're trying to make it easier to access what's there (wherever Dart is embedded), without us having to own every single API
  • E.g. ffi came along with goals like: instead of having to write our own network layer as a Dart library, why not just grab a C++ library that does networking, and expose it to Dart using ffi
  • And maybe someday dart:html will go away because of a similar interop development
  • It's happening with Javascript now, we want to decouple it, but found that the capabilities weren't strong enough, (hence static interop developments)

I like the idea making a top-level interop page, where we can introduce Dart+interop generally, that umbrellas all the existing, more specific interop content. For example, in the left nav, if "Interoperability" was an actual page and not just a nav heading.
image
(Where it goes and the "umbrella topic page" concept will make more sense with the upcoming site restructure)


Linking to #5439

@MaryaBelanger MaryaBelanger added this to the Future milestone Jan 31, 2023
@MaryaBelanger MaryaBelanger self-assigned this Jan 31, 2023
@parlough parlough added e3-weeks Complete in < 4 weeks of normal, not dedicated, work fix.refactor Needs near total rewrite or reorganization of content meta.evaluation Need to consider what changes if any are needed co.discussion Community discussion on a new feature or change to an existing feature p3-low Valid but not urgent concern. Resolve when possible. Encourage upvote to surface. dev.interop Relates to use of native code as part of your Dart app labels Jan 31, 2023
@atsansone atsansone changed the title Dart's interop story Add Dart's interop story to the documentation Apr 29, 2023
@atsansone atsansone added st.triage.ltw Indicates Lead Tech Writer has triaged and removed fix.refactor Needs near total rewrite or reorganization of content labels May 12, 2023
@atsansone atsansone added the from.team Reported by Dash docs team member label Aug 8, 2023
@parlough
Copy link
Member

parlough commented Jan 16, 2024

@MaryaBelanger Do you mind if we reposition this issue as a subtask or follow-up of #5439?

That way this issue can be more about the story and historical aspects, which don't necessarily have to be part of the initial version of the new overview page?

Note I love this idea and your discussion of it above!

@MaryaBelanger
Copy link
Contributor Author

@parlough Yeah definitely, thanks for figuring out how this fits in!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
co.discussion Community discussion on a new feature or change to an existing feature dev.interop Relates to use of native code as part of your Dart app e3-weeks Complete in < 4 weeks of normal, not dedicated, work from.team Reported by Dash docs team member meta.evaluation Need to consider what changes if any are needed p3-low Valid but not urgent concern. Resolve when possible. Encourage upvote to surface. st.triage.ltw Indicates Lead Tech Writer has triaged
Projects
None yet
Development

No branches or pull requests

3 participants