LINUX.ORG.RU

Классная статья о том почему React - зло.

 , ,


1

2

Авторша начинает с феминизма, проводит аналогии с миром Вархаммер 40000, рассказывает историю фреймворка и заканчивает манифестом Fight Back. Отличное чтиво 10/10

https://www.sonniesedge.net/posts/react/

Ответ на: комментарий от beresk_let

Каждые пару-тройку лет одно и то же

Только метеорит остановит появление новых фреймворков JS, затем снова 10 тысяч лет эволюции, снова интернет, а настанет время опять делать фреймворки

I-Love-Microsoft ★★★★★ ()
Ответ на: комментарий от anonymous

Зачем жквери? Ты не умеешь с деревом работать без костылей? Бери тогда ректал и не выеживайся, следуй за стадом.

Дятел, сказано же, что на jquery куча готового, испытаного кода, который работал задолго до того, как в ваш убогий жабоскрипт завезли querySelector с fetch и ещё столько же проработает.

Полноценной замены datatables нет вообще. Ни на голом жабоскрипте, ни на этих ваших новомодных реактах с вювами, никто не осилил.

anonymous ()
Ответ на: комментарий от anonymous

Штатовские социальные лыцари на белых конях?

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

pineapple ()
Ответ на: комментарий от pineapple

Хорошо тебе. Мне от них каждый раз диктатурами прошлого века веет. Родился не тем — уже косо смотрят. Попробовал воспользоваться своими гражданскими правами поперёк них — будут травить исподтишка. Прямо сказал, что о них думаешь — сразу в лагеря.

anonymous ()

tl;dr

Mobile devices simply don't have the CPU and memory to cope well with client-side JS apps

Мужики, диффать здоровые деревья из элементов виртуального дома на интерпретируемом языке, оказывается, тяжёлая задача! Понятненько?!

Но на самом деле, всё гораздо веселее:

Web development, at least on the 1% of the loud bleeding edge developer crowd, suddenly went from a «soft» design-based discipline, to a «hard» engineering-based discipline, fueled by the engineering-focused React library, and the engineering-focused and corporate-sponsored community that surrounded it.

Казалось бы, в чём тут может быть подвох?

The 1% of the industry found «validity» in becoming engineering-focused. A role that was coded as Feminine and looked down on by «serious» engineers became Masculine and something to aspire to.

Интересно, к чему нас ведут...

The concept of «We Live In A Meritocracy» becomes firmly implanted in the community.

Meritocracy results in the erasure of any kind of Intersectional thinking.

А вот к нам через текст той статьи непринуждённо обращается сама Коралин Ада Эмке, и дальше всё становится совсем очевидно:

Minority voices find it hard to be heard when they speak about perceived problems in the React and the wider tech community

Amplify stifled voices - Black, Indigenous, and people of colour, women, trans people, disabled people, etc. (The concept of meritocracy is inimical to the lived reality of Intersectionality)

gnulag ()
Ответ на: комментарий от anonymous

Полноценной замены datatables нет вообще.

Как раз недавно работал параллельно над проектом с datatables (с бэкбоном и целой оравой плагинов на жквери до кучи) и проектами с динамическими таблицами из Atlaskit и Material UI. Первое банально убивало в разы больше времени.

gnulag ()
Ответ на: комментарий от gnulag

Полноценной замены datatables нет вообще.

Как раз недавно работал параллельно над проектом с datatables (с бэкбоном и целой оравой плагинов на жквери до кучи) и проектами с динамическими таблицами из Atlaskit и Material UI. Первое банально убивало в разы больше времени.

Я рад что оно у тебя занимает меньше времени. Только, как я из примеров вижу, оно не умеет даже заголовки строк и столбцов при прокрутке на месте держать. Или я не прав?

anonymous ()
Ответ на: комментарий от pineapple

Конечный манифест из семи пунктов (среди которых два вообще являются откровенной водой) содержит ровно один, апеллирующий непосредственно к техническим моментам, которые до этого годами разжёвывались на самых разных площадках. Перефразировать то, что уже много раз написано за тебя и пересказать то, что также было сказано много раз за тебя — дело нехитрое, и детектится на раз-два. То, что остаётся, убрав это, я процитировал.

gnulag ()
Ответ на: tl;dr от gnulag

Amplify stifled voices - Black, Indigenous, and people of colour, women, trans people, disabled people, etc. (The concept of meritocracy is inimical to the lived reality of Intersectionality)

Дадада, давайте заставим белых мужиков кодить, а власть отдадим женщинам, ниграм и половым извращенцам

annulen ★★★★★ ()
Ответ на: комментарий от anonymous

Только, как я из примеров вижу, оно не умеет даже заголовки строк и столбцов при прокрутке на месте держать. Или я не прав?

Не прав. В Material UI есть функция высшего порядка withStyles.

gnulag ()
Ответ на: комментарий от anonymous

Она даёт возможность переопределять стили, как минимум банально для шапки таблицы поставить position: sticky. И способ, разумеется, это не единственный. У Material UI достаточно внятная документация, и ответ на свой вопрос ты бы успел узнать, пока я бы возвращался ко вкладке с лором и печатал его. Не удивляет, кстати, что вопрос у тебя возник по внешнему виду таблицы, а не по собственно функционалу компонента и работе с ним. Datatables вынуждает решать задачи с бóльшим количеством кода, ограничивает в декомпозиции задачи и написании переиспользуемого кода ввиду навязывания мразотнейшего подхода к разработке фронтенда, присущего всем jQuery-плагинам. Рендер кастомного дерева внутри ячеек с использованием строк с HTML-разметкой только чего стоит. Cамое забавное — компоненты с динамическими таблицами для реакта совершают меньше операций над DOM, отчего работают банально быстрее.

gnulag ()
Ответ на: комментарий от gnulag

Ты давно в себе сомневался? Потому что надо иногда.

Она даёт возможность переопределять стили

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

Она даёт возможность переопределять стили, как минимум банально для шапки таблицы поставить position: sticky.

Уже везде работает?

Не удивляет, кстати, что вопрос у тебя возник по внешнему виду таблицы, а не по собственно функционалу компонента и работе с ним.

Презентировать данные, в том числе заголовки, в нужном месте в нужное время — это и есть функционал таблицы.

Если твой компонент это не умеет, мне абсолютно безразлично как с ним работать. Он не нужен.

Datatables вынуждает решать задачи с бóльшим количеством кода, ограничивает в декомпозиции задачи и написании переиспользуемого кода ввиду навязывания мразотнейшего подхода к разработке фронтенда, присущего всем jQuery-плагинам. Рендер кастомного дерева внутри ячеек с использованием строк с HTML-разметкой только чего стоит.

Что-то какая-то вода.

Cамое забавное — компоненты с динамическими таблицами для реакта совершают меньше операций над DOM, отчего работают банально быстрее.

Ты знаешь какими костылями фиксированые заголовки в datatables делаются?

Ещё не хватало, чтобы твои динамические таблицы не умея этого и со всеми своими костылями типа shadowdom совершали больше операций над DOM.

anonymous ()
Ответ на: комментарий от anonymous

querySelector сто лет в обед, а AJAX жрали ещё до пришествия жквери, fetch для этого не нужен.

querySelector скопипастили из jquery, а то поделие микрософта, которое жрали до пришествия jquery я лучше в неё заверну.

datatables нужны 0,0001% маргиналам, им можно.

Успокоил.

anonymous ()
Ответ на: комментарий от commagray

Щас в ember пилят новейшую вундервафлю, которая затмит и вью и свелте с реактом. Glimmer vm. html-шаблоны превращаются в бинарный поток инструкций для виртуальной машины, которая и занимается обновлением DOM. Как-то так

vue

-- react для тупых. Вместо render-функций, обновляющихся по изменению аттрибутов, дает html-подобные шаблоны, увешанные китайскими обзёрверами

svelte

-- VUE для тупых. Прячет китайские VUE-обзёрверы за DSL-ем и компилятором, делая вид, что js-переменные напрямую воздействуют на HTML-разметку.

Deleted ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от Deleted

Вместо render-функций, обновляющихся по изменению аттрибутов, дает html-подобные шаблоны

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

anonymous ()
Ответ на: комментарий от anonymous

декларативное описание вида

декларативное

https://vuejs.org/v2/guide/syntax.html#Using-JavaScript-Expressions

О том, что второе лучше, все договорились ещё в прошлом тысячелетии

Когда пердолили html+php-лапшу на сервере?

Deleted ()