Пятнадцать лет назад программисты скидывали код друг другу по email, разбирались в запутанных системах контроля версий и мечтали о нормальной совместной работе. Сегодня миллионы разработчиков работают над проектами вместе, не задумываясь о сложностях - GitHub сделал это настолько простым, что кажется, будто по-другому и быть не могло.
Но было. И было это совсем недавно.
Я застал те времена, когда для участия в open-source проекте нужно было прыгнуть через десяток обручей: настроить SVN или CVS, получить доступы у мейнтейнеров, разобраться в документации, написанной на коленке. Половина энтузиастов сдавалась на первом этапе. Вторая половина - на втором.
GitHub не изобрёл совместную разработку. Он просто сделал её человечной.
Что было до GitHub
В 2008 году, когда троица энтузиастов - Том Престон-Вернер, Крис Ванстрат и Пи Джей Хайетт - запустили GitHub, open-source существовал уже лет двадцать. Linux, Apache, Firefox - всё это создавалось силами сообщества. Но процесс напоминал средневековую алхимию: работало, но как - понимали единицы.
Хотите поучаствовать в проекте? Скачайте исходники через Subversion, внесите изменения, создайте патч, отправьте его на почту мейнтейнеру. Подождите неделю. Или месяц. Или вообще не дождитесь ответа, потому что письмо потерялось среди сотен других.
Звучит как кошмар? Для многих так и было. Open-source проекты развивались усилиями фанатиков, готовых терпеть всю эту боль ради идеи свободного кода.
Три кнопки, которые всё изменили
GitHub построили вокруг системы контроля версий Git, которую создал Линус Торвальдс для разработки Linux. Git был мощным, но страшным - командная строка, непонятные команды, крутая кривая обучения.
А потом появился веб-интерфейс GitHub с тремя кнопками: Fork, Commit, Pull Request.
Fork - скопировать проект себе. Одна кнопка вместо получаса с настройкой.
Commit - сохранить изменения. Можно прямо в браузере, не устанавливая вообще ничего.
Pull Request - предложить свои изменения автору. Не письмо с патчем, а нормальное обсуждение, где видны все правки, можно комментировать каждую строчку и вести диалог.
Гениальность была не в технологиях, а в снижении порога входа. Школьник мог зайти, нажать Fork на понравившемся проекте, исправить опечатку в документации и отправить Pull Request. Всё за пять минут. Без регистрации в рассылках, без выпрашивания доступов, без танцев с бубном.
Проекты, которые выросли на GitHub
Помните React? Библиотеку от Facebook, которая перевернула фронтенд-разработку. В 2013 году её выложили на GitHub - и за пару лет вокруг неё собралось сообщество из тысяч разработчиков. Люди предлагали улучшения, находили баги, писали дополнения.
Если бы React развивался старыми методами - через рассылки и патчи - он просто не взлетел бы так быстро. GitHub дал проекту крылья.
Или взять Visual Studio Code. Microsoft выложил редактор в open-source на GitHub в 2015 году. Сейчас это самый популярный редактор кода в мире, в разработке которого участвуют десятки тысяч программистов. За восемь лет в проект влили больше 20 000 Pull Request'ов.
Kubernetes, TensorFlow, Vue.js - список можно продолжать долго. Все эти проекты стали гигантами именно потому, что GitHub упростил коллаборацию до абсурда.
Как изменилась культура разработки
Раньше open-source был уделом энтузиастов и идеалистов. Корпорации относились к открытому коду с подозрением: зачем отдавать наработки бесплатно?
GitHub показал, что открытый код - это не благотворительность, а инвестиция. Когда Microsoft выкладывает проект на GitHub, тысячи разработчиков начинают его улучшать бесплатно. Находят баги, предлагают фичи, пишут документацию. Компания получает армию бета-тестеров и соавторов, не потратив ни копейки.
В 2018 году Microsoft купил GitHub за 7,5 миллиардов долларов. Многие тогда паниковали: "Всё, конец открытому коду!" Но произошло обратное. Microsoft сам стал одним из крупнейших контрибьюторов в open-source. Компания, которая 20 лет назад называла Linux раком, теперь активно поддерживает открытые проекты.
Это культурный сдвиг масштаба тектонических плит.
GitHub как резюме
Ещё один неожиданный эффект: GitHub превратился в портфолио для программистов. Раньше на собеседовании ты рассказывал про свой опыт словами. Теперь даёшь ссылку на профиль - и всё видно: над какими проектами работал, как пишешь код, умеешь ли работать в команде.
Я знаю случаи, когда людей брали на работу исключительно по активности на GitHub. Парень без диплома и опыта, но с десятком крутых проектов в портфолио - намного привлекательнее для работодателя, чем выпускник вуза с пустым профилем.
GitHub демократизировал доступ к работе мечты. Не важно, где ты живёшь и какое у тебя образование. Важно, что ты умеешь делать - и это можно показать прямо здесь и сейчас.
Тёмная сторона открытости
Но не всё так радужно. С ростом популярности GitHub появились проблемы.
Maintainer burnout - выгорание тех, кто поддерживает популярные проекты. Представьте: вы создали библиотеку, которой пользуются миллионы людей. Каждый день приходят десятки запросов, сотни сообщений об ошибках, тысячи вопросов. А вы всего лишь один человек, который делал это в свободное время.
Истории, когда создатели популярных проектов удаляли свой код из-за выгорания, стали регулярными. GitHub пытается решить проблему - ввели спонсорство, добавили инструменты для управления сообществом. Но проблема никуда не делась.
Ещё один момент - безопасность. Когда миллионы проектов зависят от небольших библиотек, поддерживаемых одним-двумя людьми, это риск. Помните историю с left-pad? Разработчик удалил из репозитория крошечную библиотеку на 11 строк кода - и половина интернета перестала собираться, потому что тысячи проектов от неё зависели.
GitHub постепенно внедряет инструменты для автоматической проверки зависимостей, сканирование на уязвимости. Но экосистема настолько огромная, что уследить за всем невозможно.
Что дальше
За 15 лет GitHub из стартапа превратился в критическую инфраструктуру для всего интернета. Если завтра платформа упадёт, остановится разработка тысяч компаний по всему миру.
Это одновременно круто и страшно.
Сейчас на платформе больше 100 миллионов разработчиков и 330 миллионов репозиториев. Каждую секунду кто-то где-то делает commit, открывает Pull Request, создаёт новый проект. GitHub стал не просто инструментом - это глобальная база знаний человечества в области программирования.
Интересно наблюдать, как технология меняет культуру. До GitHub программирование было занятием для одиночек, которые сидели в подвалах и писали код в тишине. Теперь это коллективное творчество, где участвуют миллионы людей из всех стран, говорящих на разных языках, но объединённых одним - желанием создавать что-то полезное.
Пятнадцать лет - это не так много. Но за это время GitHub изменил не только технологии, но и само понятие совместной работы. Возможно, через пятнадцать лет мы будем смотреть на сегодняшний день и думать: "Как же примитивно всё было". И это нормально. Прогресс не останавливается.