Источник изображения

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

Сегодня я сделаю предсказание, которое, по мнению большинства читателей, обречено на ошибку. Экосистема JavaScript через 10 лет будет примерно такой же, как и сегодня. В частности, React и Angular по-прежнему будут одними из лучших фреймворков, jQuery продолжит сокращаться, а React Native продолжит быть королем кроссплатформенности на еще большем количестве платформ, таких как VR и носимые устройства, подключенные к Интернету. Node.js с Express по-прежнему будет основным фреймворком, и он также будет присутствовать на большем количестве платформ, особенно голосовых. В мире веб-разработки это в основном похоже на попытку предсказать, что произойдет в следующем веке.

Однако есть очень веские причины, по которым это произойдет в следующем десятилетии, и они связаны с тем, как рынки создаются и со временем становятся более зрелыми. После того, как я глубоко укоренился в мире стартапов, я получил новое понимание бизнеса, экономики и взгляда на универсальные тенденции с точки зрения рыночной экономики. С годами мой взгляд на это стал богаче и точнее по сравнению с тем, что я просто взял пару бизнес-курсов в колледже (что я уже прошел). Оказывается, динамика рынка влияет на многие тенденции, которые на первый взгляд кажутся непредсказуемыми.

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

Что общего между рынками и фреймворками JavaScript

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

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

Вспомните поисковые системы на рубеже тысячелетий. Среди других безымянных поисковых систем, заполнивших пространство, были - и это лишь некоторые из них - AskJeeves, Alta Vista, Yahoo и, конечно же, Google. Фактически, к тому времени, когда появился Google, поисковые системы стали настолько переполненными, что многие венчурные капиталисты отвергли основателей Google просто потому, что они были сотой поисковой системой. Это нормально для нового «горячего» рынка.

Мы видели это в фреймворках JavaScript около 5-10 лет назад. Были Backbone, Knockout, AngularJS, Meteor, Ember и, конечно же, дедушка всех библиотек JavaScript продолжал доминировать: jQuery. Перенесемся всего на несколько лет вперед, и картина начнет существенно меняться. jQuery быстро теряет долю рынка в пользу двух фреймворков, которые продолжают расти: React и Angular (для простоты я теперь объединю Angular.js и Angular вместе, хотя это довольно разные фреймворки).

Цикл рыночной зрелости и два общих конца

Когда рынки новые и «горячие», они часто следуют за этим безумием десятков - если не сотен - участников, пытающихся отобрать долю рынка друг у друга. Неизбежно, что большинство этих новых участников исчезнет за десять или два года, и их доля на рынке сократится до однозначных чисел (часто до нуля). Конечным результатом является то, что рынок часто напоминает одну из двух возможных ситуаций:

  1. Олигополия нескольких крупных зрелых фирм, которые конкурируют друг с другом посредством сдержек и противовесов свободного рынка (вспомните автопроизводителей Детройта), или
  2. Немного более опасный сценарий, когда на рынке действует эффект «победитель получает все», когда одна фирма или организация в конечном итоге контролирует более 70% рынка.

В большинстве случаев №1 возникает потому, что он дает потребителям наибольший выбор. Иногда, как в случае с поисковыми системами, № 2 возникает из-за того, что действующие игроки получают огромную экономию на масштабе (классическая микроэкономика), где в силу своего большого размера затраты на производство каждого дополнительного товара или услуги при масштабе становится намного меньше. Эффект масштаба присутствует в как олигополиях, так и на рынках, где победитель получает все. Они чрезвычайно важны для понимания поведения крупных рынков. Единственный случай, когда эффект масштаба отсутствует, как правило, происходит на гиперлокальных, сильно фрагментированных рынках, таких как рестораны, бары и университеты (все это я игнорирую, потому что они не имеют большого отношения к фреймворкам и технологиям JavaScript).

В олигополии магическое число составляет от 3 до 5 зрелых фирм, каждая из которых имеет долю рынка от 15% до 30%. Это общие цифры, основанные на анекдотических свидетельствах и эвристиках, но это важно по нескольким причинам, потому что это означает, что обычно еще остается какой-то кусок для новичков. Во-вторых, это НЕ подразумевает, что существующие операторы не могут быть заменены (или добавлены). Достаточно взглянуть на Tesla, которая выходит на уже зрелый рынок и входит в четверку крупнейших производителей автомобилей в США, достигая того же уровня в оценке, что и автопроизводители Детройта.

Как это связано с JavaScript

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

Итак, давайте посмотрим на несколько вариантов экономии на масштабе, которые присутствуют в Angular, React и jQuery, начиная с jQuery, поскольку он самый простой для понимания.

  1. Экономия на масштабе с jQuery сводится к тому, что его очень легко выучить, если вы знаете HTML и CSS. Даже если вы не знаете JavaScript, jQuery легко освоить, и вы сможете начать думать на JavaScript с удобных костылей для изучения HTML и CSS. Также существует множество документации и учебных ресурсов, по которым легко начать работу с jQuery. Как библиотека, она продолжает развиваться и предоставлять более простые абстракции поверх JavaScript, которые позволяют как новым, так и опытным разработчикам интересно взаимодействовать с веб-страницей с помощью анимации и настраиваемых элементов пользовательского интерфейса.
  2. Экономия на масштабе с React объясняется огромным сообществом разработчиков. Он создает настолько большой сетевой эффект, что, если бы сообщество разработчиков было достаточно большим, React имел бы самый большой потенциал для превращения фреймворков JavaScript в рынок, где победитель получает все, а не олигополию. Объедините это с кроссплатформенной поддержкой через React Native (которая на годы опережает любую другую платформу мобильных приложений), и станет очевидным, насколько у React очень сильное технологическое преимущество. Хорошо, что разработчики имеют такое твердое мнение о коде, который они пишут, и о том, как они должны его писать :), потому что это подводит меня к темным фреймворкам JavaScript и моему личному фавориту.
  3. Angular, по сути, изобрел фреймворк JavaScript. Несмотря на то, что с момента своего расцвета он немного упал, изобретатели и предприятия, которые его используют, по-прежнему получают экономию от масштаба. Хотя в последнее время Angular потерял часть внимания разработчиков к React, его корни в масштабе предприятия и уникальное направление сумели занять большую собственную нишу, которая будет продолжать процветать в корпоративной среде, потому что немногие другие решения близки к достижению это потребность в стабильности и надежности. Несмотря на более длительную кривую обучения, разработчикам есть чему поучиться из философии Angular о батареях, включенных в современные инструменты. Только будьте осторожны, чтобы не путать соглашения об именах между Angular.js и Angular (да, они совершенно разные).

Заключение

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