Линус Торвальдс размышляет за 20 лет git

Это было 20 лет назад, когда Линус Торвальдс написал систему управления распределенной версией GIT — 7 апреля 2005 года он сделал первый коммит. Итак, в начале апреля Гитуб праздновал. Инженер-программист GitHub Taylor Blau провел интервью с Torvalds, которое тогда поделилось на YouTube (где канал обслуживания на основе GIT имеет 467 000 подписчиков).

Но первый вопрос дал какой -то важный контекст. Ожидал ли Торвальдс использовать и говорить о GIT 20 лет спустя?

Создатель Linux ответил, что он ожидал, что он все еще будет использовать git — но «может быть, не говорит об этом». Он удивлен, что это не просто сохранилось, но стал доминировать в пространстве управления контролем источника для разработчиков по всему миру-потому что «я видел это как решение моих проблем».

Так что же произошло дальше? Торвальдс использует интервью, чтобы подумать обо всех полученных уроках-о сетевых эффектах, рабочих процессах и важности простоты в решении проблем. Он поделился своим сожалением, но также выразил надежду на будущее.

И к концу интервью он взвешивал, действительно ли GIT изменил акт самого программирования.

Изменение динамики

Оглядываясь назад, Торвальдс вспоминает, как Гит сначала не приветствовал безоговорочную любовь. Но 2008 год принесли «этих странных веб -разработчиков, которые начали использовать GIT». Три года назад группа этих разработчиков выпустила совершенно новую систему веб-применения под названием Ruby On Rails, говорит Торвальдс: «Я понятия не имел-я до сих пор не знаю, что такое Ruby».

Называя их «странными», кажется, показывает свое чувство удивления на этом «совершенно нового вида пользователя GIT — по крайней мере, которого я раньше не видел…»

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

Торвальдс по-прежнему верит, что их прибытие «изменило динамику, когда у вас не было этих старожилов, которые использовали совершенно разные [supply chain management] Вся их жизнь ». Безумность изменений казалась совершенно смешной.

Это в конечном итоге привело к сетевому эффекту, когда новые проекты внедрили GIT по умолчанию, чтобы оставаться совместимым со всеми другими проектами. Торвальдс говорит, что, вероятно, объясняет, почему популярность Гита взлетела на сказку — создавая вызов в последующие десятилетия, которые последовали не для GIT, но «для любого другого, кто думает, что у них есть что -то лучше».

В одном отчете даже заявили, что 98% проектов использовали GIT, хотя Торвальдс говорит: «Я не знаю, насколько это правда. Но это, как и Большой!»

Есть альтернативы (например, Пиджул, Джудздзюцу, Пайпер). Он когда -нибудь их пробовал? У Torvalds есть готовный ответ. «Нет.»

Потому что зачем ему — когда у него уже есть git?

Еще в 2005 году

Торвальдс рано поговорил с Google о GIT еще в 2007 году. И интересно, что он сделал точку поблагодарителя Bitkeeper, контроля версий, которую Linux использовал с 2002 по 2005 год.

В этом выступлении Торвальдс аплодировал способности Bitkeeper координировать и объединять широко распределенные взносы. «Bitkeeper была не только первой системой контроля источников, которую я когда-либо чувствовал, стоил вообще,-это была также система контроля источников, которая научила меня, почему есть то, что им есть, и как вы на самом деле можете делать что-то… много потоков, которые мы используем с GIT, выходят непосредственно из потоков, которые мы узнали из BitKeeper».

«Один из вариантов замены возвращался к тарболу и патчам, но никто больше не любил это».

Торвальдс зачислен за написание GIT за 10 дней. Но, оглядываясь назад в апреле этого года, он помнит, что «к тому времени, когда я начал писать, я на самом деле думал о проблеме в течение четырех месяцев, думая о том, что сработало для меня, и думая о том, как мне сделать что -то, что делает даже лучше, чем Битпетер».

Он тактично описал свой мыслительный процесс: «Я не могу использовать резюме, потому что я ненавижу его со страстью, поэтому я буду делать свое дело».

Но, оглядываясь назад, Торвальдс подчеркивает, что он придерживался нескольких простых целей дизайна.

  • Производительность: Ядро Linux-это большой проект, а некоторые инструменты для контроля версий занимали до 30 секунд для каждого патча, «что было неприемлемо для меня», поскольку более быстрое результаты означают более быстрое исправление. («Это на самом деле качество жизни».)
  • Нет коррупции: Некоторые говорят, что было ошибкой использовать хэши SHA-1-но Торвальдс указывает, что этого не было для безопасности, а для предотвращения повреждения данных, которую они уже испытали с Bitkeeper. Как сказал Торвальдс в 2007 году, «если вы не можете гарантировать, что то, что я вкладываю в SCM, выходит точно так же, вы не стоите использовать».
  • Поддержка распределенных рабочих процессов: Торвальдс сказал, что в 2025 году подчеркнул еще одну цель дизайна: облегчение копирования репозиториев, причем каждый репозиторий был таким же. «Это было то, чего я очень хотел. И я не понял, сколько других людей тоже этого хотели».

«Реализация действительно проста», — сказал Торвальдс в 2007 году, назвав ее «80 000 строк и в основном в C.»

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

Скриншот от Google Talk Torvalds 2007 года

Оглядываясь назад

Были ли какие -либо решения, которые он хотел бы сделать по -другому?

Торвальдс признает, что сожалеет о SHA-1, «в том смысле, что я думаю, что это вызвало много бессмысленного оттока, причем весь попытка поддержать Ша-256, а также SHA-1».

LWN.NET сообщил, что в 2020 году код GIT был рефактор «и может обрабатывать несколько типов хэш, причем SHA-256 является вторым поддерживаемым типом». Торвальдс сказал: «Я понимаю, почему это произошло, но я думаю, что это было в основном бессмысленно. Я не думаю, что в этом была огромная реальная потребность. Но люди волновались … так что, я думаю, есть много потраченных впустую».

Когда его спросили позже, какой GIT меняется за эти годы, Торвальдс возвращается к предмету. «Я думаю, что самым большим изменением, которое я все еще отслеживал несколько лет назад, было все множественные хэши. Это действительно выглядит очень болезненно для меня».

Но изменил ли GIT способ кода? В какой -то момент Торвальдс, казалось, размышлял обо всем, что произошло после, сказав, что Github и другие услуги хостинга «ясно дали понять, насколько легко сейчас создавать все эти случайные небольшие проекты, так что они не были».

Кроме того, это привело к многим «одноразовым вещам, где кто-то что-то сделал и оставил его позади, и это все еще там». Торвальдс не скажет, изменила ли это в корне разработку программного обеспечения, как мы его знаем, — но он признает, что «это меняет детали. Это облегчает сотрудничество в некоторой степени».

«Это облегчает выполнение этих одноразовых проектов, и если они не работают, они не работают, и если они работают — теперь вы можете работать вместе с другими людьми».

Благодаря Юнио

Но, несмотря на все проекты, использующие GIT за последние два десятилетия, настоящий герой GIT-давний сопровождающий Junio ​​Hamano, говорит Торвальдс, и «20 лет спустя вы обязательно должны поговорить с Junio ​​не со мной».

Даже в своем выступлении в 2007 году в Google Торвальдс назвал Хамано «человеком, который фактически сделал его более доступным для простых смертных». (И Торвальдс добавил, что «было много других людей».)

Все эти годы спустя Торвальдс говорит, что сумма кредита, поступающая в его путь. Он помнит, когда его старшая дочь впервые пошла в колледж — и сказал ему, что он более известен в ее лаборатории компьютерных наук за создание git, чем для Linux, «потому что они фактически используют Git для всего там».

«Это довольно нелепо, что да, я использовал четыре месяца своей жизни, поддерживая ее».

Заключение

Было потрясающее откровение. Торвальдс иногда проверяет свой собственный файл истории GIT и поделился некоторой статистикой о своих собственных моделях использования. «Оказывается: я использую пять команд GIT».

«И git version, git warm и git log — три из них. Так что я очень случайный пользователь GIT, в этом смысле».

(Две другие команды GIT используют Torvalds — это GIT Commit и Git Pull.)

Отвечая на вопрос о его надеждах на будущее, Торвальдс отмечает, что, хотя многие сайты предлагают функции отслеживания ошибок, «я бы хотел, чтобы это было более объединенным… где отслеживание ошибок и проблемы в целом будет чем-то, что будет более распространенным на сайтах хостинга».

Но все это задает еще один вопрос. Linux. Git. Должны ли мы сделать еще один большой проект от Torvalds? «О, этот вопрос», — говорит он с улыбкой. Он слышал это раньше — но ответ нет.

Все проекты, которые он сделал: «Я должен был сделать, потому что я не мог найти ничего лучше, чем кто -то другой. Я начал делать Linux, потому что мне нужна была операционная система, и не было ничего, что служило моим потребностям, и я начал делать GIT по той же причине».

Десять лет назад Торвальдс даже написал свою собственную программу для Scuba Divers (так как он также заядлый развлекательный дайвер). «Но я предпочитаю других людей, решающих мои проблемы для меня», — говорит он своему интервьюеру.

«Таким образом, мне приходится придумать проект, на самом деле провал мира».

«И мир просто не потерпел неудачу за последние 20 лет для меня».

Trending Stories youtube.com/thenewstack Tech движется быстро, не пропустите эпизод. Подпишитесь на наш канал YouTube, чтобы транслировать все наши подкасты, интервью, демонстрации и многое другое. Группа подпишитесь с эскизом. Дэвид Кассель — гордый житель района залива Сан -Франциско, где он освещал технологические новости более двух десятилетий. За эти годы его статьи появлялись повсюду от CNN, MSNBC и The Wall Street Journal Interactive … Подробнее от Дэвида Касселя

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *