Проблема з javascript - це не сама мова - це ідеально хороша прототипна та динамічна мова. Якщо ви прийшли з фонового режиму, то трохи кривої навчання, але це не вина мови.
Більшість людей вважають, що Javascript схожий на Java, оскільки він має схожий синтаксис та схожу назву, але насправді це набагато більше нагадує lisp. Це насправді дуже добре підходить для маніпуляцій з DOM.
Справжня проблема полягає в тому, що він складений браузером, а це означає, що він працює дуже по-різному в залежності від клієнта.
Мало того, що фактичний DOM відрізняється залежно від веб-переглядача, але й існує величезна різниця у продуктивності та компонуванні.
Відредагуйте наступне уточнення
Припустимо, було підтримано кілька мов інтерпретації - у вас все-таки проблеми. Різні браузери все ще будуть баггі та мають різні DOM.
Крім того, вам слід буде мати перекладач, вбудований у браузер або іншим чином встановлений як плагін (що ви можете перевірити, перш ніж подавати сторінку) для кожної мови. Щоб послідовність роботи з Javascript була потрібна століття.
Ви не можете використовувати компільовані мови однаково - тоді ви представляєте виконуваний файл, який не може бути легко вивчений для того, що він робить. Багато користувачів вирішили би не пускати його на роботу.
Гаразд, а як же якась пісочниця для складеного коду? Мені звучить як Java аплети. Або ActionScript у Flash. Або C # у Silverlight.
А як щодо якогось стандарту ІЛ? Це має більше потенціалу. Розвивайте будь-якою мовою, а потім компілюйте її до ІЛ, яку браузер потім JIT.
За винятком того, що JavaScript - це вже такий ІЛ - просто подивіться на GWT . Він дозволяє писати програми на Java, але поширювати їх у форматі HTML та JS.
Відредагуйте після подальших роз'яснень
Javascript не є, а точніше, не єдиною мовою, яку підтримують браузери: ще в темні віки Internet Explorer ви можете вибрати між Javascript або VBScript для запуску в IE. Технічно IE навіть не запускав Javascript - він запускав JScript (головним чином, щоб уникнути необхідності платити НД за слово java , Oracle все ще володіє назвою Javascript ).
Проблема полягала в тому, що VBScript був власником Microsoft, а також у тому, що він був не дуже хорошим. У той час як Javascript додавав функціональні можливості та отримував найвищі інструменти налагодження в інших браузерах (наприклад, FireBug), VBScript залишався лише IE і майже не піддавався налагодженню (інструментів розробки в IE4 / 5/6 не було). Тим часом VBScript також розширився і став досить потужним інструментом сценаріїв в ОС, але жодна з цих функцій не була доступна в браузері (а коли вони з’явилися, вони стали масивними дірками в безпеці).
Є ще деякі корпоративні внутрішні додатки, які використовують VBScript (а деякі покладаються на ці отвори в безпеці), і вони все ще працюють IE7 (вони лише зупинили IE6, оскільки MS нарешті знищили його).
Досягнення Javascript до його теперішнього стану було кошмаром і займає 20 років. Він все ще не має послідовної підтримки, оскільки в деяких браузерах все ще відсутні функції мови (зазначені в 1999 році), і потрібна велика кількість шрифтів.
Додавання іншої мови для інтерпретації в браузерах стикається з двома основними проблемами:
Змусити всіх постачальників браузерів впровадити новий стандарт мови - те, що вони досі не встигли досягти Javascript протягом 20 років.
Друга мова потенційно розбавляє підтримку, яку ви вже маєте, дозволяючи (наприклад) IE мати підтримку Javascript другого рівня, але великий VBScript (знову). Я дійсно не хочу писати код різними мовами для різних браузерів.
Слід зазначити, що Javascript не закінчений - він все ще розвивається, щоб стати кращим у нових браузерах. Остання версія на роки випереджає реалізацій браузерів і вони працюють над наступною.