Argomenti
C’era una volta...
 
La piattaforma U8
 
In sviluppo: MVP in U8
 
Incontri dei betaworks
 
 
 
 
C’era una volta...

Smalltalking ha il piacere di annunciare la disponibilità della piattaforma U8. Da settembre 2011 stiamo lavorando duro per lo sviluppo della piattaforma U8. Ecco il risultato dei nostri sforzi, sogni e visione del futuro. E’ anche l’inizio di questa newsletter che intende condividere con tutti gli utenti U8 lo stato corrente di U8/S8 con gli indirizzi futuri del progetto.

Vi raccomandiamo di considerare U8 come un mezzo di Smalltalk per un nuovo livello di comprensione dei sistemi dal punto di vista dell’ Object Technology. Abbiamo sperimentato che le maggiori potenzialità delle caratteristiche di Smalltalk si manifestano negli stadi iniziali dell’utilizzo di U8 e nelle sue eccezionali proprietà di strumento di auto-apprendimento.

 
La piattaforma U8
WI8 Highcharts S8 framework Goolgle Earth Applications

U8 può essere utilizzato in cinque modalità di esecuzione, che identificheremo col termine di piattaforme:

Web

La piattaforma Web è disponibile in due modi. WebBrowser, sviluppo di applicazioni basata sul web. Una immagine iniziale (u8.image.js) include S8, con tutte le risorse adatte alla manipolazione del browser (DOM framework) ed uno strumento minimale per lo sviluppo "in-page" (schermi ridotti) [Start coding].
   La seconda modalità è Headless, uno sviluppo modulare, disponibile ‘on demand’ e mediante contesti dinamici. Headless è una forma minimale che contiene il nucleo principale di S8 (core) e un’espressione di partenza (booting expression) che porta al caricamento dinamico del sistema modulare e gestito efficientemente a richiesta (on demand). La strumentazione di base è identica a quella del WebBrowser, ma l’utente può caricare dinamicamente nuovi strumenti o sostituire quelli caricati originariamente al momento del caricamento iniziale, permettendo cicli interattivi di sviluppo. [Start coding].

Console

Questa piattaforma offre una versione modificata della macchina virtuale di Google V8 (chiamata S8VM) con il nucleo principale di S8. Qui lo sviluppo è basato sui files, ed è il livello più basso di sviluppo in S8. Con questa piattaforma si possono caricare e linkare dinamicamente librerie native fornite da terze parti. [Start coding].

Server (Node)

Questa piattaforma offre una macchina virtuale per l’utilizzo di Node.js con il nucleo centrale di S8 e risorse per lo sviluppo in Smalltalk di applicazioni client-server. In questa piattaforma è disponibile un meccanismo di chiamata ad alta efficienza alle API, realizzata a livello della macchina virtuale (VM) ed un modello a grana molto fine per l’accesso a chiamate e strutture esterne (FFI framework) a livello di Smalltalk [Start coding].

PG8 (A8 + PhoneGap)

Estensione di A8 per il supporto in esecuzione di strumenti vari (iPhone OS, Android, Blackberry, Windows Phone, Palm WebOS, Bada, Symbian). Questa piattaforma sarà descritta dettagliatamente nelle prossime newsletter.

A8 Android

Ambiente runtime per strumenti Android. E’ una piattaforma S8 integrata con un’interfaccia iniziale (booting) nativa. Permette l’utilizzo di oggetti Smalltalk in tutti I livelli della piattaforma (accesso totale a javascript e java). A livello di applicazione non richiede niente oltre a S8 e, grazie alle capacità riflessive del sistema, l’integrazione con gli elementi nativi permette uno sviluppo interattivo [Start coding].

 
In sviluppo: MVP in U8

