Стоит ли переходить с MooTools на jQuery?

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

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

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

Обновление - мы не конвертировали заново и до сих пор используем MooTools.

Aldie 30.11.2010 01:07
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
18
1
7 789
16
Перейти к ответу Данный вопрос помечен как решенный

Ответы 16

Если не сломано. Не чините это.

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

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

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

PurplePilot 13.12.2009 12:50

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

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

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

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

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

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

Ответ принят как подходящий

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

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

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

jQuery никогда не был JavaScript Framework и вряд ли станет им. Это библиотека. И останется библиотека. И поэтому он красивый и привлекательный.

Sergey Ilinsky 04.10.2008 13:54

Энтони: Nokia пока что, но я подозреваю, что теперь за ними последуют еще многие MS, пригвоздившие свой флаг к полюсу jQuery.

Dan 04.10.2008 19:17

Google, Mozilla и многие другие используют jQuery. Microsoft и Nokia также объединяют его со своими инструментами.

Peter Boughton 17.02.2009 04:13

В какой части Google использует jQuery?

Joshua Partogi 22.07.2009 14:56

Какая, черт возьми, разница между JS Framework и JS Library?

Alon Gubkin 27.02.2010 20:22

@ Алон. если вы используете PHP, ezComponents = library, CakePHP = framework

Teej 05.03.2010 06:48

@Excel. Фреймворки имеют встроенную архитектуру и определяют способ создания приложений. Библиотека - это скорее служебная программа, работающая внутри фреймворка. В терминах Javascript DOM - это структура, а запрос - это библиотека. вы заметите, что вы не можете изменить способ работы DOM, но ... вы можете изменить способ работы библиотеки с надстройками и т. д. Думайте о фреймворке как о подсистеме.

RobertPitt 16.07.2010 15:04

Не забывайте, что SO использует jQuery ...

Paul Hoffer 26.08.2010 06:33

для получения дополнительной информации о различиях и сходстве между ними взгляните на jqueryvsmootools.com

mtness 05.11.2010 13:19

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

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

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

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

Что касается «единой истинной структуры» - это нелепое заявление, которое делают только пользователи, а не разработчики.

+1 и что касается того, что MS приняла его, это еще один момент, который заставляет меня стараться избегать использования jQuery, насколько это возможно.

Marco Demaio 29.03.2011 20:04

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

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

Переход с 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.x. Возможно, вам придется вручную исправить кое-что здесь и там, но это относительно несущественно.

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

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

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

Я, конечно, весьма пристрастен.

Вы должны выбрать этот выбор в зависимости от цели вашего приложения.

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

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

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

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

  • Даниэль

Об этом есть сайт с описанием различий в философии jqueryvsmootools.com

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

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

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

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

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

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

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

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

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

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

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

[Извините за размещение только одной активной ссылки, это мой первый ответ]

В статье, упомянутой на веб-сайте jqueryvsmootools, это довольно хорошо сказано:

If jQuery makes the DOM your playground, MooTools aims to make JavaScript your playground

Итак, в сочетании с ответом здесь «Если он не сломался, не чините его», я бы сказал, что нужно учитывать ваши потребности, а не общественное мнение.

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

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

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

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

Другие вопросы по теме