Почему сегодня в браузерах есть только поддержка JavaScript и некоторый VBScript? Я знаю, что JavaScript хорош и все, но разве возможность использования другого языка программирования помогает продвигать разные стили разработки?
Почему сегодня в браузерах есть только поддержка JavaScript и некоторый VBScript? Я знаю, что JavaScript хорош и все, но разве возможность использования другого языка программирования помогает продвигать разные стили разработки?
Ответы:
Нет необходимости добавлять suport для нескольких языков, решение будет состоять в том, чтобы стандартизировать общий байт-код, который может использоваться разработчиками языка. Но в настоящее время нет никаких планов для этого (это было предложено).
Языки могут быть реализованы поверх Javascript тоже. Javascript достаточно хорош для того, чтобы на нем могли быть реализованы другие языки. И таких примеров уже много.
<script type="text/cpp" src="test.cpp"></script>
,
JavaScript является стандартом де-факто и существует с 1996 года. Быть стандартом просто потому, что нет конкуренции, не совсем справедливо, но я не слышал много жалоб на то, почему нет другого языка.
Добавление другого «стандартного» языка продвигает всевозможные забавные мелочи.
Подумайте о несоответствиях между браузерами из-за их поддержки только javascript. Теперь подумайте, как было бы, если бы было больше языков.
Браузеры должны быть стандартизированы, чтобы то, что вы разрабатываете, работало везде, во всех браузерах.
Если у вас есть несколько языков, то вы должны убедиться, что все они работают одинаково. Если вы веб-разработчик и у вас есть выбор языков, которые могут или не могут поддерживаться в некоторых местах, то это дополнительная головная боль.
Javascript - это очень гибкий язык, он обязательный, он функциональный, он может быть ООП (по моде с прототипами) и интерпретироваться. Теперь с приличными двигателями, такими как в Chrome, он вполне способен делать хорошие вещи. Дополнительные языки могли бы просто все вернуть сюда назад, взглянуть на VBScript, только на IE, и поэтому все, что написано на нем, привязано к конкретному браузеру и платформе, кошмар.
Вместо того, чтобы встраивать их в браузеры, поставщики предпочитают создавать неуклюжие подключаемые модули браузера - Java, Flash, Silverlight и т. Д. Это гарантирует межплатформенную согласованность.
Одна из причин заключается в том, что разные поставщики браузеров практически не могут даже договориться о стандартной реализации Javascript, и Javascript существует всегда, по крайней мере, с точки зрения веб-языка. Поэтому большинство людей справедливо считают, что внедрить еще один клиентский язык в экосистему и заставить всех поставщиков поддержать его практически невозможно, и большинство людей, которые могут это сделать, уже вовлечены в вопросы стандартизации Javascript, которые, на мой взгляд, гораздо лучше использовать свое время.
Здесь приводятся несколько ответов, в которых утверждается, что поддержка нескольких языков сделает для разработчиков веб-браузеров очень неприятным то, что они совместимы со всеми языками. Мне это кажется неправильным.
Java, например, является чрезвычайно четко определенным стандартом. По сути, все, что вам нужно сделать, это представить DOM браузера как API Java и запустить виртуальную машину Java (JVM) внутри вашего веб-браузера. Вы можете указать, что код сценария должен быть либо доставлен в виде скомпилированных и подписанных файлов JAR, либо в виде исходного кода JavaScript. Если браузер обнаруживает JavaScript, он может запустить его через выделенный интерпретатор (как сегодня) или через Rhino поверх JVM. Если он обнаруживает jar-файлы, он создает новый загрузчик классов и изолированную программную среду безопасности, загружает байт-код java в память и выполняет его. Это будет полностью обратно совместимо с существующими веб-страницами и позволит браузеру одним махом поддерживать десятки языков, которые работают на JVM.
Другие преимущества:
Я считаю, что JavaScript станет еще более распространенным стандартом для Интернета. Мы наблюдаем рост JavaScript на стороне сервера. Вот несколько примеров реализации этого мощного языка на сервере:
Веб-сервер POW SJS - JavaScript на стороне сервера для веб-сервера POW, который работает как расширение Firefox или как приложение XULRunner. SJS играет роль, аналогичную роли PHP в Apache, в том, что он может подключаться к базам данных и генерировать контент на стороне клиента.
NodeJS - JavaScript на стороне сервера, использующий модель на основе событий. Он построен с использованием Google V8 JavaScript Engine . NodeJS рекламируется как инструмент для построения масштабируемых сетевых программ. Веб-сервер "Hello World" может быть написан всего за 6 коротких строк!
Jaxer - сервер JavaScript, который интерпретирует все блоки скриптов runat="server"
как серверный JavaScript. Целые веб-приложения могут быть написаны на JavaScript.
Rhino - JavaScript для Java - Mozilla создала эту реализацию JavaScript на стороне сервера, которая работает на Java. По сути, эта концепция похожа на Querces PHP для Java , Jython, JRuby и многих других абстракций других языков, которые работают на JVM. Rhino обычно используется для встраивания JavaScript в Java для предоставления средств сценариев конечным пользователям, но его также можно использовать для перемещения клиентского кода на сервер без необходимости переписывать бизнес-логику на другом языке!
JQuery Claypool - серверная среда JavaScript, использующая возможности JQuery на сервере. Очень круто! Он разработан с использованием серверной JavaScript-реализации EnvJs браузера.
EnvJs - браузер без головы, построенный на Rhino.
Многие из этих реализаций и фреймворков демонстрируют, что JavaScript становится такой мощной силой в веб-разработке, что лидеры сообщества уже начали перемещать JavaScript на сервер. JavaScript - чрезвычайно мощный функциональный язык программирования, и со временем я чувствую, что он будет развиваться.
Подводя итог, представляется противоречивым переносить другие языки в браузер, когда вместо этого мы можем перенести этот единственный язык браузера на сервер и устранить этот разрыв более унифицированным образом.
Есть несколько примеров инструментов, которые будут компилировать другие языки в javascript, включая Haskel, Lisp и Python (возможно, другие). Так что если вы хотите работать на одном из этих языков, вы можете сделать это.
И я думаю, что один из моих профессоров из университета написал схему реализации в Javascript. Так что, если вам нравится схема, вы можете сделать это тоже.
Люди обходили проблему отсутствия встроенного разнообразия двумя способами: используя плагины, такие как flash или java-апплеты, и создавая слои, которые используют javascript в качестве своего «машинного кода», например jquery или google web toolkit. Если бы новый стиль разработки был достаточно популярен, люди бы нашли способ его внедрить.
Имейте в виду, что если вы создаете среду выполнения .net в javascript, и она когда-нибудь станет популярной, некоторые круги будут проклинать ваше имя в интернете навсегда.