Интернет намного больше, чем мы думаем.
«Додзё уже победил». сказал Алекс Рассел.
Мы сидели за длинным столом высотой по грудь на верхнем этаже 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 может уже победить, но он не будет считаться таковым надолго, если показатели успеха изменятся из-под него. Для этого нам даже не потребовались бы новые показатели успеха, нам нужно было бы только вернуть те показатели, которые у нас были раньше.