#52 Будущее фронтенда 2025 — куда движется индустрия? | Денис Чернов
Друзья, привет. Это подкаст Организованное программирование. Я его ведущий Кирилл Мокевнин. Сегодня у меня в гостях Денис Чернов. И мы вместе с Денисом обсудим фронт, а, в самом широком, а, понимании этого слова. Несмотря на то, что мы, в принципе, уже с разными людьми про него говорили, но говорили по каким-то конкретным темам, начиная от движков синхронизации, стейт-менеджеров, спецификации даже, то сегодня я бы хотел с Денисом поговорить про будущее, про те изменения, которые происходят, их много, куда мы все идём, что происходит с фрейворками, тренды, развитие самого языка, а продолжение развития тайпскрипта и так далее. В общем, сегодня будет много интересного, совершенно разных э мест, и я надеюсь, что у нас будет много интересных историй. Денис, привет. Всем привет. Знаешь, я бы начал, наверное, с тайпскрипта, потому что относительно недавно вышла новость о том, что его переписывают на го. Все там обсудили по поводу раз или го, но, честно говоря, это, наверное, за скобками оставим. Какой конкретный язык, это немножко не тема нашего разговора. Скорее речь про то, что сама компиляция будет гораздо более быстрой. Да, и это, наверное, главное, что они дают. По-моему, там порядок 10 раз, если я не ошибаюсь. На самом деле, на самом деле вот многие говорят про компиляцию, но на самом деле компиляция-то это не самая большая проблема была. Нам гораздо важнее было получать быстрее в десказки и, скажем так, как раз-таки проверки. То есть там, если у нас компилируется, допустим, не 1 секунды, а, допустим, секунду, ну, нам это не особо интересно. А вот если у нас подсказка появляется не не там не через 1 секунду, а через секунду или даже две, то нас это даже очень сильно раздражает. Нажак Ctrl пробел и сидишь ждёшь, когда там ТС разбулится и всё-таки тебе скажет, что тут происходит. Вот я думаю, если вот именно эту метрику смогут 10 раз увеличить, это будет прямо ну феноменально. Понятное дело, что там есть накладки от IDE, поэтому, ну, прямое увеличение в 10 раз вряд ли по будет. Но вот мне кажется, вот это вот самый главный по DX будет. прогресс. Можно будет, наконец-то, начать нормально пользоваться библиотечкой i18, которая локали подсасывает. Я не знаю, как у тебя, но для меня это постоянная боль, потому что ты такой набрал и ждёшь, когда он начнёт подсвечивать. Он такой потом бам. И, кстати, не всегда начинает, иногда они начинают даже вот. А вот об этом и речь. Вот однажды, может быть, мы даже увидим красивые ошибки из коробки. Они без использования плагинов дополнительных и шаманств для того, чтобы увеличить текст. Слушай, в этом плане, кстати, тогда не могу не сказать про, как это правильно называется, о, о, да, вот про это и про вид в этом смысле, потому что я так понимаю, что мы же постоянно вот находимся в режиме, да, фронт. У тебя сначала одно, потом второе, потом третье, потом четвёртое с точки зрения именно экосистемы. Вид, о'кей, победил VPпак для многих. Ну, и в целом видно, да, что это произошло. И и вдруг дальше происходит следующий как бы скачок. Это, если я не ошибаюсь, rлдаун этой истории, вообще набор этих проектов, которые делают вот эти ребята. Можешь про это чуть-чуть рассказать, потому что я с этим не так давно познакомился, честно говоря. О'кей. Ну, тут, наверное, я не знаю, насколько тут далеко назад стоит отступить, но а вот э для того, чтобы началась война в чём-то, должен быть, скажем так, первый предводитель. А, и, соответственно, вот как реакт появился и после этого произошёл взрыв именно таких вот фреймворков, а, с точки зрения, мм, как раз-таки реактивности и так далее, то есть до этого они существовали, но они были не особо кому-то не интересны. Они они были широко известны в русских кругах, как говорится. Вот. А когда появился реакт, люди наконец-то об этом узнали, прозрели и начали уже, получается, как раз-таки творить, продвигать эти идеи. Точно так же вот, как пак вначале задал какую-то тенденцию, но потом пришёл вид и произошёл как бы скажем, взрыв. То есть сейчас вот не только вид разрабатывает, сейчас разрабатывает целое семейство. А решение на расте - это и а сам роудаун, как уже было упомянуто, это и RS паack, и, ну, в целом RS экосистема, то есть там RS Build, RS Pack и так далее. менее известный, но всё ещё существующий. Это фарм, ну или ферм, в общем, тоже от китайцев. Сборщик нарастик, убийца Вита презентует себя. Ну и напоследок будь он не ладин, трубопак. Почему будь он не ладин? Потому что он с закрытыми исходниками. Я не сильно уважаю данное решение. Ну, кстати, я периодически же так делают, да, чтобы потом открыть. возможно откроют потом, но сейчас вот как раз-таки там буквально на момент записи неделю назад, наверное, они прошли 100% тестов и в деф-режиме, и в протрежиме. То есть, по сути, он вот только вот неделю назад стал на 100% продакшн-рейтинг. Хотите расти как разработчик не в одиночку, а вместе с сильным сообществом? Вступайте и в Hexet клуб. Это закрытое пространство для тех, кто уже в профессии хочет развиваться дальше. Здесь помогают определить уровень, построить персональный план развития и дают обратную связь менторы из индустрии, в том числе из зарубежных компаний. Клубе живые разговоры о технологиях, собеседованиях, работе в компаниях, карьерном росте и нетворке. Есть отдельные топики с историями участников, отзывами о работодателях, отчётами менторов и планами развития. Люди приходят в клуб, чтобы расти, и помогают другим делать то же самое. Давай так для аудитории скажем, какую вот проблему решают? То, что там очень много именно каких-то ядрёных инструментов прямо на очень базовом уровне. То есть у тебя с одной стороны тайпскрипт становится быстрый, но но с другой стороны сложнее становится это сдруживать с же экосистемой. То есть чем хороша JavaScript экосистема? То, что это интерпретируемый язык, который очень легко запустить. Вы даже можете залезть в исходники, пропачить, ну, кому не повезло, тем приходилось по работе патчить скажем так, пакеты и, соответственно, делать там некоторые подмены в зависимостях. Кто понял, тот пустил слезу. Вот. А когда к нам приходит скомпилированное решение ещё и на другом языке, то, во-первых, разрабатывать плагины под это делать становится очень сложно. Ну, потому что это нужно делать какой-то интероп между джаваскриптом и другим языком. А следующий момент - это то, что нужно разработчику знать два языка для того, чтобы, ну, эффективно их как-то пытаться сдруживать. Поэтому это, да, не самое мм френд решение для разработчиков. То есть, да, оно повышает скорость, но с другой стороны, оно имеет фидбэк. Оно ещё имеет такой эффект, то, что оно разделяет низко сообщества. То есть кто-то там предпочитает раз когда-то там любили и на Рубе поделать вещи. На Дарте мы помним, Сас был тоже, по-моему, сейчас даже он на нём. Э кто-то на го пишет, да, вот, допустим, ESB, да, вот сейчас модера Rust. Ну, имеется в виду, что вот ээ вроде ты работаешь в фронт экосистеме, но с другой стороны, вот есть такие там такой соряжный open source, все популярные решения раскиданы по разным языкам. Ну, мы, кстати, как-то это обсуждали, да, по расту, да, что всё по расту. Самое главное, что это тоже закончится. Жизнь так устроена, что когда-то будет что-то другое. Когда-то, когда-то это тоже что-то закончится, да. Да. А вот с точки зрения именно, ну, это я не очень верю. А вот с точки зрения именно этих инструментов, смотри, они в большинстве своём являются некой, а составляющей самого вида. То есть мы, как прикладные разработчики, с этим сталкиваться не будем или будем, потому что как минимум формат илинтер они делают, и мне кажется, что мы на него перейдём. Вот сейчас как раз, да, было помянуто Oxc и просто меня попросил рассказать историю-то. В общем, вся эта история называется Void Zero, если брать, ну, вот как бы экосистему таковую. А в чём её суть заключается? в том, чтобы сделать вот как бы суперстек, который покрывает все боли, наконец-то. То есть там от, э, как раз-таки сборки, заканчивая инструментами для модификации кода кодмодов почти. То есть это и линтеры, и форматеры, и как раз такие вот API для раста, чтобы можно было парсить удобно. JavaScript. Вот, ну, получается, содружественная экосистема OXC, которая находится в Flo Zero, также включать в себя будет даже собственный движок для джаваскрипта. То есть там вот можно увидеть, если зайти на сайт, у них запланирован даже свой JavaScript движок для всего этого дела. То есть это огромная экосистема, которая пытается решить сразу всё. Тут некоторые, скажем так, вспомнят то, что был же у нас РОМ, который пытался вот откусить большой кусок пирога сразу, и он провалился. Мы имеем биом, который является его официальным наследником, но с другой стороны он и пытается захватить гораздо меньше кусочек. То есть там только уже форматинг и линтинг. Но что из этого интересно? То, что подход немножко отличается. Они не пытаются создать много нового, они пытаются действовать от уже существующего. То есть вот уже есть экосистема Вита, которая выстреливаю, которая всем нравится, и они пытаются на основе него строить всё остальное, либо подстраивается под него. То есть вот rowу просто встроится в VIP. И вы, конечно, в теории ничего не должны заметить, кроме того, что некоторые настройки станут проще и так далее. Будут ли брекингченджи? Да, будут. То есть я знаю некоторые жалобы, особенно от разработчиков плагинов, а то, что есть некоторые деприкейтнутые функции, но, скажем так, в вакууме просто меняется зависимость вид на вид row и, скажем так, у тебя бац и проект станотся супербыстро работать. Вот. Ну и там есть ещё некоторые life улучшения, как более лучшая работа с чанками, наконец откроется, потому что до этого она была заблокирована тем, что сборка происходила через RАП, которая имела определённые ограничение. Ну то есть вот для этой цели и был создан ролдан, чтобы вот избавиться от ограничений, которые бы существовали в рупе, и от того, что у нас было два сборщика для дефа и продрежима. И это очень сильно пугало многих, особенно матёрых разработчиков. Ага. Слушай, а я так правильно понимаю, что вот этот вид rollлдаун, который сейчас есть, это переходный период, то есть его в конце концов просто вид вольют, и он там останется следующей [ __ ] версии - это название для зависимости, да? По сути тестовый. Потом это станет опять же просто витом, у которого будет восьмой версии, да, в восьмой версии. Седьмая версия такая вышла. Сейчас вот выходит, по-моему, ещё семёрка или только-только вышла. Она вышла вышла. Она, да, не включает в себя ещё ролдан напрямую. Я, кстати, пытался перейти, они там сразу написали, что плагин LEGAC не работает, а мы его юзаем. Так что сорян, будем ждать официального релиза с восьмёркой. А, и я правильно понимаю, что с одной стороны это повлияет на производительность именно самой сборки? Угу. Из-за работы с чанками, то есть возможностям эффективнее делать непосредственно саму работу, да? Ну, то есть вот те, кто занимается, особенно разработкой библиотек и пытались собирать их витом, знают, как это больно. Особенно там вот связанные чанки между собой пытаться группировать. На ви это делать больнее было, чем на вебпаке, в котором достаточно такой точечный подход был для работы с чанками. Ну вот враудау этот подход собрали се тоже. О'кей. И вот Биоми ты тоже сказал, кстати, я пробовал сейчас переходить а и использовать оба. А BiM хорош тем, что он ещё реально предлагает всякие, ну, по крайней мере, как только ты его ставишь, у тебя редактор предлагает кучу классных штук делать, а которые, например, а OXC Lint Linter не предлагает. И он видно, что ещё вот в таком более зачасовом состоянии. Как ты думаешь, вообще будет такой глобальный переход вот в эту экосистему? То есть как каковы шансы её на успех, что мы такие это будет для нас стандартно? Потому что то, что там под капотом Вита, это о'кей, люди видеть особо не будут, но линдер иформатор - это довольно важная история, которая на снаружи. Я думаю, что этот вопрос очень сложный. Есть определённые ограничения, которые будут блокировать популярность Оксилинта. То есть Ox Link, да, он супербыстрый там, ну, потом появится нету с джаваскриптом какой-то и так далее, но, допустим, сейчас банально у него конфиг представляет для себя Jonфайл. То есть ты не можешь через JS там поднастроить что-то и так далее, особенно вот кто пользуется, если сборками для Лента, знакомство, тамнифу сборка, другие какие-то там очень удобно можно было там подключать плагины и так далее. В данном случае у тебя просто Джейсон, в котором ты ничего особо не можешь поделать-то. И люди логично спрашивали: "А вот можно ли как-то через JavaScript сделать конфликт?" Ну сказали: "Это даже не планируется, потому что это очень сильно ударит по нашей производительности, потому что нам придётся сделать интероп изста в JS, из JS в Rust. В общем, мы не очень сильно заинтересованы в том, чтобы это развивать. И я считаю, что это, ну, сильная, слабая сторона, скажем так, значительно может повлиять на решение о выборе. Ну да. И тут встанет вопрос: а стоит ли игра свеч или я там потерплю лишнюю секунду, но зато у меня будет полностью развязаны руки в том, что я хочу реализовать. Это, знаешь, довольно забавная вещь. Я вот в своей жизни периодически с Еслинта, ну не то, что он меня не устраивает, но такой, ну, типа мир движется вперёд, у тебя тут более быстрые решения, более интегрированные решения, ещё какие-то, но знаешь, что бы ни делал, куда бы не шёл, вот Билми, например, более-менее, вроде неплохо работает, у тебя всё равно происходит всегда интересная штука. ты берёшь какой-то фреймворк, ты берёшь какую-то либу, ты берёшь какую-то вот штуку, которая довольно сильно влияет на твоё приложение. Если она популярна и вообще над ней заморачивается, то у неё почти наверняка есть плагин в елинте, который проверяет правила работы этой штуки. И каждый раз, когда я это вижу, я такой типа: "Блин, ну вот если у меня есть лента не будет, я не смогу себе получить бесплатно такую возможность". И меня это каждый раз расстраивает. И я такой смотрю тоже на все эти инструменты. Они такие: "Мы внедрили в себя все плагины есть лента". Какой ёлки-палки, ну вы же не можете всё внедрить. Сейчас появится какой-нибудь новый там, не знаю, библиотечк, который это сделает. И в итоге ощущение, что опять же я не считаю, что это плохо. Мне если он всегда нравился и нравится, но как будто бы мы с него не уедем. То есть в конце концов его тупо перепишут на R и также будет ES RX или нет? Ну тут сложно предсказать. То есть ES тоже пытается ускорять. Вот там сейчас сделали многопоточную проверку. То есть, чтобы у тебя сразу несколько файлов могло проверяться, что тоже должно, ну, повысить скорость, особенно на компьютерах с точки зрения линтинга. Насчёт того, что уйдём мы или не уйдём, ну, сейчас загадывать рано. Действительно, все эти линтеры находятся в зачаточном состоянии. Вот сейчас какой-то там шажочек сделал только биом, когда, наконец-то, ну, type aware rules начал поддервать. Ну, для тех, кто не знаком с этим понятием, это значит линтинг на основе типов. То есть, когда тебе если можно показать, что ты что-то сделал неправильно, основываясь на информации о типах, которые вот там ты, допустим, оставил висящий промис, а у вас не рекомендуется висящие промисы оставлять. Вот с такими вещами, допустим, оксилин пока вообще не умеет работать, к сожалению. Вот биом только-только научился работать. Опять же такой весомый фактор. А в елинте это восприниматель, естественно, некоторые даже не заморачиваются о том, что существуют такие правила. Кстати, интересно, а вот в этой всей истории претер каким-то образом существует? Потому что, я, честно скажу, даже когда он появился, я не он не перешёл, потому что для меня это всегда было слишком ограничено. То есть круто, конечно, что он форматирует, но, извините, форматируют сейчас все, а он же ничего не проверяет по сути. А проверка - это, собственно, самое главное. Правильно я понимаю, что в принципе во всей этой истории претер как бы становится таким рудиментом? То есть какой смысл, если у тебя всё равно есть для правил нужен? Вот тут, знаешь, появляется такой холевар линтинга и форматинга. Честно, я его всегда считал очень синтетическим. Я считаю, что линтер вполне может себе проверять форматирование. Скажем так, мне тоже особо притерсятся по душе, потому что он решает одну задачу: связать тебе руки. Ну, то есть буквально главная его задача - это уменьшить себя возможности. Из-за этого вот он и пользуется популярностью, то, что он связывает руки и все поступают в едином стиле, и ты не можешь его проконфигурировать, потому что, ну, скажем так, какая вот одна из популярных видов, скажем так, откладывания дело на потом и бурной симуляции, симуляция бурной деятельности, это настройка конфи. Вот взял ты себе ESн и пошёл там на неделю настраивать правила. Вот это мы хотим так, это хотим мы так, это хотим мы сяк. Потом идёт обсуждение на целый день в команде разработки, где вы обсуждаете, ставить точку суппиту или нет. Потом на следующий день вы спорите о том, что двойные кавычки у вас или одинарные. Ну, в общем, понятно. Ну, ретер поступает в этом плане проще. Он говорит то, что у нас там пять-шесть настроек, грубо говоря. Вот вы только их можете рулить. Всё остальное мы решили за вас. Это одновременно, скажем так, и спасение, и с другой стороны вот те, кто привыкли к тому своему стилю. Или иногда действительно притеркрасиво выглядящий код делает. И буквально, когда их спрашивали, вот этот код выглядит, ну, неприятно, его неприятно читать и так далее, планируете ли вы дать какие-то нам опции, чтобы это исправить? Разработчики притес сказали: "Мы не пытаемся сделать код красивым, мы пытаемся код сделать единообразным". И вот, ну, в этот момент, когда я тоже прочёл этот isшюс, всё встало на свои места. То есть у них нет цели, а, дать красивый код, который приятно читать и так далее. У них есть цель просто стандартизировать вот единый вид, чтобы кто бы не пришёл, кто бы не это, код всегда оставался одинаковым. А и тут, скажем так, насколько линтинг и форматинг в этом плане будет сочетаться, опять же ответить сложно. У XC также будет свой OXC форматер. У Bom также отдельно форматер лежит. То есть форматер пытается именно там расположить всё, перестроить, но линзинг этим не особо занимается. То есть у линтинга есть вот эти вот автофиксы, но они менее продвинутые. чем у формате, потому что форматер использует своё астольшим количеством информации в нём. Это правда. Я только хотел сказать по поводу вот ребят из претера. Ты сказал, я, знаешь, тебе честно скажу, скорее всего они так ответили не потому, что они именно это хотели ответить. Они хотят, чтобы кот был красивым. Просто это же суперсубъективная штука. И они, видимо, настолько устали и понимают, что их просто задолбают, им приходится типа есть универсальная отмазка, чтобы тебе мозг не трахали. Вот они её используют. Вот. А так-то они понятно, а там постоянно борьба ещё в Ишсах. Одни требуют: "Дайте нам больше настроек". А другие прямо там орут и вопят: "Не, не поддайтесь на эти крики, не поддайтесь, оставьте минимум настроек". И вот эти вот, ну, это же всегда вечная борьба. Там строгие рамки против гибкости, рамки против гибкости, рамки против гибкости и ну нет. А тут мы пытаемся всю экосистему заставить работать в рамках одного инструмента, а один инструмент не может одновременно быть и держать всегда в суперрамках и при этом удовлетворять любые вкусы. Поэтому вот и есть определённая сложность с этим. Ну, знаешь, если подводить итог, у меня вообще отношение такое, наверное, что приетер, несмотря на то, что он решает эту проблему, м один не может быть. Тебе всё равно нужна штука, которая проверяет качество кода, проверяет какие-то штуки. А раз тебе это надо, то, блин, нафига брать претер, если у тебя и у всех остальных есть форматеры тоже? То есть получается, короче, очень странная штука, что тебе претервременно с линтером биом или о силинтом юзать странно, да. Вот поэтому как бы в моей жизни как будто бы он и не появится никогда. И возможно вообще в когда-то постепенно так уйдёт на свалку истории. Или, кстати, добавит в себя линтинг и станет совершенно другим инструментом. Это тоже будет смешно, если они в эту сторону пойдут, когда он начнёт терять популярность. А может я не прав, и всё будет по-другому. Я вот ловлю хейта, наверное, некоторую словлю этими словами. Я буквально участвовал в том, чтобы из двух проектов выкинули притер. Серьёзно? Угу. Напишите, ребят, что вы по этому поводу думаете, да? Мы поедем дальше, не будем больше эту темуружить, но, короче, простого решения нет. Одного инструмента не будет. Есть разные штуки. Если стандарт, и всё равно люди будут писать плагины, потому что нужны какие-то специфические правила по специфические вещи. И пока другого у нас тучего нет. Хорошо, давай вот если про экосистему всё, про VIP и всё, что там происходит, как будто бы всё. Ну, понятно, ускоряются, раз вот эти инструменты. Давай про сам язык поговорим, потому что как будто бы нода в определённый момент вообще дже сильно развивался, да, вот прямо были годы, когда прямо бум-бум-бум-бум-бум. Угу. Есть ощущение, что сейчас какая-то стабильность вошла и в Джесе, и в Тайпскрипте, или на фоне на самом деле больше всего происходит, о чём вы не знаем? А тут у меня хочу вспомнить недавнюю новость. В общем, у ноты появился маскот. Но теперь у нас с маскотом. А кто это маскот? У неё это черепаха на ракете.
Это так много говорит о нашем обществе. Черепах на ракете. Чепак, кстати, не такие медленные, как люди. Ну вот тут очень такая игра замаскирована. Вроде и черепаха, а вроде и на ракете, а вроде и черепахи не такие медленные. Ну, в общем, об этом, я думаю, стоит подумать. Это я к чему говорю? А то, что вот реально действительно есть такое ощущение, ну да, насчёт ощущения того, что застой произошёл, а я с этим абсолютно согласен. То есть у меня это ощущение прямо очень дикое. Мм, чтобы ему немножечко разъяснить. Вот у нас произошёл в один момент ЕС6. Вот он пришёл долгожданный такой и, скажем так, весь мир покатился по этому вот по постоянным обновлениям. То есть нас тут просто вот мучили. Ты не успеешь адаптировать одно, там уже летит новое. М эти обновления, ну, скажем так, в один момент происходит интоксикация обновлениями. То есть народ вот настолько там заждался их, что начинает жадным всё в себя впитывать, насколько может. Тут мы вспоминаем про такой инструмент, как Бабель. И в то время даже существовало такое понятие, как бабель срипт, то есть когда там ребята берут stage ноль и пишут в прот, а это как бы ну то, что ещё вообще 100 раз поменяется и это что угодно, но не JavaScript по сути-то своей. Это бабели скрипт, то есть это то, что обвешано плагинами, сахаром и так далее по самые точки с запятыми. Ну и, соответственно, народ с другой стороны начал от этого уставать, когда происходит постоянное обновление. Там только успел выучить одно, приходит другое. Произошло такое понятие, как там JavaScript фатик, по-моему, вот такая фраза звучала. То есть усталость от джаваскрипта, когда он постоянно обновлялся, там ещё и фреймворки подоспели, всем зили то, что нам больше jquy не нужен, ваниillла не нужна. Тото наоборот говорил, что ванила нужна. Ну суть в том то, что вот пенаполнилось сообщество этим всем. И вот после этого мы вышли на плато как раз-таки такое своеобразное. Вот чем отличается разработка здесь от разработки сейчас? Ну, на самом деле, если посмотреть вот не с инфраструктурной точки зрения, где у нас куча скачков произошла и сборщиков, а по факту всё то же самое. Мы имеем всё тот же самый реакт, да, перешли мы на хуки, но тот же самый реакт авенствует уже 10 и более лет. Ну а какой там вот там каждые пару лет менять можно может ити речь, да, новые фреймворки появляются, но они там занимают свою микроскопическую нишу. А на рынке всё здесь правило, кто успел, тот и сел. То есть вот рынок фреймворков реакт занял и ну и с этим особо ничего уже не поделать. С точки зрения языка происходит всё то же самое. То есть вводили кучу нововведений, взвыли в начале м авторы IDE. Потом почему? Потому что люди там накрутили вот эти вон бабим себе различных плагинов, нововедений. А простите, как IDE поддерживает всё это? как им компазировать всё вот это вот разнообразие, а, всех форм и так далее, всего, что возможно было бы введение в JavaScript, потому что на япомню, что они там выбирали со stage 0. Stage 0 - это буквально просто набросок идей того, что можно добавить язык. То есть, ну, это совершенно ещё что-то аморфное. А люди вот брали и требовали от, ну, от разработчиков IDE, чтобы это поддерживалось. Следом потом взвыли и авторы движков по простой причине, потому что от них требовали слишком многого, от них постоянно какие-то хотелки и так далее. Добавлять это быстрее. Плюс ещё получилось так, то что у V8 команда, которая разработала, ну, основная команда V8, которая разрабатывалась, ушла в разработку Дарта. То есть там как раз-таки самые сильные разработчики, авторы движков взвыли спецификация поспела. И, скажем так, ну, если посмотреть на многие изменения, они выглядят достаточно библиотечными. То есть, да, там иногда выходят там раз в пару лет какие-то действительно серьёзные изменения, а по факту мы пишем всё тот же JavaScript. Ну, что изменилось? Мы также пользуем assingйтами, мы не пользуемся генераторами. У нас всё также нет pipeline операторы, всё также нету Throw Expressions. Код очень сильно мало отличается, да, там в основном основные изменения происходили в том, как мы пишем классы на JavaScript. То есть там стали поддерживаться приватные поля, стали поддерживаться static members. Но вот как много мы пишем класса вообще? Да-да, хотел сказать, что на практике, конечно, меня что радует JavaScript, что у тебя не свалилось в эту историю. То есть они, конечно, классы сильно расширили, но чтобы я так, знаешь, тако вспомнить, описывал прямо классы сами по себе, что-то даже и не припомню таких ситуаций, потому что тем более всякие private статики, слава богу, не Java. как будто бы всё немножко такою вот стахарку тут подсыпали и так далее. Да, там бывают важные изменения, там расширение возможностей, ну, никод поддержки в регпах, то есть там более тонкой теперь можно работать. Это, конечно, сильный издвиг, потому что без этого было больно. В остальном всё как будто вот такое синтетическое, библиотечное. Да, ты невероятно радуешься, когда появляются всякие там object grow by. Наконец-то у нас из коробки есть возможность группировать. Но это вот как будто функция, которая там пять строчек пишется и так. То есть это приятно, что это появилось, но как будто бы оно и не Gamechanger. Вот. Ну и да, геймчейджеры должны выйти. То есть вот, допустим, дичайшее мы ждём, это Shadow Re, то есть который позволит создавать там окружение. То есть у нас вот есть сейчас есть глобальное окружение, и это глобальное окружение у нас мм одно. А вот Shadow Rum позволит нам создавать дополнительное окружение. очень сильно там поможет, э, ускорит тесты, потому что, ну, ты создаёшь глобальное окружение новое, и тест не сможет повлиять на внешнее. Там санбоксы, возможно, на этом стоит будет строить будет лучше. Мм, но, скажем так, по некоторы причи запу доверенного кода, да, там этого, но по некоторым причинам, скажем так, это изменение, которое все так ждали, откатилось на уровень ниже. Ну вот опять ждём его. То есть как будто вот эти вот изменения маячат вот такие кардинальные, но они не происходят. И как будто бы даже и особо-то не предвидится ничего такого уже кардинального. Кстати, а ребята, которые зарабатывают язык, ребята, которые пакетный менеджера разрабатывают, это одни и те же ребята или нет? Нет, нет, это совершенно, то есть, ну, ТЦ-39 - это своя команда, у Нода своя команда. А, я понял. То есть, может быть, членство совершаться, то есть, ну, члены определённой команды могут прийти в ТЦ-39, но это не бесплатно. То есть ТЦ-39 существует на том, что, допустим, Google отправит разработчиков ТЦ-39 и будет платить вот то, что их разработчик есть в ТЦ-39. Ну, тут уже, скажем так, спорно можно спорить, что там кто что проталкивает, не проталкивает, но, ну, что-то проталкивают. Просто не всегда, наверное, публично всё это понятно, известно, да. Я просто, знаешь, такой по пути вспомнил, что А сейчас же PNP, как он, господи, PNP, да, называется. А още PNPM, да, популярный стал. И а я, знаешь, вот уже сколько это было в Джесси, когда ты такой радостно побежал на какую-то технологию, а потом её раз и внедряют внутрь. Также с Ярном когда-то было, да? Потом логфайли, логфайлы появились в Анпйме. И я такой сижу, как бы, знаешь, в ожидании, что, может быть, они это сами запилят и не буду рыпаться, а то сейчас опять туда перейдём и возвращаться придётся заново. А правильное действие, я считаю. То есть там говорят, появился очередной убийца. Я такой: "Ура, появился очередной убийца". Да, появился. Ура, появился очередной убийца. Наконец-то мой инструмент станет лучше, потому что появляется какая-то конкуренция и заставляет свой инструмент двигаться. Да, есть такое дело. Ну, смотри, вот мы это про JavaScript. А я знаю, что ты пайплайн оператор ждёшь. Кстати, я тоже его очень сильно ждал. Особенно как раз был момент, когда я на эликсире, ну, вообще на Ирланге писал. Потом эликсир и как раз Fшап эликсир, они очень активно его используют. Окал тоже. Вот и я такой: "Блин, было бы очень круто". Но это, конечно, парадигму сильно сдвигает у тебя, ну, часть всё-таки подходов меняется. Это немножко противоречит ядру джаваскрипта местами, где у тебя методы. Да, круто было бы, если бы у тебя язык сразу был спроектирован под пайплайны. То есть, когда он появится, это, конечно, с одной стороны радостно, с другой стороны, ты понимаешь, что это у нас так сильно усложняет язык в плане рабо того, чтобы как он работает, чтобы всё это поддерживать. Ты думаешь, они его внедрят, в конце концов? Вот у меня вооще уже ощущение, что это что-то на уровне Half Life 3. Каждый божий собрание, ну, то есть буквально вот там последнее упоминание, которое я читал о pплайн операторе. То есть вот если вам интересно, можно прочитать агенту, что они там наобсуждали-то вообще. Там очень подробная сценография есть их обсуждение. Вот там было обсуждение пайплаine оператора. А как оно прозвучало? Нас уже, ну, переведу на простой, если скажем так, нас уже заколебали на всех конференциях трясти и требуется нас пайплайн оператор. Что у нас там с ним? Следующий ответ: Ну, мне не очень нравится, как он выглядит. А где ребята, которые за него отвечают? А их тут нету. Ну, ну мы ну тогда, значит, перейдём к следующей теме. А, то есть вот буквально это выглядело так. То есть все ээ все их все от них требуют, всех от них этого ждут, но с другой стороны как бы сами не торопятся, и чемпионы по войной оператора тоже не особо торопятся. Так что я думаю, да, это уже на уровне 53. Я понял, проезжаю мимо. Ну понятно. А слушай, а Typeesриpt на этом фоне, что у него происходит? А вот Typeesриpt, наверное, стоит как раз-таки отметить его концепцию. Когда Typeesриpt появился, я помню, как он рекламировался. То есть там у него буквально был лозунг: "Пиши на JavaScript будущего сейчас". И они не просто брали какие-то пропозыдли раньше времени, они вводили новые концепции. То есть, допустим, енамов не существует в джаваскрипте, однако они их себе ввели. Немспейсов не существует в джаваскрипте, но они их себе ввели. То есть они думали, что они возьмут такую доминирующую роль, что они смогут диктовать, какой будет JavaScript в будущем. Мм. И вот спустя энное количество времени они как будто осознали ошибку этого подхода. то, что TPScript - это отдельный язык и JavaScript и всё-таки отказались от этой концепции навязывание фич языку. И сейчас вот все фичи, которые выходят, они остаются в рамках возможности, ну, джаваскрипта. То есть они не добавляют какой-то там функционал или кода, который, аэ, не соответствует тому, как может работать JavaScript. То есть это должно быть просто JavaScript с возможностью указать типы, не более. Ну и как раз-таки сейчас вот, допустим, таким образом работают запускаторы тайпскрипта на основе просто там регулярка вырезания типов. Не все фичий возможно так использовать, например. Так, конечно, не будут работать декораторы, так не будут работать анамы, так не будут работать неймспейсы, потому что это не просто регуляркой затереть место, где находится тип. Но мы пришли вот как раз-таки вот такой переход произошёл от концепции навязывании фич языку к концепции то, что мы JavaScript просто с возможностью оставлять типы. Кстати, я тут, знаешь, не могу очень важную штуку добавить. Хочу про неё даже у себя написать, про языки, я их, ну, враперы, которые оборачивают базовый язык какой-то и вокруг него существует. Их же полно. Там, если опять же JS брать, так вообще там я у нас даже clure scриpt в продакшене был, чтобы ты понимал, много-много лет назад мы на нём писали там квизы на хекслите вот прямо маленькую там буквально маленький компонентик, но я просто поэкспериментировал, посмотрел. Тогда как раз концепции были по реакту, как по-другому работать. И знаешь, какая интересная вещь со всеми этими языками, она проявляется в котлине, в скале, ну то есть все вот языки, которые поверх какого-то другого или там машины виртуальной. Знаешь, почему котлин выстрелил, а остальные не выстрелили? Почему получилось? Вот ребята, которуго делали, они очень умные ребята, они поняли очень важную вещь. Для того, чтобы этот язык начал расти и использоваться, никто, ну, с нуля проекты писать, это вообще не то. У тебя Java - это вот готовые реальные проекты. Самое главное переход возможен, когда ты кладёшь рядом два файлика и у тебя не работают в рамках одной экосистемы. И это возможно только в одном случае, если у тебя есть полное совпадение по типам данных. То есть у тебя нет своих типов данных. Короче, у тебя не должно быть интеропа.
Ja свтся специфический такой запрос для того, чтобы пойти в Java. У тебя в скале происходит, потому что у тебя, да, у тебя не просто типа я в джаву пошёл, а ты прямо видишь, что это какая-то чужеродная конструкция. То же самое, например, происходит, когда ты там в эликсире в орланг ходишь. И вот языки, которые понимают, что их задача как бы жить рядом в этой экосистеме и свит хотят сделать, они делают полностью одинаковую систему по структурам данных. Структура данных и вот базовые типы. То есть у тебя там массивы должны быть одинаковые, это должно быть одинаковое, это должно быть одинаковое. И в таком случае ты просто берёшь и используешь её, потому что она для тебя является родная. И вот Typeрипt 100% правильно и целенаправленно как бы это соблё. То есть у тебя не существует способа узнать, это там вообще Type SCP или JZ, когда ты работаешь с кодом. Вот. И это как бы важная штука. Я просто почему я говорю, потому что мне, может быть, не все это понимают. Это вот касаемо, в принципе, таких языков. Обречены они на успех или нет, скажем так. Вот если ты посмотришь все языки, которые таким образом победили, ну или смогли как бы занять свою нишу серьёзную, они все по структурам данных и по типам совпадают. Вот. Ну это интересно. Ну то есть добавление вспомнил добавление Динамо в этом плане, понимаешь, да, оно не Да, да, оно ломало эту концепцию, да, но оно не принципиально, потому что всё-таки главное, что у тебя там все остальные вещи совпадают. У Тут я просто помню ещё одну такую фичу невероятного м фич, которая вауэффект вызывала просто невероятное, когда это вышло. То есть я тоже котлин пробовал, писал на нём. И вот вау эффект основной вызывал, когда ты берёшь танк. Ну везде же информация на джаве. А вот как как победить Джаву, если ты там какой-то язык, ты просто поддерживавшийся в де возможности просто копировать Java, вставить и он тебе предлагает переписать это на котле. То есть тебе не нужно там ничего даже переформатировать и так далее. Просто копист Джава вставляешь бац, котлин у тебя полся. Это такой вау эффект вызывал, по-моему, до сих пор. Ну я не я не знаю, где ещё такие фичи есть, но для меня это был такой реально вау, магия. Ну да, но это вот единственный способ, да, перетащить всех. Ну, в Джеси же тоже, по сути, там, наверное, может быть, даже проще немножко, потому что ты просто расширение меняешь у файл с джеса на ТС, и у тебя всё работает плюс-минус. Кстати, там есть одно исключение. То есть нельзя сказать, что прямо на 100% без этого там 99 и так далее. Есть же одно исключение, когда не работает JavaScript, так же, как TypeScript. Ну-ка, Turbo Fish Problem, которая была описана ещё раз там. Ну-ка, расскажи, что ты. Я первый раз такое понятие слышу. А turbфish - это такая своеобразная фигурка. Заключается она в том, что вот как раз-таки использование угловых скобочек, то есть то есть не квадратные скобочки, а вот такие треугольные, в которых generнеic пишется. И в чём суть? В джаваскрипте они используются как больше и меньше. И вот если написать определённым образом мм скажем так, конструкцию, то Typeescript будет считать, что у тебя это generic, а JavaScript будет считать, что это сравнение. И, соответственно, синтаксические конструкци, ну, конструкции будут разные. Я понял. Это, да, на уровне парсера. На уровне парсера. То есть, если ты отправишь этот JavaScript код таскрипту, он скажет, что он невалиден, потому что не всегда конструкция это будет. Слушай, ну, языки, да, языки - это сложная концепция. Из-за этого многие парсеры, конечно, это сумасшествие. Ты знаешь, что вот один из самых хитрых парсеров в этом плане, который я знаю, что у плюсов там ад тоже творится с его сложностью, но но я просто как руби разработчик могу сказать, что вот в руби эта проблема, она во все поля у тебя он настолько позволяет вот расслабиться в плане написания. Ты знаешь, например, у тебя скобки можешь же не ставить, да, вызова, а тебе представь, что ты пишешь как бы конструкцию из вложенных вызовов методов, но ты нигде скобки не ставишь, а ещё тут какие-то блоки используются, а у них там ещё приоритет в зависимости от синтаксиса разный. И у тебя это приводит к таким иногда ситуациям, когда без вот расставления приоритетных скобок, например, у тебя парсер прямо не может распарсить, он не понимает. И там вот такого добра, ну, если писать, ну, это понятно, что это не то, что прямо большая проблема, это надо специфически писать, чтобы, ну, так стараться, скажем так. Но местами бывает действительно, что ты, например, вот, ну, бывает такой вызов, вызов параметргу, и он как бы применился не туда, понимаешь? Да. И вот вот такие вот штуки -э приколюхи, они постоянно есть, что типа мы не можем реализовать такую штуку, потому что слишком хитрый парсер. Вот. И всегда понятно, что чем сложнее у тебя язык, чем больше у него фищ, тем больше возможностей, у тебя всегда найдёт какая-то как такая комбинация, вот как ты сейчас описываешь, да, которую вообще-то никто не предполагал, она такая бама сработала, такие: "Ну и что делать теперь? Давайте с этим как-то жить". Ну вот как раз-таки в Растве это буквально как фича продвигается, то, что они вот изобрели себе турбофиish. Ну там трубофи два двоеточия, только потом идёт женерик, чтобы как раз-таки исключить при помощи двух двоеточий, что это точно не может быть знаком сравнения. А, ой, ну это, знаешь, это такое, я тебе могу прикол сказать. Ты знаешь про Паскаль, там двоеточие равно при присваивании, да? А ты ты знаешь, почему так сделали? Есть же интересная история за которая за этим стоит, насколько я помню, ну, как это объяснялось, чтобы не путать математическое равно и в присваивании как таковое. Да, да. Тогда же они ещё Да, тогда же ещё они такие типа: "Слушайте, ну это же вообще другая операция присваивания и давайте, в общем, да, это всё не путает добро". А в итоге люди, видишь, им всё это слишком сложно казалось. И, кстати, по-моему, потом шутка после этого была, что языки, у которых двоеточие равно, они обречены на неудачу. Не получается ни одного такого языка. Любопытно. Надо посмотреть вообще, какие языки это поддерживать, потому что, ну, это там алголовская группа или кто-то ещё. Есть. Да, да, да, да. По-моему, даже каким-то из современных пытались что-то подобное сделать. Но действительно, когда ты пытаешься после этого на функциональном языке описать и у тебя равно как бы не присваивание, сначала это надо прямо осознать, а потом ты такой: "Блин, жалко не так в других языках, когда у тебя сопоставление с образцом происходит паттерн". И я сейчас пустил скупую слезу, потому что я давно не писал на функциональных языках, и, конечно, этого прямо не хватает. И тут, да, интересный момент. Есть определённое обсуждение, которое появилось на прошлом собрании ТЦ-39, и оно очень интригующее и очень неоднозначно воспринимается. А что если мы разделим JavaScript на две части? Будет основная часть, которая будет поддерживаться движком и будет, а, официальная шуга часть. Ну, то есть там часть с сахаром и так далее. В чём суть? Авторы движков могут сосредоточиться на версии, которая там она называется GS Zero, то есть буквально, ну, внутренний JavaScript. По сути, это скомпилиро, ну, ассемблер для джавокрипта на самом джаваскрипте. Очень, грубо говоря, если представлять. Вот. А мы будем ещё поддерживать такую расширенную версию, куда будем более легко вводить новые фичи. При этом не будут перерушаться авторы движков. Но, но на что эта фичи полагается? на то, что у нас есть бандлеры, которые будут, соответственно, делать перевод. Чем это отличается от там просто на обум? Добавление фич через, допустим, тот же самый Вабель? Он отличается тем, что у нас сахар всё ещё стандартизирован. То есть авторы движков его могут чётко поддерживать, IDE поддерживают чётко, точнее, наоборот, авторы движков могут сосредоточиться на Jzero, а авторы IDE могут как разтаки не париться, что пользователи добавлять что-то лишнего, они смогут сосредоточиться вот на вот сладкой части джаваскрипта. И по сути у нас появится надстройка над JavaSриптом в джаваскрипте. Что-то мне это напоминает, а сейчас ребята, кто видел разные языки, сразу скажут: "О, это лиспы". Потому что у тебя там, ну, ты знаешь, ридер можно пат, да, и у тебя можно фактически такой этот крайний случай, потому что там буквально сам язык - это и есть аст и по-страшному вообще можешь любой порядок выполнения, всё, что хочешь там натворить. И в этом плане мы знаем, к чему это приводит. То есть, э, тут, конечно, надо смотреть, но я думаю, что ребята, которые всё это там предлагают, они в курсе очень хорошо про эти вещи, потому что некоторые концепции взлетали, а некоторые концепции нет. Например, той же самой Кложи банально паchтиридер просто банально запрещено. По чтобы не плодились как раз вот эти разные версии, которые начинают у людей очень сильно разводить и потом никто ни с кем там не дружит. Ты пишешь на своей версии языка, на своей, кто-то ещё на своей. Вот. А есть языки, которые наоборот как фичу это водят. То есть, например, тот же Раст, который использует возможности как раз-таки макросов, по-моему, или как они там называются, то вылетело из головы. Ну, в общем, да, специальные конструкции, которые могут распарситься языком и так далее. И, допустим, в том жениме, который может залезть в свой асте и тоже подменять. Для чего это хорошо? Это для того, чтобы аст создавать внутри языка. Просто как пример хотел сказать, что это популярна, например, история была в Ирландее. А когда у тебя действительно есть трансформация, когда ты можешь прямо взять айстшку кода и сделать соответствующее преобразование. Знаешь, как это было, например? То есть прямо классический классический вариант, где это было полезно, где мы это активно использовали. То есть когда ты работаешь в веб-фреймворке, у тебя, как правило, ты из реквеста что-то там достаёшь, делаешь, у тебя реквест меняется, у тебя там получалось всё время реквест прямо приходил реквест один, потом реквест два. То есть как бы это в основном-то преимущество, что у тебя всё иммутабельное, там возврат новых значений, но у тебя получалось часто, что прямо 1 2 3 4 5 6 7. А почему реквест всё время менялся? Потому что у тебя стриминг, у тебя реквест реально может новые данные докидывать, и поэтому ты не можешь с ним просто работать, как с обычным, ну, типа контейнером, из которого ты берёшь данные. И в итоге это приводило к тому, что нельзя. Можно, но у тебя часто бывало, что тебе нужно взять одно значение, параметр такой к То есть это не в смысле ты с ним работаешь в пайплайне, а, например, ты из реквеста хочешь взять кучу значений, и у тебя получалось прямо, знаешь, такой типа 1 2 3 4 у тебя всё время новый реквест создавался. И это реально напрягало, особенно если ты в серёдке представляешь, удаляешь строчку и тебе все номера надо менять. В итоге были написаны просто макросы. Сейчас меня, конечно, могут поправить, я потому что немножко могу перепутать, на каком уровне всё это было, но там как раз эстэшка, когда ты про просто пишешь рек собачка, потом рек собачка собачка, и у него была такая логика, что если у него собачки, он у тебя просто трансляцию делает сначала 1 2 3 4 5. То есть он как бы проставляет это просто на следующем уровне. С точки зрения программиста это уже выглядит как будто у тебя изменяемое переменная. То есть у тебя название-то одно и то же, и оно типа как будто бы всё время перезаписывается через равно. Но в реальности это будут разные переменные всё время. Ты не слышал никогда про такое? Кстати, обсуждение ветки контента в сообществе как раз-таки Хекста застыва на обсуждение этой темы. Это Shadow Invast, то, что ты можешь создать новую, по сути, переменную с таким же именем. То есть она затмит предыдущую, но при этом ты можешь взять, ну, когда ты обращаешься к её имени, ты возьмёшь предыдущее значение, изменеешь его, и оно сохраняется под тем же именем. Но это отдельная переменна, у неё отдельный адрес и так далее, но у тебя при этом полностью мутабельно сохраняется. Вот как раз-таки это вот вот эта вот собачка, это оно и есть. То есть вы А серьёзно? То есть это прямо вот буквально как-то. Да. Прикольно. То есть получается, что оно въехало после того, как, видимо, понравилось использование-то там. Хотя может это ещё откуда- пришло раньше, но точно проблема появилась, по-моему, а именно в Ирланге мы с этим сталкивались и использовали. Прикольно. Прикольно. Но там тоже, знаешь, всегда говорили, что аккуратнее, ребят, с такими штуками, потому что как только вы там эстэшку модифицировать начинаете, ай-ай-ай, это очень в дебаге и вообще в понимании. и другие люди скажут вам большой привет, когда у вас код как бы выглядит вот так, а на а на фоне там происходит какая-то магия, которая его как-то меняет. И это не всегда весело. А ещё весело, когда ты посмотрел начало функции, видишь, что там тип, допустим, строка, а пролистал там чуть ниже такой, ну, к концу сразу, потому что знаешь, что эта переменная используется в конце. листаешь ниже, а это уже не строка, а число, просто потому, что ты не заметил, что где-то в середине её затмили. Тоже вот такой вот есть. В общем, да, фичи. Фича, конечно, да. О'кей. А если вот сейчас, наверное, нас послушать, думают, нахера их слушать? Они тут что-то несут непонятное на непонятных языках. А вот если всё-таки про Typeescript, а вот мы поговорили о том, что да, он соответствует Джессу. Мм, я есть какие-то моменты, связанные с выводом типов, которые надо фиксить. Есть моменты с сужением типов. Ну то есть всё равно так или иначе там и баги есть, есть над чем поработать получше. Но я правильно понимаю, что в принципе концептуальных никаких вот типа фич ещё что-то, ничего такого нет, потому что опять же концепция, что Typeesриpt - это JS с типами, и поэтому всё, что мы делаем, я просто улучшаем типы. То есть никаких новых подходов, новых историй, ничего там такого не предвидится. Или хрен их знает, они никому не рассказывают. Вообще не предвидится пока. То есть, э, когда я сказал то, что они поддерживают только то, что я из джавок скрипте, я чуть-чуть скаю, потому что они поддерживают не stage там, ну, финишит, а stage 3, то есть, когда пропозл доходит до stage 3, а это, по сути, уже финал, то есть почти уже вот он зарелизился, уже всё утверждено. В этом случае тайпскрипт его к себе добавляет. Ну и, соответственно, мы всё равно имеем чуть-чуть раньше некоторые фичи, которые есть в джаваскрипте. Но с точки зрения всего остального, да, он продолжает быть просто джаваскриптом. И это одновременно и хорошо, и плохо. Почему хорошо? Потому что, ну, вот это всё тот же самый JavaScript. Тебе не надо учить два языка. По сути, ты вначале учишь JavaScript, а потом просто, ну, информацию о типа доучиваешь. А с другой стороны, вот когда есть некоторая жажда новых фич, то Typeescriptрипт её не может удовлетворить. То есть это не новый язык, то есть он там не возьмёт и внезапно не появится паттерн мачин, как, допустим, в другом языке, который имеет возможность свичиться скрипритом, как в том же Рескрипте или в глиме, который тоже вот сейчас умеет работать с джаваскриптом. То есть более синтетические языки могут покрыть большее количество хотелок, чем, допустим, имеется возможность свет у тайпскрипта. Опять же, у этого есть хорошие, плохие стороны. Ну, массовыми они из-за этого точно никогда не станут. Мне, как человеку, который учит JS и Typeesрипту, это супер на руку, потому что всегда удобно объяснить, что, ребят, не надо Typeespt с нуля учить, вы всё равно учите JavaScript, а типы они вот просто взяли и накинули. Единственное, знаешь, что хотел сказать ещё по поводу тайпскрипта? Ну да, у нас получается, что сейчас фокус на производительности по большому счёту всё знаешь, что довольно забавно, действительно, а сейчас всё равно ещё таприпт находится в таком хайпе, причём вполне возможно, он уже снижается. какой-то момент у людей, когда, знаешь, одна технология много-много лет, всегда наступает момент, когда возникает больше к ней претензий, желание чего-нибудь нового и так далее. И, видимо, начнёт появляться что-то другое, потому что Type, по сути, перестанет развиваться. То есть просто всего лишь улучшение производительности и вывода типов. То есть получается, что как бы он будет производительный, там опять же будут мелочи всякие править, но всё больше никаких новых идей даже с точки зрения типов, в общем-то. Ну, опять же, я не говорю, что это плохо, всё равно это крутая система типа, все дела, но имеется в виду, что ожидать воодушевлений выхода Typeespt, там 8, 9, 10 и так далее, видимо, вряд ли мы будем. Единственное, почему мы можем ждать, потому что, чтобы они наконец-то поддержали типы новых фич в Джейсе. М, вот с этой точки зрения, ну, это просто уже полишинг что ли какой-то. Это полишинг, да. То есть там вышла новая фича в джаваскрипте. Это такой пошёл её сейчас я её попробую. И тут такой сталкиваешься с тем, что говорит, что ай-ай-ай, я с этим пока не работал. И ты идёшь и ищешь ишёскрипте на добавление этой фичи и начинаешь её отцелировать. Угу. А у тебя есть какая-то прямо вот сейчас такая боль? Прямо сейчас нет, но пару раз было. Это вот было связано с как раз-таки функциями в сете, потому что наконец-то они там Юнио начали поддерживать интерсекшены и так далее. Не сразу эта фича появилась. Сидел и ждал. Я так долгое время, ну, не то что игнорировал Typeescрипt, но продолжал писать на Джейси с поддержкой вот этого тест-чека, который позволяет, да, проверять и использовать типы из библиотек. Но в какой-то момент, конечно, удобство, автоматический вывод и что очень важно, генерация ишка и всех типов, она с этим справляется прямо очень хорошо. Я, конечно, на Typesрипt свишнулся, но знаю, что я замечаю, меня это пугает. Всё чаще и больше, когда я пишу на тайпскрипте и сталкиваюсь с какими-то типами, где надо подумать. Угу. Мне настолько лениво, я такой: "Ладно, пустишка". И я понял, что начал деградировать. И меня это пугает, с одной стороны, а с другой стороны, это так хорошо работает. И я такой даже не пытаюсь об этом думать. Я такой: "А ладно, хрен с ним, пусть будет, что будет". Не замечаешь такого или ты всё-таки заставляешь себя думать? Зачастую заставляю себя думать. И как раз-таки я считаю, что это и есть определённый плюс тайпскрипта, что когда вот, ну, у меня было большое количество проектов и на джаваскрипте голом, и на Тайпскрипте вот сейчас последние года. И что я заметил? На когда человек разрабатывает на вебскрипте, он больше вдумывается в то, что он пишет. Он не может просто накалякать и там овось прокатила. Ему приходится всё-таки проверять, применять мозг свои догадки. Да. Какая вообще есть тенденция у нас как разработчиков? Разработка стала хайповой. У нас есть большое количество кадров и к сожалению они не всегда квалифицированы. То есть, ну, как и в любой области, куда куча народу хочет войти, входят и, скажем так, люди, которые пришли сюда за денежкой, в чём я их совершенно не виню, это нормальное желание. И разработка тоже должна подстраиваться. Не с той точки зрения, что мы хотим там высокую инженерную культуру и, скажем так, вот отталкиваемся от того, что у нас все вокруг инженеры. Такая система, скорее всего, потерпит крах, если вы не какая-то корпорация, которая может себе позволить отбирать там самые сливочки и сформировать определённые команды, которые с этими сливками работают. Зачастую у вас будут там совершенно разные квалификации разработчиков. И система должна быть направлена на то, чтобы даже вот там тот самый джунг, который просто там пару часов мм посмотрел какие-нибудь видосики на Ютубе и каким-то образом прошёл к вам сабс, как быто начал приносить прибыль с минимальными потерями. И вот тут как раз-таки системы, которые пинают разработчиков и заставляют их включать с мозг и учиться, большое благо. А система, которая полагается, что все мы инженеры и понимаем, что мы делаем, к сожалению, мне кажется, наоборот, менее успешные. Я вот поэтому как раз-таки и не выступаю за чистоы джаваasрипt. Да, да, да. Но при этом всё равно вот иишка, блин, опасная штука. Замечаю, что деградация иишка - это опасно. Это нормально в целом. Я, наверное, на днях, вот, когда думал об этом последний раз, такую аналогию нашёл. Это примерно как появление навигаторов. То есть мы до этого по карте ездили, все города знали, да? Потом навигаторы и всё, ты ездишь, как бы тебе не надо об этом думать. Но если с навигаторами это прокатывает, потому что ты не строишь никаких систем, ну, как бы из точки А в точку Б доехал, то в программировании это всё-таки может мешать и сильно мешать. И вот, знаешь, я последнее время, когда сабеса провожу, вот сейчас мы человека ищем, я даже пост, помнишь, наверное, писал об этом, о тех вещах, которыми я сталкиваюсь. Я, знаешь, когда что заметил? Ребята, которые используют курсор и вообще Иишку, а у меня там такой собес, типа, вообще юзай всё, что хочешь, лишь бы работало. Угу. Я прекрасно знаю, что они эти вещи точно знали, они понимали их. То есть нет такого, что они с нуля это делают, но они настолько уже включили режим, типа любой вопрос через вишку, что скорость решения проблемы упала. То есть представляешь, как бы произошёл обратный эффект. В это сложно поверить, но я прямо заметил, что люди прямо реально стали медленнее работать. Ну не все. То есть понятно, что есть задачи, есть специфические истории, где это прямо помогает, искоряет и даёт тебе там пищу для размышления, для те какое-то решение. Но в во многих вопросах ровно обратное произошло. То есть у тебя есть какая-то простая операция, что-то можно было пройти, сделать или, например, банально я тебе пример скажу, там типа, например, обновление фреймворка, да? Угу. У, на новую версию можно спросить у ча. Ну, во-первых, как правило, он вряд ли сильно подробно об этом знает, если это более позднение версии, да? А во-вторых, например, это может быть всегда же сопряжено не с тем, что ты просто версию в package там, как он в GSON поменял, а у тебя какие-то меняются параметры конфигурации, ещё что-то, и он тебе просто об этом не скажет. И получается, что человек как бы делает вроде через иишку, но при этом для того, чтобы прийти к правильному результату, он не факт вообще, что сможет прийти. То есть это тот самый момент, когда надо просто пойти и гайд на официальном сайте почитать. Вот. И я вот таких вот кейсов по мелочи замечаю прямо много. Я смотрю вот каждым собесом и то есть мне казалось, что вообще эффективное вот это использование, оно не требует особо никаких ну типа это просто, то есть что кому я буду рассказывать, как ишкой пользоваться. И у меня после каждого собеса возникает такая история. Хочется сказать: "Ребят, а я есть что вам рассказать, как пользоваться ишкой, когда использовать, когда нет". И вот скрипт, чтобы это совсем вышку не скла не спрыгивали, он мне в этом плане нравится. Потому что, во-первых, он суперструктурированный, и получается, что гораздо проще выводить, потому что у тебя там больше информации полезной и так далее. Но с другой стороны, типы всегда требуют думания дополнительного. И мне кажется, я не хочу сказать, что происходит отупление, что вообще это негативная какая-то штука, но людей, которые разбирались нормально в тайпскрипте и что-то там могли делать, скорее всего, сейчас сильно меньше, чем людей, которые методом тыка, как вот и последнее время, ну, не то чтобы целиком, но когда там уже ка-то определённые сложности, которые так работают. И мне интересно, куда это всё приведёт. В конце концов я какое-то время назад, когда вот как раз-таки тоже погрузился в этот хайп, я пытался найти этот баланс. То есть есть вот суперпростые задачи, которые, ну, как разтаки настолько тривиальные, что не хочется на них время тратить. Там просто там форматирование изменить везде или там перевод сделать какой-то определённый. Потом идёт как раз-таки класс задач, который хочется самому думать. То есть там, где надо подумать, поразмышлять, а есть задача класса это настолько сложно или настолько не моё, что я не хочу этому учиться. Угу. И, соответственно, их хочется поручить ишки. Я пытался подобрать проб такой, чтобы он пытался оценить вначале к какому, то есть классу задача относится, если это что-то слишком тривиальное, которое вот, ну, просто механические действия какие-то от меня требуют, она это делала. Если эта задача попадает в класс, где парень, лучше давай-ка сам подумай, не ленись, напряги свой мозг, она это отправляла меня, в общем, думать самого. Ну, а если задача наоборот, там не из моего, не из моей категории и мне не интересно, как её решать вообще, чтобы она её решила сама. Ну вот у меня потерпел крах, и я очень сильно мечтаю о том, что у меня даже получится всё-таки вот такую сделать, которая ты говоришь: "Сделай это". Она тебе говорит: "Парь, это в твоих силах. Давай-ка ты это сделаешь сам". Правда, потом ты сделаешь там обойти решение. У меня нет времени, пожалуйста, всё-таки это сделай. Но это отдельная история. Не очень в это верю. По одной простой причине. Слишком мало контекста даётся ей. Опять же, исходя вот из тех сабесов, которые я видел, знаешь, как, например, встречается человек с какой-то ошибкой, вот что-то не так, и он не очень понимает её. И поскольку он её не очень понимает, знаешь, как часто бывает, как у тебя, э, когда ошибка синтаксиса, он вообще не туда показывает, что у тебя ошибка в другом месте. Надо выше где-то искать, там скобку, ты забыл, ещё что-то. И вот я здесь вижу абсолютно такую же аналогию, потому что очень часто, если показывать саму ошибку, ну, типа как я кашляю, такой написал: "Я кашляю". И он тебе скажет: "У тебя бронхит, да? Какова вероятность, что он попадёт?" Она там нулевая просто. И здесь то же самое. Ты показываешь эту штуку, а там решение вообще в другой плоскости. Оно требует от тебя квалификации. И чем больше я наблюдаю за работой других в Иишке, тем больше я понимаю, что ситуация хуже. Почему? Потому что когда человек не пользуется яишкой, тоже, ребят, сорри, что мы соскочили, но нельзя было не вставить эту тему. Про это надо обязательно сказать, потому что особенно тем более вот сейчас вот с этим сталкиваюсь, и мы дальше, когда пойдём, тоже про это будем говорить уже по фронттенду. А, короче, что заметил? То есть, например, есть какая-то довольно простая тема, там связа, ну, допустим, человек запускает приложение, а у него порт занят, да, потому что на самом деле там другой веб-сервер висит. И когда он это скидывает, то есть видно, что, во-первых, если, допустим, человек это не знает, то как бы то, что ему там скидывается, он от этого ничего не узнает. И получается, что он фактически методом тыка пытается решить эту проблему. И оно решит, скорее всего, неправильно. То есть, например, там был такой кейс, когда оно рассказывает человеку, что, ну, вот так вот можно кильнуть, а на самом деле у тебя вообще есть нормальное управление службами, где ты можешь стопануть вообще, посмотреть, что это за служба и так далее. А Иишка, она не поймёт этот контекст, она вообще тебя в эту сторону не двинет. Во-первых, надо знать, что ты на какой операционке, сказать, что о, а ты вообще можешь, ты вообще, в принципе, можешь вот так вот поступить. И в итоге, знаешь, к чему это приводит? То есть, во-первых, это занимает больше времени, чем если бы человек попытался разобраться, а во-вторых, на выходе он не становится лучше. То есть мой поинт всегда про дебак, про решение любых проблем, то, что если ты за 5 минут методом тыка решил, о'кей, это классная штука, можно нормально идти. Но если ты потратил минимум, ну, то есть полчаса и час и выше, то ты обязан за это время чему-то новому научиться, чтобы дальше у тебя какая-то системное изменения была, да? Ну, потому что если ты просто час потратил на метод тыка, то это вообще-то очень плохая история. И вот это и раньше всегда было проблемой, но теперь ощущение, что это вообще тотальная штука. И я в этом плане, по крайней мере, пока, потому что вижу вижу откат. То есть наоборот, мои собеседования у людей, которые используют ИИ, они по качеству хуже техбесов, нигде их не используют. А я имею в виду раньше, вот когда люди точно хотя бы ду, ну, понимали, что им надо немножко приложить свою, собственно, мысль к этому. Вот такую вот я хотел сказать штуку. У меня опыт схожий был, но я хочу ещё одним дополнить. то, что тут как происходит как делегация ответственности. Если какой-то компонент, допустим, был сгенерированшкой, тебе становится очень влом разбираться в нём. Если какой-то баг происходит в этом компоненте, ты очень маловероятно будешь пытаться там въехать, что в этом компоненте происходит и так далее. Ты просто попросишь ишку также её поправить опять. И вот я замечал, что у меня появляются некоторые серые пятна в проекте, то есть те места, в которые как бы я их вижу, но в них не хочется лезть вообще. Ты в них только яишку отправляешь. И вот в этом для меня была некоторая опасность для меня сразу этот сигналил: "Ого, тебе стало лень разбираться с этим?" Ну и как будто бы вот тоже такой вот неприятный эффект испытал. Как только ты какой-то кот был с героной ишкой, это больше не твой код. Ты не хочешь его видеть. Знаешь, чём ещё? Что дальше меня испугало в этой истории? Ты ещё чувствуешь свою беспомощность. То есть ты понимаешь, что ты туда уже не полезешь. Ты даёшь его иишки. И если она входит в цикл того, что у неё не получается его решить, ты прямо такой как бы, как знаешь, вот у тебя машина сломалась, ты не понимаешь, что с этим делать. Ты такой кидаешь опять неправильно, ты кидаешь опять неправильно. Такой думаешь: "Ай, что же мне делать-то теперь?" Ну, конечно, в крайнем случае ты пойдёшь разбираться, но само вот это ощущение, оно меня тоже очень сильно мне не нравится, потому что я понимаю, что как будто мне перестало хватать квалификации на этот кусок кода. Вот я имею в виду похожее вот такое вот ощущение. При том, что я могу разобраться, но ментально уже всё. Я один раз твой подпроект из-за этого бросил просто из-за того, что Юшка в один момент вошла в ступор. И всё, ты не захотел, короче, с ним копаться. При этом она разрабатывал только сервер. То есть у меня там был, ну, я хотел сосредоточиться на фронте, где там были фронтовые проблемы, а нужен был там буквально простой крудик. Я его попросил поднять его на ноде, там сесть к ёлке самому, чтобы она написала. И потом она что-то перестала работать. И мне стало так в лом даже заглядывать, что там на сервере происходит, что я просто ай и пошёл к следующему пэт-проекту. В общем, есть такой вот негативный импакт. Мне кажется, он всё-таки негативный. И для того, чтобы оставаться реально профи, ну, я имею в виду не вот те кейс, которые мы рассказываем, а в целом вот то, что до этого рассказывали, заставлять себя стало ещё сложнее, чтобы продолжать прокачиваться и быть на более высоком уровне. Режим работа полностью в автопилоте, когда ты, э, там, навигатором пользуешься или вообще машина за тебя едет, конечно, практика как будто бы показывает, что это путь в деградацию. Вот такой вот у меня вывод сейчас сложился. Напишите в комментариях, если вы не согласны, или вы наоборот это тоже наблюдайте, особенно те, кто собесит. А интересно ваше мнение на этот счёт, потому что я думаю, мы ещё словим эффекты негативные. Я думаю, никто этот момент не забывает упомянуть, но я тоже не могу его не упомянуть, потому что, как бы, я сижу постоянно в чате, в истречаю одно и то же, как человек в очередной раз задал вопрос иишке про вью и там иишка такое нам выдало. Почему-то дляишек, ну, внутреннее устройство - это абсолютная магия. И каждое своё придумывает, как там это всё происходит. Материалов мало на эту тему, да? Наверное, во-первых, материалов мало, да. Во-вторых, Ишка там что-то пытается сама придумать, как это может работать по каким-то обрывкам информации. И в общем, становится реально грустно в этот момент то, что вроде, ну, как бы Иишка же должна облегчать обучение. Она же как раз вот такой вот учитель, который может тебе ответить на твои вопросы, а потом ты видишь ответы эти на вопросы, становятся грустно. А потом ты вспоминаешь, что люди снимают видео и тоже такую же ахинею порой несут. Истаётся вдвоне грустно, что это всё время оказывается было нами. Просто вот людей мы как-то ещё там могли от них отмахнуться, а яишком почему-то коэффициент доверия выше, чем видео. Да, слушай, ну на самом деле можно поменять взгляд на это. А знаешь, все эти предсказания, что программисты будут не нужны, сейчас всё само будет решаться, мы вообще вот эта сфера умрёт и всё остальное. Не, всё будет хорошо. И чем дальше, тем больше, я уверен, что будет хорошо. Есть вещи, которые, представляете, вот я там разработаю сконимаюсь, я там рассказываю, вот это надо знать, вот это надо учить, и в какой-то момент, ну, проходит там 15 лет, такой то же самое рассказываешь, да, и думаешь: "Ну, как бы куда уж дальше". Нет, ещё больше надо рассказывать, ещё ещё больше всяких таких штук. Поэтому в этом плане всё будет хорошо. Ну что, давай вернёмся снова во фронт. Я думаю, что Ишка тоже будет всплывать. Но у нас действительно есть моменты, которые надо пообсуждать, потому что мы с тобой не говорили про фреймворки, мы поговорили про экосистему, про языки, но вот про фреймворки вообще не поговорили. И, ну, кроме того, что React как бы занимает Number One, React View и там где-то все остальные, при этом концептуально многие ушли сильно вперёд. И, э, сейчас много фреймворков, которые, может быть, они ни во что особо не превратятся, но идейно. Ну, опять же, я на них не писал, но я много слышал от других ребят, там про всякие Solid или как они там называ Ой, Solid. Solid, по-моему, да, есть. Ну, короче, а много разных фреймворков, каждый из которых приносит как какие-то классные концепции. Давай немножко про это поговорим, типа, куда мы все идём, что будет с виртуальным домом, что будет вообще в целом с нашей жизнью в плане фрейворков и подходов. Тут я, наверное, хочу выделить четыре подхода. Первый подход - это подход реакта. Реакто я все называю особенным мальчиком. Я не буду в этот раз говорить там, что у него хорошо, что плохо. Это как-нибудь другой раз где-нибудь прочитаете. Суть в том то, что они всегда движутся по своему пути. Вот им плевать, какие там нововведения в мире джаваскрипта, и им плевать, какие э подходы сейчас популярны. Вот у них есть свой vision, и они его проталкивают. Хорошо или плохо, не столь важно, но вот есть такой подход. Вот наплевать, что происходит вокруг нас. У нас есть свои дела, и мы будем ими заниматься. Ой, прости. Перед тем, как пойдёшь дальше, я прямо вот одну детальку хотел сказать. Они ведь единственные, правильно я понимаю, кто смог настолько GSX внедрить в экосистему, что под это пришлось прогнуться всем. У тебя во всех э там тест-конфиге везде, вездевезде есть GSX. Ну, точно так же, как ТС прогнул экосистему. То есть, ну, буквально сейчас ты пору будешь недобрыми словами вспоминать автора библиотеки, если ты себе узнаешь библиотеку и не обнаружишь там типов. Вот. Точно так же, да. И есть если внезапно ты обнаружишь пропажу JSX, ты тоже в прятать будешь этому рад. Но да, они смогли прогнуть систему по то, что JavaScript, ой, JSX, а, стал индустриальным стандартом отчасти. Почему отчасти? Потому что, ну, всё-таки не 100% решений и особенно даже популярных решений, его используют. Угу. Первый подход. А второй подход - это подход старого агуляра. Старый аангуляр - это примерно вот отрезаем 3-4 года, то есть там до смены основной команды, насколько я помню, в Ангуляре, когда они были таким матёрым энтерпрайз фреймворком, то есть который там не терпел особо изменений, такой вот был стабильный, да, он у него был переход между там первым и вторым, который был очень болезненным, но суть в том то, что это был такой вот крайне серьёзное entнтерпрайзрешение, которое вот там так стабильно шло постепенно вперёд. И у них тоже свой подход был достаточно сильно. То есть, ну, я бы не сказал, что Ангуляр сильно опирался на какие-то другие фреймворки до этого. Третий подход, который я хочу выделить - это подход нового Ангуляра с новой командой, с новой кровью, когда они решили то, что у них каждые полгода будет новый [ __ ] Да, он будет не всегда большим, но вот каждый раз праздник у ангулярщиков, то, что вышла новая версия. А компании плачут то, что им каждые полгода нужно закладывать бюджет под мм миграцию, маркетинг. Ну, тут отдельная тема каждый как они это делают. Некоторые накапливают изменения и идут, некоторые реально каждые полгода обновляются. А, но изменения сейчас происходят больше и чаще говорят. То есть ангуляр прямо попёр как локомотив вперёд. Я очень сильно радуюсь за него в какой-то мере. Но с другой стороны вот я вот слышу как раз-таки о тех, кто был покойниками старого Ангуляра, что они не очень удовлетворены тем, что вот их там старый вот такой вот entтерпрайз такой каменелый фреймворк начал бурно меняться. Каждые полгода надо что-то новое учить. А сейчас буквально каждые полгода там новый подход и так далее. Особенно там сигналы, они всё ещё не на 100% развиты. Там будут ещё 100-500 изменений, связанным с ними. Ну, соответственно, вот такой подход. Третий подход хочу, который я хочу выделить - это подход View. В чем он заключается? На последнем Holly JS, у HL JS есть такая неофициальная часть на автопате называет открытый микрофон. Это можно выйти и выступить с небольшим докладом. Я как раз там вот выступал с небольшим докладом жулик, не воруй. К чему я это? А к тому, что в по сути - это синергия своих идей и просто понатаскаванного всего из всего вокруг. То есть вю буквально берёт всё, что, как ему кажется, хорошо лежит. Там увидел у реакт хуки хорошо, он их себе затянул, изменил под свой подход и использовал. У Свелта там хайпанул Свелт и Солт, у которого нету Virtual до Dom. Тадам. Мы вот сейчас на грани того, что у Вюйдет Vaper viw, который там обогнал и Свелта Solid и тоже не использует вертолго дом. Итак, про кучу вещей. На самом деле не только Ангуляр и React. Нокаут они себе имплементировали. Single Fed Components взят тоже не из ниоткуда. А, ну, в общем, это первый фрмворк, который написал Рич Харрис, создатель Свелта. То есть Свел - это не первый фувор. У него до этого ещё был. Вот. Из него вся концепция SLE Fed Components и так далее. Там вот, ээ, свёт хайпанул с тем, что у них вот там скрипт, в котором всё можно написать и всё такое умное. У Вью появился там опять же там сетап. Ну, в общем, идея понятна, просто максимальная абсорбация всего, чтоказалось хорошо. И как будто бы это даже интересно, то, что у нас есть одновременно живущие разные подходы. Да, есть как бы ещё и Солты Свел, Квик, и они тоже движутся в своём темпе, но вот у нас есть разные подходы, и мне кажется, поэтому мы всё ещё будем иметь разные фреймворки. Я не думаю, что какой-то фреймворк окончательно всё победит. Там есть некоторые идеи, что Ряк всё победил, потому что ишки его рекомендуют. Мм, я думаю, тут как раз-таки интересную роль сыграет переполненность рынка. В чём суть? Когда рынок переполнен, он особенно сильно переполнен в точках, которые наиболее популярны. То есть, условно говоря, там на из-за того, что Реactт популярен, у него там на одну вакансию приходят там 2.000 откликов. Когда мы переходим к ав, он менее популярный, у него меньше вакансий, но там тебе надо уже бороться не с 2.000, а с 500, грубо говоря, откликами. Чем менее популярное решение, тем ещё меньше откликов там. И, соответственно, иногда даже вот у меня были менти, я им говорю: "А возьми-като менее популярное решение, тем более, что тебе хочется вот его выучить. Вот выучи его и попробуй найти с ним работу". И ведь находили и даже быстрее, чем на том фреймворке, на котором они всё это время учились. Вот как раз-таки из-за того, что эта концепция работает. И именно эта концепция будет позволять жить нескольким фреймворкам сразу, я считаю, то, что будет спрос на самом деле на все их, потому что, ну, вот есть некоторая такая самобалансировка у рынка тоже. Ну, новая всегда придумывается. Есть застарелость, есть готовность технологий, как мы знаем, да? То есть отказаться от виртуального дома, это же не просто такие болебные ребята пришли, у тебя должны были созреть определённые вещи, они созрели, и вот появилась такая возможность. То есть реакт на тот момент, когда он создавался, он придумал, наверное, лучшее решение, какое только можно было сделать, э, за адекват, как бы, что адекватное, рабочее. И в этом смысле всё будет хорошо. Это правда. Но я скорее, знаешь, вот с точки зрения того, что реакция совершила революцию, давай так. Угу. И это прямо реально был тотальный сдвиг, который позволил действительно сказать: "Фух, ну вот теперь мы пишем легче". Сейчас я не то чтобы пишу кроме Реакта на чём-то, но нету ощущения, что что-то даёт прямо сдвиг, что ты сказал бы: "Фух, ну вот Реакт- это был, конечно, капец". А вот с этой штукой я 10x программист. Согласись, скорее всего, сейчас такого нет. У тебя есть удобство тут, удобство там ещё какие-то нишлячки, может быть, но они все локальные довольно. В дет многие из них вообще под капотом, ты даже этого не видишь. Это просто проявляется даже только на определённых приложениях, да, и так далее. Вот. И в этом смысле многие, конечно, вот как вью себе втягивают, но если мы вообще дошли до пика, что ли, получается, ну, как, например, бэкэндовые фреймворки, они же все одинаковые. Они вот как придумались когда-то там с рельсы со времён, они вот никуда с тех порто не уехали особо. Мы дошли до какого-то пика на фронтде или будут вот типа придумали сигналы, они сейчас нам весь мир изменят там, не знаю. Всё-таки сигналы, я считаю, что это сдвиг относительно реак парадигмы, потому что это другая концепция, совершенно другая концепция мышления и так далее. То есть я считаю, что это, ну, зачт такой весомый скачок был. А с точки зрения отказа от вертолго дома, я не считаю, что это скачок. Ну что, это ускорилось у тебя приложение, стало полегче, возможно, но с точки зрения дкса ты ничего не получил. Ну, то есть действительно это это чисто внутренняя штука, да? Да, это внутренняя штука. Там у реак компаilлер вот вышел, они там чуть-чуть потянули те циферки, и им тоже нормально. То есть вот если вот прямо говорить: "Ну, Реакт немедленный, Реакт покрывает основную часть задач, да, он медленнее, чем все остальные решения, существующие. Сейчас он уже стал медленнее анкуляры, но он всё ещё достаточно быстро, чтобы решать большинство задач. Ну вот с точки зрения вот именно качественного сдвига парадигмы, я не думаю, что он будет вот напрямую. То есть на фронте, да, я считаю, что мы достигли некоторого пика. Далее это нужно, ну, вообще другая концепция, возможно, как разтаки там AI based, там, гда ты просто описываешь котелки и прикладываешь фигма макет, и оно у тебя преобразуется в сайт. Как это будет работать и так далее. Хочу обсуждать. Ну вот я, да, не хочу это обсуждать, потому что это там отдельные дебри, там кучу споров можно провести, но суть в том то, что это будет качественный сдвиг. То, что сейчас у нас есть, оно уже своего рода достигло некоторого пика. Ну да. То есть получается, как вот не выбирал фреймворки. Вот если ребята, кто задумывается и засматривается, это скорее больше рыночный вопрос. То есть сказать, что если кто-то выбрал React и поэтому он там типа у него будет всё медленно, ему надо в 100 раз больше программистов, они будут делать стрёмные приложения, это вообще не так. А всё там будет нормально, всё будет достаточно адекватно, быстро. И самое главное, это не будет какой-то мамонтовый устарелый технологии, когда ты пишешь такой: "Фу, какую трэш я пишу". Как бывает с некоторыми старыми, скажем так, решениями. Если бы человек писал на бэкбоне, допустим, да? Вот там бы было ох жёстко при росте приложения или там JQUY, скажем. Вот поэтому получается как будто бы сдвиг внутренний сдвиг по стйт-менеджерам, да, 100% есть вот те вещи, которые Ситник рассказывал, могут тоже менять. Вот, кстати, там движки синхронизации, да, для определённых. Это не просто фронт, это уже буквально связь фронт с бэкэндом и так далее. Тут там это вообще отдельная тема. Это син джины, это аэ изоморфные приложения, это там как раз-таки острова. Я не считаю это чисто фронтдом, да, но врядли только мы пишем фронтendнд, но вот это уже как бы это уже больше, чем просто фронтенд. Это уже такая меза область, да. Но вот про про острова всё-таки мы с тобой заранее об этом говорили. Вот я сейчас как раз хочу к этому прийти. То есть как будто бы про фреймворка по фреймворкам получается всё довольно так простенько в этом смысле, да? Типа, берите любой, не ошибётесь. А вот попробуйте все. Я скажу так, а если там вы ищете на рынок, особенно если у вас есть время, попробуйте все фреймворки. У меня буквально были случаи, когда люди там, изучащие просто Реакт находили на работу на View, приходили на Сабест, они говорили: "Ну, ребят, я сейчас знаю только React". Говорили: "Ну, тогда мы тебе собес по реакту проведём и вручишь вю и будешь у нас работать". И да, их опрашивали как реакторов, и они находили работу на вWда. Я, кстати, про это говорю. Меня, например, никогда это не волновало. Какая разница? Ты всё равно, если ты классно пишешь на этом, те же яйца только сбоку. Будьте разработчиками, да, а не просто, да. И вот всё-таки одна вещь, которая, а, например, меня волнует, я думаю, что она многих волнует. Значит, расскажу историю. Вот у нас, например, на Хехтате до сих пор серверная шаблонизация классическая, когда у тебя HTML генерится. Самое смешное, что для многих людей серверная шаблонизация типа шаг вперёд. Для людей, привыкших к классическому веб, это всю жизнь так было. Да, у тебя шаблон герится на сервере и отправляется, значит, на фронтенд. А, и у нас скорее м фронт всегда был в виде виджетов. То есть мы, короче, опередили время. Микрофронтенды у нас были до появления понятия микрофронтенды. То есть у нас просто встраивались, тут у нас редактор встраивается, тут нотификации просто в нужные места. Но понятно, что у тебя бывают ситуации, когда нужно взаимодействие кросс плюс, ну, интерактива всё-таки много. Нужно много удобных фичек всяких там, знаешь, типа в маркдауне у тебя там код, там кнопочка скопировать и так далее. Всё-таки это дают современные фронтендовые штуки. Это не просто htmмlлька в беке. И в этом плане мы всё равно делаем это движение, мы переходим. Я столкнулся с тем, что когда я начал уже не виджетами, а полная приложение переводить, у меня Core Whits, кто не знает, это вот понятие в очень важное в Гугле, когда он отслеживает, насколько быстро у тебя сайт открывается для пользователя. Это отрисовка первого контента, ещё разные элементы, связанные с тем, что когда вот он начинает что-то делать, вот, и они резко все просели, потому что у тебя, даже несмотря на то, что есть SSR с Реактом, у тебя же на фронтENд всё равно грузится всё. Какие бы ты там оптимизационные техники не применял, в конечном итоге гидрация и приплыли, у тебя всё равно всё так или иначе отработало, даже при том, что есть серверная, ну, сервер пришёл HTML. Угу. И поскольку я раньше такими оптимизациями не занимался, я начал копать, да. Вот у тебя острова, все дела, вот эти концепции, которые используются в Nextсте, React Server Components, ещё в других фреймворках, они, да, в каком-то виде существуют, когда у тебя только точечное изменения. И я понял, что под реакты-то ничего такого не существует. Есть какие-то устаревшие плагины, какие-то попытки, но решения нет. И вот насколько ты это понимаешь, насколько это решаемая проблема, потому что вот с точки зрения реально важности, вот когда я вот смотрю на реакты, смотрю на все эти фреймворки, я такой: "О, для меня, как для человека, который такой между бизнесом и разработкой", вот это, наверное, один из самых важных следующих шагов. То есть для меня производительность не настолько важна, чем вот вообще не отрабатывай, пожалуйста, там, где просто и грузи вот только там, где есть интерактивные части. Тут как раз-таки, да, концепция островов, если кто не знаком с концепцией островов, это то, что мы можем поделить наш сайт на определённые части. Это статические части и динамические части. Вот. То есть статические части, там тебе JavaScript не нужен, там просто HTML она. Вот вставь её как есть и забудь. А динамические части там уже, да, JavaScript какой-то может быть, они могут меняться, поэтому там побольше информации можно загрузить. И фреймворки пытаются по-разному решать вот как раз-таки проблему разделения на статическое и динамическое. У нас есть вот как разтаки у Реакта серверные компоненты. На самом деле там они Денраболов сейчас опять как там как печатную машинку превратился и там каждую неделю по гигантской статье выйдет у него в статья ты ещё неделю потом статью разбираешь и обдумываешь ага ну расскажем поэтому да если вы не знакомы с богом даннорамом я всё-таки советую ознакомиться там действительно вы можете быть с ним не согласны в многих местах но пищу для размышения он точно даёт а вот я единственно знаешь вот ты просто сказал про острова я ещё добавлю там же фишка в чём у тебя просто сейчас по сути Неважно, насколько статическая, нестатическая, тебе просто вот всё, что у тебя там в этом энтрипоинте есть, вот всё это подгрузится, всё это отработает. А эта штука позволяет, по сути, а, грузить только те элементы, которые нужны только для динамической части. Это может быть, ну, и скорость как бы парсинга, и скорость загрузки, и вообще старта работы, она кардинально увеличивается. То есть прямо не в смысле чуть-чуть, а прямо очень сильно. Потому что, как правило, на сайтах, особенно по крайне мере то, что я делаю, там есть место типа редактор, там вообще только динамика, но это специфическое место, где человек и так ждёт загрузки, да, а есть вот просто странички, и там почти везде, ну, статика, там CSS скорее даже анимации больше, чем реак какой-то. И, конечно, хотелось бы, чтобы просто вообще ничего не отрабатывало. И тогда Google будет счастлив и будет говорить, что вы просто для людей сделали сайт. И вот, к сожалению, сейчас это не так. То есть это даже важнее, чем просто скорость с точки зрения разработчика. Угу. Острова вроде как типа самое основное решение, правильно я понимаю? Конце, да, есть альтернативный подход, это resume ability, который предложил. В чём его суть? В его суть, а, а что, если мы вообще не будем грузить никакой JavaScript, кроме тот, ну, там, минимальный какой-то, необходимый для запуска и тот, который будет подгружаться, когда ты будешь нажимать на кнопку. Обработчик кнопки, допустим, есть, ты нажимаешь на кнопку, только в этот момент подгружается чанк, в котором написано ойр, какая будет исполняться при нажатии на эту кнопку. И после этого она исполняется. Ну, это там такие вот цепочки из этих чанков происходят. Однако это тоже решение. Ну и на Ховер там это всё отдельно по по настройкам, когда что подгружать. Но суть в том то, что это имеет свои минусы. А, во-первых, где это тебе важно? На компьютере бог с ним там лишний мегабайт загрузился. Пользотель вряд ли даже заметит, если он, ну, находится в городе условно, где нормальный стабильный интернет. Если мы говорим о телефоны, то телефоном критично становится стабильно сидения, потому что там, условно, зашёл в метро, у тебя на секунду пропал трене нажал на кнопку купить, а у тебя кнопка купить сломалась из-за этого, потому что у тебя не подгрузился этот чанк в этот момент времени. Ну всё, тебе нужно перезагружать страничку. Покупка не совершена, конвертия это подупало. Угу. И этот подход тоже имеет свои минусы. Соответственно, когда ты пытаешься всё вот погружать чанками, чанками, чанками только вот в самый-самый последний момент, когда это пригодится, и оно создаёт тоже свою задержку. Я знаю людей, которые даже серьёзно Угу. Очень серьёзную задержку, да, местами. Я знаю людей, которые вот как раз-таки предполагают, а что если вообще избавиться от концепту чанков и обратно всё слепить в одну кучу? Потому что мы уберём этим издержки на сети, потом один раз загрузится, пользователь, да, может быть, там лишнюю секунду подождёт, зато потом он будет счастлив. Но тут, конечно, да, появляются вопросы с webлs, потому что у тебя там долго отработал и так далее, но пользователь-то будет более счастлив, потому что там подождал лишнюю секунду и потом больше он вообще не ждёт. И вот тут как раз-таки такие вот начинаются вот эти вот игры. А как всё-таки правильно подстроиться под метрики или там один раз дать возможность подождать пользователю и пускай он дальше наслаждается? Ну, метрики важно, как ни крути, потому что они влияют очень сильно на выдачу. И опять же это ключевое значение имеет, потому что в целом мы же как раз и говорим, что метрики упали именно из-за того, что грузится всё вместе, да, соответственно. А, о'кей. А острова у нас грузятся, но просто грузится только та часть, которая меняется. То есть тебе не надо всё прорабатывать. Ну, блин, всё равно даже при этом раскладе у тебя, если то у тебя вот этот дом, который весит довольно много, всё равно весь надо грузить сразу, как ни крути. Ну да. Либо ты можешь взять Astra. Asra, например, может вообще не сгрузить никакой JavaScript код, если ты ему не пометишь это. Ну, Астро уже в этом смысле можно работать. То есть, если у тебя есть эээнд, Astra тут же не поможет. Аro - это всё-таки, когда вот прямо у тебя БК на Asra. Нене, БК у тебя может быть на чём угодно. Астро - это просто вот как раз-таки там метафреймворк, который позволяет тебе встраивать э динамические части в статическое окружение. А я пробовал на нём какой-то микроскопче. То есть как раз-таки вот там вот как раз-таки концепция островов полностью работает. То есть у тебя есть статическое окружение и ты в нём выделяешь только помечаешь, куда подгружать JavaScript. Вот на какие моменты ручками, да? Ну там это миниатюрненько достаточно делается. То есть не сказать, что ты прямо сидишь и это мучаешься. Нет, там буквально небольшая пометочка ставится, что вот эта вот часть там подгрузи мне для неё JavaScript и для неё подгрузится. Не пометил его, не подгрузится ничего. То есть ты можешь на ангуляре написать приложение, и тебе всё равно не не строчки джавокрипта с приложениям упадёт, а просто голова HTML сгенерируется. Подожди, то есть Астро именно может работать, в смысле управлять именно твоим другим фреймворком, грубо говоря. Да, да, это его снайпер Астра можешь м за это любили и через Астра. А тебе не кажется, что это просто, ну, типа это сейчас такое решение существует просто потому, что это не реализовали во фреймворках, но на самом деле Астра перестанет быть нужен, как только до доделают это внутри фреймворков. Отчасти это возможно, но Астр пытается быть там супер простым ещё при этом. То есть это очередной метафреймворк со своими особенностями, и он пытается быть при этом ещё простым. Угу. То есть, если бы мне вот прямо сейчас нужны были острова, то единственный нормальный способ - это взять Астро и встроить его между как бы приложением и реактом. Так что ли получается бэкэндовым? Ну получается так, да. Ну либо вот веселиться с Реактом и учиться там на нексте вот эти вот там хитросплетения серверных компонентов, сервер экшенов и так далее вытанцовывать. Блин, ой, мне это смешно было. Я, короче, попробовал когда не для код бесикса у нас использовать. Выяснилось, что у нас там Монако есть, а Монако вообще так не работает. И мне пришлось тупо везде убрать эти северные компоненты. Я думаю, нахер мне всё это надо, если у меня всё равно, э, грузится вся вся эта фигня. Напишите, пожалуйста, в комментах, да, как все не правы, что северный компонент на самом деле решает все проблемы. И просто мы не разобрались. Слушай, а Астр ты бы стал использовать? То есть, потому что я всегда, знаешь, почему-то я воспринимал, я читал, что эти острова используют, и это типа круто, но почему-то у меня в голове всегда возникало ощущение, что он больше такой, если ты хочешь вот прямо на нём без всякого БКА там статичку какую-то запилить или интернет-магазин, такой генератор сайтов, грубо говоря. Нет, ну его можно использовать и в таком ключе. Ну, знаешь, так можно сказать, что и next без бэкэнта надо использовать, и что ты бкэнд пишешь на нектисе. Ну, это же не совсем правда. Ну, вообще-то многие так и пишут. Там можно фигарить, я тебе скажу так. Ко мне на собеседование приходят чуваки. Ко мне приходят чуваки вот, которые, а, потому что мы говорим фстк, они такие у меня фк. И пишут next JS. Как бы я думаю, те, кто поработал на бэкэнде, вот, особенно на бэкэнде какой-нибудь там, где паттерны активно юзаются, а потом увидели, как БКТ пишет на нексте, какие же печки, либо вот честно, для чего я считаю, что вот нужны вот эти вот серверные возможности у метафреймворков, это для того, чтобы делать БФ. То есть сделать просто такую вот бэкэндовую просвоечку между настоящим бэкэндом и метафреймворком. Угу. Ну, это есть тебе надо. Я видишь, вот фанат, ну, как фанат. Мне инерция нравится. У меня прямо вся с ней любовь случилась. Очень классно в этом плане работает. А инерт - это обратный подход, когда ты фронтенд пытаешься встроить в бэкэнд. И, кстати, работает прекрасно. Я единственное только вот не знаю, как сработает действительно с островами. То есть вот это пока для меня загадка. Ну, реак что-нибудь с этим делать будет. Вот эти реакт серверные компоненты или что? Потому что я, может быть, до конца не понимаю, как они работают на самом деле. Ну, только реактированные компоненты по сути Реакт предлагает сейчас. Ну, там ещё есть, это отдельная тема с инкриментальным рендерингом, но Угу. Это уже не другая концепция, как момента рендеринга чанка. На нас я вот почему я столкнулся с этой проблемой уре, то есть это не история про частичное применение в нужных местах. У тебя там просто так устроено. Вот, например, банально я разберю страничку, на ней есть хоть один элемент, который только на клиенте. у тебя всё сразу становится на клиенте. То есть он работает только тогда, когда у тебя есть какая-то штука, которая полностью может сгенерить, ну, фактически статически HTML. Ну, там иногда можно нет, там можно сделать некоторую матрёшку, и как раз-таки это и создаёт определённые сложности. Допустим, тот же AON Viw, который автор View, он, например, сразу категорически сказал, что, ну, у нас никаких серверных компонентов в AVW точно мы не планируем добавлять. [ __ ] короче, такая идея. Да. Да. Нам, мне это совершенно не нравится. Я поклонник там подхода как раз-таки островов из Астра. Вот мне типа нравится, как сделал это Астра. Скорее всего, мы возьмём это решение. Менее ли оно гибкое, чем северный компонент? Да, оно менее гибкое. То есть оно такое более топорное, ты помечаешь просто и всё части. Но с другой стороны, вот он говорит то, что это настолько сильно снижает ментальный оверхд, что я бы хотел видеть именно его, а не серверные компоненты. Ну, смотри, серверные компоненты - это next JS, а сама команда реакции что говорит, всё равно двигается в эту сторону. Ну, на самом деле, сообщество двигается в эту сторону. То есть Ремикс пытается добавить себе поддержку. Там, допустим, сейчас у Вита идёт бурное обсуждение насчёт поддержки серверных компонентов. Бан себе пытается там подобие серверных компонентов тоже добавить. А бан всё пытается себе добавить. Всё, всё, что лежит, бан себе пытается сунуть в сам бан. Пар себе официально уже добавил поддержку тоже северных компонентов. Ну, то есть сообщество пытается себе внедрить эту фичу везде. Ну, на реакте. Слушай, а у Свел-то нету. Он же весь такой говорил: "Мы такие, у нас маленькие рантай, мы такие все компактные, компилируемся". У них насколько проблем вообще? Свелт чуть умнее в этом плане, то есть там без никаких северных компонентов и так далее. Если он видит, что компонент статический, не меняется, то он JavaScript не будет ли он генерировать. А насколько он вообще как концепция состоялся? Потому что он же сначала тоже вроде такой типа чуть ли не революция. Ну не в плане экспириенса девелоперского, в плане внутренностей. Он сейчас как-то вот подуспокоилсь, занял какую-то нишу или что вообще с ним происходит? Со свётом всё сложно. Сложно. Почему его концепция уникальной реактивности, основана на компилируемой реактивности провалилась, провалилась полностью. Они от неё, ну, её полностью выпилили, они от неё отказались. Ну, для тех, кто не понял, что это значит, значит то, что у нас не сигналы, не редьюсеры, которые пытаются в рантайме понять, в какой момент нам нужно облять приложение, а он читает, соответственно, код файла и пытается на основе операций, которые были совершены, расставить места, где нужно сделать обновление. Ну, на основе как раз-таки compile тайма. И вот эта концепция провалилась, потому что она имела большое количество ограничений, она была совершенно нерасширяема, но она была очень простой. Ну, он там реально очень простой, как 2 копейки было. А сейчас они сделали свои надсигнальные сущности. Почему я говорю, что надсигнальный? Потому что сам Рич Хари сказал, что я не хочу застреть внимание о том, что это сигнал. Там пока сейчас сигнал, потом что-нибуд другое появится. Возможно, я захочу на этом мигрировать. Как фреймворк он нашёл своё место, я считаю, постепенно находит всё больше места. С чем это связано? Во многом это связано с тем, что у VIW был болезненное. То есть, во-первых, да, какое место вообще нашёл-то Свелт. Свелт занял нишу не реакта. Ну, то есть вот мне не нравится реакт, меня тошнит от JSX и мне больно на него смотреть. А редьюсеры ох совсем у меня болит голова. Авалика-ка ты, короче, в общем, на свел. То есть вот такая альтернатива. Отрицатели, короче. Ну не отрицательны мейнстрима, ну просто, ну вот не раду человеку, он хочет что-то другое. И вот как раз-таки что-то другое тут, знаешь, так там из-за угла, парень, не реакты не хочешь? Я тебя понял. Да, хорошо. Вот в этой нише ещё живёт Вью. И вот как раз-таки тут у них происходит самая потная тёрочка. То есть и тот живёт в мире не реакт, и этот живёт как раз-таки в нише не реакт. Вот я считаю, что это будет самое большое противостояние. На стороне Свёлта больший хайп. То есть он сейчас как раз-таки собрал, а за счёт там производительности, простоты. А в Европе иногда я слышу такое, то что его берут вместо Vю, потому что Vю - это китайская разработка. Серьёзно, некоторые сложная штука, да, что у них нет. Ну а что это, кстати, меня это вообще не удивляет, тебе честно скажу. Вообще не удивляет. Ну вот люди же ещё просто не понимают, кто там что за этим стоит, не бросят ли они это завтра, у кого-то страхи есть, да, там всё что угодно может быть. Вот. Ну то есть вот у Свёлты такая ниша. Считаю ли, что он пропадёт? Нет, он не пропадёт. Я считаю, что процент его вырастет. Он вряд ли обгонит вю кардинально, но они будут бороться в одной плоскости. То есть вю чуть выше, но вот они, скажем так, будут там 60 на40 примерно, я считаються чуть в ближайшем будущем. То есть получается, что те изменения, которые они сделали, фактически взяв вот эту сигнальную систему, они при этом остались востребованы за счёт чего? Вот каких-то фикни стали более гибкими, наконец-то. Ну да, но при этом у тебя как бы есть вью и мне не совсем понятно, типа зачем. То есть что ещё такого там есть, чтобы сказать: "Блин, ну всё-таки у них вот это сильно по-другому сделано". Иначе они сахара больше навалили. Засахарили они очень сильно свой фреймворк. Ага. Кому-то это нравится, кому-то не нравится. Кому не нравится, может опять прийти на вью. Кому это нравится, идёт берёт свет. Понятно. Ну я сейчас вот так вот нейтральными фразами отвечаю, потому что иначе мы можем скатиться по холивара, либо в комментах придут со мной холиварить. Да, да, ну холивар у тебя не со мной будет. у тебя будет, да, с теми, кто придёт. А вот Хорошо, наверное, последняя штука, которую я хотел тебя тут спросить - это про, а, слоты. Вот мне всегда было интересно, концепция слотов - это то, чего не хватало всегда в реакции лично мне, например. Угу. Она она никогда никто там не планирует ничего такого в реакте только. Да, в реакции точно нет. Даже можно надеять. Ну ладно, хотя бы поговорили об этом. Во всех остальных проворках и в веб-стандартах, если что, это как бы есть. У Свелта отказались от слотов в пользу там снипетов, но это отдельная тема. Снипеты могут достаточно похоже работать на сваты, но они решают другую проблему, то, что у Свиота нет джесxса. А это реально проблема? А это проблема, что шаблоны в чём плюс шаблонов? Они более строгие, чем JSX. В чём минус шабонов? Они более строгие, чем JSX. Ну это и да. Угу. Угу. То есть у них чуть меньше возможностей, там некоторые вещи чуть сложнее выразить. Вот. И как разтаки снипеты покрывали эту проблему, чтобы выразить достаточно сложные концепции, которые без них не выражались на шаблонах. Ну, это классическая классическая история, да. Тюринг полный язык versус дслька какая-то. Тут нету идеального решения, но в одних ситуациях одно работает, других другое. А, кстати, заметь, тоже мы можем с тобой то же самое сказать про Jсоon. JS. У тебя вся конфигурация экосистемы джаваскрипта в конце концов ушла на JS при всей красоте того, что вот кроме Пеке Джейсона. Ну здесь, наверное, и хорошо, да, здесь точно не надо было чудить. Более того, он должен читаться программу. То есть это довольно важно вот именно ПК Джейсон, потому что многие кем используется, он должен читаться. А вот э конфиги, конечно, вот эти, они, да, они все в JS ушли. И здесь, кстати, то же самое. Мне очень грустно, что Pack Джейсо не спрятан в словно Modдус. Ну, условный. Почему условный? Потому что он понятно, что он появляется только после установки и так далее. О чём я? Как же неудобно работать с Пеки Джейсоном. Ну, серьёзно, насколько же он плох. Ну, ты имеешь в виду, что тебя сам Джейсон напрягает тем, что у тебя слишком много синтаксиса. Ты не можешь комментарий банально поставить. Ну, это Джейсон. У него синтаксисом, да, в этом плане всегда беда, что тут говорить. Но опять же, когда ты работаешь и с другими системами, я тебе так скажу, да, это мог быть не Jйсон, но я за то, что такие вещи, которые кросс языковые, то есть package Jйon, читается очень много инструментарием и не обязательно на джавокрипте, поэтому он супер важно, чтобы был всё-таки в общем каком-то формате, потому что возьми тот же самый, опять же, вот если Ruby брать, например, у тебя там описание это идёт в виде вообще кода, ты прямо там гем, все дела. Ну, блин, это ограничений много даёт. А в большинстве случаев прокатывает, но всё-таки если у тебя никто кроме Рубитого читать нормально не может, ну, у тебя там и автоматизации меньше и всякого разного за счёт того, что это полноценный ко вспоминается ГДЛ с котлин скриптом. Ну он, кстати, редко кем-то другим читается и там действительно люди прямо программируют. Ну, кстати, это не исчезло вот это вот противостояние людей, которые замавин и который заградовал. Кстати, мы даже это обсуждали вот по Джаве эту историю, типа в каком случае одно, в каком случае другое, потому что всё равно однозначного ответа нет. Ты потом просто с вот у тебя как бы с опытом приходит понимание, а всё-таки вот эту штуку было лучше так, а вот эту штуку было лучше так. И ты видишь, нет никакого простого решение. То есть целые экосистемы двигаются от одного к другому там за десятилетия, да. Вот. Но тут к какой концепции можно было прийти? А можно было прийти концепции схожей с локфайлами. То есть у нас же каждый PNP, ну, в смысле, каждый этот пакетный менеджер свой кфайлгерит, но это чуть-чуть к другой концепции, то, что я считаю, что мы должны были экстмачить, что packet Jason не для ручной модификации. То есть у нас должен быть там, условно ты используешь PNPM, ты в PNPме условно там вот ты на Ямле описал на его продвинутом синтаксе и вот он собрался Jonфайл. Это Jon Jon file уже работает. Это бы такое количество проблем решило, на самом деле, если бы вот packageж Jon таким же неприкасаемым, как локфайлы. То есть, да, концепция локфайлов я приплёл к тому, что мы не трогаем локфайл ручками, но также вот я считаю, что пакет Jжесо мы тоже не должны были трогать ручками. Мне лично Ямал нравится, но я могу тебе назвать немало людей, которые его ненавидят всеми фибрами своей души за счёт того, что если всё-таки там начинает какие-то нестандартные штуки делать или у тебя появляются разные типы данных, а не только строчки, там начинаются весёлые эффекты. Но, честно признаться, я с этим редко на практике сталкиваюсь, но вот кто-то раз столкнувшись, их это очень сильно волнует. Ну, тут я считаю ради возьмите другой генератор пакет Джейсона. Ага. Ну то есть, ну не нравится тебе Яму, там возьми какую-то другую просвойку, которая там на Томле опишет тебе это или на Инифайле, если тебе он нравится. Ну имеется в виду суть-то, моя идея была в том, что пиши на чём угодно, только вот не на этом точка Джейсоне, который очень неудобно редактировать, очень сложно информацию какую-то туту добавлять. Многие сейчас скажут то, что это настолько, ну, как бы мелочь и так далее, а на самом деле мы такое количество большой большое количество фич теряем из-за такого ограничения, что просто жаль. Это правда. А ты знаешь Jon 5 формат? Да, Jon как раз-таки пять позволяет тебе и комментарии добавлять, и там чуть-чуть, по-моему, типа данных добавляет. Для меня самое главное запятую в конце позволяет. Ох, такое у нас есть как как минимум у нас есть typeскрипт. ТС конфиг его поддерживает, например. Да, да, это ты не поверишь. Для меня чуть ли не единственная причина, которая, знаешь, какой самая главная причина. Вот для меня самая главная причина - это невозможность динамического там чего-нибудь, потому что я редко такие вещи сам пишу. А для меня это то, что я, блин, тампчо бере нормальный JS, в котором у тебя запятые автоформатирования, вот эти вот вещи, которые в Джейсоне. Если что-то скопировал, хрен он встанет нормально. Там ещё ручками надо править будет. Вот я уж не говорю про добавил, убавил, да, с этой с запятыми в конце. Я терпеть эту проблему не могу. Да. Вот так, кстати, мы забавно с тобой это скатились в обсуждении форматов. А зна, у нас был такой момент, когда мы уже почти зашли в эту тему, мы с неё вырулили. Ну давай в неё всё-таки зайдём. Ты вначале обозначил, она такая интересная, что вообще происходит с экосистемой с точки зрения мм ключевых фреймворков компаний и так далее. Есть компания Versel известная, которая с точки зрения того, как ребята делают бизнес, я не смотрел их отчёты, но по крайней мере то, что они творят, выглядит так, что они, конечно, научились взламывать систему. Не просто типа вот мы сделали САС и рекламируем, да, они через open source, через влияние на это всё, через это, ну, в общем, короче, они стали использовать техники, которые в таком масштабе, как будто бы, ну, только Google, Microsoft, то есть это самые крупные большие компании делают, да, экосистемы целые создают. Вот они пошли в эту сторону. Я не знаю, насколько они большие. И я постоянно слышу от тебя тоже слышу вот эту историю, что они этих купили, этих купили, тех купили, все под них делают, вообще весь мир под них. И нам всем крышка из-за этого. Не, ну по сути так и есть. Ну давайте, да, немножечко обозначим, в чём суть Верцеля. То есть Верцеель - это там обычный хостинг. Нажал кнопку, у тебя задеплоилось приложение. Вот так вот обозначим его роль. Ну это пас, по большому счёту, да. Ну то есть, да. Вот. Но в чём суть? Они, во-первых, имеют собственный отдел разработки просто гигантский, мне кажется, уже. То есть там и Next разрабатывается, и AI отдел у них есть. То есть там Visero, допустим, и в целом там множество ещё отдельных моментов. И вот сейчас они пришли концепты того, что они поддерживают open source. В чём заключается суть? То, что иногда, да, они буквально скупают, иногда они приглашают к себе работать. То есть вот, допустим, SЛ тоже находится под попечением Версели. То есть, если даже зайти на сайт Свелта, просклиройте вниз, там будет написано baked by, то есть, ну, там построен, сделан на деньги версели, если читать иначе. Вот буквально новость этой недели, которая там, знаешь, радость со слетами на глазах, что кормтейнеров Накста на зарплату Версели посадили. Что произошло при этом? Все платные фичи, которые были у Накста, а Нак - это, если что, там Naxlab называется у них вот эта вот компания, она занималась не только разработкой Накста, она занималась разработкой Next UI, то есть UI либы официальной Next Hub, который позволял деплоить приложение в Cloud Fare, там, ну, пары нажатий. Это ещё нак, господи, как его? Next LAAB, который был ЦМСкой, грубо говоря, стати, ну, там для создания сайтов с контентом, и они имели платные части. И вот теперь там пришёл версия, и всё это стало бесплатно, знаешь, толпа ликует, всё бесплатно. А вот я думаю, а вот если бы всё это время оно было, ну, как бы вот они там были на проспечении и бесплатно, а появились ли бы они вообще, вот эти вот инструменты, которым сейчас так радуются, они появились для того, для того чтобы, ну, покрывать какие-то нужды? наст команды, потому что нужно было как-то зарабатывать, а вот сейчас у них отняли необходимость зарабатывать, да, они смогут сосредоточиться больше на определённых фичах, но с другой стороны, мы вот потеряли возможность развития вот инструментов такого рода. Хорошо это или плохо? Ну, я подозреваю, что вопрос риторический, но у меня есть на неё всё равно ответ. Это на самом деле естественный процесс. И у тебя любая штука, которая заходит в режим поглощения корпораций, у тебя всегда потом в конце концов выходят новые ребята и с новым, так сказать, флагом идут. Но в целом это life cycle, то есть оно никогда так не заканчивается. У тебя всегда есть поглощение, у тебя всегда есть перемещение и так далее. Кстати, так интересно вот этот Next, он не меня всегда проходил. То есть это же типа, но только с вьюшкой, да, ведь? А, да, в целом. Ну, грубо говоря, да. А насколько? Почему грубо? Потому что у ребят тоже свой вин есть, и они не занимаются далеко не только накстом. Вот мне знаешь что? Просто ещё интересно. Я вообще все эти штуки не очень, ну, как бы нет в моей в моей жизни экосистема слишком большая, она слишком разнообразная, да, и ск мы там Астро, у нас там ремикс, у нас там ещё что-нибуд, ещё что-нибуд такой смотришь на всё и думаешь: "Боже мой, может я что-то упускаю, может как-то по-другому надо". Типа кто такие чуваки, которые наксте пишут? Я вот пописал и не понял, честно говоря, прикола, но типа что-то большое прямо на этом делать, а-а, как генератор простатических сайтов или раз у тебя накст это что прямо огромная экосистема с кучей, ты так говоришь, там типа вот куча людей там разрабатывают, а кто это юзает, какие проблемы решают, почему это такая большая история, большое событие. Интересный момент то, что опять же, да, когда я говорю экосистема, я говорю не просто вот, знаешь, там наксистема к накст, библиотеки к наксту, вообще не то. А слышал ли ты про такую систему, как АнS? Да, я видел сай, по-моему. Это, короче, куча разных лип, да, если я не ошибаюсь. Всё верно. То есть это, ну, Unixway в мире JavaScript библиотек. Ну, то есть делай своё дело, делай его хорошо. У него, по-моему, на гитхабе какая-то дикая популярность, да. Вот. И в чём суть? Это как раз-таки разработки Накста. То есть накст разрабатывают не так то, что вот они сидят и пилят там пичи внутри накста, а то, что они вначале это делают внутри как разтаки экосистемыs, а потом они это абсорбируется внутри накста. То есть они делают для всех. Ну, в общем, какую концепцию выделил ещё Evan VIW до этого? Тут как раз-таки, да, чем отличаются, допустим, разработчики Viewю от других разработчиков? Ну, имеется в виду разработчики фреймворка. Они идут по концепции сделать для всех и все сделают для тебя. Такой вот, знаешь, там минитекоммунизм, назовём это. А выражается в том, то что вот как разтаки как появился вид. Изначально это был сборщик сугубо для View, а потом посмотрел такой: "А вот, ну сделаю я для в будут пользоваться только вшки, а ведь мне ничего не стоит сделать так, чтобы вы все могли использовать". Подход же универсальный, просто там сделаем плагин из этого и всё. Ну и вот дальше эта концепция пошла, пошла, пошла. То есть мы приходим к тому, что вот как раз-таки там вот у Эвона это превратилось как раз концепцию вру, то есть это вид, rудаун и вот всё это там, ну, огромная экосистема. У Накста на самом деле пошло тоже по схожей причине. Они не просто взяли и разработали нак, они разработали эксистему АS, а внутри неё там появился инструмент, как, допустим, nitro. А Nitra - это получается основа для метафреймворков. Она работает же внутри, допустим, Solidстарта, то есть метафреймворка для солида. Она работает внутри экосистемы Ангуляра в аналог Джесе. Она работает для экосистемы, допустим, в танстак старте, который сейчас вот выходит. И, кстати, одновременно с Накстом Nitro тоже пришёл под попечение Верс. То есть Версль по сути кусточек с каждого приборка стал теперь захватывать. А, конечно, там ребята клянутся прямо всеми этими правдами, неправдами ходят по чатам и говорят то, что нет, мы не допустим ни малейшего влияния Верселя на всё это дело. Мы остаёмся верны там полной независимости разработки Опенсорса. Но тут, как говорится, к топ фазе тот танцует. Тяжело заглядывать вперёд. Рад за ребят, что у них появились деньги, что они теперь могут себе позволить расслабить немножко и заняться делом, не беспокоясь о получении прибыли. Но тревожно на душе, когда столько влияния у одной корпорации. Но в итоге наксистема, говоришь, UI тосё пятадесятая. То есть что это за история? Кто это делает? Что на ней делают? Ну, ну это метафреймворк. То есть есть ли у него какая-то компания попечитель, допустим, у Реакта там BCEL нету. Есть ли у неё попечитель, допустим, как там у Facebook это нету. Ну я вот, знаешь, называю VI продуктом для любви разработчиков, то есть от разработчиков для разработчиков. Он не прижит никакой компании, он делается для всех. Кто его использует? Ну вот, допустим, я не знаю, ты ожидаешь сейчас слышать, какие компании его используют или как. Нет, я скорее именно с точки зрения именно выбора вот таких вещей на техническом уровне. То есть я такой: "А, ну бы я взял, например, тебе нравится VW, ты скорее всего будешь спойлероть Накст". Не обязательно, потому что я знаю большое количество хейтеров Накста и вполне заслуженно они хейтят Накст. Точно так же, как и многие хейтит Нек, конечно, тоже за дело, но что есть то есть. Если ты любишь вряд ли ты возьмёшь Next. Вот и всё. Логично. Но тогда возникает вопрос, зачем я вообще возьму Next, если у меня есть в ид? М потому что там просто какое-то количество боле уже решено. То есть как проводчанки, как там ещё есть интересный концепция плагинов, то есть достаточно такая не то чтобы уникальная, но интересная. Ты буквально можешь себе через death tools, который у тебя появляется буквально там Next init создал, ну там через Nax и так далее. Ты создал новый проект, открываешь вот, ну у тебя есть дефтоузы в центре экрана. У нак это есть такая особенность. Нажимаешь на них, переходишь в плагины, модули, там это называется, и прямо модули натыкиваешь себе. И вот прямо тебе грузятся в твой проект модули и устанавливаются. Ну, знаешь, как буквально как ЦМЭски какой-то, которую ты плагины натыкал, и они у тебя появились. Достаточно интересная, уникальная особенность, которая мне в некоторый степени интересно. То есть я считаю, что мы должны в эту сторону идти, в сторону таких, из которых строятся проекты. Вперёд прош Да. Да. И так прикольно, как всё это по кругу движется. И это по кругу, конечно, движется. Просто появляется новое решение, они этого не умеют. А потом их надо заново этому учить, а потом надо уже к этому заново привыкать. Замечательно. Самое главное не то, что там какие-то супертехнологии и всё остальное, а самое главное, чтобы этот разработчик такой жмякнул кнопку: "О, работает круто". Когда просто нажал, оно заработало, как ты захотел. Да. Я почему вообще интере тебя про это спросил? Потому что, ну, интересно, потому что такой смотришь сбоку, думаешь, а мне вообще надо туда смотреть или нет? Но понимаешь, что нет, всё-таки это вот типа если ты в экостеме VW - это их история. Там ты в экостеме Реакта, там у тебя своя история. Но Next я попробовал, больше не хочу. Спасибо большое. Расходимся у себя. Да, у меня есть определённый тут вряд ли какой-то эксклюзивный опыт предложит. Возможно, какие-то у него есть определённые расширение, но я думаю, нексты они есть, типа там цмэски пристраивающие, как наб. Но это всё отдельная тема. Что, Деникс, хочу тебе сказать спасибо, что ты ко мне пришёл. Наше с тобой время подошло к концу. Вот мы, на самом деле, пробежались голопом по европам. Не знаю, какие можно сделать выводы. Наверное, я для себя делаю главный вывод, что в целом нету сейчас истории, когда надо куда-то бежать, всё менять и что сейчас что-то такое произойдёт, есть какое-то стабильное развитие, что-то мы ждём, что-то не ждём. Ну, в общем, сидим и ты сидишь с Ю хорошо, я сижу с реактором, хорошо, ну, и дальше как-то живём. Вот. Не знаю, может, у тебя другое впечатление. Я бы сказал, что сейчас у нас есть на любой вкус. Нравится тебе каждую неделю менять фреймворк? У тебя есть такая возможность? Там действительно часто что-то новое выходит нишевое и так далее. Нравится тебе сидеть на одном решении? Ну вот сидишь ты на реакте уже 10 лет можно просидеть и также всё будет нормально. То есть нельзя сказать, что у нас всё быстро там появляется и умирает. Точно так же как нельзя сказать, что вот ты не имеешь возможности попробовать что-то другое. Выбирайте на свой вкус. Это так. Ну главное не тащите неожиданные фреймворки в рабочие проекты, чтобы после вас никто сильно не удивился. Это тоже будет очень забавно, когда кому-то придётся это поддерживать. Друзья, большое спасибо за то, что нас слушали. А не забывайте ставить лайки, пишите свои комментарии, расскажите про ваш опыт работы с фреймворками, с которыми вы взаимодействуете. И, кстати, есть ли у вас какой-то переход, то есть, например, вы там на вью или хотите ныряк или вы на хотите куда-то ещё. Насколько вас что-то устраивает или не устраивает в том, с чем вы работаете во Франде прямо сейчас. Мы с вами прощаемся. До новых встреч.
Creators and Guests
