A Ovest Di Paperino

Welcome to the dark side.

WinFS

Ed Bott ha scritto un interessante articolo Winfsintitolato «Why do you want WinFS?». Ne consiglio caldamente la lettura. Io invece prendo la palla al balzo per raccontare la (tanto attesa?) mia.

Innanzitutto su cos’era WinFS. 

Uno dei “motti” passati di Microsoft è stato quello di “information at your fingertips”. Era stato partorito da BillG in persona, probabilmente in un momento di difficoltà mentre cercava qualche documento elettronico sparsi per i mega-giga del suo hard-disk. La visione si è poi concretizzata meglio in quella di un OS search centrico. WinFS voleva essere l’implementazione di quella visione, ma non solo. L’idea dietro WinFS era di esporre un Framework estensibile di oggetti (anch’essi estensibili) persistenti verso un contenitore opaco ottimizzato per lo storage di tali oggetti. Il contenitore opaco altro non era che una versione ‘speciale’ di SQL server. Anche se il contenitore a tutti gli effetti può somigliare ad un file system, non lo è. WinFS è l’acronimo di Windows Future Storage e non di Windows File System come qualcuno può credere. WinFS quindi si può pensare come l’insieme di tre cose:

  1. lo storage (SQL Server su NTFS)
  2. un Framework di oggetti desktop built-in (Document, Mail, Contact, etc.)
  3. un set di API per manipolare e fare ricerche su tali oggetti (WinFS API)

[Parentesi storica. Le API del punto 3. hanno una somiglianza formidabile con le più tradizionali API per fare ORM (Object to Relational Mapping). In Microsoft c’era già un team a cui era stata assegnata la missione di costruire il layer ORM per .Net e si trattava di ObjectSpaces. Per motivi ovvii quindi WinFS ha preso molto in prestito da ObjectSpaces fino al punto che le due codebase sono confluite in WinFS + Relational Provider, essendo quest’ultimo un “plugin” per le WinFS API che permettesse di mappare gli oggetti a mo’ di un ORM verso un DB SQL “tradizionale”. Durante la coinfluizione (?) confluenza il team di ObjectSpaces ha cercato un altro posto al sole infelice e perplesso per il merge e proprio qualche settimana prima dell’addio definitivo ai monti si racconta che un manager abbia chiesto ad un suo sottoposto di rilasciare una versione “ridotta” di ObjectSpaces; il sottoposto non l’ha presa bene e visto che l’abbandono ormai era già dichiarato, un membro storico del team ha deciso di giocare una burla lanciando la seguente affermazione alquanto provocante sul tavolo: “questo team può riscrivere un ORM in 6 mesi mentre si è appesi in ufficio a testa in giù, bendati e con le mani legate dietro la schiena”. Il manager-sottoposto non l’ha presa bene ed ha cominciato ad urlare ed inveire. Chiusa parentesi storica]

Per una serie di motivi poco interessanti il progetto WinFS è stato dapprima rimosso da Longhorn e poi definitivamente cancellato nella definizione data sopra, non senza aver rilasciato qualche beta.

La parte API-esca è diventata LINQ + EntityFramework; le funzionalità interessanti di storage sono state rilasciate con SQL 2005/2008, il Framework definitivamente abbandonato: in parole povere dal punto di vista del search (information at your fingertps) è risultato molto più “semplice” usare tecnologie di indicizzazione tradizionali basate su filtri pluginabbili che cercare di “normalizzare” formati come quelli di Office in continua evoluzione.

Dal punto di vista degli utenti WinFS non ha lasciato nessun vuoto in Vista. Dal punto di vista dei developer neanche, anche se il rilascio di LINQ non è coinciso con quello di Vista. Ciononostante molti – senza neanche sapere cos’è – lo vorrebbero in Windows 7. Forse solo per validare la teoria che Vista è stato un fiasco anche per colpa di WinFS.

-quack

Technorati Tags: