4 ms·
The problem is, for this to work the API itself must be cross-platform, which means it's either an incomplete abstraction (exposes many options, only some of wh
by ansgri 5y ago
The problem is, for this to work the API itself must be cross-platform, which means it's either an incomplete abstraction (exposes many options, only some of which are implemented on a given platform), overly restricting (lowest common denominator leading to suboptimal performance and restricted development agility on advanced platforms), or not really cross-platform (supports one platform well but others are inefficient -- might as well use a virtual appliance).
In reality the API is part of the core logic except for purely computational services and therefore all core logic can rarely be fully encapsulated.
- weq 5y agoYou need to design your system with appropriote trade-offs. If you want to be everything to everyone you will end up in mess you describe. Cross-platform game, coreutils or LOB are all different beasts. Unity shows how API surface level will get polluted as you strive for speed in your cross-platform game, but on the flip side you run on all platforms without overhead. I tend to use DDD and the egg-shell pattern, building a domain / service model in portable code, and leaving the platform specific code to the outer shell behind a refined abstraction. I dont have any APIs with overloads, but sometimes the backing API is a no-op.