Основные библиотеки, инструменты и фреймворки JavaScript, которые вы должны знать. Javascript фреймворки

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

Angular

Жемчужина веб-программирования: даже некоторые рьяные последователи Angular сделали свой выбор в пользу React . React смог то, с чем не справился Angular - он позволяет разрабатывать фронтенд, не погружаясь в дебри и сложности фреймворка. React - JavaScript-библиотека, созданная Facebook, и основная ее цель - обеспечить комфортную работу с Shadow DOM. Для этого используется Virtual DOM, модель, при каждом изменении генерирующая список операций, которые необходимо провести над DOM, чтобы привести его к новому состоянию.

Если вас заинтересовал этот фреймворк и вы решили начать его изучение, мы подготовили для вас перевод по этой теме. В апреле 2017 Facebook перезапуск библиотеки, новый проект будет называться React Fiber.

Socket

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

Backbone - один из самых популярных фреймворков для веб-разработки, в основном благодаря двум причинам: принцип применения модулей очень прост для понимания, а значит, просто и обучение использованию самого фреймворка.

Vue

Библиотека для создания кроссбраузерных мобильных и веб-приложений, которая содержит большой набор готовых к использованию компонентов пользовательского интерфейса, которые могут быть скомбинированы или использованы по отдельности. Виджеты совместимы с любой серверной технологией: PHP, Java, ASP.NET, Ruby, Grails, ColdFusion, Python и т.д. В новой версии 5.1 добавлена поддержка TypeScript, JSON и Promise API.

PureMVC

От автора: прежде чем говорить про JavaScript фреймворки, давайте определимся, что я подразумеваю под словом «фреймворк», так как термин довольно размытый. Фреймворком я называю библиотеку, определяющую структуру всех аспектов и уровней приложения и облегчающая разработку. Уровни, в данном случае, это базы данных, модели, контроллеры, отображаемые элементы, представления, сети и т.д.

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

В хороших фреймворках заданы отлично продуманные параметры по умолчанию, они работают по принципу «конвенция превыше конфигурации». Одним из лидеров среди фреймворков является мой любимчик — Ruby on Rails. В сфере JavaScript таковыми являются Angular и Ember.

Теперь, когда мы все прояснили, я хотел бы ответить на вопрос, заданный в заголовке: Какие JavaScript фреймворки стоит освоить в 2018?

Мой ответ: Никакие.

Сейчас объясню, почему.

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

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

Учитесь использовать фреймворк только когда возникнет необходимость.

По моему мнению, чтобы стать востребованным разработчиком, нужно освоить более важные навыки:

Изучите все, что можно, о самом языке JavaScript: его сильные и слабые стороны, новые фичи. Научитесь создавать и применять различные структуры данных в JavaScript.

Изучите рабочую среду JavaScript, например, Node и браузеры, и насколько они однопоточные. Узнайте про их API и ограничения, про цикл событий, стек вызовов ОС. Убедитесь, что в теме средств разработки браузера вы чувствуете себя уверенно.

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

Узнайте о преимуществах функционального программирования и используйте их. По возможности старайтесь объяснять, а не указывать.

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

Научитесь создавать API с масштабируемыми данными (рассмотрите GraphQL).

Ознакомьтесь с работой CSS и научитесь минимизировать с его помощью JavaScript код приложений. Изучите новый Flexbox и Grid макеты. Узнайте больше об адаптивном дизайне UI.

Научитесь добавлять статические типы в JavaScript с помощью TypeScript (или Flow) и узнайте, где нужно сфокусироваться на типах, а где на тестировании.

Спасибо за ваше время.

Алины Архиповой “JavaScript Frameworks: How To Make Your Choice”.

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

Чем больше появляется фреймворков, тем больше вокруг них споров. В сообществе разработчиков много говорится о том, какие фреймворки наиболее эффективны для фронтенд-разработки. Основываясь на нашем исследовании, мы определили пятерку самых обсуждаемых фреймворков JavaScript. Их мы и описали в этой статье. Также в ней мы поделимся опытом Yalantis: расскажем о том, какие фреймворки предпочитают наши фронтенд-разработчики.

