domenica 3 febbraio 2008

Quando neppure la mamma ci crede...

Windows Vista ha diverse novita', per quanto ne dicano molti (!), tra queste sicuramente il fatto che e' la prima versione a 64 bit veramente utilizzabile e un'altra novita' e' il nuovo Desktop Windows Manager (DWM).

Purtroppo pero' antrambe queste novita' al momento sono ancora un po' zoppe.

L'altro giorno vado sul sito Microsoft per scaricare un software che richiede la verifica di autenticita' di Windows e scopro che il controllo ActiveX che effettua il controllo richiede la versione di IE a 32 bit, per cui tocca chiudere IE x64 e lanciare IE x32, cosa che poi non e' detto l'utente sappia come fare e soprattutto non e' detto che sappia debba fare perche' non c'e' alcun feedback sul sito semplicemente la verifica non procede e si resta con la schermata di partenza!

Ora se si fa un sistema a 64 bit bisognerebbe supportarlo un po' con piu' di impegno, gia' Silverlight non gira su IE x64, adesso scopro che neppure la verifica di autenticita' funziona, si finisce per pensare che sia Microsoft in primis a non credere a Vista a 64 bit, quando invece forse non si rende conto che e' una delle armi migliori per far migrare una buona fetta di utenza domestica (mi sto riferendo ai videogamers che sono quelli che hanno piu' da guadagnarci dall'architettura x64).

E veniamo al DWM, che nelle intenzioni di Microsoft andrebbe a sostituire, in coppia con il WPF, GDI/GDI+, vi rimando alla pagina di Wikipedia per un'overview della nuova tecnologia.

Il punto e' che al momento Vista e' ancora pesantemente (per non dire quasi completamente) basato su GDI. Solo alcune parti utilizzano sfruttano WDM, ma nella sostanza GDI la fa ancora da padrona.

Basta aprire il Task Manager, aggiungere la colonna GDI Objects alla lista dei processi per verificarlo. Provate a lanciare un po' di finestre di Windows Explorer o provate a usare il tasto destro del mouse per aprire il context menu' dentro a Windows Explorer e vedrete il conto dei GDI Objects crescere linearmente.

E' il motivo per cui se tenete premuto per pochi secondi i tasti Win+E mandate praticamente Vista in bambola. Gli oggetti GDI infatti hanno un limite, e per quanto attraverso il Registry si possano incrementare le dimensioni dei buffer allocati per gli oggetti GDI, prima o poi si puo' comunque "piantare" Windows Explorer nonostante la RAM a disposizione sia ancora tanta.

Ora e' chiaro che avere 100 fineste di Windows Explorer aperte non e' molto utile e molto frequente (tanto per usare un eufemismo), pero' resta il fatto che in Vista l'introduzione del WDM+WPF non ha portato di fatto alcun beneficio per ora.

Dubito che in futuro Microsoft rilasciera' una versione di Explorer o di IE basata sul WDM su WPF, e di applicazioni che usano si integrano con WDM usando WPF credo ce ne siano ancora poche in giro.

Neppure Office 2007 usa WDM WPF e chiunque voglia sviluppare applicazioni compatibili con XP non puo' che riunciare a WDM alla accoppiata WDM+WPF.

Quindi la domanda nasce spontanea: WDM avra' mai un futuro? Per Windows 7 si parla gia' di una nuova tecnologia.

Quindi se le cose stanno cosi' alla fine WDM serve solo per qualche effetto in Vista, di cui sinceramente non e' che se ne sentisse proprio il bisogno, e poi alcuni di questi effetti si riescono ad esempio a replicare su XP usando WindowBlinds, e a peggiorare le cose in Vista si paga il costo aggiuntivo che GDI non usufruisce di alcun vantaggio offerto dalla scheda video, a causa del fatto che c'e' un wapper che mappa gli oggetti GDI in memoria per poi passare la bitmap alla scheda grafica.

Insomma, se le novita' piu' interessanti non vengono supportate si rischia di finire come con tanti altri prodotti (e non sto parlando solo di Microsoft) che nonostante abbiano avuto contenuti tecnici di tutto rilievo hanno finito per cadere nel dimenticatoio, e se questo non accadra' coi 64 bit perche' volenti o nolenti l'hardware forzera' in questa direzione per DWM il futuro non lo vedo per niente roseo.