Un recente lavoro di Miguel Isasmendi affronta l’argomento dello sviluppo con il paradigma MVP per U8/S8. Miguel può dirvi qualcosa circa questo progetto:
Da circa un mese e mezzo sto sviluppando un frame work MVP; la scelta di questo modello di architettura rispetto ad altri, come il classico modello MVC o altri paradigmi, si basa sui vantaggi ottenibili nella realizzazione di GUI usando il concetto di MVP; i vantaggi dipendono dalla possibilità di separazione degli strati dei componenti del paradigma per la costruzione di applicazioni web complesse, ovviamente enfatizzando l’aspetto della parte client e la possibilità di effettuare prove nello stesso frame work su uno specifico strato. L’aspetto principale a cui mi rivolgo è la possibilità di costruire gli strumenti base di Smalltalk (ad es. ClassBrowser, ispettori ecc.), serializzare le GUI (JSON), permettendo la creazione di architetture riutilizzabili a supporto di oggetti nativi che consentano la generazione di strati riutilizzabili, gestori di eventi ottimizzati per l’utilizzo nei browser nella costruzione di applicazioni “desktop-like”, “mobile-like” o “browser-like”.

Che parte di una GUI tradizionale è gestibile con questo paradigma?
Attualmente riesco ad istanziare una HirarchyBrowser molto primitivo, usando sia viste semplici che complesse che implementano la GUI di base dei widgets. L’idea fondamentale è quella di abbandonare il concetto “classico” della GUI (finestre, bottoni, links ecc.) e orientarmi verso viste più complesse, sperando di essere in grado di generare GUI realmente portabili (ad esempio) da/a strumenti mobili. Oltre a ciò, spero di essere in grado di sviluppare in futuro widgets a cui applicare nuovi concetti di utilizzabilità e disegno; ad esempio, un modo più potente di manipolare finestre con liste a selezione multipla.
   Fondamentalmente sto costruendo strati di astrazione sopra il frame work del DOM contenuto in U8; tuttavia è anche possibile, se necessario, utilizzare un altro frame work. Sto preparando le finestre per avere la possibilità di gestire le modifiche attuali e future che si verificano nel contesto dell’ambiente. Un caso di possibile prova di cambio ambientale è che l’idea stessa di finestra deve essere ridefinita, dato che le finestre si presentano in due tipi: browser windows, che hanno la possibilità di svolgere specifiche operazioni e che non hanno eccessivo controllo e “internal windows” che possono essere controllate in modo praticamente totale e che non sempre sono presenti in un ambiente desktop.

E’ possible portare in altri ambienti questo framework?
Sì. In basso, nello strato inferiore delle viste (vicino al browser) c’è un mini strato che collabora direttamente e pesantemente con gli handles; questo sarebbe “la view nativa”; a questo livello è possibile cioè che questo frame work possa essere utilizzato con viste che configurano oggetti del DOM, oppure con altri frameworks di widgets.

Il punto di riferimento per un modello MVP è Dolphin. Puoi indicarci le principali differenze/similitudini?
II punti comuni sono certamente i protocolli per la creazione di alberi e liste di viste nonché nella manipolazione delle presentazioni, sebbene ci siano modifiche dovute a domini differenti e vincoli strutturali. Anche la serializzazione delle viste (nel nostro caso fatta mediante JSON) presenta delle differenze. Il “bootstrap” di una vista è differente a causa dell’ambiente tecnico utilizzato. La manipolazione degli eventi è differente, perché dobbiamo cercare di mantenere la nostra applicazione il più leggera possibile. Non sarebbe vantaggioso avere troppi gestori di eventi per ogni accadimento e quindi, in linea di principio, gli eventi associati ad un oggetto non possono essere gestiti riscrivendo (per esempio) il metodo #onClick. Attualmente, i gestori degli eventi devono essere instanziati esplicitamente.

continua con la prossima newsletter…
 
Incontri dei Betaworks

Gli incontri Betaworks sono incontri periodici (uno alla settimana) in giorni e durate prefissate, aperti a tutti coloro che sono utenti U8 registrati. L’obiettivo di questi incontri è quello di progredire insieme nello sviluppo in U8 e rispondere a domande riguardanti U8 (e S8). Desiderate partecipare al prossimo incontro? Inviate una mail a info@smalltalking per avere l’ora/data/durata e ottenere accesso e informazioni per entrare nell’ambiente virtuale del progetto. Potete inoltre controllare smalltalking mail list per annunci beta work, oppure potete leggere altre informazioni nel nostro swiki.

Per partecipare è richiesta una chiamata (via Skype) e TeamViewer.
 
 
 
 
U8 è un progetto creato è sviluppato
in ambiente Smalltalking.
Per ulteriori informazioni visitate il sito Smalltalking