Записки самоучки

Ноябрь 9, 2006

Какой JS-фреймворк выбрать?

Filed under: AJAX — 4matic @ 5:52 пп

В продолжение предыдущей темы возник вопрос. Какой фреймворк мне подойдет? Выбираю из двух jQuery и Prototype. По каким критериям мне его выбирать, при том, что я не знаю четко, по каким критериям выбирать, то что собираюсь изучать. Классический вопрос о курице и яйце. Как я уже заметил в своих комментариях — нет сравнительной таблицы по свйоствам и функционалу основных фреймворках. Чего хочу от js-фреймворка для своего проекта:

  1. Кроссброузерность. Ориентируюсь на новые распространенные броузеры. Хоть броузеры и новые, но объектные модели — старые разные.
  2. Легковесность. Чем меньше обмен трафиком, тем лучше всем: начиная от нагрузки на мой сервер и канал и заканчивая клиентом. Мой проект подразумевает достаточно большое количество кликов запросов страниц.
  3. Поддержка разработчиков. Должна вестись постоянная работа по оптимизации и доработке.
  4. Документируемость.
  5. Распространенность. Чем распрострененней, тем больше шансов найти заметки о проблеме, с которой столнешься при работе. Не решение будет качественным, другой вопрос, что решение может подтолкнуть к правильному пониманию и корректному решению.

Думаю, что я перечислил основные критерии, по которым выбираю. Я не озвучивал моменты типа «удобство использования», «корректность реализации», «функциональность и расширяемость» и т.д., потому что этими вопросами может задаваться тот человек, который уже в достаточной мере владеет вопросом.

Вот все таки правильно, что бы ответить на вопрос, нужно разложить все по полочкам. Список я построил в порядке важности для меня. Проанализируем.

  1. Кроссброузерность у обоих фреймворков одинаковая.
  2. Легковесность. Не могу сказать что массы фреймворков сильно отличаются. JQuery может как-то упаковывается, и ранние версии в базе не имели возможность работать с объектом XmlHttpRequest — нужен был плагин. Кстати в Prototype уже есть в базе то, что в jQuery идет в качестве плагина. Последняя версия JQuery 1.0.3 вроде бы уже работает с объектом XmlHttpRequest и весит неупакованная под 65к. Ясное дело, что есть комментарии, ненужные символы. JQuery можно скачать упакованным (около 15к) и не упакованным около (65к). Упаковка происходит с помощью какой-то утилиты, которая, как говорит мой знакомый есть на сайте. Еще раз повторюсь вопрос веса вопрос немного специфический: можно попробовать упаковать и Prototype и посмотреть на вес, но пока что утлиты по упаковке не нашел.
  3. Поддержка. Думаю, что одинаковая.
  4. У Prototype благодаря его поклонникам неплохая Википедия, а JQuery мне не понравилась реализация документации: вроде бы все есть и в тоже время все как-то запутанно и неудобно. С выходом последней версии JQuery, как я понял, объектная модель не актуальна, кстати подобная визуализация есть у Prtotype.
  5. Prototype распространенней: часто вижу объявления от работодателей, где одним из требований указывается «знание Prototype». Тот же WP использует Prototype. И не нужно рассказывать про 1Г леммингов, которые ничего не понимают. Да, я не понимаю, но я хочу понять, что есть, что бы потом понимать, как правильно и неправильно.

Что дал анализ. То, что выбор из двух вариантов будет основываться на субъективных факторах и на мнениях окружающих. Пока что я усышал два мнения окружающих в пользу jQuery и прочитал на некоторых форумах положительные отзывы о Prototype. Т.е. нет качественного повода, что бы выбрать один или другой фреймворк. А, может, проблема в том что фреймворки одинаковые и все дело в привычках и вкусах программиста? Очередной холивар из области что лучше: PHP vs Perl, Linux vs Windows.

Интересно, а с какими js-фреймворками вы работаете, и почему вы выбрали именно этот js-фреймворк?

Update: Чем больше читаю заметки, общаюсь и анализирую, тем больше склоняюсь к jQuery, потому что чаще слышу слова «легче», «функциональней», «собрал лучшее из существущего». Мешает тот факт, что с Prototype уже начал разбираться на примере WP, даже страницу тестовую оживил.;) Нужно попробовать с jQuery.

