После того как Microsoft пришла к власти блицкригом, сообщество JavaScript, каким мы его знали, может закончить своё существование.

Почти без сопротивлении со стороны сообщества из сотен тысяч активных JavaScript-разработчиков, Microsoft внедрила использование TypeScript в React, Angular и Node, одновременно приватизировав Github и npm. Компания стратегически идеальна во всех аспектах. Но хорошо ли это?


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

Существовал Github для управления нашими исходными кодами и npm, который индексировал библиотеки с открытым исходным кодом и делал очень простыми их поиск, подбор и импорт, а также позволял разработчикам создавать, обновлять и делиться библиотеками. А на Stackoverflow вы могли получить поддержку и консультацию совершенно бесплатно. JavaScript становился лучше год за годом с каждым выпуском ECMAScript. Этот процесс  не был идеален, но всё работало. Будущее казалось светлым.

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

В один прекрасный день пришла Microsoft и взяла под свой контроль два основных инструмента, которые были шлюзами для всего Open Source сообщества, – npm и Github. Я не думаю, что разработчики могли предвидеть это, и ясно, что большинство из них даже сегодня не осознают, что произошло и как это повлияет на них в ближайшее время.

Как только захват был завершён, началась массовая пропагандистская атака, которая полностью повернула идеалистическое Open Source сообщество в сторону капиталистической мантры Microsoft. Это «секретная» война с пропагандой высоких технологий, которая со временем незаметно уничтожит и лишит независимости, уничтожит редакторы, инструменты, библиотеки, не принадлежащие Microsoft, и даже сам JavaScript. Все это неизбежно, потому что Microsoft – это коммерческая корпорация. В её ДНК заложено стремление захватить целые отрасли и превратить их в прибыльные монополии для своих акционеров.

Миссия Microsoft – так или иначе превратить каждого JavaScript-разработчика в дрон Microsoft TypeScript, приносящий деньги.

Ниже я опишу многомерный блицкриг Microsoft в 5 простых шагов.

Акт 1. Microsoft убивает JavaScript

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

Microsoft по существу отказалась от поддержки JavaScript и некоммерческой организации, которая им управляла, с помощью TypeScript, которым управляет и контролирует Microsoft. Если бы Microsoft действительно была заинтересована в улучшении JavaScript, она могла бы сделать это через некоммерческую организацию. Но вместо этого она использовал подход «Evil Corp», постепенно делая организацию и JavaScript неактуальными, чтобы гарантировать монополизацию и монетизацию всей отрасли.

Понимание пропаганды

Повествование “JavaScript в масштабе” нацелено в основном на лиц, принимающих бизнес-решения, и позиционирует TypeScript как надёжный и сильный вариант по сравнению с подверженным ошибкам и ненадёжным “ванильным” JavaScript. Со временем это приведёт к устареванию JavaScript как языка в бизнес-средах. Он станет новым PHP.

И, чтобы не слишком обидеть разработчиков JavaScript, было введено повествование «TypeScript – это надмножество JavaScript», которое по очевидным причинам в лучшем случае наивно ошибочно. TypeScript действительно использует конструкции JavaScript, но имеет гораздо больше общего с C#.

Поэтому, хотя TypeScript и имеет свои преимущества, вы должны знать, что это не то, во что Microsoft хочет, чтобы вы верили.

Справедливее сказать, что TypeScript  это надмножество C# с некоторыми ограничениями JavaScript, который компилируется в JavaScript.

Собственный открытый исходный код

JavaScript не контролируется и не принадлежит одной коммерческой корпорации. Это некоммерческая программа с открытым исходным кодом, инициаторами которой являются многие независимые субъекты и корпорации.

TypeScript, с другой стороны, является собственностью с открытым исходным кодом, потому что он принадлежит, финансируется и полностью контролируется корпорацией Microsoft, ориентированной на прибыль.

Поддержка сообщества

