Before GitHub
Знаете, что меня зацепило в статье Armin Ronacher? Он напомнил, как мы в 2005-м поднимали Trac на своём сервере, настраивали Subversion и раздавали исходники через tarball-архивы. Казалось, это навсегда. А потом грянул GitHub — и мир изменился за каких-то пару лет.
Но история не закончилась. Сейчас мы наблюдаем странную амнезию: новые разработчики не помнят, как выглядела разработка до 2008-го, и не замечают, что платформа, которую мы считаем вечной, начинает трещать по швам.
Давайте разберёмся, что мы потеряли — и что, возможно, возвращаемся.
Эпоха до GitHub: свои сервера и собственная инфраструктура
В 2000-х, если ты хотел хостить open-source проект, у тебя было два пути: свой сервер или ничего. Большинство выбирали первое.
Trac (система управления проектами и отслеживания багов) был стандартом де-факто. Ты поднимал его на Linux-сервере, настраивал права доступа через Apache — и получал вики, тикеты и просмотр исходников в одном флаконе. Плюс интеграция с Subversion (система контроля версий — записывает все изменения в коде), который был главной альтернативой Git до 2005 года.
Релизы выкладывали как tarball (архивный файл, как zip, но для исходного кода) на FTP-сервере. Пользователи скачивали, собирали из исходников, жаловались в mailing list. Баг-репорты приходили в почту, трекились в Excel или текстовых файлах.
Это была эпоха, когда разработчик должен был уметь администрировать сервер. Не потому что хотел — потому что иначе никак.
SourceForge как первая альтернатива
Первой попыткой демократизировать хостинг стал SourceForge (первая крупная платформа для хостинга open-source проектов), запущенный в 1999 году. Это был огромный шаг вперёд: бесплатный хостинг, автоматическая сборка, файловый архив, баг-трекер.
Но были проблемы:
- Интерфейс напоминал корпоративный портал из 90-х
- Очереди на модерацию растягивались на дни
- Каждый проект выглядел одинаково — никакой кастомизации
- SourceForge стал объектом для хакеров: в 2012 году нашли трояны в популярных загрузках
К 2008 году SourceForge всё ещё доминировал, но уже чувствовалось, что нужна свежая кровь.
Революция GitHub: как всё изменилось
В апреле 2008 года Tom Preston-Werner запустил GitHub. Идея была проста: Git + социальная сеть.
Что изменилось:
- Pull requests (предложение своих изменений в чужой код на рассмотрение) — вместо патчей в mailing list ты делал fork, писал код, и автор сам решал — мержить или нет
- Issue tracker встроенный в каждый репозиторий
- Wiki для документации
- CI (Continuous Integration / непрерывная интеграция — автоматическая проверка кода при каждом изменении) — сначала через Travis CI, потом GitHub Actions
- Социальный граф — follow разработчикам, звёзды проектам, watch репозиториям
К 2010 году GitHub стал местом, где хостится каждый значимый open-source проект. Python, Ruby, JavaScript — всё переехало. SourceForge начал умирать.
ЭВОЛЮЦИЯ ХОСТИНГА КОДА ─────────────────────── 1999 2008 2016 2024 │ │ │ │ ▼ ▼ ▼ ▼ SourceForge ──▶ GitHub ──▶ npm/GitHub ──▶ ??? (manual) (social) (ecosystem) (fragmentation)
Обратная сторона: взрыв микро-зависимостей
GitHub сделал публикацию кода невероятно простой. Опубликовать npm (менеджер пакетов Node.js — хранилище готовых библиотек для JavaScript) пакет — вопрос минуты. Результат?
В 2016 году случился left-pad incident: один разработчик снял с публикации свой крошечный пакет (11 строк кода), который использовался в тысячах других пакетов. Сломались сотни проектов, включая React и Babel.
Это не баг — это фича. Низкий порог входа породил экосистему из миллионов пакетов, где средний размер зависимости — несколько десятков строк. Каждый pull request в npm — это потенциальная точка отказа.
Что происходит с GitHub сейчас
GitHub всё ещё доминирует, но появляются трещины.
В 2024 году были серьёзные инциденты с downtime — крупные проекты (включая некоторые зависимости экосистемы Rust) временно теряли доступ к репозиториям. Но дело не только в стабильности.
Copilot (AI-помощник от GitHub, который пишет код за вас) генерирует тонны синтетического кода, который выглядит как вклад, но не имеет отношения к реальной разработке. Pull request-ы от ботов заполняют историю, а настоящие контрибьюторы теряются в шуме.
Более того, ключевые проекты начали уходить. Zig и Strudel объявили о переезде на собственные инфраструктуры. Причина? Зависимость от проприетарной платформы, которую они не контролируют.
Так куда мы катимся?
Мир разработки сейчас в точке, похожей на 2005-й: централизация надоела, но альтернативы ещё не созрели.
GitHub — это новый SourceForge. Не в смысле «плохой», а в смысле «доминирующий, но не безальтернативный». Мы видим рост self-hosted решений (Gitea, Forgejo), децентрализованных подходов (Radicle), и просто усталость от одного игрока на рынке.
Armin Ronacher в своей статье Before GitHub напоминает важную вещь: инструменты были всегда, просто разные. Свои сервера → SourceForge → GitHub →???
Вопрос не в том, вернёмся ли мы к ручному хостингу. Вопрос в том, что будет следующей «одной платформой», которую мы все примем как данность — и сколько лет она продержится.
ЦИКЛ РАЗРАБОТКИ
───────────────
▲
│ Сложность
│ растёт
│ ╱╲
│ ╱ ╲ ← хотим
│ ╱ ╲ простоту
│ ╱──────╲
│ ╱ ╲
│ ▼ ▼
└──────────────▶
Время
Ссылки
Дмитрий Полухин — продуктовый дизайнер. Пишу про разработку, AI и дизайн интерфейсов. Обо мне, контакты и профили.