В новогодний выпуск к нам в гости пришел Сергей Рубанов (Twitter и GitHub): человек-энциклопедия спецификаций ECMAScript, OpenSource-контрибьютор, докладчик различных фронтенд конференций и митапов и один из оранизаторов Moscow BeerJS. Обсудили уходящий год, что он нам принес в плане поддержки новых стандартов, обновлений популярных фреймворков и библиотек, новых технологий и методологий разработки браузерных и серверных приложений на JavaScript и веб-стандартах. Немного поговорили о ближайщем будущем WebAssembly, PWA и WebVR.
- Стандарты:
- Node.js:
- кончается период поддержки старых версий, все переходят на Node 6 (LTS) 24:06
- Node.js on ChakraCore: с 20 ноября есть на всех платформах (там даже есть async/await) 25:07
- Фреймворки:
- Сборка:
- webpack 2 с поддержкой динамических импортов готовится к релизу 57:48
- yarn ворвался в нашу жизнь 1:01:29
- зачем каждому языку свой пакетный менеджер? 1:05:36
- CSS в JS: JSS, Aphrodite, Styletron (Virtual CSS), radium 1:06:57
- CSS не нужен (спойлер: HTML и JSX тоже) 1:11:03
- CSS Houdini 1:15:58
- WebAssembly почти везде (только не в Safari) 1:16:36
- Транспиляторы:
- TypeScript растет и развивается: Babel не нужен? 1:25:13
- в Babel вообще куча всего: меньше контрибьюторов, babel-preset-env, babili, пропозалы в отдельную репку 1:26:50
- VR: WebVR, A-Frame, React VR 1:32:55
- PWA: немного статистики 1 и 2 1:38:21
- Список конференций 2017 1:39:17
Скачать выпуск (mp3, 50 MB)
В чем разница между инструментированием кода и инструментами разработки? Какие инструменты экономят время и улучшают жизнь разработчика? Как идеи меняют ваш взгляд на проблемы и используемые в их решении инструменты? Почему идеи гораздо важнее, чем то, какие вы привыкли использовать библиотеки и фреймворки? Как написать свой собственный интсрумент и сэкономить время, а не сидеть все выходные и не добиться никакого эффекта? Ответы на все эти вопросы, а также многие другие, включая каверзные вопросы касательно текущей и будущей работы Романа Дворнова над OpenSource проектами, вы услышите в этом выпуске!
Базой для разговора стали многочисленные споры в кулуарах конференций, а также следующие выступления Ромы:
Основные тезисы и темы разговора:
- Что такое инструменты разработки и инструментирование кода? 01:26
- инструменты – это все, что позволяет эффективно достигать результата
- инструментирование – это один из подходов при создании инструментов
- IDE vs легковесные текстовые редакторы 05:00
- component-inspector 09:30
- Имплементация инструментирования 12:45
- производительность при компиляции и в рантайме
- использование плагинов к Babel
- использование WeakMap
- Линтеры 19:12
- eslint
- jscs
- CSSComb
- сложности при использовании CSSComb для линтинга
- встраивание линтеров в редактор кода
- считать ли линтерами инструменты, которые изменяют код автоматически
- линтеры для разных фреймворков
- Статический анализ кода 34:34
- области применения кроме линтинга
- статические анализ vs регулярки
- альтернатива AST – CST
- форматтеры и бьютефаеры кода
- Визуализация истории мутаций объекта и time travel 40:43
- сохранение истории мутаций, трансформировавших объект в определенное состояние
- визуализация истории мутаций
- применение визуализации для обучения программированию
- применение визуализации для объяснения работы приложения
- проблема создания подобного инструмента при работе с изменяемыми данными
- чем данный инструмент похож на time travel, популярный в сообществе ФРП
- time travel для реализации функционала undo/redo в редакторах
- time travel для отделения данных от кода и отладки разного кода с теми же данными
- доклад Никиты Прокопова “Функциональное программирование в браузере“
- remote time travel debugging для отладки ошибок в пользовательских приложениях на сохраненных данных
- Документирование кода 56:09
- Идеи и воплощение их в жизнь 1:04:09
- самое главное – это идеи и концепции, а не библиотеки и фреймворки
- адаптация идей в своем любимом фреймворке может занимать немного времени
- некоторые инструменты возможны только тогда, когда фреймворк обладает нужной степенью свободы
- проблема выбора: брать актуальные задачи по проекту или делать инструмент для решения целого класса подобных задач
- выделение времени в компании на развитие инфраструктуры инструментов
- нужны ли гениальные разработчики, чтобы интегрировать сложные инструменты в текущую кодовую базу
- Тренд интеграции IDE и среды исполнения (браузера) 1:20:35
- встраивание инструментов в Dev Tools
- браузеров много, не все используют Chrome
- на данный момент эта интеграция слабая
- за какими редакторами кода будущее
- LightTable как пример подобного тренда
Пики
- Костя 1:28:20
- popmotion – библиотека для анимаций, физики и слежением за действиями пользователя
- Миша 1:29:00
- flexboxin5 – интерактивная обучалка Flexible Box Layout
- iconic – платформа SVG-иконок с набором правил для создания свой библиотеки иконок
- Андрей 1:32:38
- Рома 1:34:00
- Ближайшее будущее CSSO после того, как Рома стал мейнтейнером
Скачать выпуск (mp3, 44 MB)
К нам в гости заехал Андрей Ситник, автор PostCSS, почётный докладчик, фронтендер Злых Марсиан. Помимо прочего говорим о пре- и постпроцессорах, Ruby-сообществе и диалектах JavaScript.
- О PostCSS 00:03:00
- О парсерах CSS 00:11:30
- Пре-процессоры умирают 00:14:50
- Вопрос от @shuvalov_anton про Assets Pipeline 00:25:13
- Offline First 00:30:13
- Что стало с grunt-autoprefixer? 00:40:48
- CSS Modules – новое предложение стандарта для изоляции CSS 00:44:00
- Вопрос от @samosad про переезд CSS в JS модули 00:56:47
- Нам нужно больше языков, компилирующихся в JS 01:10:10
- Пики
- Миша Башкиров 01:19:35
- Андрей Ситник 01:22:15
- Миша Башкиров 01:25:52
- Андрей Саломатин 01:27:10
Скачать выпуск (mp3, 42 MB)
JavaScript уже давно вырвался из браузерных окон. Сегодня виртуальные машины, которые исполняют JS, есть на сервере, мобильных и носимых устройствах, даже микроконтроллерах.
В этом выпуске мы обсуждаем футуристические сценарии использования любимого языка. А также конференции и митапы, npm для фронтенда и безопасность в браузере.
Скачать выпуск (mp3, 35 MB)