Нам всем придется съесть скромный пирог, когда мы поймем, что JS используется для записи:
... потому что это лучше.
Серьезно, пожалуйста ... выслушай меня. Не стреляйте в курьера.
Спросите Microsoft, почему они создают Windows 8 с JS как гражданин первого класса. Либо новая мобильная ОС Mozilla, либо IBM Rivertrail, PhoneGap, ExtJS или WebGL.
Была ли бы какая-либо из этих компаний или проектов успешной, если бы эксперты не нашли что-то лучшее в реализации?
Ответ ... Они сделали. Мы сделали. Так что тема здесь должна быть понятной: есть лучший путь.
Но лучше субъективно: поэтому мы должны углубиться и сравнить. Что лучше?
Это началось с AJAX ... и это не остановилось.
Неблокирующая IO. Это действительно большое дело и стоит знать. В JS это шаблон обратного вызова. Оказывается, с помощью обратных вызовов можно включить неблокирующий сервер: Node.js ~ около 8 строк кода. setTimeout () является обратным вызовом. Однопоточная асинхронная обработка.
Гибкость. Какая? -Java и C имеют классы и интерфейс, но называются объектно-ориентированными. В JavaScript есть только объекты. Но это называется ... что-то еще.
Наличие только объектов - хорошая вещь для гибкости, потому что члены и методы полностью динамичны во время выполнения. -Прототипное наследование не страшно. Некоторые эксперты описывают это как объект-пачка. -JS дружит с ошибками. -Код может смешиваться друг с другом, в результате чего получаются составные компоненты без особых усилий или знания ... «интерфейсов», «абстракций», «наследования», «инкапсуляции», «полиморфизма». Хорошие вещи, но, как Nike, в JS; ты просто делаешь это.
Данные переводы. С помощью JSON объекты могут передаваться спереди назад, спереди назад. Нет перевода данных XML. JSON явно прост.
Низкая кривая обучения. Можно вырезать и вставить чрезвычайно сложный код, а затем пошагово отладить его. Я слышу коллегу ... "нубс". Но это не только для нубов.
- Оказывается, это действительно хорошая функция для быстрого прототипирования. И сайты появляются повсюду, которые используют эту конструкцию в браузере, и более широко; выполнения-прототипирования. Оформить заказ JSFiddle и CodePen, а также MicroJS. GitHub.
Like Transformers, with JS, there is more than meets the eye.
It is a big deal.
ОБНОВЛЕНИЕ: так как эта публикация JavaScript в настоящее время широко используется другими языками.
In Java - check out Nashorn.
In C++ - check out Emscripten, or ASM.
And there are many more.
The big surprise since the original writing of this answer was JS cross-compilation.
It turns out that many languages can be compiled to JS.
And the community is encouraging that... CoffeeScript, Dart, etc.
This is not my specific area of expertise, but it is going on in big ways.
Simply put, we just don't know how the dynamism of JS is going to hash out yet.