Сергей Рубанов

Сергей Рубанов

Темы
Неделя
Jul 11, 2016 → Jul 18, 2016

Архив недели @chicoxyzzy

Понедельник


Всем привет, я Сережа @chicoxyzzy из славного города Орла. Эту неделю я с вами. Наверное будем много холиварить.

Работаю JavaScript самураем в компании EXANTE ltd., где пишу трейдерские платформы. Стараюсь вкладывать в опенсорс в свободное время.

start a new project with CoffeeScript, Cake, Less, Require.js, @maccaw Spine and Sammy. Party like it's 2011! pic.twitter.com/3zqnWSIHGC
Вот Андрей ностальгирует по 2011. Есть еще кто-то, кто использует вот это все? А может быть еще и Bower? twitter.com/listochkin/sta…

В данный момент я пытаюсь добраться до дома после @OdessaJS, на которой рассказывал про проблемы веба и то, как они решаются.

Собрал в кучу слайды с @OdessaJS — gist.github.com/boccob/2243904… cc: @jsunderhood
Добрый человек собрал все слайды с конфы twitter.com/_boccob/status… Видео пока что нет

неделька статической типизации в @jsunderhood
Обязательно затронем эту тему. twitter.com/safinalexey/st…

@jsunderhood bower только в 2012 году появился.
И тогда же умер twitter.com/listochkin/sta…

@jsunderhood Ну нет, несколько лет он неплохо справлялся со своими задачами. @listochkin

@jsunderhood ну Less использую, потому что как-то ничего не понадобилось из препроцессоров поновее
LESS довольно неплох, особенно по сравнению с SASS, для которого надо либо Ruby, либо libsass, который тоже не торт twitter.com/Sigiller/statu…

@jsunderhood начнем с главного: Flow > TypeScript
I've been waiting for you! И таки нет. twitter.com/vkurchatkin/st…

Flow — это классная штука и он лучше чем ничего. Но я верю в TypeScript. Кстати, заходите в наш ламповый чатик telegram.me/typescriptru

И хотя я по другую сторону баррикад, я помогаю добавить типизацию Flow в React. Во имя добра.

@sapegin вот мне кажется с CSS-препроцессорами так и работает - с чего начал, на том и остался @jsunderhood
Все так. У нас SASS :( Был выбран еще до меня. Но хотим с него уйти в PostCSS, который и так уже используется twitter.com/Sigiller/statu…

Вопрос тем, кто юзает TypeScript — получилось ли совсем избавиться от Babel? В большинстве моих проектов — нет.

@jsunderhood @andreysitnik имеются ввиду плагины precss\cssnext и подобные?
Да. cssnext и вот это все twitter.com/Sigiller/statu…

@jsunderhood нет. Вообще говоря даже как-то сильно и не пытались
А что из Бабеля бывает жизненно необходимо? twitter.com/AlehKashnikau/…

@jsunderhood это чтобы собрать всю обработку стилей в одном месте?
ну из PostCSS юзаются автопрефиксер, mqpacker. А libsass иногда тормозит миграцию на новые версии NodeJS twitter.com/Sigiller/statu…

@jsunderhood @blia подпишусь на эту неделю, только потому что знаю Сергея и знаю что будут годные вещи, а не дно, как обычно.

@jsunderhood а я знаю, что он топит за TS и ненавидит flow
Это не так! Я люблю Flow! TypeScript из него много полезного может украсть! twitter.com/Blackrabbit99/…

@jsunderhood в babel 6 хорошо(и одновременно плохо) с плагинами. Можно наделать бандлов разной степени поддержки es2015
ну вот es2015 и недавно релизнувшийся es2016 я полностью отдаю TS. От Babel беру штуки для инструментирования twitter.com/AlehKashnikau/…

@jsunderhood вот сразу такой вопрос. Надо ли JS-нику лезть во всякие low-level штуки и вкуривать code-gen, оптимизации и прочее ?
Для тех, кто хочет учиться и развиваться — обязательно twitter.com/ghaiklor/statu…

@ghaiklor @jsunderhood и если да, то какие бизнес-кейсы можно из этого сделать, чтобы это было не только для "покрасовать себя любимого"
Хочу послушать мнение фолловеров жсандерхуд twitter.com/ghaiklor/statu…

Чуваки из чатика gitter.im/dev-ua/Main-Ha… заметили, что по скачиваниям LESS опережает SASS в два раза. Занятно

К слову о ES2015+ и всем прочем. На прошлой неделе запилил апдейт в kangax.github.io/compat-table/e… Теперь фичи stage 4 живут отдельно от пропозалов

И еще про Flow. Был на React Europe. На кофебрейках убеждал людей юзать TS вместо него. В итоге призвал этим чуваков из MS. У них тоже реакт

Это про что конкретно? :) twitter.com/min_stec/statu…

Еще один вопрос тайпскриптерам — типизированы ли у вас тесты?

@jsunderhood @andreysitnik @andrey_sitnik да, это путь. Но как увязать с @ZURBfoundation – не представляю… нужна гибкость и заготовки
На самом деле мне сложно что-то в этом подсказать. У нас ничего подобного не юзается. Мы COMPASS давно выпилили. twitter.com/GrawlCore/stat…

@jsunderhood Foundation никак не связан с Compass, ты чего
Упс, меня спалили :) На самом деле я много лет не занимаюсь версткой и даже не умею отцентрировать див без Flex :) twitter.com/GrawlCore/stat…

@jsunderhood а как они считали? npmjs.com/package/less 1,536,085 npmjs.com/package/node-s… 1,830,770
Видимо плохо считали) twitter.com/listochkin/sta…

В среду в Москве в очередной раз собирутся любители Go и React :D events.yandex.ru/events/yagosti…

@GrawlCore @jsunderhood собери Stylelint, SugarSS и PreCSS, потом Sass, потом Автопрефиксер и postcss-inline-svg
Ничего не понял, но Андрей достучался до моего сердца twitter.com/andrey_sitnik/…

@jsunderhood @GrawlCore «что за мужики пошли, див без флекса отцентровать не могут»
:( Ну... я писал реализацию разных спек CSS вроде Flex и Grid Layout на JS. Это может исправить ситуацию? twitter.com/roman01la/stat…

А вообще я хейтер CSS и HTML. Но у CSS кажется все налаживается.

Шел 2016й. ФайрФокс учился юзать сорсмапы в девтулзах bugzilla.mozilla.org/show_bug.cgi?i…

Кстати, меня можно поймать сегодня в Минске. Могу поделиться стикерами @RadioJSPodcast и @moscowjs

Поколение тех, кто хочет изменить веб в лучшую сторону и убрать из него кучу говнохаков :) twitter.com/ipelekhan/stat…

@jsunderhood, почему не Dart?
Потому что Dart не нужен. Есть гораздо более классные языки. Но с TS и Flow не нужно будет учить новый язык. twitter.com/DmitryMakhnev/…

В Киеве намечается групповое изучение Clojure meetup.com/Kiev-Clojure-U…
Для киевлян, которые хотят расширить сознание. Clojure — язык богов. NodeJS не нужен. twitter.com/roman01la/stat…

вместе мы силища twitter.com/ipelekhan/stat…

@jsunderhood чем он лучше?
тем, что он лисп :) twitter.com/Sigiller/statu…

@jsunderhood Силища, не силища. Зачем нужны старые костыли, когда у многих уже все поддерживаемые браузеры умеют во флексы?
Кстати, да. у нас IE11+, а у вас? Больше всего печалит Safari 8. Надеюсь скоро дропнем и его. twitter.com/webholt/status…

А еще у нас в команде есть офигенные верстальщики, которые умеют центрировать дивы лучше меня.

Всем советую посмотреть доклад @pepelsbey про Grid Layout. Отлично рассказывает разницу юзкейсов Flex и Grid. До сих пор многие не в теме

@jsunderhood, что за языки если не секрет?
Любые, которые можно использовать и вне браузера. Scala, Clojure, etc twitter.com/DmitryMakhnev/…

@webholt @jsunderhood, youtu.be/JoRVUILXLxU
Вот этот доклад twitter.com/pepelsbey/stat…

#odessajs Ось що буває коли препаті перед доповіддю :) pic.twitter.com/q7GUOJk4XX
Доклад о том, почему NodeJS не нужен twitter.com/serhey_shmyg/s…

Странно. Никто не хочет признаваться какая версия IE у них низшая из поддерживаемых. Не стесняйтесь, здесь все свои.

Кажется девятка — низшая из поддерживаемых у всех. У многих 10+. Что не может не радовать.

@jsunderhood по заветам Гугла, но вообще уже всем пофиг на ослика.
Ну хз хз насчет всем пофиг) ИМХО Сафари 8 сейчас больше проблем доставляет twitter.com/allfayn/status…

На React Europe подарили классную кружку
notion image

А кто-то уже тестирует в Edge?

@jsunderhood Я! Целый один раз посмотрел, работает ли.

WebKit is ES6 100%, but there's more to the story. Read how the JSC team kept high-performance for new ES6 features. webkit.org/blog/6756/es6-…
Работа инженеров WebKit в последнее время впечатляет twitter.com/webkit/status/…

Хочу напомнить, что у всех остальных движков есть проблемы с имплементацией TCO и эксепшна на присвоение в for-in

@jsunderhood TCO или PTC?
PTC — правильный термин, но TCO более устоявшийся. на самом деле о TCO ничего нет в спеке. twitter.com/vkurchatkin/st…

@jsunderhood 8+
верните мне мой 2009 twitter.com/as_Crazy/statu…

@jsunderhood Я что-то не понял. Вебкит оптимизирует хвостовую рекурсию? Звучит как вздор.
JSC поддерживает proper tail calls twitter.com/webholt/status…

@jsunderhood теперь еще расскажи, что такое JSC
JavaScriptCore —движок, используемый в Safari twitter.com/blia/status/75…

@jsunderhood раскажи о #shitjs
еще успею ;) twitter.com/denysdovhan/st…

@jsunderhood а зачем убеждал?
Потому что я из секты TS twitter.com/lapanoid/statu…

У нас очень много графики, и поэтому канвас. SVG накладно для наших целей twitter.com/shear_lock/sta…

Все, я полетел в Москву, ночью вернусь в интернеты и подкину интересных ссылок

А пока всем бета ТайпСкрипта 2.0! Ура! blogs.msdn.microsoft.com/typescript/201…

@jsunderhood @allfayn супорт сафари 0%, последний хром, фф и ие8/9+
ого, как же без Сафари юзеров? что за проект? twitter.com/deerua/status/…

Вторник


@jsunderhood @lapanoid на это есть что ответить: github.com/vkurchatkin/ty… ? cc @vkurchatkin
На кое-что уже отвечал в чате Node.js в телеграме. На некоторые пока ответить нечего. twitter.com/andreypopp/sta…

@jsunderhood @andreypopp @lapanoid ответ был "flow не нужен", или вроде того
А. Ну ответ был правдой. twitter.com/vkurchatkin/st…

@twenty @jsunderhood @andreypopp @lapanoid есть - в nuclide
Nuclide же тоже не нужен. Вместе с Атомом. twitter.com/vkurchatkin/st…

С этим все налаживается. Скоро все будет ок twitter.com/twenty/status/…

Вернулся в Россию. Вкусил все прелести частичной блокировки ГитХаба.

@twenty @vkurchatkin @jsunderhood @andreypopp windows не нужен
Ну хз. Windows получше многих других ОС. twitter.com/lapanoid/statu…

Especially when he's drunk :D @chicoxyzzy

@jsunderhood @lapanoid @twenty @vkurchatkin @andreypopp да ты просто адепт М$!
Или тролль twitter.com/ilnurkhalilov/…

@jsunderhood В России настолько плохо? @lapanoid
Да. Просто жесть twitter.com/sapegin/status…

@jsunderhood @lapanoid @twenty @vkurchatkin @andreypopp наркоман, юниксов на тебя нету!

@SelenIT2 @sapegin @jsunderhood @lapanoid десктопы не нужны )
Люто бешено плюсую twitter.com/arefiev/status…

@vkurchatkin @twenty @jsunderhood @lapanoid nuclide, + я отлично использую с vim
Vim тоже не нужен (тоже не работает на винде как и Flow) twitter.com/andreypopp/sta…

@jsunderhood @vkurchatkin @lapanoid typescript же unsound, как им вообще не страшно пользоваться? Оптимизм?
Flow тоже unsound twitter.com/andreypopp/sta…

@andreypopp @jsunderhood @lapanoid я думаю, что те, кто пользуется ts, не знают, что значит это слово
Они знают. Более того, был такой эксперимент как Safe TypeScript microsoft.com/en-us/research… twitter.com/vkurchatkin/st…

@twenty @vkurchatkin @jsunderhood @andreypopp это лично мой выбор, "Х не нужен" оскорбительная и тупая формулировка - никуда нас не приведет
Не согласен, юзаю эту фразу для придания саркастического эффекта. А еще она провоцирует на раскрытый контрответ. twitter.com/lapanoid/statu…

Поджигает пердаки и заставляет аргументировать. Можно много полезного узнать благодаря этому.

@taujavarob @twenty @vkurchatkin @jsunderhood @andreypopp авторская выборка треда - prntscr.com/brulk9
А у меня неплохо получается. Но неделя только началась. twitter.com/lapanoid/statu…

@jsunderhood @vkurchatkin @twenty @andreypopp @lapanoid возможно. Все же обычно "штормят". 👻
Пытался слезть с него, но всегда возвращаюсь обратно. Иногда пользуюсь VSCode. Он няшный twitter.com/taujavarob/sta…

@jsunderhood Переезжай к нам ;) @sapegin @lapanoid
Да я вот уже не раз задумывался о тракторе, но пока все аналогично ситуации с вебштормом) twitter.com/freiksenet_ru/…

@jsunderhood, ну, ТС-то ты искренне любишь
Это только потому что я искренне не люблю JS ;) twitter.com/ilnurkhalilov/…

@jsunderhood @lapanoid @twenty @vkurchatkin @andreypopp ты точно прочитал эту статью?

@jsunderhood @andreypopp @twenty @lapanoid винда, чтобы играть в игры, это же очевидно
Как будто это что-то плохое twitter.com/vkurchatkin/st…

@jsunderhood А женщины, женщины то нужны? anekdot.ru/id/421130/
Иван затронул актуальную нынче тему сексизма, харассмента и эмпатии twitter.com/icelabaratory/…

@jsunderhood @andreypopp @lapanoid и? Решили, что слишком безопасно - неинтересно?
И там уже второе исследование ведется вроде как twitter.com/vkurchatkin/st…

@jsunderhood @vkurchatkin @lapanoid м.... откуда такая информация?
Из ишьюсов на гитхабе twitter.com/andreypopp/sta…

@jsunderhood не правда, vim есть под винду
Тем более. Винда — супер twitter.com/Bashnya_est/st…