Внедрив JavaScript и открытый исходный код в свою пропаганду, Microsoft смогла воспользоваться неорганизованным и лишённым лидеров сообществом разработчиков открытого исходного кода, и сделала это без какого-либо заметного сопротивления. Всё сообщество искренне приветствует TypeScript, или, по крайней мере, так кажется.

Акт 2. Microsoft приобретает Github

Хотя Github долгое время оставался независимым, с первого дня это была коммерческая компания. Это почти идеальный продукт для разработчиков:

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

  • У разработчиков есть профили с обзором кодовых баз, в создание которых они внесли свой вклад. Этот профиль почти всегда запрашивается у разработчиков при приёме на работу.

  • Разработчики могут сообщать об ошибках и делать пул-реквесты в репозитории с открытым исходным кодом.

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

Преимущества Github – его модель freemium и тесная взаимосвязь с npm превратившая его в монополию.

Сегодня авторы, преподаватели, докладчики и разработчики, говоря о создании или скачивании репозитория, всегда упоминают Github. Это стало синонимом системы управления версиями.

А поскольку Github финансировался венчурным капиталом, выход всегда был запланирован с первого дня. Поэтому неудивительно, что корпорация, заинтересованная во владении пользовательской базой и кодовыми базами этих пользователей, однажды придёт и обеспечит возврат инвестиций за упорный труд своих основателей и инвесторов. 

После приобретения Microsoft интеграция с VSCode ещё больше укрепила его монопольное положение в качестве сервиса хранения исходного кода.

Акт 3. Microsoft приобретает npm

Теперь, когда Microsoft овладела Github, следующим логическим шагом было приобретение npm. Npm – это не только менеджер пакетов JavaScript, но и каталог библиотек с открытым исходным кодом в сообществе. Как и Github, npm с первого дня был коммерческой компанией.

Его монопольное положение было основано на том, что он был выбран менеджером пакетов для NodeJS.

В 2021 году сообщество JavaScript вряд ли сможет разорвать связь с npm. Это часть ДНК.

Использование npm вместе с github стало для разработчика такой же рутиной, как и дыхание.

Акт 4. Microsoft продвигает VSCode как единственный редактор кода для TypeScript

Когда я начал программировать, я просмотрел сотни руководств, прошёл курсы, прочитал множество книг по программированию и продолжаю это делать сейчас. И в 99 случаях из 100 вы слышите, как люди постоянно рекомендуют VSCode как лучшего из лучших редакторов на планете. Очень редко кто-то упоминает Vim или WebStorm.

И долгое время я действительно использовал только VSCode. Но, как только я начал серьёзно писать код, меня раздражали все вредоносные программы, шпионское ПО и маркетинг внутри VSCode. Не то чтобы вы этого не замечали. Я чувствовал, что меня используют, вместо того чтобы быть просто пользователем.

В капитализме не бывает свободы. Если коммерческая корпорация, такая как Microsoft, даёт вам что-то бесплатно, будьте готовы в какой-то момент подвергнуться изнасилованию.

Я перешёл от VSCode к WebStorm через Vim. Но большинство разработчиков, которые используют Github и npm как часть своей рутины, в конечном счёте переходят на VSCode, если они этого ещё не сделали. Пропагандистская машина Microsoft очень эффективна (если вы слепы).

Акт 5. Airbnb для библиотек с открытым исходным кодом, бизнес-модель

Идея ясна: открытый исходный код вот-вот будет монетизирован корпорациями и компаниями, движимыми венчурным капиталом. И точно так же, как Airbnb зарабатывает больше денег на сдаче в аренду собственности, не владея ею, паразиты, такие как TideLift, OpenCollective и другие, будут применять ту же мантру Кремниевой долины к Open Source.

Модель Airbnb приходит в сообщество разработчиков открытого исходного кода.

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

А затем, через некоторое время, Microsoft купит одного или всех игроков и будет владеть всей отраслью сверху донизу, от начала до конца.

