27 апр. 2008 г.

Отркыл для себя yahoo ui. Наезды на ExtJS.

В этом и нескольких следующих постах опишу свое знакомство с  Yahoo User Interface Library. Штука это, прямо скажу, замечательная, так как с недавних пор (после знакомства с ExtJS) меня радует все, что хорошо справляется со своими возможностями, но не тянет за собой ничего лишнего. Последнюю часть предыдущего предложения пожалуй опишу по подробней.

  • ExtJS - классный фремворк для создания Интранет приложений.

Почему? Представьте, что грид. или форма, используют большие массивы данных (в гридах примеры не нужны, в формах - список стран, городов и пр.). Представьте, теперь, что Вы, чтоб это дело не тормозило, сделали динамическую подгрузку данных с сервера. Ура, вроде проблема решена, но известный факт что javascript машины в разных браузерах работают по разному.

Например, стал свидетелем того, как мой layout из 3 колонок с вложенным в него деревом, гридом и панелью картинок (но помню как точно называется компонент) грузился в опере за 3-7 секунд в фоксе (из за известного повисания в начале перегрузки страницы) 10-15, а в safari - рекрдные 30-40, причем бэнчмарк для этих браузеров дали такие результаты:

firefox 2.0.0.14 - 25172.2ms +/- 2.3%

Safari 3.1.1 - 6174.0ms +/- 7.1%

Ещё интересный материал по теме http://celtickane.com/webdesign/jsspeed2007.php, результаты которых подходят по смыслу больше (сравнивается работа с массивами), но парадокса все равно не объясняют.

  • Если убрать из ExtJS стили он поплывет - спорное предположение, но не без основательное. Придумывать свои стили для ExtJS - сложная, рутинная работа.
  • ExtJS очень плохо описан - факт, если сравнивать с yahoo ui, например. Ничего тут удивительного нет, консультации и поддержка - основная статья доходов создателей фреймворка.

Вывод: ExtJS - один хороший фреймворк можно было бы разделить на два отличных (javascript и стили), но тогда, видимо, было б сложней продавать поддержку  - ведь все стало б быстрей и проще :). ExtJS рано или поздно выйдет на Enterprise уровень, где ему и место и станет библиотекой для Visual Studio и пр. монстров. И попытки ограничть круг использующих ExtJS просто ради забавы уже сейчас видны - 2.1 версия под новой лицензией.

 

YUI, на первый взгляд, этими вещами не страдает. Наоборот, есть хорошая и очень подробная документация с примерами. По каждому примеру Вас ведут за ручкуу на хорошем английском :(.

Есть даже блог разработчиков в котором публикуют новости из мира yui. Там например, я узнал, что есть сниппет для django использующий YUI Loader как Django Middleware - AJAX, блин, полный.

Главное, что меня привлекает в YUI - возможность наряду с javascript'овыми извращениями сохранять RESTful подход к созданию веб-приложений, оставлять лазейку, в случае если отключен javascript, картинки. Хотя это параноя.

2 комментария:

SalientBrain комментирует...

Ага, попробуйте сделать на YUI сложный layout c вложенными панелями/окнами с втоматическим конролем размеров, причем чтоб это было просто конфигурируемо. У вас все поплывет уже на первых этапах. А в ExtJS все на ура. Дефолтовая документация там супер, нормальный форум, хороший код. Я забросил остальные либы.

Ivan Markeev комментирует...

Ну дак и BSD против коммерческой.

Кстати, про поплывет - это ерунда. Вы пробовали YUI, или Вы просто ярый фанат ExtJS?

По мне дак грид компонент в YUI самый-самый, но сравнивать его с ExtJS, все равно, что сравнивать по скорости серенькую BMW 650 и красненькую BMW 650 - имхо глупо.

ExtJS ногами растет из YUI, беззастенчиво использует основу YUI и развивается под авторством людей работающих над YUI, но бесплатен, а потому всегда будет хуже.