“Tidak akan ada perantara antara yang menjalani dengan yang menyebabkan perubahan.”—Aristotle, Physics, Book VII, § 2.
Sebelum bahasa Java ada, rancang bangun sistem-sistem terdistribusi sangat berfokus pada masalah heterogenitas – perbedaan CPU, sistem operasi, bahasa, dan format data. Terdapat tantangan untuk membuat format arsitektur netral dan protokol yang dapat disesuaikan dengan arsitektur manapun tanpa membebani programmer.