🚀 ОБНОВЛЕННЫЙ API ИТЕРАТОРОВ
👋🏻Привет! Я очень люблю итераторы и регулярно публикую примеры их использования. Недавно я выступал на CodeFest, где рассказывал о том, как на базе итераторов можно создавать гибкие парсеры.
На самом деле, итератор — один из древнейших паттернов в программировании. Его популяризация приходится на 1994 год с выходом легендарной книги от "Банды четырех". Однако применение итераторов уже можно было найти в языках программирования в начале 80-х. Итераторы настолько распространены, что сегодня трудно найти язык программирования, который не поддерживал бы их на синтаксическом уровне.
В JavaScript, к сожалению, "нативные" итераторы появились только с введением спецификации ECMAScript 2015. До этого момента стандартная библиотека для работы с итераторами практически отсутствовала. Тем не менее, с того времени были добавлены новые языковые конструкции, такие как for...of и оператор расширения (spread), а также появились асинхронные итераторы, которые действительно великолепны. Однако для полного погружения в этот удивительный мир нам не хватало библиотеки стандартных комбинаторов, подобно itertools из Python.
Конечно, такие библиотеки вроде itertools стали появляться. Однако из-за динамической природы JavaScript, его модели памяти и других аспектов дизайна использование итераторов не бесплатно и может повлиять на производительность. Правильное применение итераторов может значительно ускорить выполнение программы благодаря их ленивой природе (о чем мы поговорим в другой раз), но в некоторых случаях это также может привести к значительному падению производительности. Следовательно, требуется тщательное обдумывание всех "за" и "против".
И вот, не пройдя и десяти лет, появляется спецификация iterator helpers, а затем и реализация в движке V8 — объявление о выпуске Node.js v22. И теперь у нас наконец-то есть стандартная библиотека итераторов! И знаете что? Она весьма быстрая! Как раз сегодня мой коллега сравнил в своем коде использование нового API с традиционными подходами и был приятно удивлен результатами.
В общем, наш JavaScript стал еще немного лучше, и это не может не радовать. Смотрите поддержку в браузерах на Can I use.
Всем базы! 🚀
👋🏻Привет! Я очень люблю итераторы и регулярно публикую примеры их использования. Недавно я выступал на CodeFest, где рассказывал о том, как на базе итераторов можно создавать гибкие парсеры.
На самом деле, итератор — один из древнейших паттернов в программировании. Его популяризация приходится на 1994 год с выходом легендарной книги от "Банды четырех". Однако применение итераторов уже можно было найти в языках программирования в начале 80-х. Итераторы настолько распространены, что сегодня трудно найти язык программирования, который не поддерживал бы их на синтаксическом уровне.
В JavaScript, к сожалению, "нативные" итераторы появились только с введением спецификации ECMAScript 2015. До этого момента стандартная библиотека для работы с итераторами практически отсутствовала. Тем не менее, с того времени были добавлены новые языковые конструкции, такие как for...of и оператор расширения (spread), а также появились асинхронные итераторы, которые действительно великолепны. Однако для полного погружения в этот удивительный мир нам не хватало библиотеки стандартных комбинаторов, подобно itertools из Python.
Конечно, такие библиотеки вроде itertools стали появляться. Однако из-за динамической природы JavaScript, его модели памяти и других аспектов дизайна использование итераторов не бесплатно и может повлиять на производительность. Правильное применение итераторов может значительно ускорить выполнение программы благодаря их ленивой природе (о чем мы поговорим в другой раз), но в некоторых случаях это также может привести к значительному падению производительности. Следовательно, требуется тщательное обдумывание всех "за" и "против".
И вот, не пройдя и десяти лет, появляется спецификация iterator helpers, а затем и реализация в движке V8 — объявление о выпуске Node.js v22. И теперь у нас наконец-то есть стандартная библиотека итераторов! И знаете что? Она весьма быстрая! Как раз сегодня мой коллега сравнил в своем коде использование нового API с традиционными подходами и был приятно удивлен результатами.
В общем, наш JavaScript стал еще немного лучше, и это не может не радовать. Смотрите поддержку в браузерах на Can I use.
Всем базы! 🚀