Стоит ли использовать jQuery в 2024 году?
От: The Minister Земля  
Дата: 09.02.24 20:35
Оценка: :))) :)
Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?
Re: Стоит ли использовать jQuery в 2024 году?
От: bnk СССР http://unmanagedvisio.com/
Дата: 09.02.24 21:33
Оценка: 16 (2) +1
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?


Почему-то регулярно этот вопрос задается, даже здесь.
JQuery не нужен (все что в нем было хорошего, уже давно добавлнено в язык), чистый JS тоже (помтоу что это ужас).
Используй TS (typescript). Тем более если кода много (тогда статическая типизация просто необходима)
Современные инструменты его умеют из коробки, не сложнее чем javascirpt.
Отредактировано 09.02.2024 21:36 bnk . Предыдущая версия .
Re[2]: Стоит ли использовать jQuery в 2024 году?
От: Разраб  
Дата: 10.02.24 01:16
Оценка: -1 :)
Здравствуйте, bnk, Вы писали:

bnk> чистый JS тоже (помтоу что это ужас).

отсутствие строгой типизации это фича жс, зря вы так. без нее не было бы ни современных веб-апп.
bnk>Используй TS (typescript). Тем более если кода много (тогда статическая типизация просто необходима)
пишите меньше кода)) жс модульный. редакторы обладают изумительной поддержкой.
☭ ✊ В мире нет ничего, кроме движущейся материи.
Re[3]: Стоит ли использовать jQuery в 2024 году?
От: Alekzander  
Дата: 10.02.24 10:24
Оценка: 5 (1)
Здравствуйте, Разраб, Вы писали:

bnk>> чистый JS тоже (помтоу что это ужас).

Р>отсутствие строгой типизации это фича жс, зря вы так. без нее не было бы ни современных веб-апп.

Фича это отсутствие статической типизации.

А отсутствие строгой типизации это бага.

Самое забавное, что TS её не лечит. (Это не в его силах).
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re: Стоит ли использовать jQuery в 2024 году?
От: Артём Австралия жж
Дата: 09.12.24 03:29
Оценка: 1 (1)
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?


Куча логики как бы намекает на React / Angular (к чему душа лежит / есть опыт). Зачем изобретать велосипед?
Re: Стоит ли использовать jQuery в 2024 году?
От: Alekzander  
Дата: 10.02.24 10:38
Оценка: -1
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?


Да, а почему нет? Что за пренебрежение?

От дураков я слышал, что jQuery это для неосиляторов JS. Но это просто две разных философии.

Внизу, кстати, куча примеров на эту тему.

ИМХО, хуже всего "дедовские подходы": https://rsdn.org/forum/web/8682144.1
Автор: Maniacal
Дата: 02.02.24


Лямбды получше, но текст в целом недостаточно декларативный: https://rsdn.org/forum/web/8682163.1
Автор: rFLY
Дата: 02.02.24


А идеально, когда код имеет вид

запрос
    .уточнение()
    .обработка();


(В обсуждаемом случае, кстати говоря, jQuery ещё и улучшает язык запросов, так что всё сводится к простому запрос.обработка();).

Как и в случае с некоторыми другими языками поганые снобы не хотят делать стандартную библиотеку удобной и попсовой, но, к счастью, в отличие от других языков пользоваться ей необязательно, пока jQuery поддерживается везде.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re: Стоит ли использовать jQuery в 2024 году?
От: vsb Казахстан  
Дата: 10.02.24 20:05
Оценка: +1
На мой взгляд jQuery даёт следующие плюсы:

1. Сокращение писанины. С современным JS разница уже не настолько велика, как раньше, но всё же с jQuery код компактней.

2. Нивелирование разницы между браузерами. Сегодня не актуально.

3. Готовые компоненты. Тут надо смотреть — нужны ли они.

Я бы не использовал. Для меня любая зависимость в тягость.
Re[2]: Анекдот
От: bnk СССР http://unmanagedvisio.com/
Дата: 05.12.24 13:19
Оценка: +1
Здравствуйте, Alekzander, Вы писали:

A>
A>$('dialog')
A>    .addClass('text-center')
A>    .find('div textarea')
A>        .addClass('width-100 text-center no-resize')
A>        .prop('readOnly', true)
A>        .prop('value', VarInput.split("¤")[0]);
A>


