Lingue funzionali che compongono su Android Dalvik VM? [chiuso]

16

Ho un problema software che si adatta all'approccio funzionale alla programmazione, ma il mercato di riferimento sarà sul sistema operativo Android. Chiedo perché ci sono linguaggi funzionali che compilano nella VM di Java, ma Dalteck bytecode! = Bytecode Java.

In alternativa, sai se l'utilità dx può convertire in modo intelligente i file .class generati da linguaggi funzionali come Scala?

Modifica : Per aggiungere un po 'più di utilità alla comunità e anche per aiutarmi a scegliere meglio, posso affinare la domanda un po'?

  • Hai usato altre lingue con Dalvik? Quali?
  • Quali sono alcuni "trucchi" (problemi) che potrei incontrare?
  • Le prestazioni sono accettabili? Con ciò intendo che l'applicazione si sente ancora sensibile all'utente.

Non ho mai realizzato lo sviluppo di telefoni cellulari, ma sono cresciuto con dispositivi vincolati e non mi illudo che ci sia un costo per l'utilizzo di linguaggi non standard con la piattaforma. Ho solo bisogno di sapere se il costo è tale che dovrei calzare il mio approccio nel linguaggio predefinito (ad esempio, applicare i principi funzionali nel linguaggio OOP).

    
posta Berin Loritsch 29.03.2011 - 19:46
fonte

5 risposte

7

C'è un post sul blog di Christian Neukirchen chiamato Programmazione per Android con Scala che mostra come creare programmi Scala per Android. Sembra che dex possa gestire Scala, ma è necessario utilizzare uno strumento come ProGuard per ridurre la libreria di classi Scala alla dimensione perché dex importerà altrimenti l'intero runtime di Scala.

Sono inoltre in corso alcuni lavori sulla programmazione Android con Erjang e Clojure .

    
risposta data 29.03.2011 - 20:04
fonte
7

Kawa è una variante deliziosa ma poco conosciuta di Schema che è esistita tranquillamente per molti anni e funziona sia su JVM e Dalvik, nativamente . Pertanto, simile a Mirah, il suo output non include VM extra e include solo librerie importate in modo esplicito. Kawa ha un sacco di macro standard (incluse alcune specifiche per le API di Android) che creano una bella sintassi pulita (supponendo che uno non sia avverso alle parentesi), e aggiunge alcune gustose chicche su Scheme, come "promesse" (pigro eval e futures in uno). Il linguaggio è abbastanza solido e ben documentato, ed è stato attivamente mantenuto ed evoluto sin dai primi giorni di Java.

Il calendario dell'Avvento Java riassume i meriti di Kawa con alcuni esempi e collegamenti informativi.

    
risposta data 20.06.2013 - 18:23
fonte
1

Accanto a scala potrei suggerirti di dare un'occhiata a mirah su Android, qui ci sono alcuni dettagli: collegamento

Quindi cosa rende questo approccio "migliore" rispetto alle altre lingue? Mirah è un linguaggio tipizzato statico con una somiglianza con il rubino. Il che consente di avere uno stile funzionale probabilmente migliore di java. "Porting" di un linguaggio in Android è problematico in quanto è necessario eseguire il port anche della libreria standard. Mirah evita questo evitando di avere una lib standard. Nel materiale di riferimento c'è una bella panoramica dell'esperienza di REAL WORLD che esegue mirah su Android e come si è scoperto. (prova 2)

    
risposta data 13.09.2012 - 07:37
fonte
0

Ci sono stati molti movimenti su Clojure su Android ( link ) Neko .
Esistono problemi di prestazioni relativi a Dalvik VM e Clojure Compiler; questi problemi vengono lentamente risolti.

Una presentazione sullo stato attuale (luglio 2015): link

    
risposta data 08.07.2015 - 19:39
fonte
-1

Non è ancora tutto lì, ma Miguel de Icaza, un ragazzo che conosce una o due cose sulla VM di Davlik, dice " F # per droid è sulla loro lista di cose da fare . " Quindi direi che un pacchetto ufficiale sta arrivando.

    
risposta data 13.09.2012 - 12:14
fonte