Обзор популярных фреймворков JavaScript

Каждый месяц выходит новый JavaScript-фреймворк. У собственников продуктов могут возникнуть сложности с выбором. Фреймворки это необходимые . Их задача состоит в ускорении и облегчении рабочего процесса, а также в повышении его продуктивности. Поэтому выбор фреймворка сильно влияет на эффективность и производительность процесса разработки. Давайте сравним топовые фреймворки JavaScript.

Angular

Angular это полнофункциональный фреймворк, выпущенный в 2010 году Google. Компания продолжает регулярный выпуск обновлений. Например, в марте 2018 последняя версия, Angular 6, принесла много улучшений, включая новый движок рендеринга для более быстрых и меньших по размеру приложений.

Сегодня Angular это один из самых популярных фронтенд-фреймворков. Многие разработчики выбирают Angular, поскольку рассматривают его как ключ к упрощению разработки. Благодаря его шаблонам специалисты по фронтенду могут с легкостью использовать Angular для создания динамических одностраничных веб-приложений со множеством изменяемых данных. Кроме того, в Angular есть Model-View-Controller (MVC, «Модель-Представление-Контроллер»), делающий тестирование более простым и доступным.

React.js

React.js это фреймворк, выпущенный командой Facebook в 2013 году. Крупные компании, включая Dropbox, PayPal, BBC, Atlassian и Instagram используют React в качестве основного инструмента фронтенда.

React прекрасно подходит для приложений и сайтов со сложной логикой представления. React также позволяет повторное использование компонентов в рамках приложения, благодаря чему разработчикам не приходится снова и снова создавать похожие компоненты. С помощью React разработчики могут фокусироваться на создании сложного функционала. Благодаря специальному алгоритму согласования под названием Virtual DOM, фронтенд-разработчики получают значительное увеличение производительности. Они могут разрабатывать быстрее, поскольку им не нужно обновлять представления после каждого небольшого изменения.

Vue.js

Vue.js это довольно новый фреймворк JavaScript, созданный Эваном Ю. Его главная цель – сделать разработку пользовательского интерфейса более организованной.

Многие специалисты по фронтенду утверждают, что это превосходный инструмент для новичков. Он очень прост для понимания, поскольку фокусируется на слоях представления. Vue.js работает без Babel – транспилятора, конвертирующего код JavaScript в старую версию ES5, которая запускается во всех браузерах. Отказ от использования Babel ускоряет разработку. Шаблоны Vue.js это валидный HTML, поэтому интеграция проходит легко. Этот фреймворк является хорошим решением для разработки легковесных приложений.

Ember.js

Фреймворк Ember.js был создан в 2011 году. Он был использован при создании сайтов многих хорошо известных компаний, включая Kickstarter, Heroku и LinkedIn.

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

Next.js

Next.js это необычный JavaScript-фреймворк. Он был разработан командой React в качестве дополнительного инструмента для рендеринга на стороне сервера. При работе с React и Next.js процесс разработки становится проще, как при использовании Vue.js.

Next.js имеет такие достойные упоминания особенности как автоматическое разделение кода и маршрутизация на основе страницы на стороне клиента. Кроме того, Next.js имеет полную поддержку CSS (под названием styled-jsx) для значительного облегчения стилизации интерфейса пользователя.

У этих пяти популярных библиотек и фреймворков JavaScript есть много общего. Например, все они имеют эффективную компонентную архитектуру и систему документации. Обеспечиваемый ими функционал нацелен на уменьшение времени разработки, что выгодно как собственникам продукта, так и разработчикам.

Выбор лучшего фреймворка для построения UI всегда должен зависеть от спецификации проекта, а также от навыков разработчика. Сейчас мы расскажем, что выбирают разработчики в Yalantis.

Какие фреймворки выбирают фронтенд-разработчики Yalantis

