Порождение недосамоучки
Почему мне не нравится jQuery
Взглянули гости на пейзаж
Сергей Михалков.
И прошептали: «Ералаш!»Слон-живописец
Я считаю, что jQuery — это прекрасный инструмент… для чернового прототипирования. То есть, если мы хотим примерно представить себе, как на animate()
и посмотреть.
Но если мы решили сохранить эффект раздвигания на готовом сайте — нужно писать нормальный JavaScript. Или использовать стороннюю библиотеку, которая прицельно заточена под анимацию.
jQuery напоминает картину из басни Сергея Михалкова
В итоге получается нагромождение, которому позавидовали бы Франкенштейн и вавилонские застройщики.
Раньше существование jQuery можно было оправдать тем, что эта библиотека добавляла много вкусных возможностей в старые браузеры (вроде IE 6), где без них совсем тоскливо. Но теперь, с одной стороны, эти браузеры уже ушли в историю. А, с другой стороны, сама jQuery с версии 2.0 отказалась от поддержки древних браузеров, так что смысл её существования совсем теряется.
Если я буду перечислять все недостатки jQuery, у меня получится простыня длиннее, чем у покемона про PHP. Назову только один эпизод, после которого я точно понял, что не буду использовать jQuery, кроме как для черновых прототипов:
$('что-нибудь:even')
означает все нечётные элементы из соответствующего набора. То есть первый, третий, пятый и так далее. О как: «even» — нечётные. При этом $('что-нибудь:odd')
— наоборот, чётные. Представляете — в jQuery чёрное значит белое, а белое значит чёрное.
Это было бы полбеды, но почти такое же выражение $('что-нибудь:nth-child(even)')
при этом выбирает чётные элементы (второй, четвёртый, шестой и так далее), а $('что-нибудь:nth-child(odd)')
— нечётные.
Для тех, кто сразу не понял: одно и то же слово «even» в очень похожих контекстах обозначает прямо противоположные вещи. И со словом «odd» — та же фигня. Это как если бы в математике выражение «2 + 2» обозначало бы то «сложить два и два», то «вычесть два из двух». Или если бы вам приходилось одну и ту же свою руку называть то левой, то правой в зависимости от
JavaScript и технологии клиентского
Недавно я придумал слово «недосамоучка» и не знал, куда его применить. Теперь знаю — это Джон Резиг, автор jQuery.