Pertama-tama, perlu dicatat bahwa Sun's JVM ditulis dalam bahasa C. C adalah bahasa yang sangat populer ketika portabilitas diperlukan.
C bahasa adalah portable meskipun banyak C program yang tidak. Ini karena C tidak menempatkan banyak pembatasan pada programmer atau membuat banyak asumsi. Jika seorang programmer C ingin program-programnya menjadi portabel, ia harus menempatkan batasan-batasan itu pada dirinya sendiri.
Dalam praktiknya, itu sebenarnya tidak jauh lebih sulit daripada hidup dengan pembatasan yang memaksa Java pada Anda. Ini sebagian besar masalah menjadi sadar akan endianness Anda dan ukuran primitif, dan menggunakan perpustakaan portabel seperti GTK + bukan perpustakaan platform-spesifik.
Anda dapat membuat target GTK + dan kompiler C yang mendukung mesin virtual, bahkan mungkin JVM, dan mendapatkan kode yang ada untuk bekerja dengan sedikit perubahan. Bahkan, tanpa pengumpulan sampah, mesin virtual C mungkin akan jauh lebih sederhana. Namun, mengapa Anda mau?
Sebaliknya, kompilasi Java ke kode asli, juga bisa dilakukan. Pada dasarnya itulah yang dilakukan JIT. Namun, mengapa Anda mau? Saya yakin ada proyek kesayangan untuk melakukannya "hanya karena," tetapi tidak digunakan dengan serius.