Разве у нас сегодня нет достаточного количества компиляторов (для разных платформ)? Например, Python - он считается кроссплатформенным языком.

1 ответ1

0

Существует много такого кода. Каждый день вы используете десятки веб-сайтов, которые нуждаются в этом. Хотя в наши дни они в основном написаны на JavaScript, а иногда и на ActionScript Flash, но общая идея остается прежней.

(Помните, что одно из основных применений Java было для апплетов на веб-сайтах - подобно Flash позже и JavaScript сегодня.)

Существует также гораздо больше архитектур, чем "ПК и мобильный". За последние два десятилетия ПК использовали несколько десятков различных архитектур ЦП - например, 68000, PowerPC, x86, amd64, Alpha, SPARC, ARM, ARM64 - и это только популярные .

Это создает проблемы при распространении скомпилированных программ.

При использовании нативного кода владельцы каждого такого веб-сайта должны будут распространять много разных версий одной и той же программы - по одной на каждую архитектуру ЦП (помните, что это не просто две), или, может быть, даже для каждой комбинации ОС × ЦП (поскольку разные операционные системы имеют разные сервисы, разные API, разные соглашения о вызовах на одном процессоре).

(Даже в рамках одной архитектуры многие программы, скомпилированные для Intel i686, не будут работать на i486, хотя технически это тот же x86 - но с разными функциями. Например, Debian Linux компилирует все для i486, поэтому он не будет использовать какие-либо современные функции процессора, что означает, что программы могут быть немного медленнее. С другой стороны, Arch Linux скомпилирован для i686, поэтому он не будет работать на старом процессоре i486.)

С помощью байт-кода Sun/Oracle может распространять JVM для всех архитектур, и веб-мастерам не нужно делать ничего другого - им нужен только один файл .jar для всех.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .