Re[11]: jQuery – Javascript нового поколения
От: Zeroglif  
Дата: 12.08.07 11:37
Оценка:
M>Недавно было специально выделено время на очистку кода этого самого багтрекера. Не мудрствуя лукаво весь яваскрипт перевели на jQuery. Тот же код (по логике) неожиданно стал работаь во всех браузерах, заявленных на сайте jQuery Фирма сэкономила время на тестах, программисты сэкономили нервы. Все довольны

A если бы "неожиданно" не стал работать? Сколько лет вы бы ещё дожидались чужого дядю, который вам скрипт к опере привяжет? Я на самом деле рад, что jQuery вам там помог, раздражает то, что это объясняется невероятными способностями jQuery чудесного свойства, пусть бы они там и были. Я это вижу по-другому. Сначала вы набираете себе проектов по горло, затем разводите там свои зоопарки, с которыми не можете совладать, потом единый подход вырабатывать не хотите, к тому же ещё ошибки долго-долго поймать не получается... и в таком вот загнанном вспененном состоянии как-то само собой сразу тянет поэкономить время/деньги/нервы и тому подобное. В этом нет ничего плохого, вам было худо, вам дали таблетку, и вас отпустило. Только не надо всех поголовно считать больными и совать им в рот лекарство. Если кому-то вообще не нужна таблетка jQuery или она им нужна исключительно в наиболее тяжёлых случаях, то это и есть адекватный/оптимальный/точечный подход за который я и выступаю, в этом стиле и сам язык спроектирован. Если можешь, то сделай сам. А не можешь, то остаётся только верить в: "бросайте писать свой уродский "чистый javascript", идите в нашу церковь "другого чистого javascript-a", тут тепло и сухо" (цитата вымышлена).

AKS>>Zeroglif предложил целую кучу различных вариантов развития этой темы в конструктивном ключе — выбирайте на свой вкус!


M>Не вижу. Последний конструктив бы в http://rsdn.ru/forum/message/2616848.1.aspx
Автор: Zeroglif
Дата: 10.08.07
и в http://rsdn.ru/forum/message/2617158.1.aspx
Автор: AKS.
Дата: 10.08.07
. Все остальное сводилось к "а ведь ручками в 10-30 строчек кода легче было" без единого аргумента


Если под конструктивом подразумевается то, что я буду тешить тебя кодом на каждый чих, то во-первых строках моего письма в этом было отказано. Да и потом смотри, я говорил о том, что не javascript плох и сложен, а где-то на уровне программистов проблема, в которой не каждый и признается. И опа, мои слова подтвердил один из собеседников (мало времени, много проектов и т.п.), спасибо ему за это. Я говорил, что чужую библиотеку нужно знать очень хорошо, иначе можно напороться, потому что это javascript, и опа, ты же сам это и подтвердил, показав своё незнание всего одной простейшей функции из либы, и объясняя мой пример цитатами из ECMAScript, да ещё и не к месту. Какие аргументы. Они сами собой рисуются, я не виноват.

AKS>>Кстати, насчет тултипа — чем плоха, к примеру Соуденовско-Шуркаевская классика? Почему люди изобретают "тяжеленный велосипед с рамой от jQuery"?


M>Глядя наискосок вижу в этом тултипе сразу минимум одну проблему:

M>
M>Array.prototype.in_array = ...
M>


M>Встроенные объекты не рекомендуется расширять, потому что нарушается работа с этими элементами (например, JavaScript “Associative Arrays” Considered Harmful)


Полностью с тобой согласен. Не с тем, что прототип нельзя расширять, наоборот, можно, для этого делегирование и вшито в javascript, чтоб нам было удобно, а согласен с тем, что даже "наискосок" сразу находятся проблемки. Где угодно. И в тултипе этом, и в jQuery, и тем более в плагинах к ней и т.д. и т.п. Любая либа, как и любой код на javascript местами "fragile", ты же сам это подтверждаешь.

M>Вторая проблема. Обожаю, когда экономят два-три байта и называют это оптимизацией. Названия функций t, c, g, m просто таки говорят сами за себя.


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

M>Работа с document.all, причем весьма неэффективная. Тупо пробегается по всем DOM-элементам


Вне всякого сомнения.

M>В общем, неважно. На простеньком документе:

M>
M><div title="test tooltip">test tooltip</div>
M><!--и еще 34 таких же дива, всего 35 штук-->
M>

M>этот скрипт выдал мне 31.25 миллисекунд, 287 вызовов

M>То же самое с jQuery дало мне 62.5 миллисекунд, 1064 вызовов.

M>Если мне надо будет использовать _только_ тултип на странице, я, быть может, возьму предложенный скрипт. Если мне понадобится хоть какая-то еще дополнительная функциональность, я возьму jQuery

Согласен, но я бы сказал так:

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

p.s. И кстати, вся эта ветка (за исключением моих тупейших постов, конечно) лично для меня необычайно конструктивна, я в некоторой степени скорректировал свою позицию в отношении javascript вообще и либ, в частности, это интересно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.