Un argomento contro la produzione di un framework multipiattaforma è che sarà sempre mirato al minimo comune denominatore - i clienti del framework vogliono scrivere codice solo una volta e funzionano "ovunque" supportati. Quindi una fantastica piattaforma hardware assomiglierebbe a qualsiasi altra piattaforma che esegue quel framework, in quanto non è possibile sfruttare le funzionalità specifiche della piattaforma.
Nel corso del tempo, sfortunatamente questo si traduce in strutture che si appoggiano alla loro piattaforma più popolare e che intrattengono insieme il supporto per le altre piattaforme, o semplicemente le interrompono quando il budget / la popolarità si esauriscono.
Un modo per capitalizzare le abilità specifiche della piattaforma è di avere qualcosa come un #if PLATFORM_FEATURE_X
di costruire attorno a tutto il codice specifico o controlli equivalenti di runtime che si traducono in codice gonfiato. Questo diventa tedioso abbastanza rapidamente, poiché le varianti della stessa piattaforma necessitano di una gestione specifica. Ad esempio, alcune XBox v1 non avevano un disco rigido, quindi i giochi che utilizzano strumenti multipiattaforma non potevano usarlo per la cache, rispetto a una versione per PC in cui è possibile garantire un disco rigido.
Per le applicazioni desktop / produttive, l'aspetto della piattaforma sembra essere importante, ma molte applicazioni hanno il proprio stile quindi non è un problema avere lo stesso aspetto su tutte le piattaforme, ad es. app create con AIR.
I produttori di hardware come Apple, Sony, Nintendo e Toshiba vorranno assicurarsi che i loro prodotti facciano qualcosa per differenziarsi dalla concorrenza, ad es. Touch, Accelerometri / Gryoscopes, Blu-Ray, display 3D. È improbabile che ci sia mai una piattaforma con tutte le caratteristiche di tutti i concorrenti riunite in una (a causa dei costi e della complessità), quindi si vincerà.