My Authors
Read all threads
Сегодня будет тред про мою любимую тему — историю JS и JS-экосистемы. Один лайк — один факт.
Начну с наиболее известного факта. JavaScript был разработан Бренданом Айком в течение 10 дней.
2. JavaScript успел поменять два названия: сначала он назывался Mocha, потом LiveScript. Процесс смены имён происходил во время внедрения движка в браузер Netscape Communicator 2, который вышел в декабре 1995 года.
3. Брендан Айк изначально разрабатывал Scheme-like язык, но из-за маркетинговых соображений новый язык стал напоминать Java.
4. На тот момент Java была очень горячей технологией. И Netscape боролся за то, чтобы Sun (владелец Java) выпустила виртуальную машину для Netscape, а не для Internet Explorer.
5. Netscape заполучила Java, а JavaScript начал потихоньку набирать популярность и уже год спустя Netscape выпустила пресс-релиз, в котором говорила о 300000 JavaScript-enabled страницах.
6. Microsoft не хотела оставаться в стороне и не хотела терять долю web'а из-за того, что страницы с JavaScript в IE не работали. Поэтому спустя год был представлен JScript.
7. Было выбрано такое название, потому что торговая марка "JavaScript" принадлежала Sun.
8. Чтобы не допустить фрагментацию web'а, был сформирован комитет TC-39, который начал работать над спецификацией JavaScript.
9. Из-за проблем с торговой маркой для спецификации был выбрано новое название — ECMAScript.
10. В 1997 году была выпущена первая версия стандарта ECMAScript, который курируется ECMA — ассоциацией по стандартизации информации и коммуникационных систем.
11. В 1998 году вышла вторая версия стандарта, которая практически не отличалась от первой. Все изменения состояли в том, чтобы стандарт прошёл одобрение как международный стандарт ISO/IEC 16262.
12. У JavaScript в то время не было многих фич: регулярные выражения, try/catch, in, instanceof, do/while и т.п. В самой первой версии движка не было поддержки ключевой фичи JS — объявления объектов в качестве литералов: var obj = {a: 1}.
13. Все эти фичи были стандартизированы в третьей версии ECMAScript в декабре 1999 года.
14. В 2000 году вышел первый браузер Netscape Communicator 6 с поддержкой третьей версии стандарта.
15. Но до этого в марте 1998 Netscape сделала анонс, что новый браузер будет бесплатным (да, тогда браузер надо было покупать) и что будет открыт его исходный код.
16. Для воплощения этих планов была учреждена организация Mozilla, в которой по факту работали инженеры компании Netscape.
17. Тем самым Mozilla унаследовала код html-движка Gecko и js-движка SpiderMonkey, которые стали использоваться в наследнике Netscape — Firefox.
18. SpiderMonkey — это второе название движка. Самое первое название, вернее его кодовое имя, было Mocha. Да, именно то первое название языка JavaScript.
19. Из-за переписывания кодовой базы Netscape потерял основную долю рынка. И когда в 2000 году вышел релиз 6-ой версии, Internet Explorer уже полтора года предлагал новые фичи. en.wikipedia.org/wiki/Browser_w…
20. В начале 2000-ых, когда Internet Explorer задавал тренды в web'е, началась работа над ECMAScript 4. Над стандартом работали Microsoft, Adobe, Mozilla, Opera, Yahoo.
21. Объём работ был огромный. В стандарт хотели добавить неймспейсы, интерфейсы, классы, опцианальную статическую типизацию, пакеты, генераторы, деструктуризацию, интроспекцию и многое другое.
22. На тот момент комитет поделился на две части. Одни хотели революционного развития JS, другие эволюционного.
23. Дуглас Крокфорд, который выступал от Yahoo, убедил участника из Microsoft в том, что огромное количество новых фич в рамках одного стандарта могут нести губительные проблемы для языка.
24. Тем самым доминирующий на рынке браузер (Internet Explorer) отказывался поддерживать фичи из нового стандарта.
25. Adobe, наоборот, выступала за новый стандарт. ActionScript, который разрабатывался сначала в недрах Macromedia, а потом Adobe, был разработан на базе черновика ECMAScript 4.
26. То есть если вы посмотрите на код ActionScript, то примерно так же бы выглядел и ECMAScript 4, если бы он был утверждён. Например, вот так github.com/DaVikingCode/C…
27. Прошло 8 лет, в комитете до сих пор не было консенсуса. Было решено, что так продолжаться не может.
28. Дуглас Крокфорд призвал остановить споры и исправить проблемы в существующей версии стандарта.
29. Исправления были запланированы как часть спецификации ECMAScript 3.1, в которую должны были попасть части из четвёртой спеки, которые не влияли на синтаксис, а исправляли проблемы в языке.
30. В новый стандарт был добавлен строгий режим, новые нужные методы для упрощения наследования и работы с массивами и другие не очень большие фичи.
31. В 2009 году работа над 3.1 была закончена. Но стандарт решили переименовать в пятую версию, чтобы избежать путаницы (в 3.1 входили части из четвёртого стандарта).
32. Параллельно с четвёртым стандартом языка разрабатывалось новое расширение ECMAScript - E4X, которое позволило бы упростить работу с XML в JS.
33. Поддержка E4X появилась в SpiderMonkey, но потом была удалена. На mdn до сих пор можно найти этот артефакт — developer.mozilla.org/en-US/docs/Arc….
34. После выпуска пятой версии комитет решил продолжить над эволюционным развитием языка — проект новой спецификации получил название Harmony.
35. Harmony стал идейным продолжением изменений, которые должны были появиться в четвёртой версии.
36. От многих идей отказались, например, от статической типизации, другие идеи были переосмыслены, например, классы в новой редакции — синтаксический сахар над прототипами.
37. Работа над ECMAScript 6 продолжалась 6 лет.
38. К моменту, когда стандарт был закончен, браузеры уже начинали реализовывать новые фичи.
39. ECMAScript 6 в итоге был переименован в ECMAScript 2015. Использование года ознамевало переход к новому процессу стандартизации фич.
40. В новом процессе фичи разрабатываются друг от друга независимо (но с учётом друг друга). Теперь они должны проходить через последовательность этапов, каждый из которых означает готовность фичи к широкому использованию.
41. После того как набирается достаточный набор фич в stage 4, формируется новый стандарт, который обозначается текущим годом.
42. На данный момент вышли версии 2016, 2017, 2018 и 2019.
43. В 1999 году разработчики из команды Outlook добавили новую фичу в IE5, с помощью которой страница могла получать данные с сервера без перезагрузки страницы.
44. Фича смогла попасть в браузер только благодаря тому, что в её названии была горячая на тот момент технология — XML.
45. > Which is the real explanation of where the name XMLHTTP comes from- the thing is mostly about HTTP and doesn't have any specific tie to XML other than that was the easiest excuse for shipping web.archive.org/web/2007022719…
46. Эта фича оставалась вне видимости разработчиков, пока Google не выпустил новые сервисы Gmail и Google Maps, которые были похожи на десктопные приложения в браузере, что на тот момент было чудом.
47. У такого подхода создания приложений не было названия, пока Джесси Джеймса Гарретта не придумал термин AJAX. Впервые он появился в 2005 году в статье "Ajax: a New Approach to Web Applications" web.archive.org/web/2005022203…
48. Распространение информации о новом подходе к разработке web-приложений очень сильно повлияло на то, как разработчики стали относится к JavaScript.
49. Раньше JS был просто неизбежным злом, который пытались подменить с помощью Flash, Java, Silverlight. После появления AJAX, web-платформу (DOM, JS, CSS и HTML) стали воспринимать как платформу для построения полноценных и удобных приложений.
50. Примерно в это время (2004-2006) стали появляться js-библиотеки, которые сглаживали различия между браузерами и позволяли без боли писать клиентский JavaSript — Dojo, jQuery.
51. В это время же время стали появляться большие монолитные фреймворки, с помощью которых можно было писать GUI-приложения в вебе — YUI, ExtJS.
52. В конце 2004 года Тим О'Рейли популяризирует термин "Web 2.0", которыми стали называть современные web-приложения.
53. В 2005 году появился яркий представитель Web 2.0 — первая операционная системаx, полностью работающая в браузере — eyeOS (ru.wikipedia.org/wiki/EyeOS).
54. В 2008 году выходит знаменитая книга Дугласа Крокфорда "JavaScript: The Good Parts", которая стала важной вехой в истории становления JavaScript как полноценного языка.
55. Как говорил Дуглас: "JavaScript — это наиболее неправильно понимаемый язык".
56. Работа Дугласа, появление хороших js-библиотек и фреймворков, может считаться первой волной, привлёкших большое количество новых разработчиков.
57. В 2008 году балом правил Internet Explorer c ECMAScript 3. Но на это время у Firefox уже была солидная пользовательская база — 30%, в котором были хорошие инструменты для разработки.
58. В то время как для отладки кода в IE программисты использовали alert'ы, а особенно продвинутые скачивали специальный плагин для дебага страниц с MSDN. Также были служебные скрипты, которые позволяли имитировать console.log().
59. Из-за того что IE был очень сильно интегрирован в операционную систему, Microsoft не могла оперативно делать обновления под увеличивающиеся требования разработчиков.
60. IE стал превращаться в аутсайдера. Дошло до того, что разработчики огромных проектов настолько устали от IE6, что стали призывать пользователей к переходу на современные браузеры blog.chriszacharias.com/a-conspiracy-t…
61. Internet Explorer начал терять рынок. Ситуация для IE стала ещё неблагоприятнее, после того как в 2008 году Google представил новый браузер Chrome. Основная фишка, которого была в производительном выполнении JavaScript.
62. В это время была выпущена пятая версия спецификации ECMAScript, которая была реализована во всех браузерах к 2013 году. С 2009 по 2013 разработчики стали с бо́льшим энтузиазмом относится к JavaScript.
63. Приложения, написанные на JavaScript становились всё больше и больше, что привело к появлению целого вороха MVC-фреймворков: Angular, Ember, Backbone, Knockout и т.п. Было ощущение, что каждый день выходит какой-то новый фреймворк или инструмент.
64. Основным фактором, который привёл к бурному развитию новых инструментов, можно считать появление Node.js, который был представлен Райаном Далом в октябре 2009, и npm в 2010 году.
65. Node.js был построен на базе JavaScript-движка v8, который был позаимствовал у Chrome, и библиотеки libuv, созданной Райаном, для кроссплатформенной работы с асинхронным I/O.
66. Node.js изначально разрабатывался под эгидой CommonJS, — инициативой, цель которой заключалась в создании набора общих API для взаимодействия с операционной системой из JavaScript напрямую, вне браузера.
67. Создание CommonJS было вдохновлено Кевином Дангуром, который описал текущие проблемы в статье "What Server Side JavaScript needs" (январь 2009). blueskyonmars.com/2009/01/29/wha…
68. Одной из проблем было отсутствие модульной системы, это было критичной проблемой для создания больших серверных приложений.
69. После публикации статьи Кевина и призыва подключиться к работе над CommonJS, появился стандарт, описывающий модульную систему, который была впоследствии реализован в Node.js (exports, require).
70. Node.js набирал обороты, работа, которая шла в рамках CommonJS, не удовлетворяла разработчиков Node.js и в итоге от его адаптации решили отказаться.
71. Айзек Шлютер (автор npm) в 2013 написал: "One evening at Joyent, when I mentioned being a bit frustrated [...] a feature that I knew to be a terrible idea, he [Ryan Dahl] said to me, 'Forget CommonJS. It's dead. We are server side JavaScript'". github.com/nodejs/node-v0…
72. В 2019 году команда Node.js анонсировала поддержку официального стандарта ECMAScript Modules, что фактически означает, что модульная система CommonJS потихоньку исчезнет из мира современной Node.js разработки.
73. Самым важным результатом работы CommonJS помимо модулей можно считать разработку стандарта промисов Promises/A, которые перекочевали в спеку ECMAScript 2015 в виде доработанного стандарта Promises/A+.
74. Поддержка промисов в качестве работы с асинхронщиной была добавлена в одну из ранних версий Node.js, но была удалена. В последствии Райан Дал признал это ошибкой.
75. В 2012 году Райан оставляет разработку Node.js и передаёт все права компании работодателю Joyent и Айзеку Шлютеру в частности.
76. Разработка Node.js начала стагнировать, Joyent не торопилась обновлять проект на новую версию v8, тем самым набор js-фич в ноде начал сильно отставать от набора фич в браузере.
77. Сообщество пошло на радикальный шаг и в декабре 2014 года 5 из 7 ключевых разработчиков создали независимый форк ноды — io.js ru.wikipedia.org/wiki/Io.js
78. Спустя всего полгода стало очевидно, что у Node.js проблемы — фокус коммьюнити переключился на io.js.
79. Компания Joyent выразила свою готовность перенести разработку Node.js на независимую площадку и передать права на интеллектуальную собственность. И 13 мая 2015 года Node.js и io.js объединились под эгидой новой некоммерческой организации Node.js Foundation.
80. 12 марта 2019 года Node.js Foundation и JS Foundation объявили о слиянии с образованием новой некоммерческой организации OpenJS Foundation, поддерживающей разработку популярных JavaSctipt-проектов с открытым исходным кодом. linuxfoundation.org/press-release/…
81. Благодаря работе Microsoft в Node.js появился уровень абстракции, который сделал возможным использование альтернативных JavaScript-движков.
82. Microsoft адаптировала свой js-движок Chakra для Node.js в 2016 году github.com/nodejs/node-ch…
83. Самая интересная фича node-chakracore — time travel debugging, который поддерживается в VSCode github.com/nodejs/node-ch…
84. Mozilla тоже работала над внедрением SpiderMonkey в Node.js, но проект был заморожен github.com/mozilla/spider…
85. Благодаря Node.js стало возможным использовать один и тот же код и на сервере, и на клиенте. Такие приложения стали называть "изоморфными".
86. Изоморфные приложения позволили создавать полноценные Single Page Application (SPA) приложения, которые могли быть проиндексированы поисковыми роботами.
87. Термин "изоморфное приложение" ввёл в обиход Чарли Роббинс в 2011 году в статье "Scaling Isomorphic Javascript Code" web.archive.org/web/2019062210…
88. В 2015 году Майкл Джексон (другой Майкл Джексон) поделился своим мнением, почему "изоморфное приложение" неподходящее название, и предложил альтернативный термин "универсальное приложение".
89. Поэтому если вы читаете статьи и видите как в одном месте пишут про "изоморфные", а в другом "универсальные" приложения, знайте, что по сути это одно и то же.
90. С 2012 года начали появляться изоморфные фреймворки. Первопроходцем стал Meteor, который был выпущен в январе 2012 года.
91. Затем Yahoo в апреле 2012 года открыла код своего фреймворка Mojito, но из-за сильной привязки к YUI не получил большого распространения в сообществе github.com/YahooArchive/m…
92. В середине 2012 года 2GIS начал работу над своим изоморфным фреймворком — Slot — который лёг в основу обновлённой онлайн-версии. Первый прототип сделал Влад Семёнов (@Semenov). Затем работу над фреймворком подхватил Андрей Рублёв (@anrublev).
@Semenov @anrublev 93. В 2014 году Андрей Речкунов при работе над Flamp (тоже проект 2GIS) разработал catberry — изоморфный фреймворк для прогрессивного рендеринга. При разработке Catberry были учтены недостатки Slot. Но в итоге ни Slot, ни Catberry больше не развиваются.
@Semenov @anrublev 94. В 2013 году AirBnB представила свой изоморфный фреймворк — rendr, в основе которого лежал backbone medium.com/airbnb-enginee…
@Semenov @anrublev 95. Затем в 2013 году появился React, который стал основой изоморфного рендеринга в очень многих компаниях.
@Semenov @anrublev 96. В 2016 году компания Zeit открыла исходный код одного из самых популярных современных изоморфных фреймворков на базе React — Next.js. zeit.co/blog/next
@Semenov @anrublev 97. В том же 2016 году была выпущена первая публичная версия Nuxt.js — изоморфного фреймворка на основе Vue.js
@Semenov @anrublev 98. Полноценная поддержка серверного рендеринга была сделана во второй версии Vue.js, хотя первый рабочий прототип был сделан для первой весрии Vue.js разработчиком из Новосибирска — Андреем Солодовниковым (НГС).
@Semenov @anrublev 99. В 2017 году был зарелижен изоморфный фреймворк на базе Angular — Nest.js.
@Semenov @anrublev 100. То есть самые популярные на данный момент фреймворки носят очень похожие друг на друга названия: Next.js, Nuxt.js, Nest.js.
@Semenov @anrublev 101. Node.js — это не единственный js-рантайм для серверных приложений. Первопроходцем был LiveWire от Netscape в 1995 году. en.wikipedia.org/wiki/JavaScrip…
@Semenov @anrublev 102. В 1997 был разрабатан JS-движок Rhino. Его особенность была в том, что он был написан полностью на Java как часть экспериментального проекта Netscape и Sun создания браузера на Java-платформе "Javagator". itprotoday.com/windows-78/net…
@Semenov @anrublev 103. Rhino стал средством исполнения JavaScript-кода в серверных Java-приложениях.
@Semenov @anrublev 104. Были и другие серверные реализации JavaScript. Вот подборка с википедии en.wikipedia.org/wiki/List_of_s…
@Semenov @anrublev 105. Из относительно недавних серверных реализаций (2016), можно вспомнить движок от Nginx — njs — github.com/nginx/njs
@Semenov @anrublev 106. njs полностью совместим c ECMAScript 5.1 с некоторыми фичами из ECMAScript 2015. Он используется как альтернатива lua для описания сложных правил работы сервера
@Semenov @anrublev 107. Существуют js-движки, специально разработанные для работы на микроконтроллерах и оптимизированные для низкого потребления памяти
@Semenov @anrublev 108. В 2016 году Samsung представил js-движок JerryScript. Может работать на девайсах с 64 KB RAM и менее чем 200 KB Flash github.com/jerryscript-pr…
@Semenov @anrublev 109. На базе JerryScript Samsung сделал свою версию ноды github.com/Samsung/node-j…
@Semenov @anrublev 110. JS-движок Duktape. Минимальные требования 160kB Flash и 64kB RAM
@Semenov @anrublev 111. JS-движок Espruino. Минимальные требования: 128kB Flash и 8kB RAM github.com/espruino/Espru…
@Semenov @anrublev 112. Существует много разных JS-движков. Для упрощения работы с ними разработчики Chrome в 2017 году зарелизили утилиту jsvu github.com/GoogleChromeLa…
@Semenov @anrublev 113. Где-то выше я писал про то, что в 2009 году стали появляться новые MVC-фреймворки. В этом году вышла первая версия Angular.
@Semenov @anrublev 114. Фреймворк разработал Мишко Хевери, когда он работал над своим стартапом.
@Semenov @anrublev 115. Идея стартапа не взлетела — исходный код Angular был открыт. Google взяло под своё крыло Мишко. Фреймворк стал развиваться под покровительством компании. Благодаря этому Angular стал очень популярен.
@Semenov @anrublev 116. Система реактивности первой версии Angular не позволяла эффективно работать с большим количеством элементов на странице — приложение начинало тормозить.
@Semenov @anrublev 117. В 2016 году разработчики выпустили вторую версию фреймворка, в нём была устранена проблема с производительностью. Но фактически это был новый фреймворк под старым названием. Первая и вторая версии были несовместимы, что вызвало напряжение в сообществе.
@Semenov @anrublev 118. С этих пор существует две версии Angular: "Angular.js" (легаси версия) и "Angular" (без ".js" в названии, новая версия).
@Semenov @anrublev :%s/Angular\.js/AngularJS/g
@Semenov @anrublev 119. В новой версии были решены проблемы с производительностью, добавлен AOT-компиляции, появилась поддержка treeshaking, для работы с асинхронностью был добавлен RxJS, кодовая база была переписана на TypeScript.
@Semenov @anrublev 120. Основными конкурентами первой версии Angular были Ember, Backbone и Knockout.
@Semenov @anrublev 121. Ember.js - эволюционное развитие SproutCore, фреймворка, который был разработан в Apple (используется (-овался?) на icloud.com)
@Semenov @anrublev 122. Чарльз Джоли, который был лидом SproutCore, вместе с Йехуда Катц основали стартап, в котором Йехуда и Том Дейл фуллтайм работали над новым фреймворком Amber.js, который затем переименовали в Ember.js.
@Semenov @anrublev 123. Первая версия Ember.js вышла в декабре 2011 года. Она представляло собой классический MVC-фреймворк.
@Semenov @anrublev 124. Вторая версия вышла в 2015 году. Для управления состоянием стал использоваться однонаправленный поток данных как в React. Был разработан новый движок рендеринга — Glimmer.
@Semenov @anrublev 125. В феврале 2010 года вышел фреймворк Knockout.js, который был разработан Стивом Сандерсеном.
@Semenov @anrublev 126. Knockout.js реализовывал паттерн Model-View-ViewModel (MVVM). Идеи Knockout были сформированы тем как организовывается процесс работы со view-слоем в .Net-приложениях.
@Semenov @anrublev 127. Knockout.js был вытеснен с рынка более популярными фреймворками, но первое время был очень популярен.
@Semenov @anrublev 128. В октябре 2010 года вышел Backbone.js (в том же году, что и Knockout.js). Он был создан Джереми Ашкенас.
@Semenov @anrublev 129. Backbone реализовывал MVC-like паттерн. Models и Collections представляли собой модель из MVC, View несли функцию контроллера, а шаблоны были вьюхами.
@Semenov @anrublev 130. Backbone.js был лёгкой библиотекой с jQuery и Underscore в зависимостях. Но по сравнению с монолитными фреймворками YUI и ExtJS кода всё равно было мало.
@Semenov @anrublev 131. Backbone, Angular и Knockout были частью новой волны, в которой популяризировалась идея создания приложений из маленьких библиотек. Все компоненты и хелперы скачивались из bower или npm по отдельности. В бандл приложения попадало только то, что было необходимо.
@Semenov @anrublev 132. Появление browserify позволило писать код, который без модификации можно было использовать и для серверной разработки на Node.js, и для клиентской в браузере.
@Semenov @anrublev 133. Бурный рост использования библиотек на фронтенде привёл к тому, что монолитные фреймворки стали сдавать позиции. В августе 2014 года произошло знаковое событие — Yahoo объявила о прекращении разработки YUI habr.com/ru/post/235021/
@Semenov @anrublev 133. Давайте вернёмся в 2013-ый год. В этом году Facebook представил новую библиотеку для построения интерфейсов — React. Одновременно с новой библиотекой был представлен паттерн для работы с данными — Flux.
@Semenov @anrublev 134. Ли Байрон в подкасте JavaScript Jabber рассказал историю появления React. devchat.tv/my-javascript-…
@Semenov @anrublev 135. React стал набирать популярность внутри компании в то же самое время, когда в Facebook велась работа над другим фреймворком.
@Semenov @anrublev 136. Автором первого прототипа React был Джордан Волк. В то время он решал проблему реализации корректного поведения type ahead с многими источниками данных.
@Semenov @anrublev 137. Идея полной перерисовки UI на основе данных была крутой фичей, которая помогла решить эту задачу.
@Semenov @anrublev 138. Некоторые разработчики Facebook были очень воодушевлены новой библиотекой, другие, наоборот, восприняли появление новой библиотеки в штыки, так как тот новый фреймворк практически был готов.
@Semenov @anrublev 139. Менеджер попросил Ли сходить к Джордану и попросить его успокоиться и не мешать внедрению нового фреймворка. Но после того как Джордан показал Ли прототип все сомнения развеялись. Ли присоеднился к Джордану и начал работать над API библиотеки.
@Semenov @anrublev 140. React появился внутри Facebook в 2011 году. На протяжении двух лет шла работа над его улучшением перед тем как он был представлен публично.
@Semenov @anrublev 141. Благодаря React появились концепции Virtual DOM и JSX. Подход с построения интерфейсов из компонентов также стал набирать популярность благодаря React.
@Semenov @anrublev 142. В 2015 году Ден Абрамов на React Europue представил Redux — Flux-библиотеку для управления состоянием, которая была вдохновлена Elm'ом и идеями Брета Виктора. Redux внёс большую лепту в распространении React
@Semenov @anrublev 143. React за всё своё время существования кардинально не менял API. Но в 2018 году были представлены хуки, которые полностью поменяли процесс написания компонентов.
@Semenov @anrublev 144. Хуки не заменили классические компоненты с классами, а дали альтернативную возможность управления внутренним состоянием компонента.
@Semenov @anrublev 145. Компоненты, написанные с помощью хуков стали более компактны, отпала необходимость держать в уме текущий контекст исполнения методов.
@Semenov @anrublev 146. Забавно то, что Себастьян Мекбейдж — один из разработчиков React — работал над спецификацией классов ECMAScript 2015 (не могу найти ссылку, видел где-то в репозитарии tc39). И вот с появлением хуков классы остались не у дел.
@Semenov @anrublev 147. Потихоньку количество пользователей React росло. И теперь это один из самых популярных фреймворков с большой экосистемой готовых компонентов и библиотек.
@Semenov @anrublev 148. В 2013 году Эван Ю работал в Google. Тогда у него появилась идея создания фреймворка похожего на Angular.js, но без его проблем. И уже в феврале 2014 года вышла первая публичная версия Vue — 0.9.
@Semenov @anrublev 149. Vue.js набирал популярность благодаря тому, что на него переходили разработчики, которым нравился первый Angular (много разработчиков), Vue.js стал использоваться в интернет-гиганте Alibaba и других крупных компаниях, тем самым обычные разработчики начали доверять Vue.
@Semenov @anrublev 150. В 2016 году вышла вторая версия Vue.js, на которую большое влияние оказал React: в нём появился Virtual DOM и поддержка JSX.
@Semenov @anrublev 151. В 2016 году Рич Харрис представил общественности Svelte. Фреймворк с абсолютно новой идеей описания интерфейсов с помощью специального синтаксиса, который в последствии компилируется в инструкции работы с DOM'ом.
@Semenov @anrublev 152. Популярность к Svelte пришла благодаря тому, что интерфейсы, написанные с помощью Svelte очень быстрые. Размер бандла приложения также получается очень небольшим.
@Semenov @anrublev И вот на этом моменте хочу остановиться. Рассказал, как мне кажется, про самое важное, но за бортом осталось много тем: развитие модульных систем, эволюция работы с асинхронным кодом, бандлеры, транспилируемые в js языки и т.п.
@Semenov @anrublev Если вас интересуют больше подробностей про историю развития спецификации ECMAScript, очень рекомендую почитать статьи Себастьяна Пейротта "A Brief History of JavaScript" (auth0.com/blog/a-brief-h…) и "The Real Story Behind ECMAScript 4" (auth0.com/blog/the-real-…).
@Semenov @anrublev Если вам хочется узнать про развитие построения модульных приложений в JS, то приглашаю в репозиторий проекта "History of JavaScript" github.com/myshov/history…
@Semenov @anrublev Спасибо за большое количество лайков, но ещё 202 факта, к сожалению, уже не осилю 🙈
@Semenov @anrublev Скорее всего есть какие-то неточности, Если что-то заметите, не забудьте рассказать в реплаях или пишите в лс.
Missing some Tweet in this thread? You can try to force a refresh.

Enjoying this thread?

Keep Current with jsunderhood

Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

Twitter may remove this content at anytime, convert it as a PDF, save and print for later use!

Try unrolling a thread yourself!

how to unroll video

1) Follow Thread Reader App on Twitter so you can easily mention us!

2) Go to a Twitter thread (series of Tweets by the same owner) and mention us with a keyword "unroll" @threadreaderapp unroll

You can practice here first or read more on our help page!

Follow Us on Twitter!

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just three indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3.00/month or $30.00/year) and get exclusive features!

Become Premium

Too expensive? Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal Become our Patreon

Thank you for your support!