На днях пришел к интересному умозаключению - программирование на джаве не является кроссплатформенным. Программы являются кроссплатформенными, а программирование не является. Потому что создание программы ведется по-сути для одной платформы - Java Platform, или как там это называется. И выполняется джавовская программа не на реальном железе, а внутри виртуальной машины, скрадывающей все различия операционных систем и железа.