Должен ли я конвертировать из MooTools в jQuery? [закрытый]

У меня довольно большая кодовая база, которая зависит от MooTools v1.11 и я собираюсь конвертировать в версию 1.2. Поскольку это довольно капитальный ремонт, я играл с идеей преобразования в jQuery.

У кого-нибудь есть советы о том, обновлять ли jQuery или просто придерживаться MooTools?

Я в основном использую MooTools для Ajax, перетаскивания и некоторых незначительных эффектов.

16 ответов


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

jQuery, похоже, находится на пути к тому, чтобы стать одной истинной библиотекой Javascript (учитывая, что MS и другие решили принять ее), поэтому, если это код, над которым вы собираетесь работать некоторое время, тогда, вероятно, неплохо переключиться в какой-то момент (хотя бы потому, что будет больше мест для получения помощи и кода плагина, так как он, скорее всего, будет оставаться популярным некоторое время, что поможет обеспечьте долгосрочную гибкость и ремонтопригодность вашего кода). Итак, учитывая, что вам все равно придется его конвертировать, сейчас может быть лучшее время для этого.

Я думаю, что jQuery становится на фреймворк для использования-это хорошо. Это не было бы моим выбором (мне тоже нравится MooTools), но это, безусловно, отличный код и определенно соответствует цели, по крайней мере, компетентности его конкурентов. Я рад видеть любую последовательность, и я буду двигать мой код на jQuery в какой-то момент.


Если он не сломан. Не исправляй это.

jQuery может иметь X или Y, но если все зависит от MooTools, у вас может быть много работы впереди, чтобы конвертировать из MooTools.

держите MooTools, если вы широко использовали его через свой сайт. Однако, если у вас есть только 2-3 страницы с незначительными последствиями... перемена может того стоить.


зачем делать переключатель? Я преобразовал базы кода с 1.11 на 1.2, и это довольно быстро и легко (и я использую его для более чем нескольких эффектов).

jQuery может быть принят MS, согласно одному сайту он работает лучше в IE - но это не о том, насколько хорошо он работает с IE, это о том, насколько хорошо он работает для вашего сайта (IE является основным игроком на вашем сайте?).

вы знаете jQuery? Если вы этого не сделаете, вам придется переписать код с нуля, и вы будете полностью переписать код.

или вы просто пытаетесь придумать причины, чтобы сказать своему менеджеру ,что" мы должны сделать это в jQuery", потому что вы хотите его узнать?

Что касается" one true framework " - это нелепое утверждение, которое делают только пользователи, а не разработчики.


переключение с MooTools 1.1.1 на 1.2.1 не такое уж большое дело. http://github.com/mootools/mootools-core/wikis/conversion-from-1-11-to-1-2

есть даже уровень совместимости, который делает функцию кода MooTools 1.1.1 в 1.2.х. Возможно, вам придется вручную исправить несколько вещей здесь и там, но сравнительно незначительные.

переключение на jQuery, или YUI или DOJO, или что-нибудь еще потребует полностью выбросить весь код, который у вас есть, и заявить свыше. Ни один мой клиент никогда не допустит такого расточительства.

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

особенно с большой кодовой базой, важно сохранить ваш код хорошо организовано.

Я, конечно, довольно предвзят.


есть сайт об этом, описывающий различия в философии jqueryvsmootools.com

Я думаю, что это сводится к концу. Функциональный DOM-ориентированный подход или объектно-ориентированный JavaScript-подход.


как указывали другие, jQuery-это библиотека (в основном для игры с DOM), Mootools (1.2) - это полноценная JavaScript-платформа, которая позволяет организовать ваш код объектно-ориентированным способом и, таким образом, легко поддерживать его.

Я рекомендую вам прочитать это, чтобы действительно знать, что каждый из них на самом деле (jqueryvsmootools.com)

и эта другая ссылка, так что вы знаете, как получить лучшее из обоих миров ;):

http://ryanflorence.com/object-oriented-jquery-with-mootools-pigs-take-flight/

В конце концов это сводится к тому, что вы нужно. Моя общая рекомендация: если вам нужно захватить несколько быстрых фрагментов и фантазировать ваше веб-приложение jQuery в одиночку хорошо; если вы собираетесь сосредоточить свою разработку на javascript, вы должны действительно попробовать mootools: the code будет масштаб, и вы должны быть готовы.

To обновление кода из Mootools 1.1 вы можете использовать помощник по обновлению, он поможет вам идентифицировать код в конфликте через консоль javascript (mootools.net/blog/2009/12/31/mootools-1-1-upgrade-layer-beta/)

[извините за публикацию только 1 активной ссылки, это мой первый ответ]


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

кроме того, если вы посмотрите на этот сайт вы можете видеть, что в ведущем браузере IE jQuery имеет лучшую производительность, чем Mootools.

Это, как говорится, если все работает в Mootools v1.11, Почему вы вообще обновляете сценарии? Как говорится в предыдущем плакате, Если это не так сломанный...

Если он не работает должным образом в Mootools v1.11, как вы знаете, что это будет работать в Mootools v1.2 или даже jQuery, если на то пошло? Было бы стыдно поставить кучу времени разработки и либо иметь некоторые из тех же ошибок, либо вводить новые ошибки из-за используемой вами структуры.