А как фанаты Flow относятся к тому, что этот язык почему-то называют просто тайпчекером?

@jsunderhood хм... ты про баги? они бывают везде, главное что их фиксят и довольно быстро.
Сравним скорость развития TS и Flow?) twitter.com/andreypopp/sta…

@jsunderhood Фанаты flow пользуются удобным им инструментом и им как в анекдоте... Не важно
Удобным инструментом без аналога Language Service API от TS и без дефинишнов twitter.com/lapanoid/statu…

@jsunderhood давай: nullable types, discriminated unions, ... в Flow это давно. Ждем sound систему типов в TS
Ждем все фичи из Flow в TS! Как раз транспайлер почти допилили до нужно уровня, можно сосредоточиться на типах twitter.com/andreypopp/sta…

@jsunderhood о вкусах не спорят :)
Так не интересно же twitter.com/Bashnya_est/st…

@jsunderhood ты про это flowtype.org/docs/declarati… ? Language Service API - приведи пример и из мира ts
Я про репозитории с описаниями типов. У Flow только недавно появилось и там дефинишны из TS парсятся, причем плохо twitter.com/lapanoid/statu…

@jsunderhood ты про это flowtype.org/docs/declarati… ? Language Service API - приведи пример и из мира ts
Про LS API — поддержка всех IDE и кастомные компиляторы. А у Flow какой-то Nuclide. Он перестал все ядра грузить? twitter.com/lapanoid/statu…

@jsunderhood definitions есть см. flow-typed (будет больше и лучше), language service API есть, IDE же работает (интерфейс пока через CLI)
Да видел, уже написал про это. Я вотчу репку Flow и помогаю добавить его в реакт ;) twitter.com/andreypopp/sta…

@jsunderhood Это значит что флоу тоже тырит у ts. Потом будут парсить лучше. Что-то вообще не парсится
Flow осталось добавить транспайлер, и тогда он превратится в настоящий годный клон TS twitter.com/lapanoid/statu…

@jsunderhood Макушка да греется
А на линуксах все ок? Я не пробовал twitter.com/lapanoid/statu…

@jsunderhood мне важнее покрыть существующий код проекта,при этом незаметно от всех остальных, некоторые даже не в курсе что у нас типы есть
TS умеет это же twitter.com/lapanoid/statu…

@jsunderhood Нафига как раз транспайлер? Называй хоть Васей, если этот клон удобнее и лучше оригинала люди будут им пользоаватся
Чтобы язык под названием Flow перестал быть языком без компилятора. И чтобы избавиться от Бабеля twitter.com/lapanoid/statu…

@jsunderhood @andreypopp @vkurchatkin @lapanoid типы вообще зло, особенно на фронтенде. Кто умеет моделировать типами - тот заблуждается
Опачки, вот и Алексей из моря вылез =) twitter.com/mr_mig_by/stat…

@jsunderhood Когда я смотрел не умел
Давно умеет же twitter.com/lapanoid/statu…

@jsunderhood Бабель нужен)
Нужен. Но у него куча проблем по сравнению с транспайлером TS. twitter.com/lapanoid/statu…

@jsunderhood с каких пор flow в реакте?
С недавних. Несколько недель всего. и Работа только началась twitter.com/vkurchatkin/st…

@jsunderhood хмм, надо бы помочь
Велкам! Пока там отсилы 3-4 человека этим занимается twitter.com/vkurchatkin/st…

@mr_mig_by @jsunderhood @andreypopp @vkurchatkin @lapanoid согласен (как и 50% тут) Отсутствие проверки типов в JS одна из его киллер-фич
Только что понял, что я оптимист. Хорошо, что тут 50% адекватны twitter.com/taujavarob/sta…

@jsunderhood @ilnurkhalilov это точно. Тот кто не любит JavaScript тот туда проверку типов и тянет. 😳
А тот, кто любит, тот вероятно даже не пишет тесты? :D twitter.com/taujavarob/sta…

@jsunderhood @ilnurkhalilov В кого они хотят JavaScript превратить - в подобие Java? Так есть же ужас GWT. Но им всё мало? 👻
Про подобие Java вчера поговорили — Dart не нужен) twitter.com/taujavarob/sta…

Кому из нас? Всем? twitter.com/twenty/status/…

@jsunderhood @lapanoid @twenty @vkurchatkin @andreypopp ох йо Разработчик? Виндавс? Який пиздець
Ага, я сейчас еще и свой рабочий стол покажу twitter.com/GarnjukSimon/s…

<3
notion image

@taujavarob @jsunderhood а чем вам GWT не нравится?
Вооот. Тоже интересно) twitter.com/from_anywhere/…

@twenty @taujavarob @mr_mig_by @jsunderhood @andreypopp @vkurchatkin Даешь голосования! Нужны ли типы, флоу, женщины..

@GarnjukSimon сейчас бы в 2076 считать, что на Вин не программируют @jsunderhood @lapanoid @twenty @vkurchatkin @andreypopp
А Илья знает о чем говорит twitter.com/ALF_er/status/…

Пофиксил poll с прошлой недели
🤔 38.4% TypeScript не нужен
🤔 24.4% Flow не нужен
🤔 15.1% Женщины не нужны
🤔 22.1% Мужчины не нужны

@Bashnya_est @jsunderhood хм. Но не о фактах же спорить? 👻 twitter.com/bashnya_est/st…

Жду от сегодняшнего EmberCamp London новостей про Glimmer

@7rulnik @jsunderhood жаль нет пункта - все типы идут лесом. 👻
да, и зря TS идет раньше Flow в списке) twitter.com/taujavarob/sta…

Статическая типизация в JS
🤔 51.7% нужна
🤔 48.3% не нужна

@jsunderhood двойное отрицание еще плохо в голосовании
нужно больше отрицаний! twitter.com/lapanoid/statu…

@jsunderhood типизация не нужна, хочется типизированный язык есть TS. Пусть JS будет простым настолько насколько возможно. ps: es6 не нужно
Вот такое мнение еще прислали twitter.com/slonoed/status…

Релокейшн. Люблю писать транслитом иностранные слова. Это переезд в другой город/страну при устройстве на работу, но всё ли так просто?
В @cssunderhood заводят трактор twitter.com/cssunderhood/s…

@jsunderhood @slonoed Лол, давайте не будем развивать самый популярный язык на планете
А давайте. Мы же все все равно понимаем, что ему конец, да? twitter.com/lapanoid/statu…

@lapanoid @jsunderhood ну почему, есть куда расти, но пусть это касается стандартного API.
Что есть стандартное API? Почему ES6 — это плохо? twitter.com/slonoed/status…

@jsunderhood расскажите, а зачем статическая типизация? А то я как-то вообще этим вопросом не интересовался
Чтобы узнать об ошибках до исполнения, чтобы иметь умное автодополнение в IDE и чтобы генерировать документацию twitter.com/Sigiller/statu…

@__fro @lapanoid @jsunderhood нет (: я недавно до этого дошёл. Мне JS видится высокоуровневым ассемблером: простым и максимально быстрым.
ES6 как раз многие внутренние механизмы экспозит. Метапрограммирование и все вот это. twitter.com/slonoed/status…

@jsunderhood ну если при этом это тот же JS, то звучит круто
это не может быть тот же JS, потому что мы пропустили ES4, в котором предлагалась опциональная типизация twitter.com/Sigiller/statu…

@jsunderhood Это все круто, но для всего этого не обязательны типы ;) @Sigiller
Хм, нужны для того, чтобы узнать об ошибке до исполнения кода twitter.com/freiksenet_ru/…

