Интернет намного больше, чем мы думаем.

«Додзё уже победил». сказал Алекс Рассел.

Мы сидели за длинным столом высотой по грудь на верхнем этаже 543-й улицы Сансом в Сан-Франциско. Два верхних этажа были отремонтированы и украшены Митчем Капором для размещения нескольких его некоммерческих проектов, включая Фонд приложений с открытым исходным кодом, к которому я присоединился вскоре после того, как Скотт Розенберг закончил писать книгу об этом начинании Dreaming in Code. .

Алекс продолжал объяснять, что если вы выйдете вперед достаточно далеко, никто не сможет их догнать. Dojo, безусловно, был лидером в области «JavaScript Front-End Framework». Ему удалось пройти мимо «веб-людей» и привлечь разработчиков, традиционно ориентированных на настольные компьютеры. Он настолько опередил своих конкурентов и стал основой для следующего поколения приложений, что теперь даже IBM поддержала его.

Успех Dojo пошел на пользу не только Алексу и участникам проекта, но и Интернету. Традиционные разработчики приложений все еще писали для настольных компьютеров даже после того, как стало ясно, что будущее за Интернетом. Причина в том, что у них не было инструментов, необходимых для написания «настоящих приложений». Додзе было именно тем, что им было нужно, чтобы перенести их в Интернет.

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

  • Модульная система для изолированной функциональности и построения экосистемы.
  • Сборщик для упаковки всего этого вместе с сервером разработки, который загружает каждый файл отдельно для отладки (исходные карты не будут существовать еще 5 лет).
  • Встроенный минификатор (минификация была редкостью, и единственная реализация была на Java).
  • Полный рабочий процесс для создания шаблонов и стилей, а также рабочий процесс MVC.

Конечно, для настройки Dojo потребовалось немного больше работы, немного больше взаимодействия и обучения со стороны пользователей, но выгоды были настолько велики, что на самом деле это не имело значения.

А потом… появился jQuery.

React - один из самых мощных инструментов для создания веб-приложений, когда-либо изобретенных.

Его используют не только хипстерские стартапы из Сан-Франциско, но и такие гигантские компании, как Facebook. Среди своих современников, таких как Ember, Vue.js и Angular, он лидирует.

React сочетает в себе все современные методы, необходимые для создания «реальных приложений» на JS, которые конкурируют с нативными. Это включает:

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

Его успех настолько уверен, что IBM и Google вскоре запретили его внутреннее использование из-за проблем с патентами, прежде чем React изменил свое лицензирование.

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

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

Произошло просто: критерии успеха, с которыми они работали, изменились. Будучи признанным «успешным фреймворком JS», он переместился из «почти всех новых больших веб-приложений» в «70% веб-сайтов в Интернете».

Несмотря на весь свой успех, jQuery так и не удалось построить экосистему вокруг своей архитектуры плагинов (у Dojo была большая коллекция модулей AMD, работающих над его модульной системой, чем у jQuery были плагины). Что он действительно делал, так это был включен почти на все веб-сайты в Интернете. Dojo никогда не мог конкурировать с этим показателем.

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

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

Интернет выиграл не потому, что он был фаворитом предприятий и «настоящих разработчиков». Он выиграл, потому что он лучше уменьшал, чем увеличивал. Он выиграл, потому что он сделал разработку программного обеспечения дилетантом и раскрыл творческий потенциал целого поколения программистов, которые не могли участвовать в разработке программного обеспечения до Интернета.

Сообщество JS сильно повзрослело за последнее десятилетие. По мере того, как это произошло, оно также отдалилось от того, что мы привыкли называть «Интернет-сообществом». До JSConf единственные конференции и сообщество, которые вы могли найти в Интернете, смешивали вместе людей, занимающихся PHP, Wordpress и jQuery, в одном пространстве. Когда jQuery «победил», он победил все веб-сообщество, а не только JavaScript, потому что в то время не было ничего, что можно было бы назвать «сообществом JS».

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

Но я думаю, что что-то в этом роде.

Мы долгое время игнорировали большую часть веб-сообщества, потому что развитие нашей экосистемы в npm шло вразрез с уменьшением масштаба до простого тега ‹script›. Это могло измениться.

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