TL; DR:
Ho bisogno di sviluppare un'app che dovrebbe avere lo stesso aspetto sul desktop e come incarnazione di un sito web.
Dato che sono un web dev e non ho mai sviluppato per desktop, voglio usare un linguaggio che può incorporare un webkit visualizzare così Posso usare lo stesso front-end HTML / JS per entrambi gli usi e ridurre al minimo la curva di apprendimento per la GUI almeno.
C ++ e Java possono entrambi utilizzare il webkit, tuttavia, sto cercando alternative in cui le funzioni siano cittadini di prima classe, perché preferisco di gran lunga le lingue basate su prototipi.
Versione lunga
Sono principalmente uno sviluppatore web; Sono a mio agio con js / as3 / php / python.
Ultimamente, tuttavia, avevo idee che necessitavano di altri linguaggi. Vale a dire, ho un'idea per un software che è parte custom-database e parte GUI. Così ho iniziato ad affrontare linguaggi orientati al desktop come Java e C ++.
Ho scoperto che Java è fondamentalmente super-facile e tipo C ++ ok (anche se diventa complesso quando provo a usare GTK e il i documenti sono scarsi e dispersi). Posso usare questo; una cosa però mi infastidisce: essendo appassionato di PHP come progetto e come comunità, sono cresciuto in antipatia per le lingue imperative e mi trovo molto più a mio agio con i linguaggi in stile ECMA. Sono stato contento del web dev ultimamente con l'avvento di node.js e di come avrei potuto iniziare a sviluppare funzionalità lato server con javascript.
La mia domanda
Ho bisogno di un linguaggio con le seguenti caratteristiche:
- Funzionale. Per "funzionale", intendo una grande definizione . Ciò include qualsiasi lingua in cui le funzioni sono cittadini di prima classe (dove "azioni" sono più importanti di "attori").
- Portatile: ho scelto C ++ / GTK o Java a causa della facile portabilità e senza restrizioni di licenza. Quindi la portabilità qui significa os-independent (con limiti realistici) così come licenza aperta .
- Può utilizzare una vista webkit: (come in GTK , o in Java ) o simili; Intendo sfruttare la mia conoscenza delle app Web per creare una bella, usabile, gui in html5. La stessa interfaccia verrà utilizzata nella versione online dell'app. Pertanto, ho bisogno che il linguaggio abbia un modo per incorporare e interagire con HTML5
- Può usare JS: idealmente, tramite V8, sebbene il rhino o uno strumento simile sia ok. Se un oggetto window js potrebbe essere esposto al codice js (quindi posso usare libs standard come jQuery), sarebbe perfetto.
- Basso livello: ho bisogno che la parte del database sia veloce. Potrebbe codificare il mio db in C e la mia GUI in qualunque lingua-sarà-essere, ma idealmente, mi piacerebbe usare un set di strumenti per entrambi
- Meno importante, ma: se il linguaggio potrebbe essere un derivato dello script ECMA, quindi posso sfruttare le mie competenze js, sarebbe bello.
Le mie opzioni correnti
- Titanium , che ha tutte le caratteristiche di cui sopra e usa js come codice primario; Tuttavia, non mi piace essere legato ad un particolare SDK e preferisco usare libs open source indipendenti che posso leggere.
- Il tuo suggerimento?