Jawaban singkat: tidak.
Java tidak menghasilkan biner yang dapat dieksekusi tetapi hanya bytecode seperti halnya C # (CLI), dan ini bukan hal yang baik untuk bisnis yang serius di "lingkungan terbuka" karena dua alasan utama:
- probabilitas untuk terjebak dalam reverse engeneering sangat tinggi, terutama dengan bahasa-bahasa lama dan sangat dikenal seperti Jawa
- Anda tidak memiliki kendali penuh atas kinerja mesin, dalam kasus Java, JVM memainkan peran besar dengan mengambil kendali penuh.
Tentu saja setiap bahasa memiliki perpustakaan sendiri tetapi karena jumlah yang besar untuk masing-masing dan setiap bahasa ini bukan masalah nyata dan saya tidak berpikir adalah tujuan dari topik ini.
Mungkin pada level profesional Anda dapat menemukan sesuatu yang dapat melanggar aturan seperti dev-Kit yang dapat menerjemahkan semua pernyataan C # menjadi kode perakitan untuk mesin dunia nyata, tetapi jika pendekatan semacam ini tidak ada dalam kartu, Anda secara praksis terpaksa harus pertimbangkan hanya C dan C ++ untuk pengembangan Anda ketika Anda bertujuan untuk menjual produk Anda di lingkungan terbuka.
Hal-hal yang sedikit berbeda untuk perangkat seluler karena mereka adalah "lingkungan tertutup" bahkan Android ditutup secara pratik mengingat fakta bahwa sumber ROM dunia nyata biasanya tidak tersedia untuk umum, Android dapat dianggap sebagai open source tetapi 99 % dari ROM di perangkat aktual tidak. Dalam hal ini Anda tidak bisa berdebat terlalu banyak, semuanya sudah diatur untuk Anda dan setiap platform memiliki bahasa sendiri seperti semua orang tahu.
Pada akhirnya jika Anda akan menjual produk ini di lingkungan yang terbuka saya hanya bisa menyarankan bahasa yang dapat menghasilkan kode kompilasi dan biner / perakitan, di lingkungan tertutup keputusan ini lebih mudah dilakukan karena alasan yang berbeda.