Alcune informazioni su XUL

5 views
Skip to first unread message

Jack

unread,
Apr 13, 2010, 4:34:33 PM4/13/10
to XUL Italia - Public Discussions
Un saluto a tutti!

visto che è il mio primo post mi sembra giusto presentarmi brevemente,
sono uno studente di informatica di 20 anni ed ho conoscenze di Java
(e Swing), PHP, HTML, CSS, Javascript (con quest'ultimo me la cavo non
male, riesco anche a manipolare abbastanza bene il DOM) e qualche
conoscenza di Python.

dato che trovo Swing davvero molto macchinoso (ho dato un'occhiata
rapida anche a PyGTK+ ma non mi sembra da meno) l'idea di poter creare
e gestire interfacce grafiche in modo più pulito e bello da
sviluppare, con tecnologie che tutto sommato conosco già mi
entusiasma.

è per questo che vorrei chiedere qualche chiarimento a qualcuno più
esperto di me, così da capire se le mie conoscenze sono sufficienti
prima di iniziare a seguire qualche guida (ne ho trovato una non male
su Programmazione.it).
in particolare non mi è chiaro come con XUL si "colleghi" il codice
applicativo all'interfaccia grafica, mi spiego meglio:
quest'ultima si manipola con Javascript (esattamente come per l'HTML)
ma il codice vero e proprio del programma sicuramente non è scritto in
quest'ultimo linguaggio... la mia domanda è, quali sono i linguaggi
supportati?

Luca Greco

unread,
Apr 14, 2010, 9:10:17 AM4/14/10
to xulit-...@googlegroups.com
Ciao Jack,
Benvenuto in lista :-)

2010/4/13 Jack <from.the.d...@gmail.com>:
> [...]


> è per questo che vorrei chiedere qualche chiarimento a qualcuno più
> esperto di me, così da capire se le mie conoscenze sono sufficienti
> prima di iniziare a seguire qualche guida (ne ho trovato una non male
> su Programmazione.it).
> in particolare non mi è chiaro come con XUL si "colleghi" il codice
> applicativo all'interfaccia grafica, mi spiego meglio:
> quest'ultima si manipola con Javascript (esattamente come per l'HTML)
> ma il codice vero e proprio del programma sicuramente non è scritto in
> quest'ultimo linguaggio... la mia domanda è, quali sono i linguaggi
> supportati?

Al contrario :-)

Il codice vero e proprio è di solito scritto proprio in Javascript :-)
Che è il linguaggio meglio integrato in tutta l'architettura.

All'interno del framework c'è una componente, XPCOM, nata allo scopo
di rendere possibile l'interoperabilità tra più componenti e servizi scritti
in linguaggi differenti (e modellato su CORBA visto il periodo in cui è
stato sviluppato).

Per questo motivo è possibile scrivere codice applicativo o
componenti/servizi XPCOM
in Javascript, in C++ (che è fondamentalmente il linguaggio nativo
della piattaforma...
ma molto spesso metterci le mani si traduce in un bagno di sangue :-P), Python
e Java.

Personalmente ho sempre utilizzato Javascript e ho provato il bridge
Python una sola
volta (più per curiosità che per esigenza).

Il codice Javascript che non deve costituire la UI dell'applicazione
può essere organizzato
in componenti/servizi XPCOM (very hard), in moduli javascript JSM
(very light) e recentemente
in moduli in formato CommonJS grazie a Jetpack SDK (very cool and powerful).

--
Luca Greco @ Alca Società Cooperativa
Follow me on http://twitter.com/lucagreco

Jack

unread,
Apr 14, 2010, 3:50:16 PM4/14/10
to XUL Italia - Public Discussions

On Apr 14, 3:10 pm, Luca Greco <luca.gr...@alcacoop.it> wrote:
> Ciao Jack,
> Benvenuto in lista :-)

Grazie!

> Il codice vero e proprio è di solito scritto proprio in Javascript :-)
> Che è il linguaggio meglio integrato in tutta l'architettura.

> [...]


> Per questo motivo è possibile scrivere codice applicativo o
> componenti/servizi XPCOM
> in Javascript, in C++ (che è fondamentalmente il linguaggio nativo
> della piattaforma...

Quindi io posso scrivere una vera e propria applicazione (con, ad
esempio, una banca dati postgresql alle spalle) completamente in
Javascript?
sarebbe fantastico : D

> [...]


> Il codice Javascript che non deve costituire la UI dell'applicazione
> può essere organizzato
> in componenti/servizi XPCOM (very hard), in moduli javascript JSM
> (very light) e recentemente
> in moduli in formato CommonJS grazie a Jetpack SDK (very cool and powerful).

Jetpack è un bridge per tutta la piattaforma XUL?
pensavo servisse solo a creare estensioni per Firefox... da quel poco
che ho visto sembra davvero ben fatto!

Luca Greco

unread,
Apr 20, 2010, 8:22:53 AM4/20/10
to xulit-...@googlegroups.com
2010/4/14 Jack <from.the.d...@gmail.com>:
> Quindi io posso scrivere una vera e propria applicazione (con, ad
> esempio, una banca dati postgresql alle spalle) completamente in
> Javascript?
> sarebbe fantastico : D

In linea di passimo è possibile, unico problema sono i binding per
le librerie:

ad esempio il supporto sqlite è contenuto nativamente dentro xulrunner,
mentre per agganciare direttamente postgresql dovresti mettere su
il binding creando un nuovo componente XPCOM in C++ (ahiahiahiahia)
oppure attraverso l'API FFI JS-CTypes che è in via di completamento
(nelle beta di firefox 3.7 supporta strutture e puntatori,
https://wiki.mozilla.org/Jsctypes/api)

Allo stato attuale la tecnica + semplice e diffusa è quella di
agganciare le librerie
"non direttamente accessibili via XPCOM" attraverso un apposito servizio http,
sviluppato in uno dei framework/linguaggi da cui tali API sono già "bindate".

>> [...]
>> Il codice Javascript che non deve costituire la UI dell'applicazione
>> può essere organizzato
>> in componenti/servizi XPCOM (very hard), in moduli javascript JSM
>> (very light) e recentemente
>> in moduli in formato CommonJS grazie a Jetpack SDK (very cool and powerful).
>
> Jetpack è un bridge per tutta la piattaforma XUL?
> pensavo servisse solo a creare estensioni per Firefox... da quel poco
> che ho visto sembra davvero ben fatto!

Nel primo prototipo l'API jetpack era orientata alle sole estensioni,
mentre il nuovo
prototipo (quello a cui ci si riferisce come jetpack-sdk) consente di sviluppare
il codice per la piattaforma XUL organizzandolo in moduli CommonJS,
per cui di fatto consente di fare + o - tutto quello che facciamo ora,
solo in un
modo più ordinato.

--
Luca Greco @ Alca Società Cooperativa
Follow me on http://twitter.com/lucagreco


--
Subscription settings: http://groups.google.com/group/xulit-discuss/subscribe?hl=en
Reply all
Reply to author
Forward
0 new messages