mercoledì 13 ottobre 2010

I piani per Plasma a medio e lungo termine.



Nel solito post-fiume di Aaron Seigo si celano i piani che, da qui ai prossimi 3/4 anni, dovrebbero ridefinire l'architettura di Plasma e che promettono maggiore semplicità nello sviluppo dei plasmoidi, prestazioni migliori, oltre ad una maggiore adattabilità della tecnologia in ambito desktop e mobile.
Per avere un quadro più chiaro di quali siano questi piani, ci siamo rivolti al sempre disponibile Marco Martin che di Plasma è, senz'ombra di dubbio, persona informata dei fatti e che in effetti ci ha spiegato diverse cosette interessanti che riportiamo così come le abbiamo ascoltate.

"Nel breve periodo (diciamo KDE SC 4.6)" - ci dice - "sarà possibile scrivere plasmoidi usando QML e javascript (il supporto è quasi pronto).
Avere plasmoidi che non siano scritti in C++ è un obiettivo importante perchè c'è un margine d'errore ridotto, non c'è bisogno di compilare, c'è meno rischio di mandare in crash Plasma e così via.
Il binding javascript funziona già piuttosto bene, ma il layout dell'interfaccia grafica viene sempre gestito nel solito modo "imperativo" che non è molto comdo.
Con QML che è un linguaggio dichiarativo, invece, diventa molto più semplice separare la logica dell'applicazione dalla sua interfaccia che, in effetti, potrà essere portata con maggiore semplicità o modificata per adattarsi a dispositivi diversi.
In combinazione con QTComponents dovrebbe fornire una framework per poter creare specifici set di widget per ogni piattaforma in grado di eseguire Plasma, facendo in modo che la stessa applicazione, pur mantenendo la medesima logica, potrà contare su un aspetto specifico in grado di adattarsi coerentemente al dispositivo su cui sta girando.
Tanto per fare un esempio, un widget eseguito su KDE manterrà l'aspetto che conosciamo, mentre su MeeGo diventerebbe una applicazione a schermo intero servendosi dei widgets nativi della piattaforma."

L'ultimo tassello è Scene-Graph e sempre Marco Martin ci spiega quel che anima Plasma sotto al cofano e quali sono gli aspetti oggetto di revisione: "al momento Plasma (e Meego) utilizzano QGraphicsView per disegnare la propria interfaccia e, nonostante le sue prestazioni siano notevolmente aumentate negli ultimi tempi e il backend OpenGL si stia avvicinando ad una qualità da release, è ancora possibile fare di più.
Qt disegna mediante una classe chiamata QPainter.
Con questo metodo completamente "imperativo" il programmatore decide cosa disegnare e quando.
Questo approccio concede una certa libertà, ma si adatta male ad OpenGL.
Scene-Graph è, invece, molto più simile a quello che può essere il motore grafico di un videogioco 3D.
Gli oggetti sono descritti in modo dichiarativo (e quindi verrà usato QML anche per questo) facendo in modo che ognuno di esso venga disegnato al momento più opportuno per l'hardware della scheda grafica e garantendo prestazioni maggiori.
E' un piano a lungo termine ma, un giorno che la parte UI di Plasma sarà migrata con successo a QML e QtComponents, un'eventuale transizione a Scene-Graph dovrebbe risultare abbastanza indolore."


Da quel che possiamo intuire, quindi, lo scopo è quello di costruire un vero e proprio sistema di API specifiche per Plasma che possano velocizzarne lo sviluppo senza dover scendere a livelli troppo bassi di programmazione, con librerie evidentemente più duttili, ma anche più problematiche da gestire per la stabilità del tutto.
Indubbiamente, una sfida da tenere d'occhio.

testo raccolto da kurtz77 per la linea d'ombra. Si ringrazia Marco Martin per la disponibilità e la collaborazione.

Nessun commento:

Posta un commento