8 commenti:

  1. Però su Vista IE si apre di default con un'istanza a 32 bit PROPRIO per mantenere la compatibilità con i vecchi controlli ActiveX.

    Il fatto che tu usi la versione a 64 bit indica che in qualche modo ne sai più della media e quindi sai anche cosa fare in caso di problemi.

    RispondiElimina
  2. Chi ha scritto questo articolo ha dimostrato di essere un ignorante in materia. Il DWM serve a mostrare e gestire le finestre contenitrici delle applicazioni, sfruttando la tecnica del desktop composition.
    Ciascuna applicazione che viene ospitata in una finestra del DWM, poi disegna gli elementi grafici usando le librerie che vuole, gdi, opengl, directx, o qualsiasi altra libreria grafica sviluppata in qualsiasi linguaggio (c, c++, assembler, ecc).
    Questo avviene in qualunque OS che abbia un desktop composition engine!
    Quindi chi ha scritto questo articolo non ha capito nulla di cosa serve un desktop composition engine e quali sono i suo scopi.

    RispondiElimina
  3. Darisole, hai ragione, in effetti di default viene lanciato IE x32, resta il fatto che se vai sul sito Microsoft con IE x64 non hai alcun feedback e la pagina resta li' senza segnalare il problema.

    x panny: il DWM crea un wrapper intorno alle librerie grafiche, quindi se un'applicazione non fa uso ad esempio del del Windows Presentation Foundation disponibile con .Net 3.0 si ritrova a non avere accesso all'accelerazone hardware che invece puoi avere su XP.
    Hai mai provato a lanciare un gioco che usa DirectX? Il DWM viene "spento" per permettere al gioco di poter usare DirectX direttamente, altrimenti dovrebbe passare comunque attraverso il DWM.
    Nell'articolo non ho fatto menzione del WPF con il quale DWM e' integrato condividendo un layer in comune, quindi accetto la critica di non aver dettagliato meglio gli aspetti dell'architettura, ma il nocciolo del discorso e' che le applicazioni che usano GDI su Vista devono passare per un buffer intermedio e non hanno accesso "diretto" alla memoria della scheda video.

    RispondiElimina
  4. Non ho capito perché lo sviluppo di applicazione che utilizzano WPF dovrebbe pregiudicare la portabilità dell'applicazione stessa.
    WPF è parte integrante del framework .NET 3.0 che è disponibile per Windows XP, Windows Server 2003, Windows Vista e Windows Server 2008.
    Se si scrive un'applicazione che utilizza WPF sta poi al framework sfruttare al meglio le tecnologie sottostanti (nel caso di Windows Vista sfruttare DWM).
    Se mi sono perso qualche cosa ditemelo perché se così fosse non capisco il framework che cosa deve fare se non sfruttare al meglio quello che mette a disposizione il sistema sottostante astraendolo in modo che l'applicazione ed il programmatore non ne siano consci.

    RispondiElimina
  5. silverlight 1.1 è nativo a 64-bit

    RispondiElimina
  6. @nico: buono a sapersi! ;-)

    @sirus: hai ragione, di per se' non pregiudica la portabilita'.
    Purtroppo pero' il framework sta ancora stentando a decollare, mi viene in mente il Media Center che lo usa, ma se dovessi nominare altre applicazioni Microsoft che lo usano non saprei.
    Andando su software terze parti c'e' Yahoo! Messanger, Paint.NET e poche altre.
    E' un peccato perche' nella mia esperienza il framework offre veramente molto agli sviluppatori.

    RispondiElimina
  7. @enrico
    nemmeno su xp, le gdi hanno mai avuto accesso diretto alla memoria. Se vuoi avere accesso alle risorse hardware devi usare le directx o le opengl. Non a casa tutti i giochi e le applicazioni cad/cam usano le directx/opengl. Nessuna di esse usa le gdi se non per mostrare qualche menù personalizzato.

    RispondiElimina
  8. nico, da quello che ho capito pero' Vista aggiunge un ulteriore layer alle chiamate GDI.
    Il punto che volevo evidenziare, e che probabilmente non sono riuscito a sottolineare con chiarezza, e' che il nuovo DWM non ha portato benefici ai vari componenti di sistema come ad esempio Windows Explorer, che conserva intatte le limitazioni che c'erano anche su XP.

    RispondiElimina