PDA

View Full Version : Java e Swift - frammenti codice in altro linguaggio


gabmac2
05-03-2017, 09:24
E' possibile utilizzare una funzione scritta in un linguaggio, nell' altro citato. In entrambi i casi
Grazie in anticipo
Distinti Saluti

pabloski
05-03-2017, 10:57
no, almeno finche' swift non sara' portato su jvm

c'e' un tizio che sta realizzando un bridge, che sfrutta jni per chiamare i metodi java, ma e' ancora molto lontano dal completamento

quindi no, per ora non c'e' modo d'interfacciare swift a java

gabmac2
05-03-2017, 11:24
molto gentile
Java su Swift ovviamente nemmeno?

pabloski
05-03-2017, 17:27
Java su Swift ovviamente nemmeno?

no

gabmac2
06-03-2017, 19:01
esiste una possibilità che ciò avvenga in futuro?

[Kendall]
07-03-2017, 09:26
esiste una possibilità che ciò avvenga in futuro?

Direi di no. Se necessiti di librerie scritte in java da usare su swift è molto più facile trovare qualcosa di analogo già realizzato per quel linguaggio. Swift può usare librerie scritte in swift, ovviamente, ma anche in objective-c e nel "caro vecchio" C, mentre per java trovi una quantità di librerie praticamente sconfinato.

pabloski
07-03-2017, 10:06
esiste una possibilità che ciò avvenga in futuro?

considerando la marea di cappellate che apple sta facendo nel settore professional, direi di no

swift e' legato a doppio filo ad ios/macos, sarebbe possibile solo se ci fosse l'incentivo a rendere swift veramente multipiattaforma ( a la xamarin o qt per capirci ), ma non credo avverra' mai, perche' apple non ha interesse a farlo, la comunita' ne ha ancora meno

i fanboy potranno dire che swift e' il linguaggio piu' figo del mondo, ma la realta' e' che ci sono linguaggi che hanno le stesse caratteristiche ( kotlin per rimanere in ambito java/android ) e alcuni fanno pure meglio

c'e' gente che per divertimento sta lavorando a queste cose, ma non credo che raggiungeranno nel medio periodo una maturita' tale da poter essere usabili in pratica

Roran
21-03-2017, 11:02
considerando la marea di cappellate che apple sta facendo nel settore professional, direi di no

swift e' legato a doppio filo ad ios/macos, sarebbe possibile solo se ci fosse l'incentivo a rendere swift veramente multipiattaforma ( a la xamarin o qt per capirci ), ma non credo avverra' mai, perche' apple non ha interesse a farlo, la comunita' ne ha ancora meno

i fanboy potranno dire che swift e' il linguaggio piu' figo del mondo, ma la realta' e' che ci sono linguaggi che hanno le stesse caratteristiche ( kotlin per rimanere in ambito java/android ) e alcuni fanno pure meglio

c'e' gente che per divertimento sta lavorando a queste cose, ma non credo che raggiungeranno nel medio periodo una maturita' tale da poter essere usabili in praticabeh veramente swift è open source da un po', ed è disponibile in versione già compilata per ubuntu, come sorgenti da compilare per altre distro, l'unica vera limitazione è che non è possibile utilizzarlo per sviluppare app iOS o macOS, ma se si vuole utilizzarlo per sviluppare qualsiasi altro tipo di software o per creare web app con framework come vapor e kitura, già è possibile.

gabmac2
21-03-2017, 12:11
scambiare pezzi di codice tra i due lunguaggi però no, giusto?

pabloski
21-03-2017, 12:26
beh veramente swift è open source da un po', ed è disponibile in versione già compilata per ubuntu, come sorgenti da compilare per altre distro, l'unica vera limitazione è che non è possibile utilizzarlo per sviluppare app iOS o macOS, ma se si vuole utilizzarlo per sviluppare qualsiasi altro tipo di software o per creare web app con framework come vapor e kitura, già è possibile.

il linguaggio si, ma ci fai poco senza tutto quello che c'e' intorno

pensa quanto varrebbe c# senza .net, certamente un linguaggio in piu', ma con quale utilita'? per questo si parla di mono, in chiave cross-platform, e non di c# "liscio"

apple ci spera ma dovrebbe fare di piu', altrimenti finira' come objective-c/gnustep

scambiare pezzi di codice tra i due lunguaggi però no, giusto?

spero non ti riferisca al mischiare due linguaggi nello stesso file sorgente

gabmac2
21-03-2017, 14:49
fossero funzioni con algoritmi molto estesi, e già ottimizzati, è così tremento riutilizzarli?

pabloski
21-03-2017, 14:59
fossero funzioni con algoritmi molto estesi, e già ottimizzati, è così tremento riutilizzarli?

non mi e' chiaro a cosa ti stia riferendo

se intendi mischiare due linguaggi nel medesimo file sorgente, e' ovviamente assurdo, altrimenti il compilatore/interprete non saprebbe di che linguaggio si tratta

i linguaggi che fanno questo genere di cose ( molto limitatamente ) usano un preprocessore, che pero' traduce nel linguaggio base a cui il compilatore fa riferimento