Команда по фронтенд-разработке в Yalantis часто работает с JavaScript-фреймворками. За последние несколько лет мы испытали разнообразные фреймворки, чтобы найти наиболее эффективный и выгодный инструмент.

Сегодня мы предпочитаем работать с двумя хорошо известными фреймворками JavaScript – Angular и React. Но почему именно с этими двумя? Давайте рассмотрим подробнее функционал, который они предлагают фронтенд-разработчикам.

Angular

Команда Google разработала один из наиболее востребованных на сегодняшний день фреймворков JavaScript. Angular приобрел заметную популярность благодаря поддержке двустороннего связывания данных, эффективным шаблонам и простой документации.

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

Двустороннее связывание данных. Эта особенность уменьшает количество времени, необходимого для написания кода. Разработчики могут вносить изменения в модели и представления одновременно, без ожидания, пока произойдет рендеринг UI-элементов.

TypeScript. Обучающие ресурсы и документация по Angular основаны на TypeScript, поэтому его трудно избежать. TypeScript некоторым разработчикам может показаться сложным, но ничего плохого в нем нет. Многие новые фичи становятся гораздо быстрее доступны для TypeScript, чем для других языков. Больше того, TypeScript обеспечивает шаблоны объектно-ориентированного программирования и опциональную статическую проверку типов, что полезно для больших приложений.

Удобные шаблоны. Шаблоны в Angular представлены в HTML, так что разработчики могут создавать функциональные приложения даже если они не слишком хорошо знают JavaScript. Браузер обрабатывает шаблоны и генерирует инструкции рендеринга, также известные как директивы.

Простая документация. Вся официальная документация по Angular короткая и простая, поэтому даже не слишком опытные разработчики могут быстро освоить основы.

Поддержка сильного сообщества. Фреймворк Angular это продукт Google, поэтому естественно, что у него много поклонников и людей, которые его поддерживают. Разработчики могут с легкостью найти множество советов в блогах и на форумах.

Подобьем итоги. Фреймворк Angular это топовый инструмент для фронтенд-разработки, предоставляющий много разных функций. Создание приложений с помощью Angular выгодно и бизнесу, и разработчикам. Прежде всего, Angular поддерживается Google, так что этот фреймворк регулярно обновляется, а его функционал постоянно совершенствуется. Во-вторых, в отличие от многих других фреймворков, Angular доступен под лицензией MIT. Для бизнеса и разработчиков важно использовать лицензированные инструменты, поскольку они более надежны.

React

React это революционный JavaScript-фреймворк, который занимает лидирующие позиции в рейтингах фреймворков JavaScript. Он очень популярен среди пользователей GitHub, которые дали ему больше 95 тысяч звезд. Но что делает React таким особенным?

Повышенная производительность. В React есть уникальная особенность под названием Virtual DOM, которая повышает эффективность написания кода. Когда разработчики делают небольшие изменения, им не нужно обновлять представление полностью. Изменения проходят через Virtual DOM, который делает повторный рендеринг только нужной части страницы. Такой подход занимает меньше времени и сохраняет силы разработчиков.

JSX. Декларативный синтаксис JavaScript, который помогает создавать аккуратный и читаемый код. JSX также помогает комбинировать компоненты в один исполняемый файл.

Легкость изучения. Если разработчики знают JavaScript, они могут сразу приступать к использованию React. Разработчики могут пропустить мануалы, поскольку React прост и хорошо организован. Чтобы стать специалистом по React, вам нужно будет познакомиться с JSX.

Компоненты, которые можно использовать повторно. React, как и Angular, имеет основанную на компонентах архитектуру. Это означает, что при использовании фреймворка React разработчики могут рассматривать компоненты как строительные блоки для приложения. Самое большое преимущество этого в том, что готовые компоненты могут быть использованы в различных частях приложения. Это повышает скорость разработки.

Поддержка Facebook и сообщества. React курируется одним их технологических гигантов – Facebook. Команда Facebook знает, как работать со сложными веб-приложениями, поэтому фреймворк React ориентирован на увеличении производительности. Сообщество React одно из самых больших (если сравнивать с сообществами других популярных фреймворков для фронтенд-разработки). Есть много блогов, плагинов и SDK, имеющих отношение к React. Поэтому, если у разработчика возникнут какие-либо проблемы с этим фреймворком, он может с легкостью найти ответы в интернете.

В общем, фреймворк React это эффективный инструмент для разработки интерфейса пользователя. Его функционал улучшает разработку путем снижения времени, нужного для написания кода, а это большое преимущество для бизнеса и разработчиков. Кроме того, React легок в изучении, так что разработчики могут начинать использовать его без предварительной подготовки. Наконец, у него есть отличная поддержка сообщества и Facebook, поэтому у этого фреймворка точно будут обновления и новые интересные функции.

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

В первой части сравнительного исследования мы познакомились с AngularJS, Ember, Backbone.js и новичком React, показали несколько примеров кода и обсудили их слабые и сильные стороны. Во второй части мы взглянем на их долю рынка, сообщество поддержки и характер роста, чтобы помочь вам сделать правильный выбор для SPA.

Исследование рынка

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

Этот перечень демонстрирует зрелость всех проектов, но не дает представления об их общей популярности. Статистика от поисковых роботов обычно не дает точной картины, когда речь идет о бэкенд-фреймворках, но в нашем случае они находятся на стороне клиентов, и эта информация выглядит вполне правдоподобно.

Сравнивая wappalyzer.com с similartech.com и builtwith.com, мы получили сильно разнящиеся результаты. Чтобы представить их в наиболее понятном виде, мы сделали перерасчет итоговых цифр в процентном соотношении.

Согласно builtwith.com, React используется только 74 раза в ТОП-1,000,000 сайтов, в то время как wappalyzer.com обнаружил 18,582 случая использования React на всём пространстве веб. Все источники показывают, что Angularи Backbone являются самыми используемыми фреймворками. При этом similartech.com даже не упомянул двух других ввиду их мизерной доли рынка. Интересно, что Backbone.js используется чаще в ТОП-1,000 сайтов, чем в ТОП-1,000,000, если верить builtwith.com.

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

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

Когда речь заходит о коммитах, их число с момента первоначального развертывания играет огромную роль. Кпримеру, Ember имеетбольшевсегокоммитов. Впечатляюще! Но учтите, у Ember было на 6 лет больше, чтобы собрать эти коммиты, в сравнении с React. Однако у React больше звезд, несмотря на его относительную «юность».

Stackoverflow.com выставляет Angular в самом выгодном свете, приписывая ему вдвое больше публикаций, чем Backboneи Ember вместе взятым, и в 65 раз больше, чем React!

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

Google Trends всегда был отличным источником информации о популярности того или иного вопроса, а изучая его во временном аспекте, можно предположить, насколько популярным он будет и в будущем.

Что можно сказать наверняка, так это то, что Angular – самый популярный фреймворк. Также можно отметить, что популярность Backbone стабилизировалась и даже немного снизилась со временем. То же самое можно сказать и об Ember. Неужто они уже преодолели свой пик и постепенно утрачивают импульс?

Без сомнения, самый поразительный тренд демонстрирует React. В процессе создания статьи эта секция менялась трижды за 2 месяца:

Декабрь 2014: React постепенно догоняет Backboneи Ember. => Молодец!

Январь 2015: React ликвидирует отставание и обходит конкурентов. => Впечатляет!

Февраль 2015: Популярность React уходит далеко вперед от Backboneи Ember. Теперь есть шансы посоревноваться с Angular! => Нет слов!

Согласно Google Trends, React поднялся с нулевой отметки до четверти популярности Angular в течение 1,5 лет. Если React сохранит подобный прогресс, мы, вероятно, сможем увидеть интересную конкурентную борьбу двух лидеров.

