Réponse courte: non.
Java ne génère pas d'exécutable binaire mais uniquement du bytecode comme le fait C # (CLI), et ce n'est pas une bonne chose pour les affaires sérieuses dans des "environnements ouverts" pour deux raisons principales:
- la probabilité de se retrouver piégé dans l'ingénierie inverse est très élevée, en particulier avec les langages anciens et très bien connus comme Java
- vous n'êtes pas en contrôle total des performances de la machine, dans le cas de Java, la JVM joue un grand rôle en prenant le contrôle total.
Bien sûr, chaque langue a ses propres bibliothèques, mais en raison de leur grande quantité pour chaque langue, ce n'est pas un vrai problème et je ne pense pas que ce soit le but de ce sujet.
Peut-être qu'à un niveau professionnel, vous pouvez trouver quelque chose qui peut enfreindre la règle comme un kit de développement qui peut traduire toutes les instructions C # en code d'assemblage pour une machine du monde réel, mais si ce type d'approche n'est pas dans les cartes, vous êtes pratiquement obligé de ne considérez que le C et le C ++ pour votre développement lorsque vous souhaitez vendre votre produit dans un environnement ouvert.
Les choses sont un peu différentes pour les appareils mobiles car ils sont un "environnement fermé", même Android est pratiquement fermé étant donné que la source des ROM réelles n'est généralement pas accessible au public, Android peut être considéré comme un logiciel open source, mais le 99 Le% des ROM sur les appareils réels ne le sont pas. Dans ce cas, vous ne pouvez pas trop discuter, tout est déjà réglé pour vous et chaque plate-forme a son propre langage comme tout le monde le sait.
En fin de compte, si vous allez vendre ces produits dans des environnements ouverts, je ne peux que suggérer des langages capables de produire du code compilé et binaire / d'assemblage, dans des environnements fermés, la décision est généralement plus facile à faire pour différentes raisons.