A>А первый отвечает: "Буду я ещё ГОВНОКОДИТЬ НА ЭТОМ ВАШЕМ jQuery!"


Ну ведь сам понимаешь, да?
IMHO намного чище без всяких непонятных `prop` и `$`

const dialog = document.querySelector('dialog');
dialog.classList.add('text-center');

const textarea = dialog.querySelector('div textarea');
textarea.classList.add('width-100', 'text-center', 'no-resize');
textarea.readOnly = true;
textarea.value = VarInput.split('¤')[0];
Отредактировано 05.12.2024 13:26 bnk . Предыдущая версия .
Re: Стоит ли использовать jQuery в 2024 году?
От: rFLY  
Дата: 09.02.24 23:17
Оценка:
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?

Код на jQuery конечно будет проще и его будет меньше, но имеет ли смысл сейчас изучать эту библиотеку? От практики в JS проку больше и ты будешь знать, что в твоем коде делается, не полагаясь на библиотеку.
Re: Стоит ли использовать jQuery в 2024 году?
От: Разраб  
Дата: 10.02.24 01:20
Оценка:
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использова1ть jQuery или чистый JS?


если хадркорно, то fetch + rxjs но! я сравнивал реалворд аппы в лайтхаузе, перф у ванильных решений ниже чем у каркасов.
если нужна простая отладка в браузере, то лучше вью не найти. если нужен максимальный перф и скорость разработки svelte.dev
Если бэк на аспнет, то стоит обратить внимание на blazor.net(если не планируется много кастомного js hmtl).

да, спланируйте нужны ли будут сторонние компоненты, вроде их больше всего в реакте(тормозной), потом вью и дальше свелт,
да, чуть не забыл совсем новый тренд https://twinspark.js.org/
☭ ✊ В мире нет ничего, кроме движущейся материи.
Отредактировано 10.02.2024 1:26 Разраб . Предыдущая версия .
Re: Стоит ли использовать jQuery в 2024 году?
От: r0nd  
Дата: 10.02.24 19:02
Оценка:
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?


Хотите не используйте, но без jquery редко получается написать, здесь же мало желания разработчика. Даже если на начальном этапе целенаправленно избегать jquery с каждым новым компонентом/внешней либой риск использования jquery растет, и обязательно попадется либа, которая внутри использует jquery.
...<< Dementor 1.5.4 ✪ Lets Play a Game ⚁⚂⚂⚃⚄>>
Re: Стоит ли использовать jQuery в 2024 году?
От: diez_p  
Дата: 15.04.24 11:39
Оценка:
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?


я хоть и не веб разраб но с фронтом связан.
писать только на TS, более строгая псевдотипизация делает код понятнее, если вы все можете сделать на ванильном TS/JS то наверное в jQuery наверное смысла нет.
если нужна пара фишек из jQuery то может найти либу, которая реализует только это, но в этом случае если не особо известная либа то jQuery веры больше.
Re: Анекдот
От: Alekzander  
Дата: 05.12.24 13:05
Оценка:
Встречаются два программиста на СтекОверфлоу. Один говорит: "Посмотрите, я тут код написал".

document.querySelector("dialog").style.textAlign = "center";
document.querySelector("dialog").querySelector("div").querySelector("textarea").style.width = "100%";
document.querySelector("dialog").querySelector("div").querySelector("textarea").style.textAlign = "center";
document.querySelector("dialog").querySelector("div").querySelector("textarea").style.resize = "none";
document.querySelector("dialog").querySelector("div").querySelector("textarea").readOnly = true;
document.querySelector("dialog").querySelector("div").querySelector("textarea").value = VarInput.split("¤")[0];


Второй говорит: "У меня кровь глазами пошла. Неужели нельзя использовать утилиты* и jQuery?" *Утилитами называют маленькие универсальные CSS-классы.

$('dialog')
    .addClass('text-center')
    .find('div textarea')
        .addClass('width-100 text-center no-resize')
        .prop('readOnly', true)
        .prop('value', VarInput.split("¤")[0]);


А первый отвечает: "Буду я ещё ГОВНОКОДИТЬ НА ЭТОМ ВАШЕМ jQuery!"
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re[3]: Анекдот
От: Alekzander  
Дата: 05.12.24 14:35
Оценка:
Здравствуйте, bnk, Вы писали:

