¿Debo usar Rust o C ++ para una aplicación de visión por computadora en Android?

El óxido es probablemente el mejor lenguaje para escribir algo complejo, pero esa no es la única consideración.

Parece que Rust puede llamar a C pero no a C ++:

Interfaz de función externa

Entonces, si planea usar cualquier biblioteca que requiera C ++, deberá usar C ++ para al menos esas llamadas. Y sería más fácil no tener que escribir funciones de enlace y envoltorios, por lo que sería más fácil usar C ++.

Si no confía en ninguna biblioteca de C ++, todavía existe la interfaz JNI, que es más fácil de usar a través de las interfaces de estilo C ++, pero JNI tiene una interfaz C, por lo que no es un showtopper.

Finalmente considere la cadena de herramientas. Parece que Rust se puede usar en Android:

Compilación de óxido a un objetivo de Android

Eso es un comienzo. Sin embargo, también miraría lo fácil que es depurar.

Mi instinto es que sería más difícil que C ++, que ya puede ser difícil en Android, y que el 95% del trabajo se realizaría en las bibliotecas a las que llamaría (OpenGL, ¿otras?). Si está haciendo esto como un proyecto de Android, y gran parte de la interfaz de usuario estará en Java, entonces el dolor de usar un lenguaje que carece de soporte oficial probablemente no valdrá sus ventajas.

Si está escribiendo la plataforma multiplataforma de aplicaciones usando OpenGL y manejando eventos usted mismo, la capa nativa podría ser lo suficientemente compleja como para justificar el uso de Rust.

No mencionó si esta aplicación está destinada a una audiencia general o dispositivos específicos. Construir aplicaciones para que se ejecuten en muchos, si no en la mayoría de los dispositivos Android, y mantener esa aplicación durante mucho tiempo utilizando otras infraestructuras que no sean las más compatibles con Android, se enfoca en el masoquismo.