Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, <Аноним>, Вы писали:
А>>У меня 139 calls (110 — при загрузке) на jquery-1.1.3.1.js. Дело-то совсем не во времени, а в кажущейся простоте, которую приписывают jQuery. Вот цитата из вашей статьи:
S>Налицо терминологическая путаница.
S>Под простотой обычно понимают простоту применения. Никто не пытался убедить, что jQuery сведет все NP-проблемы к P-проблемам.
S>Поэтому никакой "кажущести" нет. Простой код — он и есть простой. Простота кода обеспечивает скорость разработки и дешевизну отладки .
Какая ещё терминологическая путаница, в каком месте код jQuery проще?
S>Если мы говорим о вычислительной сложности, то оперировать количеством вызовов — бессмысленно. Потому что нас интересуют наблюдаемые характеристики. Простота прикладного кода — одна из таких наблюдаемых характеристик. Ее наблюдает программист, тестер, и менеджер проекта.
А мы разве говорили о вычислительной сложности? Мой посыл был продемонстрировать, что за обыкновенным тупым алертом стоит работа многих-многих-многих функций, которые при этом 139!!! раз вызываются. Чтобы обсчитать фреймворк и показать 1 алерт. Налицо сумасшедший контраст между задачей отобразить алерт и работой интерпретатора. И самое смешное, что такие контрастные примеры неоптимальной работы приводят сами популяризаторы фреймворков, вместо того, чтобы в узком профессиональном кругу обсуждать плюсы/минусы и демонстрировать действительно многомерные примеры прикладного использования, идёт рекламная кампания, направленная прежде всего на непрофессиональную часть javascript-сообщества (ньюбов) в стиле "проще-проще-проще" с соответствующими примитивными копипастными примерами.
S>Пользователь ничего этого не видит. Впрочем, он не видит и вызовов — все, что он видит — это производительность.
S>Производительность имеет очень мало общего с количеством вызовов. Она мерится в миллисекундах.
ОК, ещё раз повторю, может кто и услышит — не во времени дело, а
в соответствии кода задаче.
S>Неужели это неочевидно? Неужели есть иллюзия, что код с одним вызовом, который выполняется 1600ms, чем-то лучше, чем код с 200 вызовами, исполняющийся за 160ms?
Ой, мама, дорогая, мне нужно было только показать 1 алерт с текстом "Превед вам, медведы, от jQuery?", ты мне советуешь для этого использовать jQuery? А что, подумаешь, куча работы в фоне, зато милисекунды никто не заметит. Извращённое несоответствие кода задаче. По всем статьям: загрузка, излишняя работа интерпретатора, создание сотни объектов, 139 вызовов и проч. Этот пример — квинтэссенция бездумного javascript. C такими примерами нужно бороться, а не пропагандировать похожее примитивное использование библиотек. Так, как пока безуспешно стараются побороть с "bad practice" (eval, with и т.п.) в javascript, пользователь хреновый код без ошибок тоже не заметит, но это ж не отменяет тот факт, что код хреновый. Неужели это неочевидно?