Javascript-форум (https://javascript.ru/forum/)
-   Оффтопик (https://javascript.ru/forum/offtopic/)
-   -   Интересные ссылки и их обсуждение (https://javascript.ru/forum/offtopic/45898-interesnye-ssylki-i-ikh-obsuzhdenie.html)

cyber 09.10.2014 03:43

Приятный подарочек от гитхаба, заберу в конце недели :) https://education.github.com/pack

kobezzza 09.10.2014 13:03

Очередной транслятор ES6 to ES5 - https://github.com/sebmck/6to5

kobezzza 09.10.2014 23:22

WebStrom 9 перешёл на завершающую стадию разработки

Safort 09.10.2014 23:41

Для начинающих Галп-царей http://habrahabr.ru/post/239573/

Safort 09.10.2014 23:45

kobezzza,
Цитата:

Очередной транслятор ES6 to ES5 - https://github.com/sebmck/6to5
Да что же это такое?! Ещё один транслятор, который поддерживает многие крутые плюхи из ES6, но не может let! Как так вообще? Значит, классы они осилили, а какой-то let - нет?

l-liava-l 09.10.2014 23:54

Цитата:

Значит, классы они осилили
че там их осиливать, es5 тоже могет, в es6 просто обертка сахарная

А в js нет блочной области видимиости, как тут let сделаешь? не конечно можно попробовать хакнуть оборачивая блоки в функции, но это таккоой мерзкий говнокод жадный на ресурсы будет.. ух

Safort 10.10.2014 00:04

Раст-повелители сегодня ликуют, у нас релиз 0.12
https://mail.mozilla.org/pipermail/r...er/011267.html

Safort 10.10.2014 00:06

l-liava-l,
Цитата:

че там их осиливать, es5 тоже могет, в es6 просто обертка сахарная
Я понимаю.

Цитата:

А в js нет блочной области видимиости, как тут let сделаешь?
Ты сам описал ниже) К тому же в некоторых трансляторах есть, а в этом - нет. ЧоЗаДела?

l-liava-l 10.10.2014 00:34

Цитата:

Ты сам описал ниже) К тому же в некоторых трансляторах есть, а в этом - нет. ЧоЗаДела?
Инициализация функии дело очень затртаное, вангую что не рационально делать такие хаки, вот и не сделали.

Ну в некоторых трансляторах это реализовно еще созданием новой перменной с префиксом.

Типо

//es6
function analGungsta() {
   var a = 6; 
   if(true) {
      let a = 5;
   }
}

//es5
function analGungsta() {
   var a = 6; var a_id1;
   if (true) {
      var a_id1 = 5;
   } 
}

Safort 10.10.2014 00:43

l-liava-l,
ну вот, чем создание новой переменной не вариант? Да, будет лишняя переменная и грязный код. Но он итак грязный.

l-liava-l 10.10.2014 02:37

Цитата:

l-liava-l,
ну вот, чем создание новой переменной не вариант? Да, будет лишняя переменная и грязный код. Но он итак грязный.
Говорюж, многие так и делают)

Но есть более важные вещи и на них стоит обратить внимание в первую очередь: начиная от шума {} и никому ненужного null заканчивая тем что код не пишет сам себя.;)

let, как по мне - вообще бред, я даже представить не могу такую конструкцию которя одновременно будет и не говнокодом и там будет нужен let.

Классы... не пишу на кофе везде исключительно из-за них, кажуться неповоротливыми

kobezzza 10.10.2014 09:33

Цитата:

let, как по мне - вообще бред, я даже представить не могу такую конструкцию которя одновременно будет и не говнокодом и там будет нужен let.
:D

Как по мне функциональная область видимости - это изначальный феил и поэтому let для меня оч важная штука, которую я юзаю просто повсеместно. Например в Snakeskin тоже блочная область видимости у переменных.

- template foo()
  - for var i = 0; i < 10; i++
    ? console.log(i) // 0, 1, 2 ...
  ? console.log(i) /// Error, i is not defined


Вообще я для себя сделал такое правило: var для глобальных переменных и локальных переменных функций высшего уровня.

Цитата:

я даже представить не могу такую конструкцию которя одновременно будет и не говнокодом и там будет нужен let.
for (let i = 0; i < 10; i++) {
    ...
}

for (let i = 0; i < 10; i++) {
    let someVal; // использование с var в данном примере приведёт к ошибке
                     // придётся писаться var someVal = void 0;

    if (...) {
        someVal = true;
    }

    if (someVal ) {
        ...
    }
}


и т.д.

Цитата:

Сообщение от Safort (Сообщение 334543)
kobezzza,

Да что же это такое?! Ещё один транслятор, который поддерживает многие крутые плюхи из ES6, но не может let! Как так вообще? Значит, классы они осилили, а какой-то let - нет?

Слоупоки, но тебе никто не мешает:

1) Таки завести es6transpiler ||
2) Прикрутить https://github.com/olov/defs к своему транслятору.

Цитата:

А в js нет блочной области видимиости, как тут let сделаешь?
Молча :)

Цитата:

Инициализация функии дело очень затртаное, вангую что не рационально делать такие хаки, вот и не сделали.
Никто так не делает, а юзают статический анализ и добавление префиксов.

Цитата:

Да, будет лишняя переменная и грязный код. Но он итак грязный.
Код, который не предназначен для ручного редактирования человеком (а результат работы транслятора именно такой код) может быть любым, лишь бы он не бажил и не тормозил :)

Safort 10.10.2014 10:47

kobezzza,
Цитата:

1) Таки завести es6transpiler ||
Так я хотел, но оно не завелось из-за бага(ты ещё про него в ишью написал)

Цитата:

2) Прикрутить https://github.com/olov/defs к своему транслятору.
Спасибо, сейчас посмотрю что за зверь такой)
Но в моём случае было бы не плохо, если бы Traceur просто не трогал let, т.к. поддержка старых браузеров мне не нужна, а в новых это всё уже есть.

kobezzza 10.10.2014 10:56

Цитата:

Так я хотел, но оно не завелось из-за бага(ты ещё про него в ишью написал)
Ну я же завёл :) Кстати, termi писал, что установка Cygwin также пофиксит баг.

Safort 10.10.2014 11:32

kobezzza,
Цитата:

Ну я же завёл
Ну а я нет ;(

Цитата:

Кстати, termi писал, что установка Cygwin также пофиксит баг.
Ок, дам ему второй шанс)

l-liava-l 10.10.2014 12:21

Цитата:

Молча
Потом описал возможные решения, как рациональное так и нет. вредный.

Цитата:

for (let i = 0; i < 10; i++) {
...
}

for (let i = 0; i < 10; i++) {
let someVal; // использование с var в данном примере приведёт к ошибке
// придётся писаться var someVal = void 0;

if (...) {
someVal = true;
}

if (someVal ) {
...
}
}
Цитата:

которя одновременно будет и не говнокодом и там будет нужен let.
Использование кучи циклов в одной функции не айс, это плохо. (имхо) нид выносить в отдельные. Поэтому говнокод.
Если дело в каких то сложных вычислениях, где для каждого цикла функцию новую поднимать напряжно (не могу представить), то тут конечно пригодится блочная область видимости (возможно, ведь тоже какие то ресурсы тратятся), да и не жизненно мне кажется, пока не сталкивался.
Короче лично я никогда не испытвал надобности в let, но опыта пока мало так что посмотрим)

Gozar 10.10.2014 12:26

Цитата:

Сообщение от l-liava-l
Использование кучи циклов в одной функции не айс

Мсье внезапно стал профессор?

Цитата:

Сообщение от l-liava-l
Поэтому говнокод.

Эка нынче пошли критерии говнокода, 2 цикла и сразу говнокод.


kobezzza 10.10.2014 12:35

l-liava-l, сразу видно что ты не писал никогда никаких парсеров или различных плясок с графами / векторами :)
Да и вообще, var был архитектурной ошибкой JS, и let был введён как костыль. Обрати внимание, что const тоже имеет блочную область видимости. А в LLJS вообще только блочная область видимости.

l-liava-l 10.10.2014 13:55

Цитата:

Эка нынче пошли критерии говнокода, 2 цикла и сразу говнокод.
На 2 цикла можно и var написать, а 10 циклов в одной функции не круто (пока не столкнулся с потребностью)

Цитата:

Мсье внезапно стал профессор?
Тебе что в определенный момент справку выдали? Это моя точка зрения, возможно ошибочная, пытаемся вот разобраться. бомбануло

Цитата:

l-liava-l, сразу видно что ты не писал никогда никаких парсеров или различных плясок с графами / векторами
Парсеры писал, плясок с графами / векторами нет. (хотя если под вектором ты имеешь ввиду array то писал).
Там же обычно вложенности, если не вложенность то это уже отдельная операция и ее можно вынести в другую функцию.
Цитата:

var был архитектурной ошибкой JS
Цитата:

Обрати внимание, что const тоже имеет блочную область видимости.
Цитата:

А в LLJS вообще только блочная область видимости.
Аргумент, как бы наталкивет на мысль что var действительно ошибка. :), но функция это тоже, по сути, блок.. let костыль, получается так, но мне он не очень нужен.

melky 10.10.2014 13:56

Цитата:

Сообщение от l-liava-l
Использование кучи циклов в одной функции не айс, это плохо

от них не всегда можно избавиться

kobezzza 10.10.2014 14:33

Цитата:

На 2 цикла можно и var написать, а 10 циклов в одной функции не круто (пока не столкнулся с потребностью)
for (let i = 0; i < 10; i++) {
    var someVal; 

    if (...) {
        someVal = true;
    }

    if (someVal ) {
        ...
    }
}