в этот момент Slickspeed становится совершенно неважным, селекторы слишком быстры в любом случае. Также, чтобы вы знали, Sly от Herald Kirschner, член команды разработчиков Mootools только что выпустил Sly, селекторный двигатель, который бьет Sizzle. Материал об анимации, являющийся определяющим фактором для не Выбора mootools, который был оставлен одним из плакатов, был в основном задницей назад, Mootools был королем анимации в течение многих лет. Что бы вы ни выбрали, все сработает. Mootools имеет больше классическое чувство, которое я думаю, держит меня организованным, jQuery больше основан на функциях и не рискует в классы. Человек увеличивает собственные типы, а другой нет, другая стратегия, но это.

  • Даниил

Я вполне доволен Mootools. Я несколько раз испытывал соблазн попробовать jQuery, потому что все больше и больше людей используют его в эти дни, но почему-то я все еще не получаю хорошую функцию OO, как Mootools. Еще одна вещь, которая мне не очень нравится в jQuery, - это получение id с функцией доллара, добавив хэш-ключ(#). Это может быть проблематичным, если вы хотите создать HTML-идентификаторы с помощью рамок. На вашем месте, просто обновите до последней версии Mootools. Mootools не плохой библиотека вообще.


в вашем вопросе вы упомянули, что используете MooTools для "Ajax, перетаскивания и некоторых незначительных эффектов". Хотя Mootools может сделать это хорошо (и я могу получить взрыв за это), по-моему, вы на самом деле не используете Mootools по правильной причине. Мы используем Mootools в наших приложениях, и на самом деле мы не можем думать о замене JQuery для него. Если целью является написание объектно-ориентированного, долгосрочного поддерживаемого кода, который могут использовать другие приложения в вашей организации, Mootools выигрывает, не раздумывая.

и просто скорость селектора-неправильные критерии, чтобы судить (хотя я считаю, что Mootools сейчас там). В большинстве мест нашего кода у нас уже есть ссылки на элементы, которые мы хотим изменить. Большинство времени тратится на фактическое манипулирование DOM, как только у вас есть элемент, и в наших внутренних тестах (попытаемся опубликовать их) Mootools намного быстрее, чем JQuery в обычных операциях, которые мы выполняем. Наши приложения-это те, на которые мы полагаемся ранее встроенные элементы управления Mootools (созданные нами или другими) для создания экранов приложений с использованием данных, поступающих из веб-служб.


ослы, если у вас есть часы программиста, чтобы сделать перетяжку.
Это будет означать, что вы собираетесь переписать код с нуля. Это снова означает, что вам придется пройти цикл функциональности, обзора и тестирования, исправления ошибок и т. д. Тем не менее, одна из самых важных проблем программистов, не очень компетентных с JavaScript, заключается в том, что большинство фрагментов кода, обращающихся к элементам DOM, имеют тенденцию создавать утечки памяти (что является основным случаем для большинства веб-разработчиков). jQuery по своей природе многое делает для смягчения этого. Или, скорее, jQuery забирает JavaScript из JavaScript.
2-й. одна из наиболее веских причин перехода на jquery заключается в том, что вес кода JavaScript резко уменьшится. Это имеет смысл для страницы интенсивного кода на стороне клиента. Сжатый характер jquery позволит вам также легко просматривать код.
Компания, в которой я работаю (support.com) с тоннами кода Mootools. В начале 2008 года(после жарких часов обсуждая-за что я был против перехода на jQuery), мы начали переходить на jQuery поэтапно. До сих пор я ни о чем не жалел.


этот аргумент скучен, Mootools-O-O, поэтому люди формируют правильный фон O-O ценят его интеллект больше, чем люди из фона PHP4 или HTML.


единственная убедительная причина, по которой я мог бы дать такую миграцию, была бы, если бы переключение уменьшило количество кода, которое вы должны поддерживать, и/или упростило бы все. Обычно в таком переключении участвует много работы, поэтому вы хотели бы иметь возможность вернуться после всей этой работы и сказать: "Да, это того стоило."


вы должны принять этот выбор, исходя из назначения приложения.

jQuery удивительно круто для анимации, однако я чувствую, что Mootools более сложный, поэтому, если важно приложение, а не анимация придерживаться Mootools

скорость также является предметом этого. На сегодняшний день Mootools имеет немного более медленную производительность, но я не обращаю на нее внимания, пока Mootools 1.3 не будет выпущен.

проверка производительности последней рамки на http://slicktest.perrohunter.com


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

Если изменение между версиями MooTools действительно настолько крутое, то миграция вполне может быть оправдана.


статья, упомянутая на веб-сайте jqueryvsmootools, ставит ее довольно красиво:

Если jQuery делает DOM вашей игровой площадкой, MooTools стремится сделать JavaScript вашей игровой площадкой

Итак, в сочетании с ответом здесь "если он не сломался, не исправляйте его", я бы сказал, обращайтесь к своим потребностям, а не к общественному мнению.

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

кажется, что jQuery имеет возможность быстро позволить вам играть с DOM, но все дополнительные модные вещи и другие области работы (например, даты) требуют плагина.

Это помогло мне ответить на свой собственный вопрос!

есть некоторые области, где они не пересекаются, а жаль. GUIs легко собрать в jQuery, с прекрасными виджетами и анимацией. MooTools, я нахожу, либо имеют слишком мало функций, либо слишком тяжелы для общего использования в интернете.