There are plenty of Javascript Frameworks are available right now. It is challenging to know which one to use for which project. What framework do you think best for javascript? Well, it depends based on your project. You can see the list of Best Javascript Frameworks below. We have picked the based on some aspects of community strength, weight etc..

Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web. Vue.js is a library for building interactive web interfaces. It provides data-reactive components with a simple and flexible API.

Aurelia is a JavaScript client framework for web, mobile and desktop that leverages simple conventions to empower your creativity.

Ember.js is a JavaScript framework that greatly reduces the time, effort and resources needed to build any web application. It is focused on making you, the developer, as productive as possible by doing all the common, repetitive, yet essential, tasks involved in most web development projects.

A modest JavaScript framework for the HTML you already have.

NativeScript is an open source framework for building truly native mobile apps with JavaScript. Use web skills, like Angular and Vue.js, FlexBox and CSS, and get native UI and performance on iOS and Android.

Relay

Relay is a JavaScript framework for building data-driven React applications.

A functional and reactive JavaScript framework for cleaner code.

Babylon.js: a complete JavaScript framework for building 3D games with HTML 5 and WebGL.

Flight is a lightweight, component-based JavaScript framework that maps behavior to DOM nodes. Twitter uses it for their web applications.

Javascript MVC framework for web development.

A lightweight front-end framework for creating scalable and performant, responsive sites.

Onsen UI is a library of UI components to help you create beautiful hybrid and mobile web apps for both Android and iOS using Javascript.

Cylon.js is a JavaScript framework for robotics, physical computing, and the Internet of Things. It makes it incredibly easy to command robots and devices.

Jest

Jest is a JavaScript unit testing framework, used by Facebook to test services and React applications.

A minimalist, real-time JavaScript framework built for NodeJS, React-Native and the browser.

R

AVA

Bootbox.js is a small JavaScript library which allows you to create programmatic dialog boxes using Bootstrap modals, without having to worry about creating, managing or removing any of the required DOM elements or JS event handlers.

Rich set of javascript widgets with no dependency to a server side framework.

A minimalist aspect-oriented JavaScript mixin framework.

A JavaScript framework for making mobile web apps.

Highcharts JS is a JavaScript charting framework.

scripty2 is an open source JavaScript framework for advanced HTML-based user interfaces.

Crafty is a flexible framework for Javascript games.

Modernizr is a JavaScript library that detects HTML5 and CSS3 features in the user’s browser.

A minimal component-based JavaScript framework.

A port of the Processing visualization language to JavaScript.

Raphaël is a small JavaScript library that should simplify your work with vector graphics on the web.

RequireJS is a JavaScript file and module loader.

Snack

Snack is a small and simple JavaScript library. Though ideal for small projects, it’s got enough in it to build complex, cross-browser web apps.

Zepto

Zepto is a minimalist JavaScript library for modern browsers with a largely jQuery-compatible API.

Jasmine is a behavior-driven development framework for testing JavaScript code. It does not depend on any other JavaScript frameworks. It does not require a DOM. And it has a clean, obvious syntax so that you can easily write tests.

QUnit

QUnit is a powerful, easy-to-use JavaScript unit testing framework.

Mocha

Mocha is a feature-rich JavaScript test framework running on Node.js and the browser, making asynchronous testing simple and fun.

soma.js is a scalable javascript framework created to help developers to write loosely-coupled applications to increase scalability and maintainability.

Cross-Platform JavaScript Creative Coding Framework.

Jaggery is a framework to write webapps and HTTP-focused web services for all aspects of the application: front-end, communication, Server-side logic and persistence in pure Javascript.

A Javascript Framework for Building Brilliant Applications.

HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application.

A JavaScript application framework emphasizing modularity and encapsulation.

jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers.

Kango

cross-browser extensions framework named Kango. Purpose of Kango is make browser extensions development easier, cheaper and more enjoyable. With Kango you can create extension for all major browser in minutes using JavaScript only.

Cappuccino is a framework which makes it easy to create advanced web apps. With just a few lines of code you can have an app built with full undo and redo, truly amazing table views, drag and drop and every modern UI appearance and behaviour you might expect on the desktop.

ZK

ZK is the best open source Java framework for building enterprise web and mobile apps.

qooxdoo is a universal JavaScript framework with a coherent set of individual components and a powerful toolchain.

Durandal is a cross-device, cross-platform client framework written in JavaScript and designed to make Single Page Applications (SPAs) easy to create and maintain.

SproutCore is an open-source framework for building blazingly fast, innovative user experiences on the web.

Wakanda is an open-source web application framework for developing web and mobile applications in JavaScript.

Webix

Webix is a cross-browser JavaScript ui widgets library. Build fast mobile and desktop web applications that run on all touch devices with HTML5 framework.

React

A JavaScript library for building user interfaces.

Sammy

Sammy is a tiny javascript framework built on top of jQuery, It’s RESTful Evented Javascript.

Developers these days are spoiled with choice when it comes to selecting an MV* framework for structuring and organizing their JavaScript web apps.

Knockout is a JavaScript MVVM (a modern variant of MVC) library that makes it easier to create rich, desktop-like user interfaces with JavaScript and HTML. It uses observers to make your UI automatically stay in sync with an underlying data model, along with a powerful and extensible set of declarative bindings to enable productive development.

CorMVC is a jQuery-powered Model-View-Controller (MVC) framework that can aide in the development of single-page jQuery applications. It evolved out of my recent presentation, Building Single-Page Applications Using jQuery And ColdFusion, and will continue to evolve as I think more deeply about this type of application architecture.

Polymer lets you build encapsulated, re-usable elements that work just like HTML elements, to use in building web applications.

Matreshka is small and powerful client-side JavaScript framework that allows you to build single page applications as simply as possible.

Realtime application framework (Node.JS server).

Meteor is a complete open source platform for building web and mobile apps in pure JavaScript.

Sencha Ext JS is the most comprehensive MVC/MVVM JavaScript framework for building feature-rich cross-platform web applications. Ext JS leverages HTML5 features on modern browsers while maintaining compatibility and functionality for legacy browsers.

The Famous Framework is a new JavaScript framework for creating reusable, composable, and interchangeable UI widgets and applications. It balances declarative with imperative and functional with stateful, and it’s built on top of the Famous Engine.

The open source Opa Framework for JavaScript makes web development rapid and secure.

Vanilla JS is a fast, lightweight, cross-platform framework for building incredible, powerful JavaScript applications.

MEAN

MEAN is a framework for an easy starting point with MongoDB, Node.js, Express, and AngularJS based applications. It is designed to give you a quick and organized way to start developing MEAN based web apps with useful modules like Mongoose and Passport pre-bundled and configured.

GWT is used by many products at Google, including Google AdWords and Google Wallet. It’s open source, completely free, and used by thousands of enthusiastic developers around the world.

Ample SDK is a standard-based cross-browser JavaScript GUI Framework for building client-side Rich Internet Applications. It employs XML technologies (such as XUL, SVG or HTML5) for UI layout, CSS for UI style and JavaScript with DOM3 or jQuery-like APIs for application logic.

Flatiron is an adaptable framework for building modern web applications. It was built from the ground up for use with JavaScript and Node.js.

P

P is a small framework used to create browser-to-browser networks (as opposed to just a connection).

scaleApp is a tiny JavaScript framework for scalable and maintainable One-Page-Applications / Single-Page-Applications. The framework allows you to easily create complex web applications.

MooTools is a collection of JavaScript utilities designed for the intermediate to advanced JavaScript developer. It allows you to write powerful and flexible code with its elegant, well documented, and coherent APIs.

Minified.js is a client-side JavaScript library that’s both powerful and small. It offers jQuery-like features (DOM manipulation, animation, events, HTTP requests) and utility functions (collections, date&number formatting, date arithmetic, templates) with a single, consistent API.

Javelin is a frontend Javascript library developed at Facebook. It stresses strictness and scalability to try to solve, prevent, or mitigate some of the challenges we encountered as Facebook grew. Javelin is currently used by Facebook Mobile and Phabricator.

RightJS is a compact JavaScript framework for developing cross-browser web-applications.

A tiny foundation for creating reactive components with interpolation, data-binding, and plugins. It’s simple, flexible and easy to extend.

Sails is the most popular MVC framework for Node.js.

midori is an ultra-lightweight JavaScript framework that gets the job done without getting in your way.

The Javascript MVC microframework that does just enough.

A cross-browser JavaScript library for building rich Web and Mobile apps.

A JavaScript toolkit that saves you time and scales with your development process. Provides everything you need to build a Web app. Language utilities, UI components, and more, all in one place, designed to work together perfectly.

MochiKit is a highly documented and well tested, suite of JavaScript libraries that will help you get shit done, fast. We took all the good ideas we could find from our Python, Objective-C, etc. experience and adapted it to the crazy world of JavaScript.

Echo

Echo is a platform for building web-based applications that approach the capabilities of rich clients. The applications are developed using a component-oriented and event-driven API, eliminating the need to deal with the “page-based” nature of browsers. To the developer, Echo works just like a user interface toolkit.

Everything for building web and mobile apps with HTML5 and JavaScript.

Traditional Flux architecture built with ImmutableJS data structures.

JWt is a Java library for developing web applications.

PureMVC is a lightweight framework for creating applications based upon the classic Model, View and Controller concept.

D3.js

D3.js is a JavaScript library for manipulating documents based on data. D3 helps you bring data to life using HTML, SVG, and CSS. D3 emphasizes web standards and combines powerful visualization components with a data-driven approach to DOM manipulation, giving you the full capabilities of modern browsers without tying yourself to a proprietary framework.

Handlebars.js is an extension to the Mustache templating language created by Chris Wanstrath. Handlebars.js and Mustache are both logicless templating languages that keep the view and the code separated like we all know they should be.

An easy boilerplate for rolling your own JavaScript Library like jQuery, Zepto, Prototype, etc.

Rialto (Rich Internet Application Toolkit) is ajax based cross browser javascript widgets library. Because it is technology agnostic it can be encapsulated in JSP, JSF, .Net, Python or PHP graphic components.

A highly modular, loosely coupled, non-frameworky framework for building advanced JavaScript apps.

Dozer is a system for rapidly developing services to support front-end applications.

AmplifyJS is a set of components designed to solve common web application problems with a simplistic API.

Noder.io provides a lightweight and flexible core to create a scalable API of a lib, a module, an application or a framework. Noder.io is inspired (among others) by Angular and Pimple.

abaaso is a modern, lightweight Enterprise class RESTful JavaScript application framework.

A project base for building modern JavaScript applications.

SharepointPlus ($SP) is a JavaScript API for Sharepoint. This library offers some extended features for SharePoint entirely on client side (requires no server install). $SP will simplify your interactions with the Sharepoint Web Services and will help you to deal with the List Forms.

Marionette is a composite application library for Backbone.js that aims to simplify the construction of large scale JavaScript applications. It is a collection of common design and implementation patterns found in applications.

Riot

Riot brings custom tags to all browsers, including IE8. Think React + Polymer but with enjoyable syntax and a small learning curve.

pager.js is a JavaScript library based on KnockoutJS and jQuery that provides the possibility of creating single page applications in a declarative fashion.

CanJS

CanJS is a JavaScript library that makes developing complex applications simple and fast. Easy-to-learn, small, and unassuming of your application structure, but with modern features like custom tags and 2-way binding. Creating apps is easy and maintainable.

Lightweight and powerful data binding + templating solution for building modern web applications.

Epoxy is an elegant and extensible data binding library for Backbone.js.

OpenUI5 is an Open Source JavaScript UI library, maintained by SAP and available under the Apache 2.0 license. OpenUI5 lets you build enterprise-ready web applications, responsive to all devices, running on almost any browser of your choice.