@Sigiller eslint например. Автодополнение есть в атоме. @jsunderhood
Линтер не спасет от большинства ошибок. Автодополнение без типов — это ужасно. Хотя тот же шторм в этом неплох twitter.com/freiksenet_ru/…

@jsunderhood если тут споры про типы: никто из сообщества не использовал BuckleScript? Хотя бы в пет проектах.
Кажется сейчас мы скатимся в ФП и Хаскель twitter.com/slonoed/status…

@slonoed @__fro @jsunderhood Нафига? Если будет низкоуровненый ассемблер - wasw? Это вроде как пройденный этап
Что есть wasw? twitter.com/lapanoid/statu…

@slonoed @__fro @jsunderhood WASM - очепятался
Воу! wasm пройденный этап? толсто! twitter.com/lapanoid/statu…

@lapanoid @__fro @jsunderhood не, идея в платформе, которая предоставит готовые фичи: метапрограммирование, GC и прочее, мультиплатформу
Так WebAssembly как раз про это twitter.com/slonoed/status…

Раз уж заговорили о нем, то я очень верю в WebAssembly. Веб платформа нуждается в этом. Для проектов, над которыми работаю я, это BIG DEAL!

@jsunderhood Не wasm, а js как ассемблер веба
Все равно это не пройденный этап, а реальность twitter.com/lapanoid/statu…

@jsunderhood достаточно хороший статический анализатор не отличим от компилятора языка с зависимыми типами
Фак мой мозг! Вы уверены, что понимаете термин зависимые типы? Это про языки Idris, Agda, Coq. Анализатора не хватит twitter.com/somerandstring…

@jsunderhood так я толкьо за Proxy и ко. Я против необдуманного добавления фич синтаксиса, которые никто не реализовывает и не оптимизирует
Ну вроде как необдуманного ничего и не добавляется в ECMAScript. Но я бы послушал противоположную точку зрения twitter.com/slonoed/status…

@jsunderhood именно! У меня просто есть ощущение, что он загнется так же как и прочее.
Это вряд ли. Советую на эту тему свои доклады youtube.com/watch?v=eWF_1n… chicoxyzzy.github.io/talks/whats_wr… twitter.com/slonoed/status…

@slonoed @lapanoid @jsunderhood поэтому лично мне - все равно, будет ли J's развиваться ). Просто дайте больше перформанса!
Больше перформанса для чего? Вот SIMD для перформанса добавляется, например. Это плохо? twitter.com/__fro/status/7…

@jsunderhood @Sigiller типы есть все равно. То что ты их не видишь, не пишешь их не отменяет. Просто они отдельно от языка.
они не могут быть отдельно. это разные виды типизации. кстати, многие еще путают статическую и строгую типизацию. twitter.com/DAlooG/status/…

:D не будет юзаться для домашних страничек, видимо twitter.com/twenty/status/…

@jsunderhood как ньюфаг, пришедший из десктопа с ООП, я возблагодарил синтаксис es6, особенно после es5 (он не сложный, но избыточный имхо)
добро пожаловать в веб (беги, пока не поздно) twitter.com/PMarinchenko/s…

@jsunderhood ну вот arrow func, которые я очень люблю странно пересекаются с метками. Ну явно не продуман момент. И хз как правильно.
не очень понятно о чем речь, т.к. это вряд ли про LabelIdentifier, у которого с arrow functions нет пересечений twitter.com/slonoed/status…

@jsunderhood @slonoed @lapanoid я имею ввиду в большей степени сахар. Все равно я буду компилить свой сахар
Сахара в ES6 пришло не так уж много twitter.com/__fro/status/7…

@twenty @jsunderhood это загнется как AppCache, например. Но я надеюсь, что опасения напрасны. И WA будет поддерживаться даже на тостерах
я бы не стал проводить аналогии между WASM и Web API. слишком разные вещи twitter.com/slonoed/status…

@jsunderhood я о том факте, что код [1,2,3].map(a => { f: a }) является валидным и рабочим, но не так как ожидается (если не знать JS)
если не знать JS, то можно и не такой фигни написать. насчет "хз как правильно" - так: [1,2,3].map(a => ({ f: a })); twitter.com/slonoed/status…

ну и тут линтер спасёт

@jsunderhood @slonoed @lapanoid я имею ввиду в большей степени сахар. Все равно я буду компилить свой сахар
только не говори, что кофе :D twitter.com/__fro/status/7…

@jsunderhood я знаю как правильно, знаю почему это логично. Но ведь фигня же, не?
я уже писал что JS фигня ;) twitter.com/slonoed/status…

@jsunderhood например символы позволяют делать такое, и не только такое @slonoed @__fro @lapanoid pic.twitter.com/0h79blwrvi

@jsunderhood конечно спасёт. Конечно, все вокруг пишут идеальный код. Конечно, никто не стреляет себе в ногу.
Тот, кто не юзает линтер с js, уже может попрощаться с ногами) twitter.com/slonoed/status…

@jsunderhood ок, asm.js?
жив. работает везде. решает свои задачи. wasm — продолжением идеи twitter.com/slonoed/status…

@jsunderhood ну для clojure я не использую линтер, в ноги по поводу забытой скобочки не стреляю. Линтер показывает только ущербность(

@jsunderhood везде – это несколько браузеров?
это вообще любые браузеры ;) то, что в текущем Сафари оно не работает AOT — проблема релизного цикла Сафари. twitter.com/slonoed/status…

@jsunderhood да нигде оно не работает как от него хочется. Работает как обычный JS. Профита от него 0.
Вообще-то он работает в FF, Хромиумах (TurboFan/JIT), EDGE (AOT под флагом), в разработке в WebKit (|| с WASM) twitter.com/slonoed/status…

профит от него есть в любом случае. его юзают те, кому оно нужно. но обычно это не js чуваки. js чуваки в asm.js не умеют, это не про них

@jsunderhood микроволновки, телевизоры, говномобилки. Я про них. Там он нужен куда больше, чем в хорошем браузере на можном компе.
вот это все юзает либо Rhino, либо SpiderMonkey. Оба поддерживаются Мозиллой. но там вообще-то asm.js не нужен twitter.com/slonoed/status…

зачем транспилить из c/c++ в asm.js и исполнятьв js-движке? бред же

Пофиксил poll с прошлой недели
twitter.com/jsunderhood/st… Женщины и мужчины одинаково не нужны, но типы ненужнее

Статическая типизация в JS
twitter.com/jsunderhood/st… Стакан наполовину полон

@lapanoid @jsunderhood @slonoed язык должен развиваться. Но не в сторону его "заковывания в кандалы" типизацией.
В ES невозможно добавить неопциональную типизацию. Так что никто не пострадает twitter.com/taujavarob/sta…

@PMarinchenko @jsunderhood верно. Сахарку знатно подкинули ничего при этом … не изменив. 👻
Из сахара одни классы, rest и несколько методов в глобальных объектах. Все остальное абсолютно новые для языка фичи. twitter.com/taujavarob/sta…

arrow functions — не сахар, spread оператор не сахар

@Sigiller @jsunderhood нет. Не тот же. Это обман. TS уводит в сторону. Это же порождение MS. 👻
Тот же + типы и декораторы. Более того, TS может себе позволить breaking changes чтобы всегда быть ES-complaint. twitter.com/taujavarob/sta…

@jsunderhood @Sigiller вот интересно -кто всё же снёс этот ES4 с пути JavaScript? И не хотят ли опять тихой сапой всё это добавить? 😳
гугл хотел принести опциональную типизацию через SoundScript, но не осилил twitter.com/taujavarob/sta…

