All streams
Search
Write a publication
Pull to refresh
52
0
Егор @termi

User

Send message
Пару коммитов быстро решат проблему, останется только пересобрать все asset. А вообще, просто внезапно ES6 не вкатится, в любом случае его нужно будет включать руками или наоборот отключать специально.

CoffeeScript, с вероятностью 99%, никогда не будет поддерживать блочную область видимости (let) и разряженные шаблоны деструктуризации (let [a,, b] = [1, 2, 3]; a==1, b == 3), т.к. символ запятой "," означает в CS совсем другое нежели в JS.

А если копнуть глубже, то выясняется, что конструкции for-of из ES6 и for-of из CS сильно отличаются. for-of из ES6 итерируется по объекту используя его встроенное свойство «iterator», тогда как for-of из CS это скорее сахар для for-in. Сильно сомневаюсь, что без ввода дополнительных конструкций языка в CS появится аналог for-of из ES6.

Да и аналога генераторов, по крайней мере в доке на coffeescript.org, я найти не могу.

В таком случае, после внедрения ES6, CS останется в роли догоняющего, и не факт, что майнтейнеры захотят сильно менять язык и быстро вводить новые фичи. В своё время, люди не довольные скоростью развития CS создали LiveScript, а это о многом говорит.

CoffeeScript хороший язык, но я лично предпочту TypeScript или EcmaScript6
Выше уже ответили, но хочу добавить, что транслятор пока не готов — это можно увидеть из списка поддерживаемых фич. Более подробно о том, что поддерживается на данный момент лучше смотреть по тестам.
> Если завели реквест — оставьте ссылку, плюсанём хором.
Тикет заведу в ближайшее время.
И, кстати да, в CoffeeScript тоже есть спреды
window.log = -> try console.log arguments...
По опыту могу сказать, что Deferred/Promise (особенно из jQuery) очень сложно отлаживать. Везде, где можно обойтись без Promise лучше написать код на чистом es.
Вот как я бы написал первые ваши примеры (там где можно обойтись без Promise):

window.log = () => console.log(...arguments);

for (var _i = 0; _i < 10; ++_i) {
  let index = _i;
  setTimeout(() => log(index), 1000);
}

Статья хорошая, но не хватает примеров с when, then, reject, fail и т.д. — ну чего-то более сложного про Deferred/Promise
Поддержка ES6 забагована.
Пишу
let {reverse: aReverse, priority: aPriority} = (a.options || {});

ставлю запятую после «aReverse,», чтобы объявить ещё одну переменную — PhpStorm 6.0.3 зависает. Обычно, он через, примерно 30 сек — 10 мин, отвисает с сообщением, что 512Мб израсходованы.
Если нажать Ingore, то можно продолжить до следующего зависания.

Поправьте по-быстрее, а то неудобно.
Олсо добавьте возможность выбора транслятора. Tracuer compiler мне не нравится, да и старой версии он у вас
Я специально концентрировал внимание на словосочетании «квалифицированный работник». Я предполагаю, что, несмотря на то, что цена на подобную процедуру не будет заоблачно высокой, минимум кто сможет себе её позволить — это т.н. «средний класс». Я буду только рад, если на нашей планете появится один миллиард высокообразованных (докторов, учёных, инженеров) китайцев — долгожителей. Хотя и слабо в это верится.
Да и проблема перенаселения слишком преувеличена.
Кажется я скопировал не тот пример.
Вот:
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// ==/ClosureCompiler==

function test() {
  var obj = {
    "props": { test: 123 }
  };

  window.AA = obj;

  return obj;
}

console.log(test().props.test)
console.log(window.AA)

Минифицируется как
console.log(function(){var b={props:{test:123}};return window.a=b}().b.test);console.log(window.a);

Свойство «props» потерялось.
На самом деле, с какой стороны посмотреть. Представьте себе, что государство растит гражданина — даёт ему дошкольное, школьное и высшее образование. Даже с учётом того, что сам гражданин должен будет платить за образование, государство потратить на него какие-то деньги и большое кол-во времени. Дальше гражданин, от силы, может проработать на квалифицированной работе лет 30. После этого, в следствии ухудшения состояния здоровья, гражданин не может выполнять свои профессиональные обязанности и становится обузой для работодателя и для государства. А при выходе на пенсию гражданина, государству ещё придётся тратить на него деньги в виде соц. обеспечения, пенсии и медицинской страховки.
Теперь у государства есть выбор — сделать технологию «омоложения» доступной среднестатистическому гражданину и при этом повышать пенсионный возраст гражданина прошедшего процедуру. В выгоде все: государство получает квалифицированного работника, который может ещё 30 лет проработать на благо общества, гражданин получает прибавку к периоду своей социальной активности.

