IMO, "web vs. desktop" praticamente non ha alcun tipo di punto. Ci sono client e server. Mentre una macchina desktop può essere utile in una situazione autonoma, è sufficientemente rara che non vale la pena parlarne. Un server senza client è per lo più piuttosto inutile.
Non vedo molti eventi nuovi o diversi sul lato server, c'è molta migrazione verso la virtualizzazione dei server, e mi aspetto che continui per i prossimi anni o giù di lì. Da un punto di vista della programmazione, c'è probabilmente un bel po 'di opportunità nel fare un lavoro migliore di gestione dei server virtuali (specialmente di grandi gruppi) ma non mi aspetto molte modifiche nel modo in cui le singole applicazioni vengono scritte.
Sul lato client, la tendenza più ovvia è quella di essere dominati dai desktop verso client mobili di vario genere. Ciò modifica in qualche modo il modello di programmazione, in particolare quando la connettività varia (ampiamente) in base al tempo e alla posizione. La maggior parte ha una certa larghezza di banda praticamente tutto il tempo, ma quando sono nel raggio d'azione di un hotspot wi-fi, la larghezza di banda aumenta molto e il prezzo scende praticamente allo zero. IMO, una delle sfide più importanti consiste nel fornire dati all'utente tramite la connessione a bassa larghezza di banda quando necessario, ma cercando di utilizzare in modo proattivo un'ampia larghezza di banda quando disponibile, nella speranza di avere già le informazioni necessarie quando necessario. Ovviamente, l'altro punto interessante è l'utilizzo ottimale delle funzionalità di I / O (piuttosto diverse) disponibili sui dispositivi mobili. Solo per l'ovvio esempio, il trattamento di un touch-screen come un mouse non funziona bene.