18 комментариев »

  1. >>но пока что утлиты по упаковке не нашел.

    http://dean.edwards.name/packer/

    комментарий от MiRacLe — Ноябрь 9, 2006 @ 6:07 пп

  2. Спасибо за ссылку!

    >можно попробовать упаковать и Prototype и посмотреть на вес
    Prototype 1.5.0 rc1 упакованный весит около 24к, а неупакованный 60к.

    комментарий от 4matic — Ноябрь 9, 2006 @ 6:14 пп

  3. MiRacLe, Вы правы насчет «какую именно функциональность надо сравнивать? в основном они все умеют “всё”, другое дело какими способами и какими усилиями.»

    комментарий от 4matic — Ноябрь 9, 2006 @ 6:17 пп

  4. Лучше Prototype ничего еще не придумали. Все остальное вариации на тему родителя

    комментарий от TheRabbit — Ноябрь 9, 2006 @ 7:06 пп

  5. >Лучше Prototype ничего еще не придумали. Все остально вариации на тему родителя
    Давайте конструктивно, с примерами: чем Prototype лучше jQuery?

    P.S. Все, кто решит написать комментарии. Холивар и голословные заявления буду просто удалять.

    комментарий от 4matic — Ноябрь 9, 2006 @ 8:02 пп

  6. http://visualjquery.com/ — очень внятно🙂

    По-поводу кто чем лучше — всё всегда зависит от того ЧТО требуется в конкретном случае🙂

    Как я говорил в чате — 4matic-у, на создание sortable drag/drop в прототипе у меня ушла неделя понимания КАК ОНО Работает?🙂 В jQuery это решилось в течение нескольких часов. Но это мой частный случай*

    (ну во-первых меня не устраивало то, что делали примеры, надо было сложнее. Много сложнее. А во-вторых, с тех пор я стал умнее :)))

    И я присоединяюсь к 4matic-у с вопросом: Чем лучше? Желательно примеры…

    Тут, кстати, кто-то в прошлом посте уже давал примеры — как делать таблицу-зебру, на 5-10 яваскриптах.. Везде разное…

    Кстати, для совсем уже лёгких решений — есть XAJAX, да и никто не мешает писать на голом яваскрипте под каждое конкретное требование.

    Вот пришла в голову мысль, открыть «мастер-класс» по jQuery :))

    комментарий от Влад — Ноябрь 9, 2006 @ 10:04 пп

  7. На сайте jQuery в блоге выложена статья «Why jQuery’s Philosophy is Better». Сравниваются как раз jQuery и Prototype (угадай, кто победил?🙂 ).

    http://jquery.com/blog/2006/08/20/why-jquerys-philosophy-is-better/

    комментарий от daddyAndrew — Ноябрь 21, 2006 @ 1:36 пп

  8. И еще: «Какую AJAX-платформу и какой язык программирования предпочитают люди?»

    http://injun.ru/?p=78

    комментарий от daddyAndrew — Ноябрь 21, 2006 @ 2:04 пп

  9. А чем dojo плох?

    комментарий от Mekhos — Декабрь 25, 2006 @ 12:04 пп

  10. В процессе гугиления наталкивался на отрицательные отзывы о dojo, также dojo сравнительно тяжелый фреймворк.
    Например: http://www.linux.org.ru/view-message.jsp?msgid=1673083

    комментарий от 4matic — Декабрь 25, 2006 @ 2:53 пп

  11. Как по мне dojo не просто тяжелый, а просто монстроуозный🙂 Он не «вертикальный» а «горизонтальный», если можно так выразится, данное свойство имеют 95% проектов над которыми работают «слишком много» людей

    комментарий от standov — Март 23, 2007 @ 11:54 пп

  12. Я например пересел с Prototype на jQuery… и все проекты переписал под него — и ничуть не жалею

    комментарий от Slava — Июль 16, 2007 @ 10:32 дп

  13. а я свой фреймворк помаленьку пишу🙂
    в сравнении с существующими:
    — очень простой и лёгкий
    — разделение содержания, оформления и поведения (в скриптах вы не найдёте никаких display=’none’ и тп.)
    — есть xslt, что позволяет максимально упростить html код
    — нет дрэгэндропа — я негативно отношусь к тасканию элементов (кривость существующих решений плюс проблемы с доступностью).

    комментарий от dark-demon — Июль 24, 2007 @ 6:52 пп

  14. рекомендую YUI (http://yui.sf.net) — мощнейшая библиотека модулей на все случаи жизни начиная от всяких удобных DOM и Event модулей заканчивая полноценным WYCIWYG редактором и модулем для drag-n-drop.

    комментарий от Parad0X — Сентябрь 5, 2007 @ 1:52 дп

  15. Ага, YUI… и 500кб кода вместе с ним (не говорю уже про изображения). Его можно использовать только в частных случаях (например, если datepicker потребуется или slider какой нибудь). Но брать за основу и отталкиваться от него — господа, не повторяйте чужих ошибок.
    Делал несколько проектов на Prototype и когда-то его считал пределом совершенства. Точно так же думал и о YUI через некоторое время. Когда поднялся вопрос о поиске альтернативного фреймворка, я изучил jQuery. Более изящного, компактного и гибкого решения я еще не встречал.
    Радует немаленькое количество плагинов и готовых решений.

    комментарий от chin — Сентябрь 16, 2007 @ 11:59 пп

  16. Я сейчас обратил внимание на extjs. Понравилось, что можно набрать нужные классы и траффик на клиента будет достаточно щадящий. А если еще вспомнить про кеширования статики и сжатие файлов. То проблема передачи избыточного количества байтов на клиента становится решаемой.

    комментарий от 4matic — Сентябрь 17, 2007 @ 10:23 дп

  17. jQuery вытесняет и скоро вытеснит все остальные фреймворки с рынка.

    Более идеального/правильного/удобного кода я еще не видел.

    Все остальное от лукавого.

    комментарий от drlov — Февраль 19, 2008 @ 4:22 пп

  18. Насколько я помню, jQuery появился значительно позже Prototype (?) Если так, то не думаю, что разработчики jQuery не учли слабых мест Prototype. Вряд ли бы начинали создавать что-то новое, не изучив предыдущий опыт…

    комментарий от Анатолий — Март 18, 2008 @ 11:38 дп


RSS feed for comments on this post. TrackBack URI

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

Создайте бесплатный сайт или блог на WordPress.com.

%d такие блоггеры, как: