posts - 644, comments - 2003, trackbacks - 137

My Links

News

Raffaele Rialdi website

Su questo sito si trovano i miei articoli, esempi, snippet, tools, etc.

Archives

Post Categories

Image Galleries

Blogs

Links

The Land of Confusion

La notizia dell'abbandono di Ray Ozzie e ancor di più il fatto che non ci sarà un successore come Chief Software Architect, a mio avviso non può che aumentare l'entropia nel mondo Microsoft, entropia che è sempre stata poco gradita agli sviluppatori, da sempre in cerca di qualcosa di stabile, affidabile e duraturo.

La developer division, da sempre il fiore all'occhiello di Microsoft, ha dato grosse soddisfazioni agli sviluppatori, attirati non solo da ineguagliabili strumenti di sviluppo con Visual Studio in testa, ma anche da un ecosistema di tecnologie che rendono molto piacevole la developer-experience.
Di mio aggiungo che in tutto questo, la parte che mi ha sempre colpito di più è la capacità di architettare soluzioni con molta lungimiranza sui progetti strategici. Per fare un esempio, il Framework ha fatto pochissimi errori dalla sua nascita e la progettazione iniziale ha dimostrato di essere molto solida per le evoluzioni successive.

Poi arrivano le wave di opensource, cloud, iPhone e iPad giusto per fare alcuni esempi. Vedendo la reazione del mercato, Microsoft si è fatta attirare da "promesse" di fantastici marketshare.
E qui a mio avviso nasce un problema: non tanto per il fatto di dover affrontare nuove sfide e nuovi mercati, ma per come vengono affrontati. Microsoft sa fare le cose in un certo modo e invece di farlo, si butta al cieco inseguimento dei concorrenti che si fanno insidiosi.
La mia impressione è che non ci sia una vera strategia, si sente cioè la mancanza di un vero chief software architect che, stile matrix, nel bene e nel male, decide la direzione da seguire. Con Bill Gates le cose erano decisamente differenti perciò non soprende il fatto di non vedere reazioni per l'uscita di Ray Ozzie.

Purtroppo la mancanza di una guida si fa sentire un po' a tutti i livelli. Le tecnologie di per sé sono molto pregevoli e innovative ma manca un'armonizzazione.

Per esempio in asp.net non è ancora stata risolta la divergenza tra i progetti di tipo website e web applications, con conseguente confusione e mancanza di uniformità nei settings. Sempre in asp.net l'uscita di Razor, criticabile ma buona per molti newbie, aumenta il grado di confusione. I package vengono fatti con WebMatrix ma se tentiamo di usare le Helper-Libraries di Webmatrix in un progetto asp.net webform, scopriamo che non è possibile. Ovviamente il tutto senza documentazione ma solo lasciato ai blog e a twitter. D'altro canto è innegabile che la piattaforma asp.net di per sé sia sempre più potente di versione in versione.

Un altro esempio è Windows Identity Foundation, architettato con molta cura ed eccellente soluzione sia per environment LAN, WAN e Azure. Peccato che gli esempi e la documentazione siano inutilizzabili o criptici, lasciando a pochi la speranza di essere usati in modo accettabile. Confesso di aver speso parecchio tempo prima di realizzare un esempio completo con WS-Federation + WS-Trust funzionante sia per asp.net che per WCF in un contesto reale.

Potremmo poi parlare di WWS, Windows Web Services, i web services per il mondo nativo. Sono una tecnologia fantastica perché risolvono immensi problemi di interoperabilità tra codice nativo e mondo managed, usando gli standard WS-*. Ancora una volta peccato che dopo il loro esordio ci sia il silenzio totale.

Anche il mondo WPF rischia di entrare poco nel cuore degli sviluppatori senza che venga data una guida più precisa su come impostare un progetto di una certa dimensione. Il paradigma Document-View model usato nelle vecchie MFC di C++ non era certo perfetto ma ha costituito un fondamentale punto di partenza per centinaia di migliaia di progetti.
La soluzione architetturale in WPF è certamente MVVM, ma, fin tanto che questo non verrà integrato in Visual Studio, non sarà mai preso sul serio. So benissimo che non può esistere una soluzione universale basata su MVVM, ma è necessario che il "boilerplate" sia già dentro il Framework e nei wizard di Visual Studio, altrimenti l'adoption non potrà mai essere quella desiderata.

Potrei andare avanti con WCF e la difficoltà delle configurazioni oppure con Entity Framework che pur essendo molto promettente sta arrivando con estremo ritardo.

Per la cloud sono perplesso non tanto dalla lucidità del progetto che ritengo molto buono, ma per l'eccesso di focus. Voglio dire che non si possono spostare tutte le applicazioni dall'oggi al domani sulla cloud, investire ben tre keynote della PDC sull'argomento Azure, dopo aver passato 10 anni a convincere quelle stesse persone a usare il Framework. Fa anche specie vedere Don Box per ben tre keynote parlare di Azure invece dei progetti su cui si è dedicato.
Migrare nella cloud implica cambiamenti radicali, cambiamenti nel modo di conteggiare i costi, riconsiderare l'affidabilità degli internet provider (in Italia è un tasto iper-dolente), investire su una architettura totalmente differente. In molti casi questo non può che portare a enormi benefici ma non è tutto bianco o tutto nero, è necessario continuare a parlare anche del resto.

È di oggi la notizia che la confusione nella vision è arrivata fino al prodotto più promettente, Silverlight, dove lo stesso Muglia (il VP della Server&Tools division) dichiara che "our strategy has shifted" e continua dicendo che Silverlight è la strategia per WP7 mentre Html5 sarà quella per il web.
http://www.zdnet.com/blog/microsoft/microsoft-our-strategy-with-silverlight-has-shifted/7834
Lo stesso giorno a PDC viene detto anche che la prossima versione di WPF permetterà l'hosting di Silverlight.

Il mondo dei tablet, su cui Ballmer vuole puntare entro fine anno, non è da meno. Asus ha presentato in primavera lo stupendo device "eeePC" che porta Win7 a bordo ed è per questo il perfetto killer dei device basati su Android ed iOS; è altrettanto vero che Win7 full rischia di essere troppo pesante per un tablet e, infatti, la versione più piccola del device di Asus si basa su Android. Le perplessità su Windows usato sui tablet è chiaramente espressa qui: http://www.pcworld.com/businesscenter/article/206978/why_a_windows_tablet_is_still_a_bad_idea.html?tk=hp_new

Dal punto di vista tecnico - non me ne voglia il caro amico Valter – ritengo che Windows CE/embedded abbiano sempre meno senso per device destinati al mercato utente dove la disponibilità di applicazioni è fondamentale. Ma MinWin non è ancora realtà, non almeno come sarebbe necessario su device come il tablet.
MinWin ovviamente non basta, c'è l'evidente necessità di riscrivere una shell (explorer.exe) che è stata notevolmente migliorata in Windows 7 ma la cui età (è nata con Windows 95) si fa decisamente sentire. La shell è molto complessa, l'unico libro sull'argomento è quello di Dino, e la sua customizzazione per i device di oggi è decisamente troppo ardua.
Oggi come oggi un telefono come WP7, che porta a bordo una CPU da 1GHz, è tranquillamente in grado di far girare una versione full di Windows, ma il ritaglio ed una shell differente sono d'obbligo per avere una user-experience decente.

Nella guerra dei cellulari, l'inseguimento al nuovo mercato del glamour tecnologico aperto dall'innovativo iPhone, secondo me non doveva vincolare tutte le altre scelte. La rivisitazione grafica era dovuta, ma da un device di casa Microsoft ci si aspettava un "di più" tecnologico che a mio parere manca, anche se solo comparandolo con il suo predecessore WM6. In passato (guardiamo ad esempio ai grossi cambiamenti come l'inizio dell'era Windows) Microsoft era riuscita a soddisfare la voglia di novità del consumatore minimizzando le breaking changes.
Con WP7 invece ha totalmente tagliato i ponti con il passato, abbandonando il proprio mercato dei device industriali e i vecchi clienti WM6. Detto questo, ci vorrà ancora qualche anno per capire se gli end-end-user ne decreteranno il successo o l'insuccesso, non certo il sottoscritto.

L'impressione è che nel tentativo di andare dietro alla concorrenza, stiano perdendo quanto è loro più congeniale. Non manca innovazione, non mancano persone e team brillanti (Microsoft è sempre stata un'azienda innovativa e Microsoft Research ne è probabilmente la testimonianza più chiara); manca invece una vision che porti i prodotti e le tecnologie fino in fondo, il cui messaggio su quali scegliere e come usarle sia chiaro.
Voglio ribadire che le capacità ci sono. Il neonato team del parallelismo, per fare uno dei tanti possibili esempi, sta facendo un lavoro che non ha precedenti e con il prossimo C# 5.0 il paradigma della programmazione asincrona potrebbe realmente essere alla portata di tutti.

Io sono un tifoso delle tecnologie, e quelle di casa Microsoft mi hanno dato tantissime soddisfazioni. Dal punto di vista tecnologico il mio entusiasmo è immutato: continuo a studiare tutte le novità e a dare montagne di feedback anche per i più piccoli dettagli (il che è normale visto che mi danno del pignolo Smile). Mi dispiace solo vedere che questa confusione rischia di rendere vane o inutilizzate tante tecnologie valide e promettenti.

Print | posted on sabato 30 ottobre 2010 02:03 |

Feedback

Gravatar

# re: The Land of Confusion

Non è un caso che le migliori innovazioni vengano dalle division meno Ballmerizzate di MS. Ho come l'impressione che in futuro per i più tecnici sarà difficile distinguere tra Win8 e Win9 e WinX.
30/10/2010 02:12 | Paperino
Gravatar

# re: The Land of Confusion

n'amo bene :-\
30/10/2010 02:39 | Salvatore Di Fazio
Gravatar

# re: The Land of Confusion

Quoto tutto, aggiungndo che la stessa identica cosa succede anche sul versante Data Platform e Business Intelligence :(
30/10/2010 14:36 | Davide Mauri
Gravatar

# re: The Land of Confusion

Microsoft negli ultimi anni è stata una fucina di idee e tecnologie, da sola ha fatto tanto quanto se non di più di tutti i concorrenti ed il mondo open source messo insieme. E' anche fisiologico che in tutto questo fermento ci sia confusione e che molte cose si perdano. O si segue un modello organizzativo compartimentato (ma si rischia di inventare n volte la stessa cosa) o si fa uno sforzo tremendo di "visione del quadro d'insieme": facile a dirsi difficilissimo a farsi dato che ci vogliono persone carismatiche con due palle grandi, tanta capacità di stare a sentire tutti e scremare la paglia dal grano senza bruciare il campo intero. E di gente cosi oggi in Microsoft non mi pare ce ne sia.
30/10/2010 17:52 | Gabriele Del Giovine
Gravatar

# re: The Land of Confusion

Condivido la tua analisi, ma solo in parte le conclusioni.

Una delle qualità di MS che ho sempre apprezzato è quella di saper aggiustare il tiro, di capire cioè quando la strada intrapresa non è proprio quella giusta. Io non ho mai capito perchè MS avesse realizzato SL, ma oggi con WP7 SL ha trovato la sua ragione di esistere.

Come sviluppatore web poi non posso fare altro che apprezzare la scelta di dedicarsi completamente all'html 5.

La mancanza di uno Chief Software Architect non penso che sarà un problema, se al suo posto in MS ci sarà un compitato di Architect a dettare le linee giuda, avere una solo persona al comando può essere troppo rischioso per una azienda che ha così tanti interessi come MS.
30/10/2010 20:55 | Antonio Di Motta
Gravatar

# re: The Land of Confusion

@Gabriele. Questo intanto dimostra che Bill Gates faceva una grossa differenza. Tanto di cappello a lui ancora una volta se ce ne fosse bisogno.
Poi credo comunqu che gente in gamba ci sia, solo che non ha un mandato per dare l'impostazione che serve, tutto qui.
30/10/2010 23:48 | Raffaele Rialdi
Gravatar

# re: The Land of Confusion

@Luca. Come ho scritto nel post credo invece che l'innovazione non manchi per niente, anzi i vari team stanno dimostrando di essere molto produttivi in questo senso.
A mio avviso la vision di Ozzie è stata troppo di rottura, e questo non ha spiazzato i concorrenti ma solo i propri clienti. A questo aggiungici una serie di decisioni contraddittorie e poco armonizzate e di qui la confusione.
Resta comunque il dato di fatto che VS2010 e le tecnologie che ci stanno dentro sono anni luce avanti rispetto a tutti.

Inoltre non credo che IBM possa costituire un paragone valido. IBM è sempre stata per sua natura un'azienda di servizi.
IBM ha il merito di prolifici centri di ricerca e sviluppo e il centro di Zurigo con personaggi come Mandelbrot, morto pochi giorni fa e a cui rivolgo un pensiero. Però fin dall'inizio dell'epoca PC ha cercato di giocare la carta servizi e sta continuando a farlo.
Credo invece che per paura di farsi mangiare mercato dai concorrenti abbiano dimenticato di fare le cose come hanno sempre saputo farlo.
30/10/2010 23:58 | Raffaele Rialdi
Gravatar

# re: The Land of Confusion

@Antonio. Io non credo che la notizia relativa a Silverlight sia così terribile. Se vogliamo è in linea con la decisione di abbracciare gli standard come hanno promesso e fatto da tempo.
Ma un VP non può dare una notizia del genere senza corredarla di tutta una serie di spiegazioni che permettano di tranquillizzare chi ci ha investito sopra.
Se viene presa una decisione del genere, che insisto essere assolutamente legittima, è necessario dire quali investimenti saranno fatti o rimossi per lo sviluppo web. Invece nella stessa conference ti spiazzano ancora di più dicendo che WPF hosterà Silverlight nella prossima versione.
Non sai quante volte ho chiesto questa feature e a chi ... quindi la cosa mi rende strafelice, ma decisioni del genere devono essere inquadrati in una strategia.
E qui il Chief Software Architect avrebbe potuto fare qualcosa di più che continuare a ripetere S+S e Azure fino alla nausea.
31/10/2010 00:08 | Raffaele Rialdi
Gravatar

# re: The Land of Confusion

Ciao Raf,
scusate il ritardo (tanto per ribattere con una citazione cinematografica a quella musicale del tuo titolo), ma come ti ho detto agli OpenDays, ho avuto pochissimo tempo per blog e affini.
Condivido in parte le tue osservazioni, una parte non le capisco perchè non conosco gli argomenti di cui parli (purtroppo noi sviluppatori embedded arriviamo su certe tecnologie più tardi delle nostre poste o dei nostri treni...).
Non condivido molto il discorso su MinWin e sul fatto di avere un unico OS per tutti i device.
E' sicuramente una soluzione semplice ed efficiente, sia per gli sviluppatori (che non devono impararsi sistemi diversi, stare attenti alle piccole differenze che causano grossi casini, tenere tre o quattro versioni degli ambienti di sviluppo perchè non tutti supportano tutte le piattaforme), sia per MS che potrebbe dedicarsi anima e corpo a un solo OS e non disperdere gli sforzi su sistemi diversi.
Purtroppo però non credo che si arriverà a questo punto molto rapidamente e, forse, nemmeno ci si arriverà mai.
Quando dici che i processori da 1GHz dei device mobili potrebbero supportare anche minwin dici una cosa vera. Ma una versione di Windows 7 ci girerebbe in modo appena decente e, comunque, quei processori sono arrivati ora, un anno dopo la release di 7 e qualche anno dopo la sua "messa in cantiere". Chiunque ha provato 7 home o starter su un netbook sa che si può scordare la fluidità della UI di WP7 e che attività più complesse della navigazione o della scrittura di qualche e-mail ti "ammazzano a colpi di fichi molli". Che poi molti (io per primo!) siano disposti ad accettarlo pur di non portarsi appresso 6Kg di portatile o di spendere per il portatile quanto spendono per un'autovettura, non basta a dire che le performances non siano un problema.
E i ritardi che posso accettare sul netbook non li accetterei mai da un telefono.
La UI è e resterà diversa. Windows 7 può supportare il multitouch, ma nessuno rimpiazzerebbe il suo mouse con un touch (se non altro perchè non saprei come fargli capire quando voglio fare click destro e perchè le ditate sul display dopo un po' stufano) e le dimensioni (magari non la risoluzione) dello schermo restano troppo diverse per visualizzarci le informazioni allo stesso modo.
Non vedo molto spazio per farci girare le stesse app. Perlomeno la UI deve essere diversa. Certo ci sarebbe da discutere sul fatto che tra embedded, desktop e phone ci sono tre runtime XAML (4 considerando Silverlight in browser) basati su tecnologie e linguaggi diversi.
Pensandoci bene anche apple ha due OS, uno per i "PC" (metto le virgolette altrimenti il mio macMini mi leva il saluto) e uno per i device mobili. E nessuna compatibilità applicativa.
Linux embedded non ha mai sfondato sui device mobili. E non ditemi che Android discende da Linux perchè ne condivide parti di codice. Anche io e George Clooney condividiamo almeno un 99% del patrimonio genetico... ma la maggior parte delle persone non mi scambia per lui! :)
Su Android non gira nessuna applicazione linux classica e portarcele è un bagno di sangue eppure questa scelta non l'ha ucciso nella culla... Sopravvive anche a una virtual machine che compila just in time il codice compilato per un'altra virtual machine :P
Come sviluppatore embedded sicuramente mi pesa essere rimasto a VS2008 (anche se è un salto avanti rispetto alla versione 2005 usata fino a prima di WEC7!) e non poter sfruttare tutte le tecnologie di cui vi sento spesso discutere durante i raduni e le cene MVP (fortuna che si parla anche di altro!), ma credo che ancora per un po' la separazione tra OS mobili e OS desktop/Server resterà.
Tutto ciò, ovviamente, IMVHO.
14/11/2010 18:53 | Valter Minute
Gravatar

# La strana strategia di Microsoft

La strana strategia di Microsoft
10/12/2010 14:48 | EssentialSimon
Gravatar

# L'ardua scelta dei tool per sviluppare su smartphone e tablet

L'ardua scelta dei tool per sviluppare su smartphone e tablet
22/08/2011 12:31 | Web Log di Raffaele Rialdi
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET