В статье вроде бы про for..of, а не for..in. Это новая конструкция, предназначенная для работы с итераторами. Array в ES6 тоже станет итеруемым объектом. Подробнее здесь и здесь.
> Оно НЕ работает ни в Firefox, ни на Heroku (только через трансляцию в JS). Ни один вендор не сообщал о намерении поддерживать Dart LLVM
Именно для этого создан dart2js, создающий на выходе кроссбраузерный (да еще и весьма быстрый) код. Просто нативный Dart VM быстрее, вот и все дела.
Насчет типизации и библиотек — просто Dart… более классический, что ли, чем JS. Он очень близок к Java (или даже C#) по синтаксису и идеологии + там есть более-менее нормальная библиотека коллекций, а Future и Isolates очень удобны в использовании.
Grunt и Gulp — task-менеджеры (или task-runner-ы). Под «сборщиком» я имел ввиду Browserify, поэтому неправильно понял вашу мысль в комментарии. Разумеется Gulp никаких ограничений наложить не может — вы в любом случае можете использовать Browserify и другие библиотеки, даже если у вас нет специального плагина для этого.
> Если я заменяю цикл foreach на вызов метода ForEach (или наоборот), то мне бы хотелось иметь то же самое поведение метода return.
Почему? Вы заменяете конструкцию языка на вызов метода принимающего функцию как параметр. Почему вы ожидаете одинакового поведения?
Насчет Scala я ошибся, прошу прощения, я редко пользуюсь return-ом в этом языке. В Scala это выглядит более логичным, потому что функция = выражение, выражение = функция. Поэтому ожидать подобного поведения можно (что собственно и описано по приведенной вами ссылке). Но проецировать подобное поведение, характерное для функциональный языков на языки с доминирующей императивностью — неправильно.
Ладно, насчет Scala — да, там свой хитрый оператор return ибо язык функциональный + функция есть выражение (да и вообще return использовать не рекомендуют, рекомендуют использовать правило последнего оператора).
Но это не меняет того факта что в императивных языках с функциональными элементами такое поведение абсолютно нелогично, потому что тело функция может определять произвольную последовательность действий, а не «формулу» для получения результата.
Если вы экземпляр Action<T> из вашего примера передадите снаружи, а не определив его на месте, return в нем тоже должен по вашему завершать объемлющую функцию?
Я не уверен насчет всех языков, но ни в Scala, ни в Python ни в JavaScript, ни в Java оператор return так во вложенных функциях не работает. И не должен ни в коем случае.
Тут к вопросу о точности такого прогресс-баров и можно ли его вообще достичь. Вас никогда не бесило, когда он доходит, например, до 90%, а потом 2 часа торчит на такой отметке. Или когда написано «осталось 10 минут», а на деле проходит полчаса.
Иногда абстрактные точки, которые говорят о том что «ок, процесс движется и не повис» выглядят гораздо лучше, чем абстрактное, слабо коррелированное с действительностью, угадывание.
О таких ошибках можно лучше автору в личку отписаться. А то он поправит и ваш комментарий перестанет быть актуальным.
По-моему все понятно. Более-менее Java-подобный синтаксис с местным «сахаром».
> foo = 1, 0 + 2
Вы утрируете. Любой начинающий питонист вам скажет что это tuple, и ничего неочевидного тут нет.
Именно для этого создан dart2js, создающий на выходе кроссбраузерный (да еще и весьма быстрый) код. Просто нативный Dart VM быстрее, вот и все дела.
Насчет типизации и библиотек — просто Dart… более классический, что ли, чем JS. Он очень близок к Java (или даже C#) по синтаксису и идеологии + там есть более-менее нормальная библиотека коллекций, а Future и Isolates очень удобны в использовании.
Адблок выключен
Почему? Вы заменяете конструкцию языка на вызов метода принимающего функцию как параметр. Почему вы ожидаете одинакового поведения?
Насчет Scala я ошибся, прошу прощения, я редко пользуюсь return-ом в этом языке. В Scala это выглядит более логичным, потому что функция = выражение, выражение = функция. Поэтому ожидать подобного поведения можно (что собственно и описано по приведенной вами ссылке). Но проецировать подобное поведение, характерное для функциональный языков на языки с доминирующей императивностью — неправильно.
Но это не меняет того факта что в императивных языках с функциональными элементами такое поведение абсолютно нелогично, потому что тело функция может определять произвольную последовательность действий, а не «формулу» для получения результата.
Я не уверен насчет всех языков, но ни в Scala, ни в Python ни в JavaScript, ни в Java оператор return так во вложенных функциях не работает. И не должен ни в коем случае.
Ну и Alt+Shift и Win+Space тоже работают. Или вы про какое другое окно входа в Windows 8?
Тут к вопросу о точности такого прогресс-баров и можно ли его вообще достичь. Вас никогда не бесило, когда он доходит, например, до 90%, а потом 2 часа торчит на такой отметке. Или когда написано «осталось 10 минут», а на деле проходит полчаса.
Иногда абстрактные точки, которые говорят о том что «ок, процесс движется и не повис» выглядят гораздо лучше, чем абстрактное, слабо коррелированное с действительностью, угадывание.