quello che si puo' fare e' creare moduli binari diversi ( siano essi file oggetto, eseguibili o librerie ) e linkarli tra di loro

se condividono la stessa ABI e' possibile, altrimenti pure li' e' necessario fare degli adattamenti ( FFI indica proprio questo )

Roran
22-03-2017, 09:34
il linguaggio si, ma ci fai poco senza tutto quello che c'e' intorno

pensa quanto varrebbe c# senza .net, certamente un linguaggio in piu', ma con quale utilita'? per questo si parla di mono, in chiave cross-platform, e non di c# "liscio"

apple ci spera ma dovrebbe fare di piu', altrimenti finira' come objective-c/gnustep
bisogna dargli tempo, però lato server già si può utilizzare tranquillamente come sostituto di altri linguaggi più vecchi, di framework che utilizzano swift ce ne sono tanti, vapor e kitura sono solo i più famosi.

pabloski
22-03-2017, 14:57
bisogna dargli tempo, però lato server già si può utilizzare tranquillamente come sostituto di altri linguaggi più vecchi


e' certamente un linguaggio giovane e queste cose non si fanno da un giorno all'altro, pero' non riesco ad immaginare come la cultura closed di Apple possa "aprirsi" nella giusta misura per favorire la nascita di un'ecosistema florido intorno a Swift


di framework che utilizzano swift ce ne sono tanti, vapor e kitura sono solo i più famosi.

paradossalmente e' una parte del problema

gabmac2, ad esempio, cerca un linguaggio con cui fare "tutto", cominciando ovviamente dallo sviluppo cross-platform

il punto e' che non basta il linguaggio, ma c'e' bisogno di framework che siano cross-platform

ma se ce ne sono troppi, l'ecosistema e' troppo frammentato per:

1. avere un supporto adeguato dietro ai framework stessi
2. imporne uno ( o comunque una manciata ) come standard de facto
3. in che modo questi framework potrebbero competere/sostituire quello ufficiale di Apple ( e sappiamo che Apple non permette nemmeno il porting delle sue tecnologie di sviluppo su altri OS, da cui deriva la necessita' di avere macOS per poter sviluppare per iOS )

Roran
23-03-2017, 15:03
e' certamente un linguaggio giovane e queste cose non si fanno da un giorno all'altro, pero' non riesco ad immaginare come la cultura closed di Apple possa "aprirsi" nella giusta misura per favorire la nascita di un'ecosistema florido intorno a Swift



paradossalmente e' una parte del problema

gabmac2, ad esempio, cerca un linguaggio con cui fare "tutto", cominciando ovviamente dallo sviluppo cross-platform

il punto e' che non basta il linguaggio, ma c'e' bisogno di framework che siano cross-platform

ma se ce ne sono troppi, l'ecosistema e' troppo frammentato per:

1. avere un supporto adeguato dietro ai framework stessi
2. imporne uno ( o comunque una manciata ) come standard de facto
3. in che modo questi framework potrebbero competere/sostituire quello ufficiale di Apple ( e sappiamo che Apple non permette nemmeno il porting delle sue tecnologie di sviluppo su altri OS, da cui deriva la necessita' di avere macOS per poter sviluppare per iOS ) Io non credo ci sia bisogno di uno standard a livello di framework, basta che le api siano standardizzate, comunque sia questi framework sono supportati da apple (che ha creato un apposito work group) e se parliamo di framework solo server side non ce n'è uno ufficiale di apple, tra l'altro kitura è sviluppato da ibm mentre dietro Vapor c'è una grandissima community, entrambi girano sia su linux che su mac.

Il problema di cui parli è presente solo per lo sviluppo di software applicativo, ma nemmeno tanto se escludiamo l'unica limitazione che c'è ora, quella di poter sviluppare app iOS da sistemi linux.

pabloski
23-03-2017, 15:14
Io non credo ci sia bisogno di uno standard a livello di framework, basta che le api siano standardizzate,


Solo avendo un unico framework puoi avere un unico set di API. Non avrebbe senso creare framework diversi con lo stesso numero e tipo di funzioni ( considerando che queste vincolano l'architettura di un software ).


comunque sia questi framework sono supportati da apple (che ha creato un apposito work group) e se parliamo di framework solo server side non ce n'è uno ufficiale di apple, tra l'altro kitura è sviluppato da ibm mentre dietro Vapor c'è una grandissima community, entrambi girano sia su linux che su mac.


Come dicevo appunto. Cominciano a spuntare come funghi, secondo la tipica mania imposta dalla community degli sviluppatori web. Avremo cosi' dozzine di framework, ognuno da studiare accuratamente, ognuno con un bel numero di bug ( alcuni irrisolti per anni ). Considera che e' un neo tanto grave da essere riconosciuto dagli stessi sviluppatori web ( quelli che fanno la giostra tra React, Angular, Vue, poi rifanno il giro, ecc... ).


Il problema di cui parli è presente solo per lo sviluppo di software applicativo, ma nemmeno tanto se escludiamo l'unica limitazione che c'è ora, quella di poter sviluppare app iOS da sistemi linux.

Da Windows e' possibile? Xamarin non richiede pure lui il compilatore Apple?