С чего начинался jQuery (история jQuery)

JavaScript библиотека jQuery была выпущена 9 лет назад и с тех пор этот open source проект внес ощутимый вклад в мир веб-разработки. Безусловно интересно оглянуться назад и посмотреть на истоки jQuery. 

В апреле 2015 года создатель jQuery Джон Резиг (John Resigопубликовал самую первую версию jQuery от января 2006 года. В этой публикации Джон дополнил код воспоминаниями о том, как создавался jQuery.

Вот несколько фактов, которые можно узнать изучая комментарии Джона:

1. jQuery изначально назывался JSelect.

Но доменное имя JSelect.com было занято, а JQuery.com — нет. Первая буква в названии стала писаться строчной несколько позже, а сначала это был "JQuery".

2. jQuery имел лицензию Creative Commons.

Лицензия Creative Commons (CC) обычно связана с творческими работами: фотографии в стоках, PSD-шаблоны, наборы иконок и прочее. Но CC не подходил для открытого исходного кода. Более того, в это время уже существовали более подходящие для open source лицензии.

Кроме того, даже сами ребята из Creative Commons рекомендовали лицензировать программное обеспечение с открытым исходным кодом под MIT или GPL. Также Open Source Initiative, организация, занимающаяся продвижением идеи открытого исходного кода, выступала против публикации open source проектов под лицензией Creative Commons. Несмотря на все это, в 2006 году Джон опубликовал первую версию jQuery именно под этой лицензией. Автор jQuery признает, что использование лицензии CC Attribution-ShareAlike было неудачным выбором. Вскоре проект изменил лицензию на MIT.

3. jQuery создавался без системы управления версиями.

Сегодня невозможно представить ни один серьезный open source проект, который бы выпускался без использованиясистемы управления версиями (VCS). Но в то время автор jQuery даже и не думал использовать VCS для своего проекта! Справедливости ради отметим, что тогда даже большие проекты не использовали VCS. jQuery перешел на систему контроля версий (это был SVN) только с появлением первых контрибьютеров.

4. Название jQuery было «украдено» из другого проекта.

Название «jQuery» также носила SQL библиотека на Java. Но Джон Резиг узнал о конфликте имен только когда с ним связались создатели «Java-jQuery». Джон вспоминает, что тогда расстроился из-за всей этой путаницы.

5. jQuery был представлен публике в Нью-Йорке.

Публичный дебют jQuery состоялся в январе 2006 на конференции BarCamp в Нью-Йорке. BarCamp — это технологическая конференция, на которой обсуждались вопросы Интернета и open source технологий.

6. На jQuery сильно повлияли другие проекты с открытым исходном кодом.

В комментариях Джон упоминает несколько проектов, которые оказали наиболее сильное влияние на разработку jQuery:

  • Prototype JavaScript framework
  • moo.fx
  • XPath
  • Behaviour.js

Из всех этих проектов до сих пор активен только Prototype. Остальные проекты больше не разрабатываются. XPathперешел в статус рекомендаций W3C еще в 1999 и с тех пор не изменялся, в отличии от HTML и CSS.

7. Первым плагином jQuery стал «JSON for jQuery».

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

8. JSLint использовался в jQuery для контроля качества.

В своих современных комментариях к коду Джон Резиг отметил места, которые были, по его мнению, недостаточно хороши. Эта проблема в дальнейшем решалась с помощью JSLint — инструменту для анализа JS кода.

9. jQuery изначально не имел поддержки Ajax.

Асинхронные веб-приложения были в моде в начале-середине 2000-х. Сегодня многие веб-приложения работают асинхронно и этим уже никого не удивишь. Но тогда это была революционная идея, и многие веб-разработчики спешили запрыгнуть на подножку этого поезда. Все мы хотели избежать полной перезагрузки наших страниц, и обновлять только ту часть, которая требуется. Удивительно, но jQuery не имел поддержки Ajax в своей первой версии.

10. В коде jQuery не использовались фигурные скобки, если они были не обязательны.

Считается хорошей практикой использовать фигурные скобки в блочных конструкциях, даже когда этого не требует JavaScript. Использование фигурных скобок предотвращает ошибки, особенно при работе в команде. JSLint, о котором упоминалось выше, считает ошибкой отсутствие фигурных скобок. Однако в первой версии jQuery Джон предпочитал опускать опциональные фигурные скобки. «Мне действительно не нравились лишние скобки, — объясняет Джон, — Этот стиль кода мучил всех нас и стал причиной многих логических ошибок в дальнейшем.»

Так в первой версии jQuery вы можете найти такой код:

Код
if ( !b ) for ( var j in a ) this.style[j] = a[j]; else this.style[a] = b;

С фигурными скобками этот код должен быть написан так:

Код
if ( !b ) { for ( var j in a ) { this.style[j] = a[j]; } } else { this.style[a] = b; }

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

11. API jQuery 2006 года до сих пор поддерживается.

Ваши любимые методы jQuery, такие как .css(), .toggle(), .show() и .hide(), были в самой первой версии и все еще поддерживаются API. И за эти 9 лет в них не сломалась совместимость со старыми версиями. «Есть большая вероятность, что если вы возьмете код, который использует jQuery 2006 года, и подключите к нему современный jQuery, то он все еще будет работать», — говорит Джон.

+ 1 факт, который вы и так знаете:

jQuery делает веб-разработку проще.

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

Я помню, когда впервые появился jQuery. По-моему я тогда использовал Prototype + moo.fx. Или может это былDojo. Или может быть Prototype + script.aculo.us. А может быть я использовал их все вместе. Конечно, в какой-то момент я остановился на MooTools. В то время я обожал MooTools. Я даже написал книгу о нем. (Для тех двух покупателей моей книги: Мама и папа, вы великолепны, спасибо. Вы всегда меня поддерживали.) Но признаюсь, с jQuery все получалось гораздо быстрее. Еще jQuery был полезен тем, что я мог нанимать на работу менее опытных разработчиков, ведь у jQuery более простой синтаксис и концепция по сравнению с Protoype, Dojo или GWT.

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

Например, вы можете найти такие комментарии:

  • «Я хотел дать вам возможность писать очень простой код. Я был увлечен этим.»
  • «Я всегда любил метод .wrap(). При написании с нуля эта вещь доставляет реальную боль, и, конечно, очень удобно иметь ее в виде одного метода.»

jQuery был одним из немногих проектов с открытым исходным кодом, который подчеркивал важность хорошей документации. В то время дружелюбной документации в open source проектах просто не было, это не соответствовало культуре открытого исходного кода. Считалось: «Ты ж программист. Разберешься.»

Open source проект для разработчиков в середине 2000-х. И он думал об удобстве для разработчиков? Серьезно? Это было необычно. Дружественная к пользователю философия jQuery привлекла многих обычных веб-разработчиков вроде меня. И если вы сегодня посмотрите на успешные Open source проекты — Bootstrap,WordPressSassChrome (в котором даже есть встроенные инструменты разработчика) — их объединяет идея упростить жизнь разработчика.

jQuery это больше чем инструмент, который помогает строить современные веб-сайты и который сэкономил нам месяцы веб-разработки. Величайшее достижение jQuery не в том, что он используется миллионами сайтов. Это просто побочный результат. Для меня самое важное в jQuery — это то, что маленькая библиотека (всего 83 Кб) произвела фундаментальные изменения в культуре open source и индустрии веб-разработки. Я вовсе не думаю, что именно этого хотел добиться Джон. Но это то, что он может сказать спустя 9 лет после презентации своей скромной JavaScript библиотеки на BarCamp.

Джон Резиг сделал 40 комментариев к исходному коду первой версии jQuery. Все они находятся здесь: Annotated jQuery Release. Также вы можете прочитать об этом статью в блоге Джона. И еще больше интересных фактов о jQuery можно узнать, прочитав страницу истории проекта на официальном сайте.

2038