Неужели ты не видишь ошибки в этом коде? С let someVal на каждой итерации инициализируется занова с undef, а с var нет и нужно делать это явно, а это легко забыть и получаем сложно отлаживаемую багу.

Цитата:

Парсеры писал, плясок с графами / векторами нет. (хотя если под вектором ты имеешь ввиду array то писал).
Там же обычно вложенности, если не вложенность то это уже отдельная операция и ее можно вынести в другую функцию.
Очень удобно использовать сложенные циклы и прыжки по меткам, а из итераторов мне известен только одна либа которая умеет делать похожие вещи - Collection.

kobezzza 10.10.2014 14:38

Цитата:

но функция это тоже, по сути, блок.. let костыль, получается так, но мне он не очень нужен.
Тоже, да не тоже :) Не упрямся и послушай более опытных коллег по цеху: let - это добро ;)

l-liava-l 10.10.2014 14:59

kobezzza,
Лааадна)))) Я возьму на заметку, но стоит проверить)

Gozar 10.10.2014 15:03

Цитата:

Сообщение от kobezzza
с var нет и нужно делать это явно, а это легко забыть и получаем сложно отлаживаемую багу.

А можно и не делать, тогда невозможно забыть :)

Флаги true or false никаких undefined. Разве не лучше думать так? Делать var внутри цикла - зло, разве нет? Считаю что более наглядно сразу присваивать переменной значение внутри цикла, по крайней мере сразу виден тип переменной.

kobezzza 10.10.2014 15:06

Цитата:

Флаги true or false никаких undefined.
Мне приходилось так делать, пока я не стал юзать ES6 и сейчас мне вполне комфортно.

Цитата:

Делать var внутри цикла - зло, разве нет?
А что тебя смущает? Я не вижу ни одной причины так не делать.

Gozar 10.10.2014 15:10

Цитата:

Сообщение от kobezzza
А что тебя смущает?

Меня смущает, что переменная объявляется внутри for, в ES6 понятно, но в ES5 то она будет жива после цикла и ее наличие меня беспокоит, если в начале её не описано. Призрак же.

kobezzza 10.10.2014 15:15

Цитата:

Сообщение от Gozar (Сообщение 334649)
Меня смущает, что переменная объявляется внутри for, в ES6 понятно, но в ES5 то она будет жива после цикла и ее наличие меня беспокоит, если в начале её не описано. Призрак же.

Ну, ещё один плюс в сторону let:) Хотя с точки зрения VM по барабану, т.к. сборка мусора не осуществится сразу в любом случае.

kobezzza 10.10.2014 16:37

Microsoft поменял интерфейс Skype: чат теперь совсем другой

Octane 10.10.2014 18:29

Пользователи Mac OS чемпионы по попаданию мышкой в маленькие значки
зона клика для смены статуса в лучших традициях :D

melky 10.10.2014 21:23

Octane, минимализм :)

nerv_ 11.10.2014 18:26

Компания Mercedes создала самоуправляемый грузовик будущего

bes 11.10.2014 18:47

Цитата:

Сообщение от nerv_
Компания Mercedes создала самоуправляемый грузовик будущего

наши российские кочки тоже объезжает?
очевидно, всё идёт к тому, что за рулём можно будет бухать :D

Safort 11.10.2014 19:49

bes,
уже бухают, судя по количеству ДТП из-за пьяни за рулём.

bes 11.10.2014 19:55

Цитата:

Сообщение от Safort
bes,
уже бухают, судя по количеству ДТП из-за пьяни за рулём.

эти нарушают, а там всё цивильно будет, и бухло у них недешёвое будет, раз смогут себе такие самокаты позволить :)

Aetae 11.10.2014 19:57

Да не, напьются - захотят порулить...

nerv_ 13.10.2014 00:53

Смартфоны с бесконтактным управлением выйдут в следующем году

Технология Microsoft превращает комнату в "живой экран"

Google создает приложение для Интернета вещей

Все USB-устройства подвержены неустранимой уязвимости

MallSerg 13.10.2014 01:42

Цитата:

Сообщение от nerv_
Все USB-устройства подвержены неустранимой уязвимости

слишком желтый заголовок xD
USB как стандарт невероятно крут
<iframe width="420" height="315" src="//www.youtube.com/embed/eKNCLOm0t24" frameborder="0" allowfullscreen></iframe>

nerv_ 14.10.2014 14:25

Открытая лекция 14 октября / «Эра нейронауки. От нейропротезов к полной эмуляции мозга»

nerv_ 14.10.2014 16:29

Негде спрятаться. Эдвард Сноуден и зоркий глаз Дядюшки Сэма

Немцы изобрели способ печатать гибкие сенсорные дисплеи на обычном принтере

melky 14.10.2014 18:49

Выразительный JavaScript
Воу воу хабра! выглядит многообещающе!


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