Игра окончена.

В заключение: что вы должны делать в качестве JavaScript- разработчика в 2021 году?

Изучите TypeScript

Если вы JavaScript-разработчик, изучите TypeScript немедленно, поскольку большинство, если не все работодатели, потребуют от вас знания TypeScript как части вашего стека. Само по себе это неплохо, так как вы станете более эффективным и продуктивным. И вам будет намного проще изучать другие типизированные языки, что является приятным побочным эффектом.

TypeScript – это «наркотик» в мире языков со статической типизацией.

Будьте гибкими и открытыми, чтобы изучать что-нибудь новое

Что ж, вам определённо нужно измениться и осознавать все новые риски и требования, связанные с вашей карьерой. Некоторые из них могут спасти вас, а некоторые могут убить, и не очень понятно, что к чему.

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

Я не пурист, а это значит, что я буду продолжать пользоваться преимуществами сообщества разработчиков ПО с открытым исходным кодом. Я мог бы даже посоветовать  "использовать и злоупотреблять", как это сделала и делает Microsoft. Было бы глупо и непродуктивно отказываться от библиотек. Но я стал ещё больше осознавать опасности и уменьшаю свою зависимость от сторонних вспомогательных библиотек и шаблонов. В результате я пишу код на более низком уровне, что, по крайней мере для меня, намного веселее, потому что мне нужно тренировать свой мозг и изучать новые технологии. И, в конце концов, именно так вы станете лучшим инженером-программистом.

Сегодня, когда я решаю использовать определённую технологию, библиотеку или фреймворк, я не делаю это вслепую по прихоти, поглощая всю прямую и косвенную пропаганду от корпораций или стоящих за ней венчурных капиталистов. Я подхожу к каждой новой технологии непредвзято и с объективным прагматизмом. На самом деле я прохожу процесс внутренней оценки, как если бы я всё ещё был инженером в какой-то крупной корпорации.

Неужели она действительно лучше? Она быстрее, чище и менее подвержена ошибкам? Увеличит ли это мою продуктивность? Каковы краткосрочные, среднесрочные и долгосрочные затраты на её использование? Сделает ли это меня слишком зависимым от одной корпорации или инструментария? Это важные вопросы, и вы должны задавать их постоянно.

Некоторые примеры

  • Я не сразу перешёл от модели REST API к GraphQL, хотя я её изучил, понял её концепции и причины, лежащие в её основе. Я мог бы переключиться на неё в любое время, если бы мне было это нужно. Но у меня нет нужды, потому что, хоть GraphQL и решает множество проблем, он в то же время создаёт множество других.

  • Несмотря на то, что я использую NextJS для своего фронтенда, я не создаю API внутри него и не развёртываю его на Vercel.

  • Хотя я перешёл с JavaScript на TypeScript, я не использую VSCode, Github или Azure, потому что есть другие хорошие решения и инструменты.

  • Когда появились React-хуки, я почти сразу отказался от компонентов на основе классов и переключился на функциональные компоненты с хуками. В результате я смог избавиться от зависимости от Redux.

Заключение

Этот вариант во многих случаях будет противоречить общепринятым представлениям и мнениям, и это нормально. Наше групповое мышление не такое независимое или правильное, как мы думаем. Мы часто делимся на сообщества в рамках технологий и фреймворков, но это усугубляется постоянными атаками массовой пропаганды.

Но важно узнавать о разных взглядах и мнениях и сохранять бдительность. Это важный софт-скилл для современного разработчика.

И это ещё не всё мрак и гибель. Изучение TypeScript – хорошее введение в языки со статической типизацией. Так что изучайте его. Но используйте его как ступеньку к изучению большего количества языков со статической типизацией, а не как конечный пункт назначения.

Удачи в изучении TypeScript!

Узнайте, как прокачаться в других специальностях или освоить их с нуля:

Другие профессии и курсы