@mr_mig_by @jsunderhood @PMarinchenko мало того. Я пришёл в JavaScript через GWT! 👻
Жизнь потрепала :D twitter.com/taujavarob/sta…

@jsunderhood @cssunderhood используя БЭМ – вполне хорошо
а не смущает, что что-то не так в этом всем? :) twitter.com/NUM13RU/status…

@jsunderhood писать стили просто нормально надо
Из их названия выходит, что нормально — это каскадно twitter.com/from_anywhere/…

@jsunderhood из названия выходит что джаваскрипт имеет какое-то отношение к джаве
вот! все в вебе через жопу, но никто не хочет его ломать! twitter.com/Sigiller/statu…

Зависть в говорит вас, падаван. А вообще, для срачиков я отвёл целый день -- вск. twitter.com/jsunderhood/st…
но я хочу сейчас( twitter.com/cssunderhood/s…

@jsunderhood политкорректность, теперь все что через жопу не ломают, а всячески поддерживают.
Знакомтесь, Иван — Master of Diversity! twitter.com/icelabaratory/…

В твиттере вообще треды не удобно. Но если не ретвитить, то народ не будет подключаться в процессе. Тут так заведено twitter.com/Seleckis/statu…

Just published "A little journey with types in JavaScript" with embedded examples potomushto.com/2016/07/12/gra…
Вроде годная статья про Flow twitter.com/potomushto/sta…

Смотрите какой классный андерхуд! twitter.com/catunderhood

Вынужден отлучиться по работе. Когда вернусь, то расскажу как организовать BeerJS в своем городе, а также порадую московских BeerJS'еров ;)

А как организовать митап без Beer и Vodka у нас написано вот тут github.com/MoscowJS/organ… twitter.com/SheVasya/statu…

@ghaiklor @jsunderhood github.com/kittikjs/kittik
Да, посмотрите что Женя сделал. Клевая штука. Придумали ее на конференции KharkivJS. twitter.com/ghaiklor/statu…

Обещанные новости BeerJS Moscow. Завтра ждем всех после Node.js Meetup митап: events.yandex.ru/events/yagosti… дринкап: meetup.com/BeerJS-Moscow/…

Все так. Но я это и подразумевал twitter.com/RReverser/stat…

И обещанные офигительные истории о том, как сделать свой BeerJS. Делаем репку вот тут github.com/beerjs

это поможет людям из других городов проще найти вас.

Определяемся где все это будет жить. Мы остановились на meetup.com. Я его ненавижу, но через него удобно рассылать на почту

Я призываю остальных к миграцции на GitHub, но пока что не очень получается. 3. Рассказываем всем о первом предстоящем событии.

Надо дать понять, что пить на дринкапе не обязательно. И надо следить чтобы были безалкогольные напитки.

Еда должна быть. Обязательно. Горячая. Я стараюсь выбрать место, где и вегетарианцы / веганы смогут что-то себе найти.

Провоидить дринкап в пятницу или выходные — плохая идея. Придет очень мало людей. Мы стараемся проводить по четвергам.

Вроде и конец недели, и практически у всех этот вечер свободен. Такой вот компромисс.

Пиво. Оно должно быть. Оно должно быть хорошее.

Холивары и задушевные беседы за JS начнутся сами собой, но хорошо бы всегда уметь что-то вбросить! Новички вливаются быстро.

У нас не бывает докладов на дринкапах, но хочется попробовать формат с лайтнингами. ОЧЕНЬ круто когда в заведении есть доска для рисования!

По поводу брони — мы пришли к тому, что иногда проще прийти без предупреждения (убедившись, что не будет футбола или чего-то такого)

ОЧЕНЬ важно чтобы в день дринкапа не было концертов / танцев. Холивары будут. Перекрикивать музыку целый вечер не круто.

Кажется все основное рассказал. Правила простые и они работают. Все, кто спрашивал как начать — пользуйтесь, задавайте вопросы и приглашайте

До меня другие чуваки проводили BeerJS, но не слишком успешно. У них был указан один паб и время — каждый четверг. Не надо так.

Меняйте места и не частите. Будет здорово!

🔥Тред (@chicoxyzzy)
@jsunderhood Пиво не нужно.

@jsunderhood, а как же сидр?
Годится. Обычно сидр есть там, где есть крафтовое и это верно для любого города twitter.com/cssunderhood/s…

@jsunderhood Пиво не нужно.
Немецкое не нужно конечно! twitter.com/sapegin/status…

Самое вкусное пиво — разнообразные шотландские и норвежские эли!

Да, если будут вопросы по организации обычных митапов — тоже можете спрашивать.

Все уже в курсе, что в React добавили PureComponent?

вот PR github.com/facebook/react… и внимательно читаем про подводные камни в комментариях

месяц назад успел написать что он не нужен github.com/facebook/react…

@sapegin @jsunderhood Не знаю, что такое дринкап, но, судя по названию, без пива это уже не дринкап.
Вполне себе можно без пива. Некоторые не пьют алкоголь у нас. twitter.com/webholt/status…

тут типа руби чел как-будт затролел twitter.com/mr_The/status/…

Тем, кто юзает sCU с shallowEqual можно будет писать меньше кода, но бывает так github.com/facebook/react… twitter.com/twenty/status/…

лучше испытывать меньше боли и юзать макось, а вин95 на воллпейпер поставить twitter.com/SheVasya/statu…

@SheVasya, на серверах, которые собирают и тебе всё отдают стоит далеко не win @jsunderhood
Спорим, что у некоторых не так уж и далеко? twitter.com/cssunderhood/s…

Кстати, не фронтендом единым. Благо на бекенде можно и язык нормальный выбрать :B

@jsunderhood Например Javascript.

Rule proposal: warn against using findDOMNode() github.com/yannickcr/esli…
Оп! Все правильно twitter.com/dan_abramov/st…

Среда


Астрологи объявили день реакта! Сегодня расскажу о том, как я познакомился с ним, как искал альтернативы и как перестал их искать.

@jsunderhood да, интересно. И как вам, стороннику TS, удалость избегнуть капкана angular 2 ?
Ну это очень просто. TS существует очень давно и никак не связан с нг2. Меня TS отталкивал по другой причине twitter.com/taujavarob/sta…

У него были противоречия со спекой ES. Например, использование arguments в стрелочных ф-ях работало не как надо.

Но потом TS привели в порядок, и теперь всегда весь ES работает по спеке внутри TS.

Познакомился с реактом я в октябре 2013. Спустя 6 месяцев после того, как FB выложил его на GitHub. Вроде бы тогда была версия 0.9.0.

Ну то есть не могу похвастаться таким опытом работы с реактом как у @DenisIzmaylov ;D

Тогда я пришел в компанию, которая занималась интерактивным ТВ и создавала SDK для разработчиков на разных языках. Я пришел в команду JS

Тогда о React Native не было слышно вообще ничего. Да даже о Flux еще ничего не было слышно. И мы создавали свой RN.

Таким образом, знакомиться с исходниками реакта приходилось уже тогда

Нужно добавит, что тогда там все было менее понятно, чем сейчас. И видно как хорошо команда реакта поработала за эти годы!

🔥Тред (@chicoxyzzy)
@jsunderhood TS то не связан но angular 2 написан на ts и подавляющее число примеров использования angular 2 также написано на ts.
Про нг2 я еще расскажу сегодня twitter.com/taujavarob/sta…

@jsunderhood ещё реквест на тему docker + node.js: с чего начать, best practices, deploy, вот это всё
оу, это к другому ведущему. я могу рассказать только про докер, node.js мы не юзаем на бекенде, только в деве и ci twitter.com/alexfedoseev/s…

Пожалуй, это была одна из самых интересных работ вообще. Мы пилили фреймворк, DX тулзы и часть апп на этом всем.

Жаль, что все это в итоге так и не попало в опенсорс. Возможно FB мог бы взять реализацию Flex (и Grid) у нас и не писать свой велосипед :D

В ноябре 2014 я ушел из той компании, и с тех пор работаю в EXANTE, где пишу веб интерфейсы для трейдинг платформ на React

Так как трейдинговые платформы — это весьма специфичное ПО, то часто сталкиваюсь с проблемами, которых нет в 99% веб приложений

Из-за этого очень часто оставался недопонятым. Примером тому может служить использование мной нескольких сторов с Redux

Это был такой себе мем (и я сам его форсил, лол). Связано это было с проблемами производительности при использовании 1 стора.

🔥Тред (@chicoxyzzy)
@jsunderhood @alexfedoseev тогда как вы его юзаете в деве? Вебпак или куча всего? 😊
Все как у всех. webpack, eslint, ts (его пока мало), babel и все такое twitter.com/taujavarob/sta…

В общем, из-за специфики приложений, приходилось много искать и исследовать. На гитхабе иногда появляются люди, которые проходят тот же путь

Печально наблюдать как все проходят его заново, наступая на 1 и те же грабли( Когда-нибудь я все же заведу блог, чтобы другие не повторяли

все эти ошибки снова и снова, а знали приемлимые варианты решения проблем

@jsunderhood Ну чувак, ты же как всегда набрасываешь без пояснений, вот и не понимают тебя :)
Ну я часто объяснял это все в разных чатиках, и все это очень надоело) Это еще 1 + к мотивации завести блог twitter.com/roman01la/stat…

