- API
- ABI, including threading, exception, function call, and memory models at the ABI level
- build specification
- packaging
This article mostly focuses on API, there seem to be some nods to the other three, but those seem like the harder and more pernicious problems to me.
For instance, how would the build system know that a library is being included that requires the swift runtime? Or even the C++ runtime. If any library was built against a different set of standard library interfaces (of any language), do any tools fail with a useful diagnostic?
That's not to say this isn't helpful research, but there's a lot of work to do before all of this is robust enough to be straightforward for end users.