Подтвердить что ты не робот

Почему javascript является единственным языком скриптинга на стороне клиента, реализованным в браузерах?

Почему браузеры не поддерживают поддержку, скажем, сценариев Python в качестве альтернативы Javascript? Или более общие языки сценариев? Есть ли причина, по которой Javascript является единственным, реализованным в браузерах? В конце концов, тег script имеет поддержку для указания используемого языка сценариев.

(Я знаю, что в IE есть поддержка VBScript, но она кажется устаревшей для всех целей и задач.)

4b9b3361

Ответ 1

Хорошо, Google пытается повысить эту тенденцию с помощью Dart. Сообщество не было полностью восприимчивым к этой идее; либо.

Google предложил добавить несколько VM-поддержки для Webkit, которые не очень хорошо упали.

Один конкретный комментарий хорошо подвел итог тому, почему было некоторое сопротивление этому:

В этом случае функция раскрывает дополнительные языки программирования в Интернете, что-то без какой-либо реальной выгоды для всех, кроме поклонников нынешнего "самого удивительного" языка (не так давно, возможно, это был Go, год или около того назад, это было бы рубином, раньше, чем python, я помню, что кратковременное увеличение популярности haskell не так давно, Lua долгое время находилась на грани, в этом случае Dart - кто сказал, t быть совершенно другим языком в моде через 6 месяцев?), но в качестве стоимости он фрагментирует Интернет и добавляет существенную дополнительную нагрузку на обслуживание - просто поддержание привязок v8 и jsc не является тривиальным, и они предназначены для одного языка.

Проблема здесь заключается не в том, "что мы можем сделать несколько vms live в webkit", это "мы можем разоблачить несколько языков в Интернете", в первом я говорю, очевидно, как мы это уже делаем, к последнему я говорю, что мы надеваем Не хочу.

Если мы не хотим превратить webkit в движок, который все ненавидят из-за всех его уникальных "функций", которые нарушают открытую сеть, некоторые браузеры в конце 90-х.

CoffeeScript - еще один пример появляющегося языка сценариев на стороне клиента. Однако, вместо того, чтобы поддерживать другую виртуальную машину в браузере (как Google пытается сделать с Dart), она компилируется в JavaScript. Есть еще несколько "компиляции X в JavaScript", которые также делают это. emscripten является хорошим примером компиляции LLVM в JavaScript.

Таким образом, существует множество других клиентских языков; они просто используют JavaScript в качестве промежуточного. Я бы сказал, что должен быть то, что делает Дарт, хотя у них есть возможность улучшить.

Ответ 2

Internet Explorer поддерживает любой Windows Script Engine, поэтому вы можете поддерживать его на любом языке, который был реализован как один, или написать самостоятельно.

Ответ 3

Поскольку JavaScript - это то, что поддерживал каждый другой браузер, а поставщики браузеров имели два основных приоритета:

  • Обеспечение работы существующих веб-страниц (что требует JavaScript)
  • Позволяя авторам делать видимые в браузере видимые в браузере вещи, которые они не могли сделать в других браузерах (изменение языка программирования было бы полностью скрыто от пользователей, кроме случаев, когда оно сломалось).