script.aculo.us provides you with easy-to-use, cross-browser user interface JavaScript libraries to make your web sites and web applications fly.

YUI is a free, open source JavaScript and CSS library for building richly interactive web applications.

SmartClient combines the industry’s richest set of cross-browser UI components with a Java server framework to provide an end-to-end solution for building business web applications.

Backbone.js gives structure to web applications by providing models with key-value binding and custom events, collections with a rich API of enumerable functions, views with declarative event handling, and connects it all to your existing API over a RESTful JSON interface.

Brick

Brick is a collection of UI components designed for the easy and quick building of web application UIs. Brick components are built using the Web Components standard to allow developers to describe the UI of their app using the HTML syntax they already know.

Spine

Spine is a lightweight MVC library for building JavaScript web applications. Spine gives you structure and then gets out of your way, allowing you to concentrate on the fun stuff: building awesome web applications.

UIZE is pronounced “you eyes”, and is a FREE, powerful, open source, OOP JavaScript framework for browsers, NodeJS, and other JavaScripty places.

JavaScriptMVC is an open-source framework containing the best ideas in jQuery development.

Agility.js is an MVC library for Javascript that lets you write maintainable and reusable browser code without the verbose or infrastructural overhead found in other MVC libraries.

Underscore is a JavaScript library that provides a whole mess of useful functional programming helpers without extending any built-in objects.

Radian is a scalable AngularJS framework, perfect for multi developer projects.

Ractive was originally created at theguardian.com to produce news applications. A typical news app is heavily interactive, combines HTML and SVG, and is developed under extreme deadline pressure.

Geddy

The original MVC Web framework for Node – a simple, structured way to create full stack javascript applications.

Locomotive is a web framework for Node.js. Locomotive supports MVC patterns, RESTful routes, and convention over configuration, while integrating seamlessly with any database and template engine.

MontageJS is an elegant, open source HTML5 framework maintained by Montage Studio that rivals native SDKs, yet is easier to learn.

Chaplin is an architecture for JavaScript applications using the Backbone.js library. Chaplin addresses Backbone’s limitations by providing a lightweight and flexible structure that features well-proven design patterns and best practices.

Serenade.js is a client side framework built on the MVC pattern. It makes it simple to create rich client side applications by freeing you from having to keep the DOM up to date with your data through powerful data bindings.

Prototype takes the complexity out of client-side web programming. Built to solve real-world problems, it adds useful extensions to the browser scripting environment and provides elegant APIs around the clumsy interfaces of Ajax and the Document Object Model.

pyjs

pyjs is a Rich Internet Application (RIA) Development Platform for both Web and Desktop. With pyjs you can write your JavaScript-powered web applications entirely in Python.

jQWidgets provides a comprehensive solution for building professional web sites and mobile apps. It is built entirely on open standards and technologies like HTML5, CSS, JavaScript and jQuery.

Rico is an open source JavaScript framework used to create rich, highly interactive web applications. Rico is based on the Prototype Javascript Framework and is released under the Apache License.

eyeballs.js is a slim javascript library designed to sit on top of a javascript framework, such as jQuery or Prototype.

Choco

A delicious Javascript web framework made in Belgium!

The open source Junction framework is a conventions-over-configuration, synchronizing web MVC framework for JavaScript.

KineticJS is a fast, robust, HTML5 Canvas Library that is no longer maintained. The last stable version is v5.1.0, and it’s pretty darn solid.

Rendr

Rendr is a small library that allows you to run your Backbone.js apps seamlessly on both the client and the server. Allow your web server to serve fully-formed HTML pages to any deep link of your app, while preserving the snappy feel of a traditional Backbone.js client-side MVC app.

TerrificJS is a neat, clever piece of code that allows you to modularize your frontend code by solely relying on naming conventions.

Atom

Atom is compact JavaScript framework oriented on modern browsers, which allows to support quite broad list of features without keeping a lot of cruft necessary to implement them in old browsers.