imageJavaScript библиотека 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, WordPress, Sass, Chrome (в котором даже есть встроенные инструменты разработчика) — их объединяет идея упростить жизнь разработчика.

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

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

Комментарии (12)


  1. zencd
    03.06.2015 22:11
    +4

    У jquery интересная концепция — в своё время сильно на меня повилияла, да, думаю, на многих.


    1. DmitryKoterov
      04.06.2015 03:52
      +3

      Между прочим, эта же концепция может быть применима и для работа с базми данных (в ORM). С массовой загрузкой/обработкой у многих ORM просто беда (по крайней мере по сравнению с тем, как легко и непринужденно происходит работа с множествами узлов в jQuery).


      1. lil_Toady
        04.06.2015 13:38
        +2

        LINQ? Постройка запросов очень напоминает принцип jQuery, если использовать синтаксис методов


  1. AllexIn
    03.06.2015 22:48
    +7

    Справедливости ради отметим, что тогда даже большие проекты не использовали VCS.

    Это очень спорное утверждение.
    Я был в 2005 году джуниором и уже тогда знал что такое SVN и как им пользоваться. При том что работал в компании из всего 20 человек. Полагаю, что уж серьезные программистские компании знали что такое VCS и использовали их.


    1. scarab
      04.06.2015 08:40
      +2

      Аналогично. Компания, в которой я работал в 2002-м году, активно использовала CVS. Когда в 2003-м я ушёл в другую контору — там уже внедрялся SVN.
      Вообще по прочтении текста складывается впечатление, что культурой разработки в Jquery поначалу и не пахло. Хотя для середины 2000-х пора бы уже было — чай, не 90-е.


    1. some_x
      04.06.2015 11:14

      Я тогда же стал джуниором и был свидетелем того что некоторые компании только начинали переходить на VCS. То есть по моему опыту в то время действительно VCS для некоторых разработчиков были в диковину.


    1. skvot
      04.06.2015 11:57
      +1

      Моя первая работа «в офисе», которую я совмещал с обучением в универе, датирована 2009 годом. VCS в той компании не использовались.


      1. Magistr_AVSH
        04.06.2015 12:49
        +9

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


        1. greebn9k
          04.06.2015 15:26
          +4

          Именно так. Кому-то невыгодно, а кто-то и не догадывается об их существовании.


  1. iDennis
    04.06.2015 21:34
    +1

    А сколько весила самая первая версия?


    1. mubinov Автор
      04.06.2015 21:59

      22Кб чистый JS, google closure сжимает до 11Кб.


  1. iserdmi
    04.06.2015 22:55
    +5

    Когда совсем маленький был (лет 13-14), только начинал с вебом знакомиться, думал что jQuery и JavaScript это разные языки программирования. Я и не догадывался что «$» это название функции, думал синтаксис у языка такой. Документацию прочитать и в голову не приходило. Какое-то время под собственные нужды правил найденные куски кода с использованием jQuery. Потом даже неплохо стало получаться. И лишь спустя какое-то время, я понял что это все и есть JavaScript. Прозрел, учился, становился порядочный фронт-энд разработчиком. С ностальгией вспоминаю, даже слезинка наворачивается.