Поэтому, я не верю, что данную технологию будут серьёзно блокировать. Как только весь процесс будет отлажен и будут собраны первые «сливки» в виде сверх-богатых клиентов, технологию выпустят в массы. Вводить какие-то искусственные ограничения тоже не выгодно — зачем, если квалифицированный рабочий принесёт государству достаточно прибыли, а при искусственных ограничениях есть риск (и не маленький), что с гражданином произойдёт «несчастный случай» — он забудет принять «лекарства для поддержания импланта в боевом состоянии» или он будет работать на территории, на которой не окажется квалифицированных работников, для «очередного пересаживания».

Намного выгоднее иметь «раба», который всем доволен и приносит прибыль, который имеет отменное здоровье и хорошо питается, и при этом не чувствует себя «рабом».
CC в ADVANCED MODE очень капризный и нужно совершенно точно знать, что он делает.

Не забываем, что в этом режиме, вот такой код будет минифицирован неправильно и не заработает (тут «потеряется» свойство props):
// ==ClosureCompiler==
// @compilation_level ADVANCED_OPTIMIZATIONS
// ==/ClosureCompiler==

function test() {
  var obj = {
     "props": { test: 123 }
  };

  return obj;
}

console.log(obj.props.test)


Попробуйте сами. И это только один из нюансов. Так что нужно быть ПОЛНОСТЬЮ уверенным в качестве своего кода, чтобы пропускать его через GCC в ADVANCED MODE
На данный момент в WebStorm/PhpStorm есть поддержка es6 стандарта, примерно, 2012 года.
Есть поддержка: классы, деструктуризация, let, rest, spread, дефолтные значения у функций, стрелочные функции, QuasiLiterals (строковые шаблоны)
Нету: объектной деструктуризации, разряженного массива как шаблона деструктуризации, дефолтных значений деструктуризации.

Это основное. Пользоваться вполне можно, но к сожалению, PhpStorm периодически зависает и вываливает сообщение о нехватке памяти — ничего серьёзного, после этого продолжает работать, просто время отнимает.
Ещё traceur встроенный в PhpStorm старой версии и я не нашел как обновить или указать свой.
Сомнительный выигрыш в производительности при потери читаемости и лёгкости статического анализа. Например PhpStrom не может понять какие методы «класса» есть у объекта созданного с помощью вашего метода clone.
Обретите для себя es6-классы, благо, есть много имплиментаций.
Лучше всего читать последнюю версию стандарта ( html-копия ). В нём есть свойство __proto__ и, даже, функция Reflect.setPrototypeOf
Вы наверное невнимательно прочитали. Большинство пунктов как раз об объективных недостатках CDV: поиск по всем js-файлам, подсветка и Pretty Print JS-кода, изменение значения переменной и т.д. Прочитайте по-внимательнее.
Я не хочу спорить, просто защищаю хороший инструмент — в работе использую и то, и то.
Чем вам Dragonfly то не угодил?
С последними версиями Chrome Dev Tools становится всё более нестабильным в одной из своих основных функций — отладки JS-кода. Да, в CDV вводятся новые фичи, но толку от них, когда отваливается подсветка JS-кода и Pretty Print. А самое дебильное решение, которое сделали в CDV — это то, что теперь нельзя изменить значение переменной в скопе при отладке приложения. Вот тут я писал недостатки CDV по сравнению с Dragonfly: habrahabr.ru/company/opera/blog/181181/#comment_6302172
Если бы Dragonfly не остановился бы в развитии вместе с классической Оперой, мог бы быть сейчас уже лучше чем CDV
Потому, что может быть obj.constructor.prototype != Object.getPrototypeOf(obj)
Поддержка автозаполнения,

1. Fast forward для автозаполнения будет работать или у вас будет также, как в Хроме?
2. Кнопка «Ключик» будет?
Меня, как давнего пользователя Оперы, не впечатляют ни текущее состояние Оперы 15, ни планы на будущее.
Opera мой основной браузер, не смотря на то, что по-работе я пользуюсь и Chrome и IE, и FF. Но ни один другой браузер, включая Оперу 15, не предоставляет мне тот уровень комфорта как Opera 12.
Удачи вам в развитии и, пожалуйста, прислушивайтесь к мнениям пользователей.
>В настоящее время Internet Explorer и Opera не поддерживают это API.
В Opera поддерживает с версии 12.10. При этом, поддерживается по стандарту, в разработке которого участвовала и в который вы наверное даже не заглядывали, иначе бы знали, что функция cancelFullScreen сейчас называется exitFullscreen, а свойство fullScreen — fullscreenEnabled.
И могли бы дать ссылку на полифил, который действительно позволит использовать это API уже сейчас
А какой вес оно будет поддерживать?
Ну я, допустим, влезу в это устройство, но вот не сломается ли Omni под моими 100кг, особенно при беге?

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity