Ein Argument gegen die Erstellung eines plattformübergreifenden Frameworks ist, dass es immer auf den kleinsten gemeinsamen Nenner abzielt - Clients des Frameworks möchten Code nur einmal schreiben und es wird "überall" unterstützt. Eine großartige Hardwareplattform würde also genauso aussehen wie jede andere Plattform, auf der dieses Framework ausgeführt wird, da Sie die plattformspezifischen Funktionen nicht nutzen können.
Mit der Zeit führt dies leider dazu, dass Frameworks sich auf ihre beliebteste Plattform stützen und die Unterstützung für die anderen Plattformen hacken oder sie einfach weglassen, wenn das Budget / die Popularität ausgeht.
Eine Möglichkeit, die plattformspezifischen Fähigkeiten zu nutzen, besteht darin, so etwas wie ein #if PLATFORM_FEATURE_X
Konstrukt um den gesamten spezifischen Code oder entsprechende Laufzeitprüfungen zu erstellen, was zu einem Aufblähen des Codes führt. Dies wird ziemlich schnell mühsam, da Varianten derselben Plattform eine spezielle Behandlung erfordern. Zum Beispiel hatten einige XBox v1 keine Festplatte, so dass Spiele, die plattformübergreifende Tools verwendeten, diese nicht zum Zwischenspeichern verwenden konnten, verglichen mit einer PC-Version, bei der Sie eine Festplatte garantieren können.
Für Desktop- / Produktivitätsanwendungen scheint das Erscheinungsbild der Plattform wichtig zu sein, aber viele Anwendungen haben ihren eigenen Stil, sodass es kein Problem ist, auf allen Plattformen, z. B. mit AIR erstellten Apps, gleich auszusehen.
Hardwareanbieter wie Apple, Sony, Nintendo und Toshiba möchten sicherstellen, dass sich ihre Produkte von der Konkurrenz abheben, z. B. Touch, Beschleunigungsmesser / Gryoskope, Blu-Ray, 3D-Display. Es ist unwahrscheinlich, dass es jemals eine Plattform geben wird, auf der alle Funktionen aller Wettbewerber (aufgrund der Kosten und der Komplexität) vereint sind, sodass eine davon gewinnt.