多くのライブラリがpythonまたはluaのような言語で高レベルのAPIを提供しているのを見てきました。例:
ただし、Java/Jython/Scalaまたはその他のJVM言語用のAPIを提供するC/C++/CUDAライブラリはほとんど見つかりません。もちろん、例外もあります。 OpenCVは、pythonとJavaの両方にAPIを提供します。
言語以外で知りたいのですが(たとえば、pythonは分析や小さなスクリプトに適しています)、stop CライブラリがJVM言語のAPIを提供する他の理由はありますか?
個人的には、スクリプトにscalaを使用するのはPythonと同じくらい便利だと思います。しかし、scalaをサポートするCライブラリはそれほど多くありません。おそらく十分に人気がありません。
JVMの設計により、それを行うのは困難ですか?
選択した言語を統合することを選択します。それは本当にその推論の線で行くことができる限りです。
Pythonは現在非常に人気があります。 Python統合は、製品を販売できる機能の一種です。したがって、Python統合には大きな関心が寄せられており、当然のことながら、大きな統合が見られます。 Python統合を提供するライブラリの数。それは非常にヘビが自分の尻尾を食べています。
Luaは、実際には非常に簡単に統合できるため、ユニークです。これは、CまたはC++アプリケーションに簡単に統合できるように最初から設計された言語です。したがって、この場合、はい、Luaが選択されます。これは、JNIがLua統合よりもはるかに難しいためですが、それはJNIについての記述ではなく、Lua開発者がどれだけうまく仕事をしたかについての記述です。
個人的には、JNIのメモリモデルの難しさはPythonオブジェクトの管理と同等です。しかし、ソフトウェアをPythonに公開すると、多くの人がとても満足しています。JNIで公開すると、人が少なくなります。喜ぶ。