Да, кстати, тыщи сторов, которые динамически появляются и пропадают в Redux больше неактуальны) И вот тут еще один забавный момент

То, чем я делился в миллионах чатиков и во что не верили очень многие, сейчас продвигается респектабельными чуваками.

Юзал Redux + Rx когда это не было мейнстримом. Многие говорили, что мне не нужен Redux когда есть Rx. Теперь о Redux+Rx пишет Netflix и...

многие (наконец-то!) начинают задумываться зачем и как, какую пользу из этого можно извлечь

🔥Тред (@chicoxyzzy)
@jsunderhood да ладно?!
Да, раньше приходилось юзать либы от Артура Кларка и всякие самописные, но теперь Redux стор — обзервабл. twitter.com/ALF_er/status/…

И все мои те динамические микросторы могут быть тоже обзерваблами. Но об этом в твиттере не удобно писать. Черт. Это еще один + к блогу

Об этом всем я тоже напишу и хочу сделать доклад (м.б. на React Next 2016 или еще где-то). К тому же @xgrommx меня постоянно пинает)

@jsunderhood они наконец то убрали слово Manager из кода, и надеюсь слово Epic достигнет той же популярности что и Saga :-)
Да! PR с Epic тоже влили уже! twitter.com/icelabaratory/…

Очень хочу всех предостеречь. НЕ НАДО юзать все вот это в продакшне у себя. Скорее всего оно вам не нужно. Пробуйте, но не ведитесь на хайп!

Вот и @dan_abramov может подтвердить! Не стройте лишних абстракций, когда они вам не нужны! Скорее всего ваша аппа входит в те самые 99%!

@jsunderhood что за Epic?

@jsunderhood ага, ага, устроили секту посвящённых! вам можно, а остальным - "не надо" =) @dan_abramov
Я не говорю о том, что другим нельзя. Надо пробовать и понимать когда это все не нужно. twitter.com/ALF_er/status/…

Тем более ты всегда знаешь где меня найти и спросить об этом всем ;)

Вот этот пакет не советую пока активно юзать, кстати, там многое еще поменяется!

@jsunderhood @ALF_er Вот такие имена ну очень конфузят. Та же Saga совсем не сага, а менеджер процессов. К чему такие термины?
Роман, я с тобой согласен. Но лучшего термина не придумали. Подключайся и вотч с нами репку, предлагай идеи! twitter.com/roman01la/stat…

Набор из того, что стабильно и работает хорошо вместе с обзерваблами Redux, Recompose. Добавляем к этому RxJS 5 (не 4!) или most.js

Эпичный PR, в кот. мы с @icelabaratory убедили Эндрю сделать recompose совм-м с любыми обзерваблами, а не только Rx github.com/acdlite/recomp…

Опенсорс — сила!

@jsunderhood @dan_abramov И чем же тогда удовлетворять свое любопытство? Еслиб я всякое ненужное в проекты не пихал, то что бы знал я?
Значит наверное оно все тебе в твоих проектах нужно :) Ты попробовал и понял, что в твоем кейсе заходит twitter.com/icelabaratory/…

Так, мы отвлеклись. Беру перерыв на поработать, а потом расскажу как искал альтернативы React, чем был недоволен и как вернулся к нему

@jsunderhood что будет после observable state?) По ощущениям Redux был чекпоинтом, все остальное сейчас похоже на поиски следующего решения.
У меня пока такой чекпоинт: - внутреннее состояние компонент в их state - состояние приложения в redux сторе — стрим twitter.com/roman01la/stat…

- котировки и прочие данные, которые не нужно читать синхронно — стримы - rxjs 5 / most.js для работы со стримами - recompose для HoC

@roman01la Что-то завязывающее клиент и сервер. Типа Relay но видимо не он. @jsunderhood
Мне совсем не нравится Relay (хотя для мобилок и RN ок). Намного больше нравится Falcor, но там тоже проблемы twitter.com/freiksenet_ru/…

Например, бекенд реализация есть только для Node.js и развитие очень медленное. Я так понял, что сами Netflix пока так и не юзают его в прод

@jsunderhood Что именно не так в Relay? Для меня главная крутая идея это завязка необходимых серверных данных к компонентам. @roman01la
Мутации ужасны. Поддержка подписок оч. слабая (а мне без этого никак). Типы в теории можно брать из Flow/TS twitter.com/freiksenet_ru/…

@jsunderhood В любом случае завязка нужных данных на компоненты и автоматическая работа с сервером это то что нужно. @roman01la
Иногда в подписках не все так просто. Может быть много 3rd party эндпоинтов с разными форм-ми данных, способами auth twitter.com/freiksenet_ru/…

@jsunderhood Поэтому MobX меня не впечатляет, а вот Apollo Client да. @roman01la
Секундочка самопиара. github.com/chicoxyzzy/rx-… еще есть github.com/mobxjs/mobx/is… но больше не работаю над ним twitter.com/freiksenet_ru/…

т. к. никогда mobx и не использовал на самом деле :)

@freiksenet_ru @jsunderhood кстати, что можешь сказать об Apollo Client?
Возможно @vslinko еще что-то сможет сказать по этому поводу. Слав? twitter.com/roman01la/stat…

@jsunderhood Ну опять же graphql это решает. @roman01la
Да, но это слишком затратно и пинг не резиновый (а это может быть конкурентным преимуществом) twitter.com/freiksenet_ru/…

@jsunderhood Не понимаю причём тут пинг. Я про subscription в GraphQL. @roman01la
Ну для всего, указанного мной нужны предобработки данных и авторизации на беке. Лишний промежуточный сервер. twitter.com/freiksenet_ru/…

