Но Java создавали не только для того, чтобы сделать улучшенную версию языка C. Когда компьютер превратился из «монстра научных институтов» в персональный компьютер, стали появляться, одна за другой, операционный системы; возникло большое количество производителей компьютерного железа, которые выпускали кучу всяких устройств, программировать которые обычному программисту, без погружения в глубины документации и драйверов (управляющих железом микропрограмм) было невозможно. И вот в светлый ум доктора информатики Джеймса Гослинга пришла идея создать такую технологию, которая позволила бы программисту писать такой код, который мог бы запускаться на любом железе. И его идея была им воплощена в язык программирования Java и виртуальную машину Java.
В чем суть? Виртуальная машина Java это программный компьютер внутри компьютера обычного на базе операционной системы Windows\MacOS\Unix\…. Виртуальная машина Java (Java Virtual Machine – JVM) специально создается для каждой операционной системы. И JVM знает, как «общаться» с операционной системой и через нее со всеми устройствами, которые могут быть подключены к компьютеру. В чем выгода для программиста? – программист пишет свой код только один раз (!) и ему в своем коде не надо знать на каком компьютере, с какой операционной системой его код будет запускаться. Это огромная экономия времени и денег. Именно поэтому Java код очень надежный и безопасный, он с одной стороны может ограничивать программиста, когда тот хочет «пошалить», а с другой стороны не дает программисту написать код, который может что-то сломать.
Стоит заметить, что концепция «виртуальных машин» получила дальнейшее развитие в других языках программирования, главным образом из-за безопасности. Например, виртуальная машина JavaScript, она встроена в браузер, дает определенные возможности для работы с документом в браузере, для обращения к серверу, но полностью запрещает произвольное считывание данных пользователя с диска. Очень похожая на JVM виртуальная машина Microsoft. NET.