Un argomento contro la produzione di un framework multipiattaforma è che sarà sempre indirizzato al minimo comune denominatore: i client del framework vogliono scrivere il codice una sola volta ed eseguire "ovunque" supportato. Quindi una fantastica piattaforma hardware sarebbe simile a qualsiasi altra piattaforma che esegue quel framework in quanto non è possibile sfruttare le funzionalità specifiche della piattaforma.
Nel tempo, questo sfortunatamente si traduce in framework inclinati verso la loro piattaforma più popolare e hackerando insieme il supporto per le altre piattaforme, o semplicemente eliminandoli quando il budget / popolarità si esaurisce.
Un modo per trarre vantaggio dalle capacità specifiche della piattaforma è avere qualcosa come un #if PLATFORM_FEATURE_X
costrutto attorno a tutto il codice specifico o controlli di runtime equivalenti che si traducono in un gonfiamento del codice. Questo diventa noioso abbastanza rapidamente, poiché le varianti della stessa piattaforma richiedono una gestione specifica. Ad esempio, alcuni XBox v1 non avevano un disco rigido, quindi i giochi che utilizzano strumenti multipiattaforma non potevano usarlo per la memorizzazione nella cache, rispetto a una versione per PC in cui è possibile garantire un disco rigido.
Per le applicazioni Desktop / Produttività, l'aspetto della piattaforma sembra essere importante, ma molte applicazioni hanno il loro stile, quindi non è un problema avere lo stesso aspetto su tutte le piattaforme, ad esempio le app costruite con AIR.
I fornitori di hardware come Apple, Sony, Nintendo e Toshiba vorranno assicurarsi che i loro prodotti facciano qualcosa per differenziarsi dalla concorrenza, ad esempio Touch, Accelerometri / Gryoscopes, Blu-Ray, display 3D. È improbabile che ci sarà mai una piattaforma con tutte le caratteristiche di tutti i concorrenti riuniti in uno (a causa di costi e complessità), quindi uno vincerà.