@jsunderhood Рано или поздно он все равно тебе будет нужен. @roman01la
Это может быть так, когда команда маленькая и всем занимаются одни и те же команды, но так не всегда получается twitter.com/freiksenet_ru/…

@jsunderhood пока самый лучший материал по теме из найденного: anandmanisankar.com/posts/docker-c…
ну не моя тема, но раз клевая статья, то держите =) twitter.com/alexfedoseev/s…

Аё. Дела с тестами где? twitter.com/liberi_hominis…

Про реакт продолжим завтра наверное. Я уже внезапно на Node.js митапе. Ноджс хоть и не нужен, но послушать интересно.

Ок, завтра поговорим про тесты, раз спрашивают. У меня есть что рассказать

А также внезапно в v8 был коммит, который добавляет поддержку async функций! Оно работает!
notion image

@vkurchatkin показывает как пользоваться новой фичей в Node.js 6.3.0 — встроенным Node Inspector pic.twitter.com/phisUD8ZdF
Упс. Из-за реплая вот этого не видно было, сорян twitter.com/jsunderhood/st…

О микрос-ной арх-ре на базе CoreOS и Kubernetes рассказывает @DenisIzmaylov. Удачный кадр! Микросервисы не нужны?
notion image

Выглядит очень хорошо если грамотно писать try-catch twitter.com/twenty/status/…

Обзёрваблы не в спеке, они на stage 1 twitter.com/twenty/status/…

@twenty @jsunderhood +1. Предполагаю, что теперь все дилетанты будут писать await где попало. "На всякий случай"
Да, такое возможно. Ну что ж поделать ¯_(ツ)_/¯ twitter.com/boriscoder/sta…

А я еще предлагал ввести операторы ≈, ≈≈ и ≈≈≈ twitter.com/twenty/status/…

Вова @vmakhaev рассказывает про Deis deis.io
notion image

блин, чуваки, ретвитить весь тред не буду, но рекомендация должна быть наоборот же.Юзайте await только там, где надо twitter.com/twenty/status/…

У нас был долгий и сильный шитсторм о стайлгайде. в итоге я настоял на airbnb, чтобы плохо было всем.там только ===. twitter.com/twenty/status/…

и нам ок

@jsunderhood @roman01la @freiksenet_ru Apollo отлично войдет тем, кто хочет кастомные запросы к серверу и кому не нужны оптимизации Relay.
О, мне может зайти, да? twitter.com/vslinko/status…

Оказывается у Moscow Node.js Meetup есть свой твиттер. Слайды будут там twitter.com/moscownodejs

Четверг


@jsunderhood а каким набором правил пользуешься для tslint?

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

Хороший сегодня #DevOps митап на @MoscowNodeJS митапе получился 😃

Еще немножко самопиара facebook.com/odessajs/posts…

В этом месяце пройдет 53 встреча TC39. Агенда тут: github.com/tc39/agendas/b…

Во имя Закаса и Крока и святаго Айка "use strict"; twitter.com/twenty/status/…

И так, поговорим о тестировании. Когда-то очень давно я юзал Jasmine, затем Mocha. Затем, в один самый обычный будний день все поменялось.

Проводя код ревью одного из PR в новом проекте, я увидел тесты на tape. До этого о нем не слышал. Возмутило, но такие тесты лучше чем ничего

Уже позже понадобилось самому подключаться к этому проекту, тестов было написано уже вагон, и я смирился и решил оставить tape.

С тех пор евангелирую его всегда и везде, рекомендую начинать новые проекты с ним. Он очень прост, и в нем нет даже раннера из коробки.

Любой тест — обычный js файл. Без неизвестно откуда взявшихся волшебных глобальных переменных и неочевидности с асинхронщиной.

Более того, можно делать суперкрутой реюз кода и динамически менять количества проверок. В tape всего около 200 LoC

Tape — это (грубо говоря) assert из node.js + обертка для планирования ассертов + вывод в формат TAP, который придумали еще перловики

🔥Тред (@chicoxyzzy)
Сам tape появился как форк node-tap и добавлял возможность прогонять тесты в браузере. node-tap соответственно умел это делать только в ноде

к сожалению Substack довольно редко работает над tape сейчас. Зато node-tape развивается довольно шустро.

В какой-то момент в node-tap появился параллельный запуск тестов. То же самое предлагает AVA, добавляя еще несколько фич, таких как...

...как раннер, beforeEach, afterEach (они не нужны!), вывод в формат, отличный от tap (тоже сомнительно, для tap есть куча форматов вывода)

🔥Тред (@chicoxyzzy)
@jsunderhood когда это в node-tap появился параллельный запуск тестов? Айзек написал что не будет этого делать github.com/tapjs/node-tap…
а spawn разве не про то? мне показалось, что это как раз тот же spawn, что и в AVA node-tap.org/advanced/ twitter.com/mourner/status…

@jsunderhood + power assert из коробки

Я раньше скептически относился к AVA, но возможно перейду на нее. Жаль, что магия в нем не опциональная. Еще есть проблемы с дебагом тестов

а еще AVA тоже не умеет раниться в браузере. Но я сейчас тестирую в ноде с jsdom, sinon, enzyme, etc. Плюс отдельно JSDriver.

А что Вы используете для тестов?
🤔 53.6% Jasmine / Mocha
🤔 5.3% Tape / node-tap
🤔 3.3% AVA
🤔 37.8% мой код идеален и без них

@jsunderhood помогите мне понять прикол tape/ava. Как можно жить без describe, beforeEach и expect?
Очень даже неплохо.Аналог дескрайба там есть.Ассерты есть (можно и импортнуть другие), бефор на js пишется без магии twitter.com/boriscoder/sta…

@jsunderhood а чего магического в beforeEach?
то, что в global его нет. его добавляет раннер. а зачем он вообще нужен? twitter.com/boriscoder/sta…

@jsunderhood а еще вот такая штука есть: github.com/rstacruz/mocha… вставляешь в сьют, и jsdom для него включается автоматически
мне не лень написать реквайр twitter.com/boriscoder/sta…

@jsunderhood а есть между ними кардинальная разница? В том плане, что все они запускают юниты, просто с разным синтаксисом. +- фичи
А есть разница между ангуляром, реактом, эмбером? они все для создания UI, "просто с разным синтаксисом" :) twitter.com/slonoed/status…

Вообще если так сравнивать, то tape ближе к реакту, он не фреймворк. Для него можно написать раннеры и сделать из него ~Mocha.

Открыта рега на MoscowJS 32 events.yandex.ru/events/yagosti…

срачик Flow vs TypeScript от Джеймса Кайла, Катца и Тома Дейла! twitter.com/thejameskyle/s…

Пятница


@jsunderhood, а давай ещё о собеседованиях поговорим, например. Мне интересно, что ты спрашиваешь) twitter.com/thepracticalde…
У нас есть вакансия ;) twitter.com/ilnurkhalilov/…

@jsunderhood юзай tape тогда, он изначально в браузере ранится, плюс он модульный, в отличии от коробочного решения ava - ы
нууу какбе... юзаю) twitter.com/hellbeast92/st…

@jsunderhood и опять там будет жарко и не чем дышать? Из этого ушел раньше с ноде js
ваще хз. первый раз там был сам twitter.com/Tom910ru/statu…

@jsunderhood нет разницы, они все не нужны

Так, Реакт-роутер — говно. Что тогда норм? @jsunderhood
Любой, который не тащит свою логику в компоненты. Но, говорят реакт-роутер исправился (я все равно не верю) twitter.com/ilnurkhalilov/…

Иначе говоря, любой роутер, который не завязан ни на какой фреймворк

Но больше меня удивил react-helmet. Вот это уж точно Г! Кто напишет компонент для вывода в консоль? Декларативно же!

У нас специфика такая, что не всегда роутер имеет смысл. И нужен в редких проектах. Юзаем director. Он не очень развивается, но работает

Самому интересно какие есть нормальные. Вроде Router5 ничего, но не могу подтвердить.

Про историю поиска альтернатив реакту помню, не волнуйтесь. Просто пятница сегодня, а пятница, как всем известно, — самое время для релизов!

@twenty @jsunderhood так же как с нативным ангуляровским)
Там немного другая ситуация. Но тот тоже не очень, да. А во втором совсем интересная мелодрама с роутерами. twitter.com/safinalexey/st…

@jsunderhood Не видел его раньше, но в чем проблема? Это нормальная практика, оборачивать императивные API в компоненты.
Проблема в том, что это не имеет отношения ко view. А реакт — это view библиотека. Не надо все тащить в React twitter.com/roman01la/stat…

Надо добавлять реакт ко всему остальному для рендера UI

@jsunderhood он удобный, а ты занудствуешь! =Р
У меня докторская степень по занудству :P twitter.com/ALF_er/status/…

@jsunderhood Прям все конечно тащить не нужно, но для некоторых штук это ну очень удобно и просто использовать.
Для UI и связанной с ним логики — да twitter.com/roman01la/stat…

@operatino @jsunderhood но например проставить тайтл документа очень удобно

@jsunderhood всё удобно в одном месте описано поведение <head>, а не в миллионе cWM нужно это всё искать =)
Почему если все должно быть в одном месте, то это должно быть в реакте? twitter.com/ALF_er/status/…

@jsunderhood удобно ибо. Декларативненько описал как должен выглядеть хэд в зависимости от состояния приложения и радуешься
даже если тебе удобно юзать для этого jsx, то ничего не мешает его юзать вне реакта. реакт не предназначен для этого twitter.com/ALF_er/status/…

но вообще тут и jsx не нужен :B

прячешь сайд-эффекы и пишешь божественно-декларативный фп-код

@jsunderhood не пойму почему ты считаешь, что я вижу тут профит именно в jsx. я вижу его в удобной интеграции с остальным приложением
я считаю, что это неудобная интеграция и неправильное использование. удобная — это, например, миддлвейр в redux twitter.com/ALF_er/status/…

ну вообще от кейса зависит. но это точно не задача реакта

@jsunderhood лучше б ты так фанатично боролся с теми кто юзает вот такое npmjs.com/package/jsx-co… вот уж где реакт занимается не тем
Надо отправить им PR с <Console log="lol" /> twitter.com/ALF_er/status/…

@jsunderhood а можно им отправить PR удаляющий этот пекедж?
<div> <Npm unpublish={flag} /> <Rm rf="*" /> </div> twitter.com/ALF_er/status/…

Просто рецепт от Себастьяна "Как скрыть кусок API" и слайд из моего последнего доклада. github.com/facebook/react… chicoxyzzy.github.io/talks/whats_wr…

Happy to be championing ES-Function-Bind with @bterlson, just to make people like @BenLesh happy github.com/zenparsing/es-…

async/await in Chrome is available behind a flag --harmony_async_await pic.twitter.com/e6cHagg4il
Такие дела twitter.com/chicoxyzzy/sta…

ну и мой коммит уже прилетел в compat-table kangax.github.io/compat-table/e…

Воскресенье


Начали выкладывать видео с @OdessaJS youtube.com/channel/UCcMRM…

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

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

Надеюсь, что Glimmer 2 будет достойным конкурентом. Делал свой реакт на нем, но скудная документация и ломающееся API заставили сдаться

С другой стороны, то, что Glimmer написан на TS, смягчает боль от отсутствия доков.

Я перепробовал кучу виртуальныхDOM'ов и их аналогов. Из более-менее адекватного и работающего — snabbdom.

Также интересен morphdom, но @localvoid в телеграмовском реакт чате сказал, что морфдом не нужен. А этот чувак, вроде, знает толк

Короче юзайте реакт. Если вы не нарушаете своей аппой патент фейсбука, то это лучшее решение

🔥Тред (@chicoxyzzy)
Я ожидал, что разведу гораздо больше срачиков на этой неделе, но не сложилось.Но я все равно принес кое-что покушать github.com/shitjs

Идея организации родилась в кулуарах OdessaJS. Своим существованием мы хотим донести, что много вокруг не так. И пытаемся привлечь к этому..

..внимание. Мы ни в коем случае не несем цели кого-то оскорблять. Это все исключительно for fun и для того, чтобы задокументировать...

...плохие практики. Это как панк, но для девелоперов. Мы еще в процессе составления своего манифеста и обязательно напишем Code of Conduct

Вливайтесь! Будем рады Вашим самым безумным идеям и говнорепозиториям! Сделаем мир лучше вместе!

🔥Тред (@chicoxyzzy)
Can you imagine real presentations in your terminal? There is a lot of work though, but we have proof of concept :) blog.ghaiklor.com/ascii-presenta…
Тем временем Женя написал в блог о своем Kittik! Посмотрите какая классная штука! twitter.com/ghaiklor/statu…

@jsunderhood Что входит в твое понятие "адекватная"?
Тут нужно учитывать, что я искал более низкоуровневое решение. Поэтому vidom мне не очень подходил ;) twitter.com/dfilatov_/stat…

К тому же, насколько я помню, в нем тоже есть ненужные мне sCU и прочие методы лайфсайкла

@jsunderhood что самое ценное есть в экосистеме реакта?
Огромное количество биндингов к различным либам twitter.com/edyg/status/75…

@jsunderhood можете выделить самые ценные примеры, чтобы лучше понять о чем речь?
recompose, redux, mobx, flux (+ flux utils), relay, falcor, компонетны, стопицот разного рода врапперов, etc twitter.com/edyg/status/75…

ну и очень жаль, что github.com/dfilatov/vidom… — wontfix :(

разве? например? twitter.com/awinogradov/st…

Ничего не понял twitter.com/awinogradov/st…

@jsunderhood Ммм, я vidom, вроде, не упоминал. Я спросил что ты вкладываешь в это понятие ;)
Боюсь, что твиттер — не совсем удобное место для этого. У меня были свои критерии, под которые не подошел ни один :) twitter.com/dfilatov_/stat…

Реакт в том числе @jsunderhood

ace выглядит так, как-будто он не нужен кроме тебя. поэтому к нему ничего и нет, вероятно. twitter.com/awinogradov/st…

в любом случае, это не проблема реакта. тут спорить не о чем. twitter.com/awinogradov/st…

К тому же до сих пор совсем не ясно про какие биндинги речь @awinogradov

и у кого такие биндинги к этому ace есть. и что для этого сделала либа, у которой они есть @awinogradov

Я не говорю что реакт хороший,я говорю,что твой редактор не поддерживает фичу, которую ты хочешь. при чем тут реакт? twitter.com/awinogradov/st…

у эмбера нет биндингов к ангуляру. в этом тоже реакт виноват? twitter.com/awinogradov/st…

шо делать — просить добавить фичу в редактор или контрибьютить. или помолиться всем Богам. или грустить. вариантов много @awinogradov

Понедельник


Сворачиваюсь. С вами было классно! Я Серёжа @chicoxyzzy. Подписывайтесь если интересуетесь ES, (F)RP, всякими Web API и о чем я там еще пишу

Ссылки