Сообщение от nerv_
|
Пожалуйста, расскажи мне о "впечатляющих перспективах развития JS"
|
Новшества добавляемые в ECMAScript6 - это заимствования из других языков, вроде Python и Ruby. Перенимать ещё многое можно.
Сообщение от nerv_
|
Можешь перечислить 3 самые острые надуманные проблемы, которые "лечатся соглашениями", и еще 3, кот. нивелирует новый стандарт?
|
1) Невозможно уследить за типами объектов, т.к. прототип объекта может быть изменён, а instanceof проверяет наличие прототипа в объекта указанного как Function.prototype, который также можно изменить, т.е:
function Foo() {}
var foo = new Foo;
foo instanceof Foo; // true
Foo.prototype = {};
foo instanceof Foo; // false
Лечится соглашением: не делайте так, описывайте прототипы, как если бы вы описывали класс, т.е. статически и спокойно сравнивайте типы по instanceof.
В ECMA6 лечится сахаром в виде class
2) Отсутствие модулей приводит к захламлению глобального пространства.
Лечится соглашением: используйте анонимные самовызываемые функции, свойства объектов как пространства имён и паттерн "модуль".
В ECMA6 лечится сахаром module
3) Плохая поддержка автокомплита и статического анализа в ИДЕ, т.к. нет явной декларации типов.
Лечится соглашением об обязательном использовании JSDoc.
4) JavaScript жутко медленный, ужас!
Не складывайте строки с числами, не меняйте динамически прототипы во время исполнения, не вызывайте eval внутри eval и вы удивитесь, как быстро может работать ваш код.
5) Громоздкий старомодный синтаксис функций, функциональная область видимости.
ArrowFunction, let ...
Могу долго перечислять.
Сообщение от nerv_
|
Мне, почему то, монополия JS не кажется жуткой. Жутким кажется 3+ языков в браузере, в кот. придется разбираться.
|
Зачем разбираться в 3-х?
Сообщение от nerv_
|
правильная мысль, т.к. я могу писать в простом блокноте
|
Попиши на Яве или С# в блокноте. Явная декларация типов для того и создана, чтобы IDE могла вам помогать. В Dart тоже явная декларация типов, и тоже с целью поддержки в ИДЕ. Если ты не будешь пользоваться ИДЕ под Дарт, то тебя он будет только бесить.