È vero che la lingua JVM è difficile da integrare con C rispetto ad altre lingue? [chiuso]

1

Ho visto molte librerie che forniscono API di alto livello nel linguaggio come python o lua. Ad esempio:

  1. La libreria di algebra lineare "Trilinos" fornisce un'API python.
  2. Il framework di apprendimento approfondito "torch" fornisce un'API lua.

Tuttavia, non riesco a trovare librerie C / C ++ / CUDA che forniscono API per Java / Jython / Scala o altre lingue JVM. Naturalmente ci sono delle eccezioni, ad es. OpenCV fornisce API sia per python che java.

Voglio sapere tranne il linguaggio (ad esempio python è buono per l'analisi o un piccolo script), ci sono altri motivi per cui le librerie C forniscono API per il linguaggio JVM?

Personalmente ritengo che usare lo scala per lo scripting sia conveniente quanto Python. Ma non così tante librerie C supportano scala. Forse non è abbastanza popolare.

Il design della JVM rende difficile farlo?

    
posta worldterminator 03.03.2016 - 01:59
fonte

1 risposta

2

Si sceglie di integrare qualsiasi lingua si scelga. Questo è davvero il più lontano possibile con quella linea di ragionamento.

Python è incredibilmente popolare in questo momento. L'integrazione con Python è il tipo di funzionalità che può vendere il tuo prodotto. Di conseguenza, vi è un grande interesse per l'integrazione con Python e, non sorprende, vediamo un gran numero di librerie che forniscono l'integrazione con Python. È molto più che un serpente che si mangia la coda.

Lua è unico perché in realtà straordinariamente è facile da integrare. È un linguaggio progettato sin dal primo giorno per essere facilmente integrato in un'applicazione C o C ++. Quindi in questo caso, sì, Lua viene scelta perché JNI è molto più difficile dell'integrazione Lua, ma è meno una dichiarazione su JNI e più di una dichiarazione su quanto bene gli sviluppatori Lua hanno fatto il loro lavoro.

Personalmente, trovo la difficoltà del modello di memoria di JNI alla pari con la gestione degli oggetti Python. Ma se espongo il mio software su Python, molte persone sono molto felici. Se lo espongo con JNI, meno persone si rallegrano.

    
risposta data 03.03.2016 - 03:41
fonte

Leggi altre domande sui tag