A>>
A>>$('dialog')
A>>    .addClass('text-center')
A>>    .find('div textarea')
A>>        .addClass('width-100 text-center no-resize')
A>>        .prop('readOnly', true)
A>>        .prop('value', VarInput.split("¤")[0]);
A>>


A>>А первый отвечает: "Буду я ещё ГОВНОКОДИТЬ НА ЭТОМ ВАШЕМ jQuery!"


bnk>Ну ведь сам понимаешь, да?

bnk>IMHO намного чище без всяких непонятных `prop` и `$`

bnk>
bnk>const dialog = document.querySelector('dialog');
bnk>dialog.classList.add('text-center');

bnk>const textarea = dialog.querySelector('div textarea');
bnk>textarea.classList.add('width-100', 'text-center', 'no-resize');
bnk>textarea.readOnly = true;
bnk>textarea.value = VarInput.split('¤')[0];


Вот не соглашусь. На jQ это декларативная запись схемы преобразований DOM в чистом виде. Ни одного символа лишнего. Зачем, например, объявлять переменную, с именем, совпадающим с селектором, и делать таким образом копипаст, когда можно этого не делать (причём, без лишних запросов)? Это мелочи, конечно, но я и процитировал только кусочек. Когда этого полные штаны, где-нибудь да ошибёшься. И будет, например, после изменений проекта переменная dialog, содержащая не диалог, а панель, чтобы удивлять того, кому придётся поддерживать код.

Далее, два одинаковых prop'а наводят на мысль сделать мапу, описывающую новое состояние. Не будем забывать, что часть людей, придумавших соответствие атрибутов разметки и свойств OM, уже умерла от старости. Если бы это создавалось в наши дни, возможно, от этого сомнительного решения отказались бы в пользу DSL или того же самого .prop.

Далее, в случае с prop, конечно, много не наоптимизируешь, а вот с data — вполне себе. (data работает не с медленным DOM'ом, а с быстрыми js-объектами). А подход должен быть универсальным, иначе неконсистентно.

В целом, jQuery это аналог LINQ из дотнета. Только LINQ это декларативная запись схемы преобразований не DOM, а коллекций. И, соответственно, она нужна в core языка, а не внешнем браузерном API, как jQ. Другое отличие — LINQ пилит одна из лучших инженерных команд (хотя и их попрекают, хе-хе, всякими отсутствиями макросов), а браузерный API для ES пилит один из самых упоротых комитетов.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Отредактировано 05.12.2024 14:36 Alekzander . Предыдущая версия .
Re[2]: Анекдот
От: koenig  
Дата: 05.12.24 14:51
Оценка:
A>
A>document.querySelector("dialog").style.textAlign = "center";
A>document.querySelector("dialog").querySelector("div").querySelector("textarea").style.width = "100%";
A>document.querySelector("dialog").querySelector("div").querySelector("textarea").style.textAlign = "center";
A>document.querySelector("dialog").querySelector("div").querySelector("textarea").style.resize = "none";
A>document.querySelector("dialog").querySelector("div").querySelector("textarea").readOnly = true;
A>document.querySelector("dialog").querySelector("div").querySelector("textarea").value = VarInput.split("¤")[0];
A>


что случилось с переменными?
Re[4]: Анекдот
От: bnk СССР http://unmanagedvisio.com/
Дата: 05.12.24 15:35
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>И будет, например, после изменений проекта переменная dialog, содержащая не диалог, а панель, чтобы удивлять того, кому придётся поддерживать код.


Во втором случае у тебя будет syntax check на уровне среды.
А вот в prop('readOnly') или prop('value') — вообще строки, опечататься можно как дважды два.
Также, что там насчет автокомплита? Что я могу написать после .prop('

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

Ну в любом случае ни первое ни второе в массовом производстве вроде как давно не используется

A>В целом, jQuery это аналог LINQ из дотнета. Только LINQ это декларативная запись схемы преобразований не DOM, а коллекций. И, соответственно, она нужна в core языка, а не внешнем браузерном API, как jQ. Другое отличие — LINQ пилит одна из лучших инженерных команд (хотя и их попрекают, хе-хе, всякими отсутствиями макросов), а браузерный API для ES пилит один из самых упоротых комитетов.


IMHO у них общего только "номадная" запись (fluent interface, цепочка)
Отредактировано 05.12.2024 15:36 bnk . Предыдущая версия .
Re[5]: Анекдот
От: Alekzander  
Дата: 05.12.24 17:41
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Во втором случае у тебя будет syntax check на уровне среды.

bnk>А вот в prop('readOnly') или prop('value') — вообще строки, опечататься можно как дважды два.

Это какой такой syntax check? Открой Гугл, нажми F12 и напиши:

const inp = document.querySelector('textarea[title="Search"]'); inp.value = 42;


Посмотри на обновление строки (для верности), потом нажми F5 и напиши:

const inp = document.querySelector('textarea[title="Search"]'); inp.volue = 42;


И что там синтакс-чекнула среда?

bnk>Также, что там насчет автокомплита? Что я могу написать после .prop('


Во-первых. У динамических языков нет никакого автокомплита. Есть фантазии отдельных разрабов отдельных IDE о том, что стандартно, а что нет.

У меня, например, VS 2022 (это последняя версия студии) ругается на то, что "text" is not a valid value for the "background-clip" property. А уж что она думает про атрибуты SVG, заданные в стилях, я даже повторять не буду за дурой. А вот MDN, W3 и, главное, все браузеры думают, что всё нормально.

Так что, надо просто пользоваться IDE, которая в курсе существования jQuery, и будет счастье, и автокомплит, и проверка валидности пропертей (по представлениям разработчиков этой IDE).

Во-вторых. Если бы разработчики браузерного API и ES в целом были хорошими разработчиками, они бы добавили стрингайзеры, как, например, сделано в TIS. Но это же люди, которые придумали метод querySelectorAll. Что от них хорошего можно ждать в принципе.

bnk>Переменные также легко переименовываются, в отличие от строк-аргументов.


А кто будет проверять соответствие имени переменной селектору? Который, ВНЕЗАПНО, такая же строка. Вот и приплыли. Как ни крути, а введение переменной для результата селектора это нарушение DRY, денормализация, т.е. источник конфликтов.

bnk>Ну в любом случае ни первое ни второе в массовом производстве вроде как давно не используется


Лично мне всё равно, что там думает масса

jQuery это The Right Thing, потому что, по сути, декларативный DSL для манипуляций DOM'ом. В отличие от императивного ванилина с переменными, циклами и прочими окаменелостями.

A>>В целом, jQuery это аналог LINQ из дотнета. Только LINQ это декларативная запись схемы преобразований не DOM, а коллекций. И, соответственно, она нужна в core языка, а не внешнем браузерном API, как jQ. Другое отличие — LINQ пилит одна из лучших инженерных команд (хотя и их попрекают, хе-хе, всякими отсутствиями макросов), а браузерный API для ES пилит один из самых упоротых комитетов.


bnk>IMHO у них общего только "номадная" запись (fluent interface, цепочка)


Это симптом, надводная часть айсберга. Общее то, что это, повторюсь, DSL для декларативной записи преобразований. Поэтому и запись схожа.

Можно взять SQL. Там запись будет существенно отличаться, а идея будет та же самая.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Отредактировано 05.12.2024 18:01 Alekzander . Предыдущая версия . Еще …
Отредактировано 05.12.2024 17:46 Alekzander . Предыдущая версия .
Re[3]: Анекдот
От: Alekzander  
Дата: 05.12.24 17:42
Оценка:
Здравствуйте, koenig, Вы писали:

A>>
A>>document.querySelector("dialog").style.textAlign = "center";
A>>document.querySelector("dialog").querySelector("div").querySelector("textarea").style.width = "100%";
A>>document.querySelector("dialog").querySelector("div").querySelector("textarea").style.textAlign = "center";
A>>document.querySelector("dialog").querySelector("div").querySelector("textarea").style.resize = "none";
A>>document.querySelector("dialog").querySelector("div").querySelector("textarea").readOnly = true;
A>>document.querySelector("dialog").querySelector("div").querySelector("textarea").value = VarInput.split("¤")[0];
A>>


K>что случилось с переменными?


Они не нужны. Только первому и второму разработчику они не нужны на разных витках диалектической спирали
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re[6]: Анекдот
От: bnk СССР http://unmanagedvisio.com/
Дата: 05.12.24 18:19
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>И что там синтакс-чекнула среда?


Ну я имел в виду, среда разработки (IDE)

bnk>>Также, что там насчет автокомплита? Что я могу написать после .prop('


A>Во-первых. У динамических языков нет никакого автокомплита. Есть фантазии отдельных разрабов отдельных IDE о том, что стандартно, а что нет.

A>У меня, например, VS 2022 (это последняя версия студии) ругается на то, что "text" is not a valid value for the "background-clip" property. А уж что она думает про атрибуты SVG, заданные в стилях, я даже повторять не буду за дурой. А вот MDN, W3 и, главное, все браузеры думают, что всё нормально.
A>Так что, надо просто пользоваться IDE, которая в курсе существования jQuery, и будет счастье, и автокомплит, и проверка валидности пропертей (по представлениям разработчиков этой IDE).
A>Во-вторых. Если бы разработчики браузерного API и ES в целом были хорошими разработчиками, они бы добавили стрингайзеры, как, например, сделано в TIS. Но это же люди, которые придумали метод querySelectorAll. Что от них хорошего можно ждать в принципе.

Ну так typescript же сейчас везде? Зачем вообще на javascript писать. А там все нормально, статическая типизация.

bnk>>Переменные также легко переименовываются, в отличие от строк-аргументов.


A>А кто будет проверять соответствие имени переменной селектору? Который, ВНЕЗАПНО, такая же строка. Вот и приплыли. Как ни крути, а введение переменной для результата селектора это нарушение DRY, денормализация, т.е. источник конфликтов.


Введение константы ничего особо не портит IMHO. Там же стоит const не var.

bnk>>Ну в любом случае ни первое ни второе в массовом производстве вроде как давно не используется


A>Лично мне всё равно, что там думает масса

A>jQuery это The Right Thing, потому что, по сути, декларативный DSL для манипуляций DOM'ом. В отличие от императивного ванилина с переменными, циклами и прочими окаменелостями.

Здесь не могу ничего сказать. Я обычно сталкивался с проектами где используется какой-то UI Framework, React там, Vue.
Рендеринг там, как правило, везде делается через Virutal DOM, и зачем бы мне там понадобился jQuery я слабо представляю.
Я в том смысле, что к "настоящим" элементам DOM все равно больше никто не обращается из своего кода.
Потому, что это очень непроизводительно, для более-менее больших проектов неприемлемо.
Отредактировано 05.12.2024 18:27 bnk . Предыдущая версия . Еще …
Отредактировано 05.12.2024 18:26 bnk . Предыдущая версия .
Re[7]: Анекдот
От: Alekzander  
Дата: 05.12.24 19:13
Оценка:
Здравствуйте, bnk, Вы писали:

A>>И что там синтакс-чекнула среда?


bnk>Ну я имел в виду, среда разработки (IDE)


Никто не может быть святее Папы Римского. И среда разработки не может синтакс-чекнуть глубже, чем среда исполнения. А среда исполнения говорит, что всё ОК. Это, короче, тот же аргумент, что и автокомплит. И точно так же он разбивается о динамическую природу языка.

bnk>>>Также, что там насчет автокомплита? Что я могу написать после .prop('


A>>Во-первых. У динамических языков нет никакого автокомплита. Есть фантазии отдельных разрабов отдельных IDE о том, что стандартно, а что нет.

A>>У меня, например, VS 2022 (это последняя версия студии) ругается на то, что "text" is not a valid value for the "background-clip" property. А уж что она думает про атрибуты SVG, заданные в стилях, я даже повторять не буду за дурой. А вот MDN, W3 и, главное, все браузеры думают, что всё нормально.
A>>Так что, надо просто пользоваться IDE, которая в курсе существования jQuery, и будет счастье, и автокомплит, и проверка валидности пропертей (по представлениям разработчиков этой IDE).
A>>Во-вторых. Если бы разработчики браузерного API и ES в целом были хорошими разработчиками, они бы добавили стрингайзеры, как, например, сделано в TIS. Но это же люди, которые придумали метод querySelectorAll. Что от них хорошего можно ждать в принципе.

bnk>Ну так typescript же сейчас везде? Зачем вообще на javascript писать. А там все нормально, статическая типизация.


Вообще-то, ТС написал:

Планируется делать новый сайт с кучей JavaScript


Так что, typescript тут офтопик. Это во-первых. Во-вторых, кажется, Pzz хорошо сформулировал: слухи о смерти Си и Джаваскрипта сильно преувеличены.

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

Не надо, короче, тащить в браузер бизнес-логику. Но мы, к сожалению, живём в мире, где для определения чётности есть NPM Package с 2 миллионами загрузок в месяц.

А самое главное, что Typescript это такая же нашлёпка сверху по отношению к среде выполнения, как и jQuery, только её поддерживает та же контора, что пишет VS Code, которым ты пользуешься, и поэтому кажется, что это всё "системно" и "стандартно".

bnk>>>Переменные также легко переименовываются, в отличие от строк-аргументов.


A>>А кто будет проверять соответствие имени переменной селектору? Который, ВНЕЗАПНО, такая же строка. Вот и приплыли. Как ни крути, а введение переменной для результата селектора это нарушение DRY, денормализация, т.е. источник конфликтов.


bnk>Введение константы ничего особо не портит IMHO. Там же стоит const не var.


Ещё раз. Возьмём твой код:

const dialog = document.querySelector('dialog');


Завтра другой программист изменит разметку (вместе с поведением приложения), и там будет какой-нибудь <div class="side-panel">, это будет боковая панель, а не диалог. Потом он быстренько подправит селектор, или даже за него это сделает вумный рефакторинг тул, и получится следующее:


const dialog = document.querySelector('div.side-panel');


А переменная останется под именем dialog. Это и есть тот самый потенциальный конфликт, к которым приводит нарушение DRY и денормализация в коде.

bnk>>>Ну в любом случае ни первое ни второе в массовом производстве вроде как давно не используется


A>>Лично мне всё равно, что там думает масса

A>>jQuery это The Right Thing, потому что, по сути, декларативный DSL для манипуляций DOM'ом. В отличие от императивного ванилина с переменными, циклами и прочими окаменелостями.

bnk>Здесь не могу ничего сказать. Я обычно сталкивался с проектами где используется какой-то UI Framework, React там, Vue.

bnk>Рендеринг там, как правило, везде делается через Virutal DOM, и зачем бы мне там понадобился jQuery я слабо представляю.
bnk>Я в том смысле, что к "настоящим" элементам DOM все равно больше никто не обращается из своего кода.
bnk>Потому, что это очень непроизводительно, для более-менее больших проектов неприемлемо.

Виртуальный DOM это виртуальный DOM, в том коде, который я скопировал под заголовком "Анекдот" им и не пахло. Как и Тайпскриптом, кстати.

Если ты виртуализируешь DOM, ты уже не будешь спрашивать, "Делаю сайтик, зашкварно ли использовать jQuery".

Что я думаю про саму идею виртуализации, это я оставлю при себе, тут всё-таки не КСВ.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re: Стоит ли использовать jQuery в 2024 году?
От: _NN_ www.nemerleweb.com
Дата: 05.12.24 23:22
Оценка:
Здравствуйте, The Minister, Вы писали:

TM>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?


В подавляющем большинстве веб-сайтов есть jQuery: https://x.com/Star_Knight12/status/1838903658605379934
Этого будет достаточно для убеждения ?

Думаю тут будет более уместен вопрос почему есть куча JavaScript и не планируется использовать что-нибудь готовое из фреймворков или библиотек для написания веб сайтов.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: Анекдот
От: rFLY  
Дата: 07.12.24 10:02
Оценка:
Здравствуйте, koenig, Вы писали:

K>что случилось с переменными?

Да ладно переменные, что случилось с селекторами???
const elem = document.querySelector("dialog div textarea");
elem.style.cssText = "width: 100%; text-align: center; resize: none";
elem.readOnly = true;
elem.value = VarInput.split("¤")[0];
Re[4]: Анекдот
От: koenig  
Дата: 08.12.24 08:50
Оценка:
K>>что случилось с переменными?
FLY>Да ладно переменные, что случилось с селекторами???
FLY>
FLY>const elem = document.querySelector("dialog div textarea");
FLY>elem.style.cssText = "width: 100%; text-align: center; resize: none";
FLY>elem.readOnly = true;
FLY>elem.value = VarInput.split("¤")[0];
FLY>


мы об одном и том же
Re[5]: Анекдот
От: rFLY  
Дата: 08.12.24 14:17
Оценка:
Здравствуйте, koenig, Вы писали:

K>мы об одном и том же

Я дополнил твой вопрос. Если причину, почему не используется переменная, еще можно придумать, то получение элемента по селектору как в "анекдоте" объяснить сложно.
Что могло заставить написать так
document.querySelector("dialog").querySelector("div").querySelector("textarea")


вместо
document.querySelector("dialog div textarea");

?
Re[6]: Анекдот
От: Alekzander  
Дата: 08.12.24 15:22
Оценка:
Здравствуйте, rFLY, Вы писали:

K>>мы об одном и том же

FLY>Я дополнил твой вопрос. Если причину, почему не используется переменная, еще можно придумать, то получение элемента по селектору как в "анекдоте" объяснить сложно.
FLY>Что могло заставить написать так
FLY>
FLY>document.querySelector("dialog").querySelector("div").querySelector("textarea")
FLY>


FLY>вместо

FLY>
FLY>document.querySelector("dialog div textarea");
FLY>

FLY>?

Ненавижу объяснять шутки, но, видимо, придётся.

Сочетание невысокой квалификации автора кода ("Что могло заставить написать так?") с предубеждением против использования jQuery, которая спроектирована и написана несопоставимо грамотнее, создаёт комический эффект ("Анекдот:").

Смешнее было только, когда Резига не взяли в какую-то говноконтору. (Плохо гномиков сортировал, кажется).
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Re[7]: Анекдот
От: rFLY  
Дата: 08.12.24 16:33
Оценка:
Здравствуйте, Alekzander, Вы писали:

A>Сочетание невысокой квалификации автора кода ("Что могло заставить написать так?") с предубеждением против использования jQuery, которая спроектирована и написана несопоставимо грамотнее, создаёт комический эффект ("Анекдот:").

Так с невысокой квалификацией и без предубеждения против использования jQuery гораздо смешнее выходит:
$('dialog')
    .find('div')
    .find('textarea')
        .addClass('width-100');
$('dialog')
    .find('div')
    .find('textarea')
        .addClass('text-center');
$('dialog')
    .find('div')
    .find('textarea')
        .addClass('no-resize');
$('dialog')
    .find('div')
    .find('textarea')
        .prop('readOnly', true);
$('dialog')
    .find('div')
    .find('textarea')
        .prop('value', VarInput.split("¤")[0]);


Разве нет?
Re[8]: Анекдот
От: Alekzander  
Дата: 08.12.24 17:18
Оценка:
Здравствуйте, rFLY, Вы писали:

A>>Сочетание невысокой квалификации автора кода ("Что могло заставить написать так?") с предубеждением против использования jQuery, которая спроектирована и написана несопоставимо грамотнее, создаёт комический эффект ("Анекдот:").

FLY>Так с невысокой квалификацией и без предубеждения против использования jQuery гораздо смешнее выходит:
FLY>
FLY>$('dialog')
FLY>    .find('div')
FLY>    .find('textarea')
FLY>        .addClass('width-100');
FLY>$('dialog')
FLY>    .find('div')
FLY>    .find('textarea')
FLY>        .addClass('text-center');
FLY>$('dialog')
FLY>    .find('div')
FLY>    .find('textarea')
FLY>        .addClass('no-resize');
FLY>$('dialog')
FLY>    .find('div')
FLY>    .find('textarea')
FLY>        .prop('readOnly', true);
FLY>$('dialog')
FLY>    .find('div')
FLY>    .find('textarea')
FLY>        .prop('value', VarInput.split("¤")[0]);
FLY>


FLY>Разве нет?


Не сразу понял мысль. Так прогресс достигается шаг за шагом.
I'm a sewer mutant, and my favorite authors are Edgar Allan Poo, H.G. Smells and George R.R. Martin.
Отредактировано 08.12.2024 17:19 Alekzander . Предыдущая версия .
Re[2]: Стоит ли использовать jQuery в 2024 году?
От: Qulac Россия  
Дата: 09.12.24 05:32
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, The Minister, Вы писали:


TM>>Планируется делать новый сайт с кучей JavaScript. Возникает вопрос: использовать jQuery или чистый JS?


bnk>Почему-то регулярно этот вопрос задается, даже здесь.

bnk>JQuery не нужен (все что в нем было хорошего, уже давно добавлнено в язык), чистый JS тоже (помтоу что это ужас).
bnk>Используй TS (typescript). Тем более если кода много (тогда статическая типизация просто необходима)
bnk>Современные инструменты его умеют из коробки, не сложнее чем javascirpt.

На ютубе даже можно посмотреть примеры разработки spa-приложений на чистом ts. Я тоже с этим экспериментировал — нормально получается.
Программа – это мысли спрессованные в код
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.