Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   grunt-es6-transpiler (https://javascript.ru/forum/offtopic/46946-grunt-es6-transpiler.html)

Gozar 01.05.2014 20:52

Цитата:

Сообщение от dmitry111
а зачем он нужен этот es6 ?

По твоему нужно всю жизнь мучиться с for in и не использовать for of потому что тебе лень?
Не использовать let, который добавляет удобство и гибкость?

Любой язык либо развивается под современные нужды, либо его забывают, как VBScript (http://msdn.microsoft.com/ru-ru/libr...=vs.85%29.aspx)

es5 не тот язык на котором я хочу писать большие приложения. Неудобно.

Gozar 01.05.2014 21:05

Например, чтобы забыть это хак(считаю это хаком):
function f(x, y, z) { }
var args = [0, 1, 2];
f.apply(null, args);


With ES6 spread you can now write the above as:

function f(x, y, z) { }
var args = [0, 1, 2];
f(...args);



Есть очень много клевых фишек, для которых сейчас нужно городить велосипед. Уже весь код велосипедами завален и на велосипедах строится. В es5 нет возможностей для написания вменяемого кода, который бы не погряз в лапше.

Пусть сейчас лапша будет на выходе, но я хочу писать на новом языке, а не на устаревшей недоделке, состоящей чуть более чем полностью из костылей.

Не понимаешь зачем надо, посмотри на Python, на CoffeScript, может дойдет.

monolithed 01.05.2014 23:15

Цитата:

Сообщение от dmitry111
И уже переменные можно ставить где попало. Зачем?

И сейчас можно.

Попробую угадать что ты имел ввиду:

Зачем вообще объявлять все переменные в самом начале функции если они могут быть невостребованными?

Помню в ANCI C 89/90 можно было объявлять переменные только в начале функции, но потом одумались и отменили это обязательное поведение.

Однако если ты блочную область видимости, то {let ...} это от части "костыль".
Не в том смысле что сейчас можно писать (считаю очень круто, что нашли компромисс в этом вопросе, т.к. долго не хотели принимать эту запись):

for (let foo of object) ...


А это:

if (false) {
   var foo = 1;
}

alert(foo);

Переменная foo хоть и имеет значение undefined, но как-никак, она определена и let в этом плане спасательный "костыль"!

А вообще, мне кажется, что ты мало пишешь на JS раз не понимаешь зачем ES6

dmitry111 02.05.2014 12:42

Цитата:

Сообщение от monolithed
А вообще, мне кажется, что ты мало пишешь на JS раз не понимаешь зачем ES6

да не, не мало))

Речь о другом.

Я не спорю, возможно обновления нужны! Но неужели трудно сесть и написать идеальный стандарт, а не следующую версию. Зачем это?

Мне не хотелось бы, что js превращался в новый php, где обновления происходят довольно часто. php - это сервер, какую версию установил, с такой и работаешь! JS - это браузеры и как следствие несовместимости!

Не хотелось бы видеть сначала es6, потом es7, потом es8 и тд..

Это не просто создает путаницу, но мешает формированию code style, да и в целом сказывается негативно на профессиональных качествах программистов

ИМХО)

Gozar 02.05.2014 13:15

Цитата:

Сообщение от dmitry111
Не хотелось бы видеть сначала es6, потом es7, потом es8 и тд..

не смотри, не увидишь, потому что так скорее всего и будет.

Цитата:

Сообщение от dmitry111
неужели трудно сесть и написать идеальный стандарт

Я вот все думаю, кого черта? Неужели трудно в Хроме сразу сделать поддержку давления пером при использовании планшета, как в ФФ? Могли бы сразу сделать, а нифига ... Мысль надеюсь понятна?

kobezzza 02.05.2014 13:16

Цитата:

Но неужели трудно сесть и написать идеальный стандарт
К сожалению трудно, особенно если развитие идёт эволюционным путём.

Цитата:

Не хотелось бы видеть сначала es6, потом es7, потом es8 и тд..
А мне бы хотелось, т.к. оч долгое время язык в принципе не развивался и нужно догонять. ES6 не вводит чего то принципиально нового, а просто добавляет то, чего языку явно не хватало и вынуждало разработчиков писать свои велосипеды.

К тому же новые версии стандарта - это не только новый синтаксис, а также улучшение стандартной библиотеки, которая сейчас в JS практически отсутствует.

Цитата:

Это не просто создает путаницу, но мешает формированию code style, да и в целом сказывается негативно на профессиональных качествах программистов
Т.е. ты хочешь один раз выучить что-то и не развиваться дальше? Моё мнение: если программист перестаёт изучать новые языки, подходы и т.д. то перестаёт быть таковым.

dmitry111 02.05.2014 13:40

а где es6 изучать? Где он наиболее полно изложен?

тут все что нужно есть:
http://kangax.github.io/es5-compat-table/es6/
?

kobezzza 02.05.2014 13:53

Цитата:

тут все что нужно есть:
http://kangax.github.io/es5-compat-table/es6/
?
да

monolithed 02.05.2014 14:24

Цитата:

Сообщение от dmitry111
Я не спорю, возможно обновления нужны! Но неужели трудно сесть и написать идеальный стандарт, а не следующую версию

Почему люди сразу не рождаются взрослыми?
Цитата:

Сообщение от dmitry111
Мне не хотелось бы, что js превращался в новый php, где обновления происходят довольно часто

Пока обратная совместимость не нарушается итерационный цикл не важен.

Цитата:

Сообщение от dmitry111
Не хотелось бы видеть сначала es6, потом es7, потом es8 и тд..

Это не просто создает путаницу, но мешает формированию code style, да и в целом сказывается негативно на профессиональных качествах программистов

Напомни сколько тебе лет? :)

dmitry111 02.05.2014 17:09

Цитата:

Сообщение от monolithed (Сообщение 310087)
Почему люди сразу не рождаются взрослыми?

Напомни сколько тебе лет? :)

сколько раз обновлялся Си с 72 года?

На самом деле в es6 не появится чего-то нового, появится то, что есть уже в других языках. Думаю производительность тоже не изменится

Проблема c js в том, что все обновления нужно внедрить везде где есть js. А так как те, кто пишет стандарты тоже люди и могут где-то что-то упустить из виду могут появляться разнообразные баги, так как все что не описано в стандарте будет реализовываться как этого захочет компания-разработчик. И будет в хроме одно, в ff другое.

Думаю es6 возник под давлением конкурентов (дарт, тайпскрипт или как их там).
Ну чтож будем изучать es6, хотя меня es5 всем устраивал!


Часовой пояс GMT +3, время: 08:25.