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 . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.