Я буду очень честен: я ненавижу писать код на стороне клиента в JavaScript. Я не фанат этого языка, если не сказать больше.
Мне кажется глупым, что браузеры поддерживают программирование язык , а не промежуточную виртуальную машину (например, CIL или JVM). Последнее позволило бы программистам писать на языке по своему выбору (до некоторой степени), а не на одном фиксированном заранее установленном языке. Этот язык может развиваться быстрее, потому что только изменения в CIL / JVM / что-либо еще потребуют обновления всех основных браузеров. Языковые функции могут быть добавлены без ущерба для старого браузера.
Огромная экономия усилий, которую обеспечивают промежуточные языки, хорошо известна . Существуют ли какие-либо инициативы по продвижению «скриптинга» браузера в чем-то, кроме JavaScript, и особенно в уже спроектированной, разработанной и оптимизированной виртуальной машине? Есть ли у них импульс?
источник
Ответы:
Чтобы ответить на ваш вопрос, да, предпринимаются усилия, чтобы отказаться от Javascript в пользу более связного языка для веб-сценариев. Google уделяет большое внимание их языку дартс . У Dart есть собственная виртуальная машина, которая уже встроена в Chrome, но я не уверен, что другие браузеры ее уже приняли. Существует также довольно многообещающий язык, называемый CoffeeScript .
Есть также очень амбициозный проект под названием HaXe, который нацелен на объединение целого ряда платформ разработки с одним языком.
Поверьте мне, вы не одиноки в том, что не любите Javascript, но я боюсь, что он скоро никуда не денется - на самом деле он, похоже, набирает обороты, чем в приложениях Windows 8 HTML5 / JS и т. Д., Но альтернативы, подобные тем, которые я упомянутые начинают прыгать :)
источник
onSomething
обработчику событий - разбор и интерпретация 10-20 символов простого языка сценариев гораздо эффективнее.Сам Javascript можно рассматривать как промежуточный язык, определяющий виртуальную машину, в которую могут быть скомпилированы другие языки. В таких проектах, как GWT, это понятие уже исчезает. Это может быть не то, что вы разработали бы с нуля, но уже стало реальностью, что вы можете скомпилировать «свой любимый язык» в Javascript.
источник
По сути, нет. Вы в значительной степени застряли с Javascript.
Сказав это, в прошлом предпринимались попытки задействовать другие языки (java-апплеты, vbscript и т. Д.). Каждый из них так и не получил той поддержки, которую имеет javascript, потому что javascript интегрирован .
Единственный способ создать то, на что вы ссылаетесь, - это создать язык сценариев, который запускается на виртуальной машине, компилируется на стороне клиента и затем выполняется. Тогда каждый браузер должен будет внедрить виртуальную машину в свою собственную кодовую базу, чтобы весь код выполнялся во всех браузерах. Тогда вам нужно убедиться, что у вас есть какие-то стандарты, чтобы все браузеры выполняли команды одинаково. Конечно, браузеры, создаваемые независимо, вероятно, будут иметь причуды, которые разработчики должны будут учитывать.
Но сейчас мы только что описали Javascript.
Итак, в конце концов, ваш выбор:
По сути, если вы хотите интегрированный язык, вы застряли с Javascript.
источник
На самом деле вы не ненавидите JavaScript, как описано в стандартах Ecma, но ненавидите ужасную реализацию в различных браузерах , с их причудами, ошибками и wtfs. Серверный Javascript довольно приятен на самом деле. Также модель DOM является причиной 80% боли JavaScript на стороне клиента.
Если вы все еще хотите использовать другой язык, вы можете использовать GWT , который в основном позволяет писать Java, а затем скомпилировать его в (уродливый) javascript или CoffeeScript , который является синтаксическим сахаром над JS, который компилируется в JS.
источник
{
объекта в разных строках. Какая «основа современной функциональности», по вашему мнению, отсутствует?Этот вопрос всплывает время от времени.
Почему у нас нет других языков в тегах сценария вместо просто Javascript
В свое время IE представил VB в качестве альтернативы Javascript. Я думаю, вы уже можете видеть, как это привело бы к адским стандартам, если бы это завоевало популярность ...
Так почему же тогда нет общего стандартного промежуточного языка?
Есть старый подкаст от Брендана Эйха, объясняющий, почему он не видит промежуточный язык байт-кода в ближайшем будущем:
http://www.aminutewithbrendan.com/pages/20101122
http://news.ycombinator.com/item?id=1893686
Основная проблема заключается в том, что хотя промежуточный язык (например, CIL и байт-коды JVM) пытается быть универсальным, в большинстве случаев он оказывается слишком низким уровнем и слишком привязан к исходным языкам высокого уровня, скомпилированным с ними. Например, вы не можете реально реализовать хвостовые рекурсивные функции в JVM - какие другие языковые функции или варианты реализации мы не сможем реализовать, если слишком рано подключимся к низкоуровневой абстракции байт-кода?
Между тем, Javascript - это гибкий язык высокого уровня с развернутой семантикой и множеством различных эффективных реализаций. То, что мы могли бы увидеть в будущем, - это сам Javascript как промежуточный язык - К сожалению, это несколько незрелый язык, и на сегодняшний день немногие языки компилируются в JS.
источник
Да. Вы уже можете скомпилировать Dart, Coffeescript и Java в Javascript. У вас есть Emscripten, который является бэкендом компилятора для LLVM для генерации байт-кода Javascript (и я считаю, что LLVM обрабатывает довольно много языков).
Но кроме компиляции в JS, не в короткие сроки. IE6 10 лет и до сих пор пинает. Я надеюсь, что нынешние браузеры (которые не поддерживают другие языки) не будут существовать так долго, но они будут существовать в течение нескольких лет, провоцируя цикличность «мы все равно должны поддерживать браузеры, которые поддерживают только Javascript, поэтому мы должны использовать Javascript "гораздо сложнее, чем, скажем, CSS3 - ваш сайт может работать без CSS3, но попробуйте заставить его работать без сценариев на стороне клиента.
источник
Возможно, вам просто повезло. Это первый абзац представления на форуме webkit-dev:
Вы можете просмотреть остальную часть сообщения здесь .
источник
JavaScript - это душа браузеров, поэтому большинство новых попыток генерируют JavaScript (CoffeeScript - яркий пример).
В GWT вы кодируете свою клиентскую логику на языке программирования Java, а инструментарий генерирует JavaScript.
ClojureScript - интересный проект, если вы занимаетесь написанием кода на Лиспе.
Так что выглядит, несмотря ни на что, JavaScript здесь, чтобы остаться. (Кобол сети может быть?).
источник
Уже есть несколько компиляторов, нацеленных на JavaScript, и вы можете выбрать любой язык который компилируется в javascript.
Ваша ссылка, обсуждающая ценность промежуточных языков, обсуждает их в контексте реализации набора компиляторов, а не в предоставлении кода, который будет отправлен по сети и запущен на клиентском компьютере. Javascript может быть не лучшим форматом для этого, но как бы то ни было, он не будет сильно похож на байт-коды CIL или java.
Если вы ненавидите javascript, я предлагаю вам перейти в область Embedded, Scientific или разработки игр, где C, Fortran и C ++ правят рутом. Линейка бизнес-приложений очень активно перемещается в Интернет, а это означает больше Javascript, а не меньше.
источник