Considerazioni su XNA 4.0

A tempo perso, o meglio, nei pochi attimi di tempo libero che ho a disposizione, mi diverto con XNA.
Saranno un paio di anni che tento di portare a termine un piccolo progettino e che spero vedrà la luce entro la fine dell'anno. Il punto è che nel corso di questo lasso di tempo si sono succeduti due rilasci per la piattaforma in questione e, ciascuno dei quali, diciamo pure che ha avuto un certo impatto. L'ultimo, poi, è stato semplicemente devastante.
Tanto per essere chiari, compilare un vecchio progetto XNA con la versione 4.0 produce un numero di errori di compilazione tale da farti quasi tremare le gambe. I famigerati Breaking changes, per intendersi.
Premetto che con l'ultima release di XNA ci viene consegnata, finalmente, un'ottima piattaforma, ma una piccola riflessione dobbiamo comunque farla.
Nel post di Shawn Hargreaves si fa riferimento al sentimento della comunità che l'autore del post ha riassunto con "If you break it, break it good".
Ecco, indipendentemente da quelle che sono le necessità che ti possono portare a tale conclusione, è proprio la condizione nella quale arrivi a trovarti il problema principale.
Parliamoci chiaramente, senza troppi rigiri, XNA è stato affetto sin dall'inizio da alcune scelte di design quantomeno discutibili e trovo che sia proprio questo il motivo per il quale i breaking changes sono in numero così copioso.
Le best pratice non incoraggiano certo a perseguire strade di questo tipo e Microsoft stessa ricorre spesso all'attributo "Obsolete" al fine di garantire una certa retrocompatibilità (tendo a farlo anch'io, nei limiti del possibile).
Certo, per quanto se ne dica, io resto sempre dell'idea che XNA, alla fine, rappresenti poco più che un wrapper su DirectX, ma questo non è sufficiente ad eludere un deficit di design che è apparso evidente a tutti.
Leggevo qualche giorno fa un post di Andrea (non vorrei mai essere suo nemico! :-)). Certo, ha ragione, niente da dire, ma cerchiamo di vedere, per una volta, anche il rovescio della medaglia, ovvero che alla prudenza deve essere riconosciuto comunque un certo valore. Al progetto XNA, magari è mancata proprio quest'ultima.
Ora, non vorrei essere frainteso, perchè trovo che Shawn ed il suo gruppo abbiano fatto davvero un gran lavoro, e con una roadmap molto rigida in termini di tempistica, come lui stesso sembra ammettere.
Comunque, e scadiamo nella retorica, tutto è bene quel che finisce bene!
Forse, e dico "forse", qualche noia agli sviluppatori poteva essere evitata, con un pò più di avvedutezza.
Tutto lì. :-P
«October»
SunMonTueWedThuFriSat
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456