Просмотров: 11108

Обзор и сравнение ведущих Javascript Frameworks. Заключение


Продолжая и заканчивая рассмотрение темы js-фреймворков, позвольте кратко рассмотреть несколько альтернатив текущим js-лидерам, которые весьма колоритны для того, чтобы о них преступно промолчать. Ещё раз повторю, что в области js-frameworks всё настолько быстро развивается-движется-изменяется, что, как говорит Алиса, “нужно бежать со всех ног, чтобы просто оставаться на месте”. Итак, сегодня самое интересное, из того, что не вошло в Top 6, исключительно по-моему субъективному мнению…

Google Web Toolkit

Google Web Toolkit – это набор инструментов с открытым исходным кодом, которые позволяют web-программистам сопровождать сложные приложения на JavaScript, являющиеся фронтендом для приложений написанных на Java. GWT постоянно кочует в топах зарубежных обзоров js-фреймворков, хотя мне пока до конца непонятно, что он там делает, т.к. фактически весь состоит из Java. К счастью, в русскоязычных обзорах таких некорректных параллелей не делают, но для определенности я решил хоть кратко упомянуть о нем и его природе здесь, раз уж так повелось, как говорят физики, “ по историческим причинам”.

Mochikit

Mochikit, очень быстро растущий в популярности легковесный фреймворк, у которого много объективных преимуществ по сравнению с его более старшими собратьями по цеху. Во-первых, очень качественная и обширная документация, которая делает его изучение чрезвычайно комфортным. Во-вторых, сотни тестов и очень современная, строго реализованная методология разработки и контроля позволяет быстро и легко находить возможные ошибки. Фреймворк находится под очень сильным впечатлением от Python — имеется много характерных именно для него трюков, которые делают здешнюю разработку очень понятной для питонистов (многое взято интересных идей от Twisted). И в заключение, его инновационная гибкость архитектуры такова, что его можно запросто адаптировать под любую задачу, вот что значит сделать “ правильный дизайн” – есть чему поучиться другим фреймворкам. Используется в TurboGears.

Node.js

Node.js самый необычный из всех, потому что это событийно-ориентированный I/O фреймворк на JavaScript-движке V8. Предназначен для создания масштабируемых сетевых приложений, таких как, например, веб-сервер. Node.js по целям использования полностью аналогичен с фреймворками Twisted на языке Python и EventMachine на Ruby. В отличие от большинства программ JavaScript, этот фреймворк исполняется не в браузере клиента, а на стороне сервера. Вообще — это настолько большое и перспективное направление, что мы обязательно вернемся к этой штукенции в отдельной развернутой статье.

 

Js-фреймворки переживают сегодня очень бурное развитие, например, ещё вчера очень популярный base2, сегодня уже во многом ушел в тень, — буквально каждый месяц появляются все новые перспективные новички и всё более и более интересные разработки в этой области. Поэтому закончить этот обзор хотелось бы ссылками на хорошие обзоры пока ещё новых и малоизвестных, но зато очень свежих по идеям и перспективных фреймворков, которые, кто знает, быть может, уже через год, будут лидерами этой стремительной гонки в развитии Web 2.0:

Немного философское заключение

Если посмотреть на статистику, с которой мы начали, то окажется, что примерно 12% web-программистов до сих пор предпочитают “только чистый JavaScript”. С одной стороны, сегодня это читается, как борьба за «чистый асм» в 90-ых между ассемблерщиками и сишниками. С другой стороны, высокоуровневые абстракции (коими в первую очередь должны являться фреймворки) могут помочь не только с преодолением рутины, но и, возможно в равной степени, с развитием массового отупения. Позвольте отдельно пояснить этот неприятный момент.

Очень жаль, но сегодня в среде web-программистов можно услышать фразы: «я выучил JavaScript по jQuery». В резюме многие пишут, что знают JS, а на деле внезапно выясняется, что это Prototype.js :-) При дополнительных вопросах на собеседовании еще могут начать гневно доказывать, что в нынешней реализации JS есть классы, ибо я постоянно пользую Class.create(). Поймите меня правильно, я не за возвращение в прошлое и хождение в лаптях, даже если так делали наши очень уважаемые предки.

Все же, конечно, грешить на то, что что-то там в браузере, дескать, «жрет много памяти» — сегодня не самый убедительный аргумент против фреймворков, т.к. сегодня человеко-часы стоят намного дороже, чем железо. Поэтому, фреймворк при правильном его использовании (устранение рутины и экономия времени разработки), — вполне себе разумная вещь.

Это я всё к тому, что лично мне одинаково неприемлемы крайности, такие как проповедование “чистого JS” с одной стороны, так и полная деградация и не знание даже элементарных основ устройства и принципов работы своего же фреймворка, — с другой. При серьёзном использовании фреймворка, если вы профессиональный web-программист, а не школьник-любитель, очень желательно знать и сам язык фреймворка. На этом очень важном утверждении-выводе и закончу сегодняшний обзор ведущих js-фреймворков, — всего вам хорошего в эти жаркие летние дни!

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru pikabu.ru blogger.com liveinternet.ru livejournal.ru google.com bobrdobr.ru yandex.ru del.icio.us

Подписка на обновления блога → через RSS, на e-mail, через Twitter
Теги: , , , ,
Эта запись опубликована: Понедельник, 1 августа 2011 в рубрике Программирование.

5 комментариев

Следите за комментариями по RSS
  1. Спасибо за обзоры.

    Но, есть небольшое допонение:

    node.js - такое же поделие как и похапе, это всего-навсего асинхронная однопоточная хрень, ориентирванная в основном на пэхэхпэшников, т.к. это общиезвестный факт, что в PHP нет и подобия инструмента для асинхронного программирования, в отличие, скажем, от Perl, Ruby и Python, у которых соответственно есть AnyEvent, EventMachine и Twisted.

  2. 1. В JavaScript нечего учить. Уж не знаю, автор, как долго ты учил синтаксис этого языка, что прям так пользователей фреймворков за людей не считаешь.

    2. И что, что GWT использует Java? Он транслируется в JavaScript.

    3. Казалось бы, причём здесь тухлый js-framework node.js и клиентские фреймворки?

    p.s. статья - отброс.

  3. Отличная статья. Полностью солидарен с автором во всем, в особенности с философским заключением. Крайности действительно вредны. Как минимум основы языка той или иной библиотеки/фреймворка, человек, претендующий себя называть веб-разработчиком объязан.

  4. Статья хорошая, я солидарен абсолютно с автором касаемо Google Web Toolkit. По нему сделал свой анализ, в котором сравнил его возможности с jQuery. Читать здесь - http://devdream.net/?p=74

  5. Node.js is a platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications. (c) nodejs.org

    Платформа - не фреймворк. Ты вообще не понимаешь о чем пишешь.

Оставьте комментарий!

Не регистрировать/аноним

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Зарегистрировать/комментатор

Для регистрации укажите свой действующий email и пароль. Связка email-пароль позволяет вам комментировать и редактировать данные в вашем персональном аккаунте, такие как адрес сайта, ник и т.п. (Письмо с активацией придет в ящик, указанный при регистрации)

(обязательно)


⇑ Наверх
⇓ Вниз