Pull to refresh

Comments 38

Спасибо за статью, проглотил за 5 минут :)
Мне нравится куда развивается веб. С трепетом жду новый доклад stateofjs :)

Веб-технологии захватили мир, потому что, с одной стороны, они очень коммерциализированы (относительно централизованная разработка + горы бабла), а с другой — бесплатны для конечного пользователя.
Другие варианты проигрывают. Некоммерческая модель и полная децентрализация негативно сказываются на качестве. Платность — на широте аудитории.
Это самое основное, остальное вытекает.

Отличная статья, было интересно прочитать.

Вообще во фронте меня больше всего напрягает не раздутые объемы кода, а излишняя функциональность, которая как раз и раздувает фронт до неприличных размеров. Самый наглядный пример -ВК. Зарегистрировался где-то в районе 2007, на тот момент был отличный функционал - поиск людей по любым параметрам, сообщения, музыка, видео, игры даже были через флеш и различные приложения. Сейчас — это просто какой-то монстр, и вместо моей музыки показывает непонятные сборки и рекомендации, чужие плейлисты, мне надо делать дополнительные клики, чтобы получить список своих записей, при этом каждый этап из этого грузит много ненужного контента. И дело ни в ВК, везде так — огромное количество ненужных вещей.

Смотрю на зоопарк веб фреймворков и не понимаю, зачем столько. В рамках эксперимента - пожалуйста, но чем Solid & Qwik отличаются от React, а Svelte от Vue?

Все новые возможности можно интегрировать в существующие решения. Да, тут вопрос времени, но лично я не вижу проблем, чтобы не запилить дополнительные возможности в компиляторе Vue (то есть Svelte уже не нужен) или сделать опциональный рантайм в Svelte (для поддержки компонентов извне экосистемы самого Svelte). Это просто пример.

По большому счету, я вижу только путь шаблонов (Vue / Svelte) и путь функциональных компонентов (React / AnyOtherFramework). При этом, например, во Vue можно использовать функциональные компоненты и я теперь уже вообще не понимаю, что, куда и почему

Палка с двумя концами. Конкруренция -- хорошо. Огромная фрагментация, вместо того, чтобы сделать что-то одно, но очень хорошо, сделано много, но посредственно.

Если б кто то еще знал, как сделать очень хорошо.

А пока веб и ищет свой путь этими генетическими алгоритмами.

«Any application that can be written in JavaScript, will eventually be written in JavaScript.» - Jeff Atwood

Спасибо за цитату, очень подходит в качестве эпиграфа :)

Да всё проще – веб покрывает почти все платформы и потребности, и при этом у него офигенно низкий порог входа с огромным количеством готовых решений и коммьюнити.

JavaScript в наше время это и десктопы, и мобилки, и часы, и телевизоры, и приставки, и этот список можно продолжать. Просто. Мощно. Эффективно для бизнеса.

Конечно ему не тягаться за ветвь первенства в скорости или за доминирование среди нативных десктопных приложений, но все его возможности и покрытие аудитории интернета и не только, это очень и очень круто. Отсюда и такие цифры и популярность.

Помнится, так когда-то писали и про Java, добавляя ещё и проигрыватели Blu-Ray.

Это я тому, что не факт, что JavaScript будет так же популярен лет через 10-20.

Мне честно JavaScript, в качестве универсального desktop-ного языка очень импонирует последний год.

React — это всего лишь библиотека для рендеринга, говорили они. React очень прост в освоении в отличие от Angular, говорили они. Делайте как мы, и всё у вас будет летать, говорили они.

Что имеем сегодня? ...

Если, кстати, говорить про фреймворки/библиотеки, то не вижу у современных библиотек рендеринга (React, Vue, etc) ни одного преимущества для построения интерфейсов против древнего как говно мамонта Knockout. Последний и намного проще в работе и изучении (ровно 3 функции нужно изучить), и гибче, и требует меньше зависимостей. Нормальных компонентов и фич шаблонизатора разве что не хватает, как у того же Vue, но в остальном — сабжи на фоне Ko выглядят как набор костылей и велосипедов.


Ну и ещё Aurelia из этого списка можно выделить, как развитие идей Ko, хоть и местами избыточный и переусложнённый.


Жаль что помер =(

А уж Backbone как был приятен, функционален и шикарен ((

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

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

Не понял почему PWA в одном ряду с "плохими" react native и electron. Технологии принципиально разные, PWA в этом ряду - нативная веб технология.

Я сталкивался с тем, что PWA приложениям вменяют те же самые проблемы, что и у "ненативных" веб-технологий: жрут батарею, визуально не такие плавные, не имеют бесшовной интеграции с другими системными приложениями. По первым двум пунктам можно поспорить, а последний уже почти не актуален благодаря Project Fugu (ждём, когда Apple позволит ставить Chromium на яблоки). Жаль, что один Firefox остался в стороне от этого праздника жизни :)

Совсем недавно появился Transition API! Плавности скоро поприбавится. Даже на iOS и MacOS за последний год много подвижек с PWA. А FireFox'у просто тяжело уже. Ресурсов мало, не успевают. Но и доля его неуклонно падает.

При прочих равных, с ограниченным ресурсом ИМХО сделать быстрое веб-приложение проще, чем два-три нативных даже на гибридной технологии.

покажите мне хоть одного живого человека, который "позитивно" воспринимает т.н. электрон приложения (кроме разработчика, который получил за это изделие деньги, и менеджера, который типа сэкономил что-то там, переиспользовав из веб версии)

Понимаю, что вопрос скорее риторический, но лично я из последнего пользовался Discord, Figma, Postman, VS Code, Notion, Skype, Teams - опыт вполне приятный, местами даже не ощущается веб под капотом.

Postman - это такое же безобразное извращение, каким является сам Электрон. Если VSCode ещё как-то встроили в какие-то рамки, то Postman - это просто живой писец, который за всеми приходит.

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

Знатете, чем его можно заменить? make + curl. И всё. 20 килобайт, запускается из командной строки, можно тестировать и скриптить, и все данные лежат в git.

То, что Postman нужен для простой отправки запросов - это давно не совсем так, хотя такая возможность есть. Он может быть нужен далеко не только разработчикам. Он используется для организации работы с коллекциями API в различных форматах (в т.ч. Swagger) и по разным протоколам (HTTP, gRPC, Websocket и т.д.), а также для автоматизации тестирования, документации, мокирования и других штук, за которые надо платить :)

И это нисколько не отменяет curl, который может сделать 98% всего постмана. Делов-то, пара секунд и ChatGPT

Я помню времена, когда новичики на ЛОРе (да и любом линуксовом форуме) спрашивали: "А как мне настроить интернет, куда нажать?". И им рассказывали, что они все делают не правильно, интерфейс - плохо. Гном кривой, КДЕ падает, труЪ путь - вообще его не использовать, а тем более для настройки сети. Ведь можно всего лишь настроить iptables, все параметры через ifconfig задать, DNS указать в /etc/resolv.conf... Короче, делов-то.

Времена те ушли, а люди остались.

Postman - это такое же безобразное извращение, каким является сам Электрон.

Но ведь сложность и неудобство Постмана никак не связаны с тем фактом, что он сделан на Электроне. Претензии-то к манагерам/дизайнерам/etc, а не к инструменту

Зачем вообще из обыкновенного curl надо было делать такого монстра? Это потому что программисты, которые в жизни ничего кроме Яваскрипта не учили, не знают как сделать тестовый запрос к серверу?

ну в целом не проблема не в курле а в том что это можно все хранить в понятном интерфесе с папочками передовать манагерам делится с новыми коллегами. так что незнаю че вы докапались до курла. он мне вобще ненравится httpie в разы приятнее как cli инструмент. Да и постман имеет свою ценность.

Вызов принят.

Skype сейчас, по сравнению со Skype 4.2 - тормозное угробище

Аналогично - Notion по сравнению с Evernote 4.*, которым я до сих пор пользуюсь

От рендеринга шрифтов Postman'a у меня глаза вытекают. Отзывчивость интерфейса тоже убогая, как и в большинстве электронных приложений.

Я позитивно воспринимаю Фигму на электроне. Потому что иначе на разных платформах её пилили бы разные команды и на разных фреймворках. Она выглядела бы по-разному и имела бы специфические баги. А под линуксом наверняка ещё и сильно отставала бы по версиям.

Обратно совместимый WEB, говорите? ХА!

Я вас умоляю. С каждой новой версией браузера ваша обратная совместимость удаляется вдаль, так же как и крокодил Гена на своём поезде. Ввиду того, что в мире всех этих фреймворков костыли стали стандартной практикой, вся ваша совместимость - она виртуальная.

Уж тем более смешно смотреть на то, как люди рассказывают, что это не проблемы яваскриптов, а проблемы браузеров, а в самом скрипте проблем нет. Ну да, так и нет. В доказательство тому, у меня на рабочей машине стоит nvm, в котором выгружены все версии npm от 12 до 20. Особенно прёт то, что я сейчас работаю с кодом, трёхлетней давности, который только на 14 версии и запускается.

Совместимость. Ха.

Я бы не стал так в лоб сравнивать браузерный JS и Node.js. Обратная совместимость в браузерах не позволяет старым сайтам ломаться с течением времени. Таким образом у простых пользователей сайты работают и не требуют никаких действий. А новые мажорные версии Node.js на то и мажорные, что на них осознанно переходят разработчики конкретных продуктов и сами обеспечивают работоспособность кода в соответствии с новым API.

Обратная совместимость в браузерах не позволяет старым сайтам ломаться с течением времени

на моем старом ноуте, который я не обновлял с 2013 вообще никакие сайты не работают, и дело не только в том, что там нет сертификатов https.

Я говорю лишь о том, что старый код будет спокойно работать даже через 10 лет. А про ваш ноутбук могу строить лишь догадки :)

Сферичиский код в вакууме работать будет. Туду лист, который показывали на выставке вэб технологий в 2010 году может заработает.

А эта каша Тайпскрипта, пропущенная через жернова Вэбпака и Бабела даже неподумает запускаться. Более того, вы никогда не сможете это раздебажить. Открытые технологии, блин. Аы заходите на старый сайт и видите только бесконечные стактрейсы на 500 линий, каждая из которых ссылается на функцию a(), которая в свою очередб запускает œ(), а там - пойди сыщи.

И проекты на Ноде спасает только Докер. Любой билд пестрит полумиллионом ворнингов и радостным сообщением о том, что в текущих версиях ПО найдено ошибок чуть более чем א

Если на ноутбуке, по вашим словам, 2013 года вы даже браузер не обновляли, то с чего вдруг в старом браузере на старом ноутбуке должны открываться современные сайты/приложения?

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

Я бы не сказал, что TypeScript это легко и приятно. Совсем даже наоборот, от него у людей возникает большой негатив к frontend разработке, как будто ты работаешь с какой-нибудь древней версией Java. И тебе неприятно. И всем неприятно. А новички без опыта с ним вообще не справляются. Приятнее всего было работать с JavaScript + JQuery + какая-нибудь графическая библиотека. А TypeScript это по простоте как Kotlin.

Не совсем понятно, что общего у jQuery с графическими библиотеками и TypeScript. Не в обиду, но по моему опыту подобное восприятие обычно либо у бекендеров (не любят разбираться с вёрсткой и нативными API, вспоминают jQuery с ностальгией), либо у новичков с курсов Реакта :)

Приятно работать с TS становится как минимум после долгой работы на чистом JS, когда ты уже наелся багов из-за ошибок типа "undefined is not a function" и без статического анализа (при компиляции) кодовую базу уже трудно поддерживать.

Я серверный Java разработчик. В последние несколько лет фронтенд начали регулярно делать или на TypeScript Angular или на TypeScript React, даже если в этом нет ни малейшей необходимости. И как правило такие проекты достаются в наследство, когда всех старых разработчиков уже давно нет. И так вот, с TypeScript формошлёпством неудобно работать, если серверная часть на Java, а фронтенд на TypeScript. Особенно если там какая-нибудь Redux Saga.

Тогда понятно о чем вы :)

Redux Saga не самая простая для понимания вещь в плане типов, особенно из-за генераторов. Формы в React тоже не самая приятная часть по сравнению с Angular. Самые большие проблемы возникают из-за самих разработчиков, которые тянут в проект сложные библиотеки, но не умеют в дженерики, настройку tsconfig, вывод типов и прочие важные фишки. Это ведет к потере информации о типах, неявным any или бесконечным ts-ignore, что в конце концов приводит к мучениям в попытках хоть как-то заставить код компилироваться. Такой бардак может свести в могилу любой самый прекрасный проект, знаю не понаслышке.

В общем вопрос удобства TS идет рука об руку вместе с вопросом квалификации кожаных мешков, которые его подключили в проект :)

Sign up to leave a comment.

Articles