> you would have several map data providers (maybe some with higher data quality for specific regions), several map data viewers, several events, places, traffic, etc. providers - and you end up with one combined view of all them
I think the doc you linked to doesn't support your idea; it sounds much more like the replacement for activities and intents in Android than what you described. The service providers have no incentive to supply data independent of a full experience (why would Bing let you show maps in your app without agreeing to a ToS? what if the map provider has different streets than the traffic provider?), the app developers have no incentive to do this (if one phone might display Bing maps and another Google in my app, how does that make my life easier?), and the user probably doesn't want this (why am I seeing grainy black and white satellite imagery in one area and high fidelity color imagery in another?).
Think of the headache gluing all that data together. Every map viewer would need to support the data format for every map provider. Every traffic service would need to expose a protocol for querying traffic data on a stretch of road, and you pray that they mostly work the same and know which streets are which. You hope that every point-of-interest provider exposes the same set of fields and level of detail you need to make them useful. And that doesn't begin to touch on the intersection of rendering things well and the data needed to make that work (which streets to show at each zoom level, arrangement of points of interest, knowing which streets are important enough to show traffic for, special cases like when freeways are closed...).
Honestly this sounds like a maintenance nightmare. You would have to track API changes not from one provider but three or more, and figure out what to do when there are differences in the data, and how to integrate features that are similar but not identical. Maintaining just a couple of those systems would be a full time job.
NPM does not make it any easier to glue stuff together, we have had packaging for decades. Just because you can pull in a package does not make it easy to work with the api in a standardized way.
I think the argument is Node.js projects are often stitched together from many packages with different APIs and are therefore a good example for stitched together programs that work.
The argument isn't very good in my opinion. Combining independent services differs from combining libraries.
I think the doc you linked to doesn't support your idea; it sounds much more like the replacement for activities and intents in Android than what you described. The service providers have no incentive to supply data independent of a full experience (why would Bing let you show maps in your app without agreeing to a ToS? what if the map provider has different streets than the traffic provider?), the app developers have no incentive to do this (if one phone might display Bing maps and another Google in my app, how does that make my life easier?), and the user probably doesn't want this (why am I seeing grainy black and white satellite imagery in one area and high fidelity color imagery in another?).
Think of the headache gluing all that data together. Every map viewer would need to support the data format for every map provider. Every traffic service would need to expose a protocol for querying traffic data on a stretch of road, and you pray that they mostly work the same and know which streets are which. You hope that every point-of-interest provider exposes the same set of fields and level of detail you need to make them useful. And that doesn't begin to touch on the intersection of rendering things well and the data needed to make that work (which streets to show at each zoom level, arrangement of points of interest, knowing which streets are important enough to show traffic for, special cases like when freeways are closed...).