Sto cercando collaboratori per progetto open source da portare avanti a tempo perso. Per adesso c'è solo un'idea bislacca. Incollo qui documento tecnico che descrive l'idea. Non esiste nessun codice al momento.
OML — Object Markup Language
OML (Object Markup Language) è una proposta per un linguaggio di markup orientato agli oggetti, progettato specificamente per la descrizione e distribuzione di web application.
Il sistema si compone di tre elementi:
OML — il linguaggio di markup
OML Browser — l'applicativo che esegue le applicazioni OML
OML Runtime — Il framework di intent, che dovrebbe poter essere usato da qualsiasi linguaggio di scripting
OML Application - l'intero pacchetto
L'OML Browser sarebbe in sostanza un browser solo per web application, una applicazione che esegue altre applicazioni. Specifico solo per eseguire codice OML.
Il linguaggio OML si propone: di essere facilmente intellegibile per le AI, avere dichiarazioni semantiche d'intenti, in modo che di ogni cosa sia chiara la funzionalità, isolare ogni singolo oggetto, in modo che ogni oggetto abbia incapsulati i propri stili, le proprie proprietà, evitare ogni conflitto tra librerie, la possibilita di importare moduli separati, gestire namespaces, di essere totalmente indipendente dall'OML Browser, ognuno in teoria potrebbe sviluppare il proprio browser per qualunque dispositivo, l?OML Browser decide in propria autonomia come interpretare gli intent ed il codice, adattandolo al dispositivo dove è installato.
2. L'idea centrale
Il principio fondante di OML è uno solo:Chiunque potrebbe implementare il proprio OML Browser per qualsiasi dispositivo o piattaforma.
Tutto il resto — la modularità, il runtime separato, il sistema di intent, i metadati semantici — è conseguenza diretta o supporto architetturale a questo principio.
Questo distingue OML da qualsiasi sistema applicativo esistente. I browser web attuali richiedono anni di sviluppo da parte di organizzazioni con centinaia di ingegneri — Google per Chrome, Mozilla per Firefox, Apple per Safari. Nessun piccolo team o sviluppatore singolo può permettersi di costruire un browser web completo.
OML è progettato per abbassare radicalmente questa barriera. Il runtime — la parte più complessa, il framework degli intent — è un componente separato, open source, condiviso tra tutte le implementazioni. Chi vuole sviluppare un OML Browser non reimplementa tutto: implementa solo la parte specifica per il proprio dispositivo o contesto, appoggiandosi al runtime comune.
Il risultato è un ecosistema dove:
- Un piccolo team può sviluppare un OML Browser per dispositivi embedded
- Uno sviluppatore singolo può svilupparne uno per una piattaforma di nicchia
- Un'azienda può svilupparne uno ottimizzato per il proprio hardware
- La community può svilupparne uno general purpose
Nessuno di questi soggetti dipende dagli altri. Nessuno controlla gli altri. La specifica è il solo contratto comune.
Browser diversi interpreteranno gli intent in modo diverso a seconda del dispositivo e del contesto — ed è corretto che lo facciano. Un OML Browser su smartwatch interpreta display.modal diversamente da uno su desktop. Questa non è frammentazione: è adattamento, ed è uno degli obiettivi espliciti del progetto. La competizione tra implementazioni diverse è il meccanismo naturale attraverso cui l'ecosistema cresce e migliora.