Почему javascript является единственным языком сценариев на стороне клиента, реализованным в браузерах? [закрытый]
Почему браузеры не добавляют поддержку, скажем, скриптов Python в качестве альтернативы Javascript? Или более общие языки сценариев назначения? Есть ли причина, что Javascript является единственным реализованным в браузерах? В конце концов, тег script имеет поддержку для указания используемого языка сценариев.
(Я знаю, что в IE есть поддержка VBScript, но она кажется устаревшей для всех целей и задач.)
3 ответа:
Ну, Google пытается противостоять этой тенденции с Дарт. Сообщество также не было полностью восприимчиво к этой идее.
Google предлагается добавить поддержку нескольких виртуальных машин для Webkit что не очень хорошо.
один конкретный комментарий подвел его красиво о том, почему было некоторое сопротивление этому:
в этом случае функция предоставляет дополнительные языки программирования в интернете, что-то без какой-либо реальной выгоды для кого-либо, кроме поклонников нынешнего "самого удивительного" языка (не так давно это могло быть Go, год или около того назад это было бы ruby, раньше, чем python, я помню, что я кратко всплеск популярности haskell не так давно, Lua был на грани в течение длительного времени, в этом случае это Dart-кто может сказать, что не будет совершенно другого языка в моде через 6 месяцев?), но в качестве стоимости он фрагментирует веб и добавляет существенные дополнительные бремя обслуживания - просто поддержание Привязок v8 и jsc не является тривиальным, и они предназначены для одного и того же языка.
проблема здесь не в том," можем ли мы сделать несколько виртуальных машин живыми в webkit", это" можем ли мы предоставить несколько языков в Интернете", к первому я говорю, очевидно, как мы уже делаем, к последнему я говорю, что мы не хотим.
Если мы не хотим превратить webkit в движок, который все ненавидят из-за всех его уникальных "функций", которые ломают открытую сеть, а-ля некоторые браузеры, в конце 90-х годов.
CoffeeScript является еще одним примером нового языка сценариев на стороне клиента. Однако вместо поддержки другой виртуальной машины в браузере (как Google пытается сделать с Dart), он компилируется в JavaScript. Есть несколько других "компиляции X в JavaScript", которые делают это также. emscripten является хорошим примером компиляции LLVM в JavaScript.
Так что есть много других клиентов языки; они просто все используют JavaScript в качестве промежуточного. Я бы сказал, что это должно быть то, что делает Дарт, хотя у них есть некоторые номер для улучшения.
Internet Explorer поддерживает любые Windows Script Engine, Так что вы можете сделать он поддерживает любой язык, который реализован, как один, или написать свой собственный.
потому что JavaScript-это то, что поддерживает каждый другой браузер, и у поставщиков браузеров было два основных приоритета:
- убедитесь, что существующие веб-страницы работали (что требует JavaScript)
- позволяя авторам делать видимые пользователю вещи в своем браузере, которые они не могли сделать в других браузерах (изменение языка программирования будет полностью скрыто от пользователей, за исключением случаев, когда он сломался).