Чому в браузерах сьогодні існує лише підтримка JavaScript та деяких VBScript? Я знаю, що JavaScript хороший і все, але чи не матиме можливість використання іншої мови програмування сприяти просуванню різних стилів розробки?
Чому в браузерах сьогодні існує лише підтримка JavaScript та деяких VBScript? Я знаю, що JavaScript хороший і все, але чи не матиме можливість використання іншої мови програмування сприяти просуванню різних стилів розробки?
Відповіді:
Немає необхідності додавати супорт для декількох мов, рішенням було б стандартизувати загальний байт-код, який могли б використовувати мовні реалізатори. Але в даний час немає планів на це (це було запропоновано).
Мови можна реалізувати і над Javascript. Javascript досить хороший, щоб дозволити реалізацію інших мов поверх нього. І прикладів цього вже багато.
<script type="text/cpp" src="test.cpp"></script>
.
JavaScript є де-факто стандартом і існує з 1996 року. Бути стандартом просто тому, що немає конкуренції, не зовсім справедливо, але я не чув багато скарг на те, чому не входить інша мова.
Додавання ще однієї "стандартної" мови сприяє всіляким розвагам.
Подумайте про невідповідності між браузерами для їх підтримки лише JavaScript. Тепер подумайте, як було б, якби було більше мов.
Браузери повинні бути стандартизованими, щоб те, що ви розробляєте, працювало всюди, у всіх браузерах.
Якщо у вас є кілька мов, то вам потрібно переконатися, що вони працюють дуже схоже. Якщо ви веб-розробник і маєте вибір мов, які можуть підтримуватись або не підтримуватись у деяких місцях, то це додатковий головний біль.
Javascript - це дуже гнучка мова, вона обов'язкова, вона функціональна, вона може бути OOP (після моди з прототипами), і її інтерпретувати. Тепер з гідними двигунами, як у Chrome, цілком можливо зробити хороші речі. Додаткові мови просто повернуть сюди речі, подивіться лише на VBScript, IE, і так все, що написано в ній, пов'язане з певним браузером та платформою, кошмаром.
Замість того, щоб вбудовувати їх у браузери, виробники люблять створювати незграбні плагіни браузера - Java, Flash, Silverlight тощо. Це гарантує узгодженість платформ.
Однією з причин є те, що різним постачальникам браузерів практично неможливо погодитись на стандартну реалізацію Javascript, і Javascript існує назавжди, принаймні з точки зору веб-мови. Тож більшість людей по праву вважають, що залучення іншої мови клієнта до екосистеми та залучення всіх постачальників до її підтримки практично неможливо, і більшість людей, які потенційно могли б це зробити, вже залучені до питань стандартизації Javascript, які, на мою думку, є набагато кращими використання свого часу.
Тут є кілька відповідей, які стверджують, що підтримка декількох мов зробить це дуже одіозним для розробників веб-браузерів, щоб переконатися, що вони відповідають усім мовам. Мені це здається некоректним.
Наприклад, Java - надзвичайно чітко визначений стандарт. По суті, все, що вам потрібно зробити, це відкрити DOM браузера як Java API і запустити віртуальну машину Java (JVM) всередині вашого веб-браузера. Ви можете вказати, що код сценарію повинен бути поставлений у вигляді складених та підписаних файлів JAR, або як вихідний код JavaScript. Якщо браузер стикається з JavaScript, він може запустити його через спеціалізований інтерпретатор (як це відбувається сьогодні) або через Rhino на вершині JVM. Якщо він стикається з файлами jar, він створює завантажувач нового класу і пісочницю безпеки, завантажує байт-код Java в пам'ять і виконує його. Це було б повністю сумісно з існуючими веб-сторінками та дозволило б браузрові одним штрихом підтримувати десятки мов, що працюють на JVM.
Інші переваги:
Я вважаю, що JavaScript набуде ще більшої позиції як стандартної мови для Інтернету. Ми спостерігаємо зростання JavaScript на стороні сервера. Ось кілька прикладів реалізації цієї потужної мови на сервері:
Веб-сервер POW SJS - сервер JavaScript на веб-сервері POW, який працює як розширення Firefox або як програма XULRunner. SJS відіграє аналогічну ролі PHP в Apache тим, що він може підключатися до баз даних та генерувати контент на стороні клієнта.
NodeJS - сервер на JavaScript, який використовує модель на основі подій. Він побудований за допомогою JavaScript 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 на сервері. Дуже круто! Він розроблений з використанням браузера EnvJs на сервері JavaScript.
EnvJs - безголовий браузер, побудований на вершині Rhino.
Багато з цих реалізацій та рамок демонструють, що JavaScript стає настільки потужною силою в розробці веб-сторінок, що лідери спільнот вже почали переміщувати JavaScript на сервер. JavaScript є надзвичайно потужною функціональною мовою програмування, і з часом я відчуваю, що ми будемо розвиватися.
Підсумовуючи це, здається, суперечливість порту інших мов браузера, коли натомість ми можемо перенести цю єдину мову браузера на сервер і усунути цей пробіл більш уніфікованим чином.
Існує кілька прикладів інструментів, які збиратимуть інші мови в JavaScript, включаючи Haskel, Lisp та Python (напевно, інші). Тож якщо ви хочете працювати на одній з цих мов, ви можете це зробити.
І я думаю, що один з моїх професорів з університету написав схему реалізації в Javascript. Тож якщо вам подобається схема, ви також можете це зробити.
Люди вирішували відсутність вбудованої різноманітності двома способами: за допомогою плагінів, таких як flash або java аплети, та створення шарів, які користуються javascript як "машинним кодом", наприклад, jquery або Google Toolkit. Якби новий стиль розвитку був досить популярним, люди знайшли би спосіб його втілити.
Будьте в курсі, якщо ви виконаєте .net час роботи в JavaScript, і він коли-небудь стане популярним, певні кола будуть проклинати ваше ім'я в Інтернеті назавжди.