€ 98.53
$ 91.97
Линус Торвальдс: Разум, создавший Linux

Лекции

Линус Торвальдс: Разум, создавший Linux

Линус Торвальдс дважды изменил технологии — первый раз с ядром Linux, которое способствовало развитию интернета, а затем с Git, системой управления исходным кодом, которая используется разработчиками во всем мире. В интервью с куратором TED Крисом Андерсеном Линус с необыкновенной открытостью говорит о своих чертах характера, которые сформировали его философию относительно работы, инженеров и жизни. «Я не визионер, я инженер, — говорит Торвальдс. — Я ничего не имею против людей, которые мечтают, витая в облаках… Я же смотрю под ноги, я хочу залатать выбоину прямо у себя под носом, прежде чем в нее попаду»

Линус Торвальдс
Лидерство

Крис Андерсен: Это такое странное дело. Ваше ПО, Linux, установлено на миллионах компьютеров, оно, вероятно, основа интернета. И, я думаю, примерно полтора миллиарда устройств работают под Android. Ваше ПО — в каждом из них. Это удивительно. У вас, должно быть, удивительная штаб-квартира для всего этого. Вот что я думал — и был шокирован, увидев это. Я имею в виду — это штаб-квартира Linux.

Линус Торвальдс: Да, выглядит не особо круто. Должен сказать, что самое интересное на этом фото, что люди чаще всего замечают, это стол для работы стоя. Это самая интересная часть моего офиса, но я вообще-то больше ее не использую. Я думаю, здесь есть некая связь. Как я работаю… я не хочу никакой внешней стимуляции. Как видите, стены светло-зеленые. Мне говорили, что в психлечебницах делают такие же. Это успокаивающий цвет. Он не стимулирует.

Чего здесь не видно — так это компьютера, только монитор, а в компьютере меня больше всего заботит не мощность и большой размер, хотя это мне нравится, — он должен быть абсолютно бесшумным. Я знаю людей, которые работают в Google, и у них дома целые дата-центры, а я так не делаю. Мой офис — самый скучный в мире. Я сижу тут один в тишине. Если приходит кошка, она сидит у меня на коленях. И я хочу слышать ее мурчание, а не кулеры в системном блоке.

КА: Это поразительно: работая таким образом, вы можете управлять огромной технологической империей — да, это империя — и это удивительное свидетельство силы открытого ПО.

Расскажите нам, как вы пришли к пониманию открытого ПО и как это привело к созданию Linux.

ЛТ: Я все еще работаю один. Правда — я работаю дома один, часто в халате. Когда приходит фотограф, я одеваюсь, и вот на фото я одет.

Я работал так всегда. И Linux начался так же. Я не начинал Linux как совместный с кем-то проект. Я начал его как один из многих проектов, которые я делал для себя, частично ради конечного результата, но в основном потому, что я люблю писать код. Хотелось дойти до конца, но сейчас, спустя 25 лет, мы еще не там. Все дело было в том, что я искал проект для себя, а тогда на рынке не было открытого ПО, я о таком не знал.

А дальше… проект растет, и тебе уже хочется показать его людям. Что-то вроде: «Ух ты, смотрите, что я сделал!» И поверьте — тогда он был не таким классным. Я сделал его доступным, но тогда это еще не было открытое ПО. Тогда исходники были открыты, но у меня не было намерения сделать из этого методологию открытого ПО и улучшить его. Это было что-то вроде: «Смотрите, я работал над этим полгода, я хочу услышать комментарии».

Ко мне приходили люди. В Университете Хельсинки у меня был друг, один из тех, кто делал открытое ПО — тогда это называлось «бесплатное ПО», и он подтолкнул меня к мысли о том, что я могу использовать открытые лицензии, которые уже есть. Я думал об этом некоторое время, меня волновали коммерческие интересы, которые бы вступили в игру. Я думаю, этот вопрос волнует всех, кто начинает что-то делать: а что, если кто-то воспользуется результатами моей работы? И я подумал: «Какого черта?» И…

КА: И в какой-то момент кто-то написал код, о котором вы подумали: «Ого, а это интересно! Мне не приходило это в голову. Это может улучшить проект».

ЛТ: Это началось даже не с людей, которые писали код, это были люди, которые подавали идеи. И сам факт того, что кто-то смотрит на ваш проект — и, уверен, это справедливо для других случаев тоже, но для кода — на все сто, — так вот, кто-то другой заинтересован вашим кодом, он смотрит на него и может дать обратную связь и поделиться идеями. Это было очень важно для меня.

Мне тогда был 21 год, совсем молодой, но я уже программировал примерно полжизни. Все мои проекты до этого были исключительно личными, и это было откровением, когда люди стали комментировать, давать обратную связь о моем коде. И еще до того, как они стали писать код, был важный момент, когда я сказал: «Я люблю людей!» Не поймите меня неправильно — я не особенно-то общительный. Я правда не очень люблю людей… Но я люблю компьютеры. Я люблю переписку по электронной почте, она дает некий буфер. Я люблю людей, которые комментируют и участвуют в моем проекте. И которые так ему помогли.

КА: Значит, в какой-то момент вы посмотрели на свое детище, которое становилось успешным, и подумали: «Погодите, из этого можно сделать что-то большое, не просто личный проект с классными комментариями, но взрывное развитие для всего мира технологий»?

ЛТ: Не совсем. Для меня важным был не тот момент, когда проект становился большим, а когда он становился маленьким. Мне было важно не быть одному, и когда с тобой работает 10, может, 100 человек, — вот это важно. После этого все уже идет плавнее. Вырасти от 100 до 1 000 000 человек не такое уж большое дело, как по мне. Нет, конечно, если вы хотите продавать продукт, то это огромный рост — не поймите меня не так. Но если вы заинтересованы в технологии и заинтересованы в проекте, сообщество — это очень важно. Сообщество постепенно росло. Не было момента, когда я подумал: «Ого, мы взлетели!» — потому что это был относительно долгий процесс.

КА: Все специалисты, с которыми я говорю, отмечают, что вы изменили их работу. Это не только Linux, это Git — система управления разработкой ПО. Расскажите вкратце об этом и о вашей роли.

ЛТ: Одна из наших проблем — и она тоже не проявилась сразу — это когда вы… Когда ваша проектная команда выросла с 10 или 100 человек до 10 000. Например, сейчас над ядром Linux работает 1 000 человек, и это над каждым релизом, то есть каждые два или три месяца. Кто-то делает не очень много. У нас полно людей, которые вносят небольшие изменения. Но чтобы поддерживать это, нужно масштабировать систему поддержки. Нам было непросто с этим справиться. У нас есть целые проекты для управления исходным кодом. Самым популярным был тогда CVS, а мне очень не нравился CVS, и я отказался с ним работать и попробовал что-то совершенно другое и интересное, то, что не любили другие.

Мы были в той точке, когда у нас тысячи людей, которые хотят участвовать, но для меня это во многом был переломный момент, когда я не смог начать работать с тысячами людей.

Git — мой второй большой проект, который был создан для того, чтобы поддерживать мой первый проект. Вот так я и работаю. Я не пишу код ради… хорошо, пишу ради забавы — но я хочу писать код с осмысленной целью, так что каждый мой проект — это что-то нужное и…

КА: Получается, и Linux, и Git выросли как нечто само собой разумеющееся из вашего нежелания работать с большим количеством людей.

ЛТ: Да. Верно.

КА: Поразительно.

ЛТ: Да.

КА: И все же вы человек, который изменил технологии дважды, и нам нужно постараться понять, почему. Вы дали несколько подсказок, но… Вот вы маленький собираете кубик Рубика. Вы упомянули, что программируете с 10 или 11 лет, половину жизни. Вы были из тех компьютерных гениев, одержимых, были в школе учеником, который мог все? Каким ребенком вы были?

ЛТ: Да, я думаю, я был классическим «ботаником». Я был… Я тогда был не особо общительным. Это мой младший брат. Я явно больше интересовался кубиком Рубика, чем общением с братом.

Моя младшая сестра, которой нет на фото, перед семейными встречами — у нас была небольшая семья, но пара двоюродных братьев у меня была, — она готовила меня заранее. Перед тем как я заходил в комнату, она говорила: «Это то-то и то-то…» Потому что я не… Я был гиком, был весь в компьютерах, увлечен математикой, увлечен физикой. Получалось хорошо. Я не думаю, что был выдающимся. Моя сестра говорила, что я отличаюсь тем, что не сдаюсь.

КА: Давайте поговорим об этом подробнее, это интересно. Вы не сдаетесь. Выходит, дело не в том, чтобы быть гиком или умным, а в том, чтобы быть… упертым?

ЛТ: В том, чтобы быть упертым. Это когда вы начинаете что-то и не говорите: «Отлично, готово, давайте сделаем что-нибудь другое, отличная погода!»

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

КА: Но во время начального развития Linux эта упертость порой приводила вас к конфликтам с другими людьми. Расскажите об этом. Была ли упертость необходима для поддержки качества сделанного? Как бы вы описали то, что происходило?

ЛТ: Не знаю, было ли это необходимо. Возвращаясь к «я не очень общительный» — иногда я еще и… скажем так, «близорук» в отношении чужих чувств, поэтому иногда говорю вещи, которые ранят других людей. Я не горжусь этим. Но в то же время вокруг меня некоторые говорят, что я должен быть вежлив. А когда я пытаюсь объяснить им, что, возможно, ты вежлив, но нужно быть чуть агрессивнее, они воспринимают меня как невежливого.

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

Возвращаясь к тому, что я говорил раньше: что я боялся, что люди на рынке заработают на моей работе. Выяснилось, и очень быстро, что эти люди — очень, очень классные. Они делали те вещи, которые мне были совершенно неинтересны, и задачи у них были совсем другие. Они использовали открытое ПО там, где я не хотел это делать. Но это открытое ПО, и они могли это делать, и это отлично работало.

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

КА: На прошлой неделе вы рассказывали об еще одной вашей черте, которая кажется мне интересной. Это стиль в коде.

Я подготовил несколько изображений. На этой — пример не очень хорошего стиля в коде, а на этой стиль лучше, и это сразу видно. В чем разница между ними?

ЛТ: Это… Сколько людей в этом зале когда-нибудь программировало?

КА: О Боже.

ЛТ: Уверяю вас, каждый, кто поднял руку, сталкивался с однонаправленными связанными списками. Нас учат… Что уже само по себе не есть хороший стиль — это то, как нас учат, когда мы начинаем программировать. Не обязательно понимать этот код.

Самое интересное для меня — это последний оператор if. В однонаправленном связанном списке он пытается удалить существующую запись из списка, и здесь важно, первая это запись или запись из середины. Потому что если первая, то вам нужно будет переместить указатель к первой записи. Если она из середины, нужно будет изменить указатель предыдущей записи. Это два совершенно разных случая.

КА: И этот — лучше.

ЛТ: И этот — лучше, в нем нет оператора if. На самом деле, не важно… Мне не нужно, чтобы вы понимали, почему в нем нет оператора if, но я хочу, чтобы вы поняли, что иногда на проблему можно посмотреть по-другому и переписать код так, что особенный случай исчезает и становится обычным. Вот это хороший код. Но это простой код. Это самые азы. Это не важно, важны детали.

Для меня отличительная черта тех, с кем я хочу работать, – хороший стиль в коде. Я прислал вам дурацкий пример, он совсем ни о чем, слишком маленький. Хороший стиль — это намного больше. Хороший стиль — это видеть большие закономерности и почти инстинктивно знать, как будет правильно.

КА: Хорошо, давайте сведем все воедино. У вас есть стиль. В том смысле, который важен для разработчиков. Вы…

ЛТ: Думаю, это было важно для некоторых людей в зале.

КА: Вы отличный программист, и вы чертовски уперты. Но должно быть что-то еще. Вы изменили наше будущее. У вас должна быть способность видеть изменения в будущем. Вы визионер, так?

ЛТ: Если честно, я чувствую себя слегка неудобно на TED в последние два дня, вокруг столько разговоров об изменении будущего. Я не визионер. У меня нет плана на пять лет вперед. Я инженер. Я думаю… Я не имею ничего против тех, кто мечтает и витает в облаках, смотрит на звезды и говорит: «Я хочу попасть туда». А я смотрю под ноги, я хочу залатать выбоину прямо у себя под носом, прежде чем попаду в нее. Я человек такого склада.

КА: На прошлой неделе вы упоминали двух человек. Кто они, и кто вы по отношению к ним?

ЛТ: Это что-то вроде клише в технологиях: Тесла против Эдисона, Тесла в роли визионера, ученого и человека с сумасшедшими идеями. Люди любят его. Некоторые называют компании в его честь.

Второй — Эдисон, которого частенько обвиняют в том, что он был слишком приземленным, и его самая известная цитата — «Гений — это 1% вдохновения и 99% пота». Я в команде Эдисона, несмотря на то, что его не все любят. Сравните: Тесла увлекает всех сегодня, но кто на самом деле изменил мир? Эдисон, может, не был приятным человеком, за ним водились грехи, может быть, он не был таким уж интеллектуалом, не был визионером. Но я думаю, что я больше Эдисон, чем Тесла.

КА: Тема этой конференции TED — мечты, большие, смелые, глобальные. Вы явно противоядие от этого.

ЛТ: Да, пытаюсь уменьшить градус.

КА: Здорово. Мы принимаем вас, принимаем вас.

Многие компании, такие как Google, заработали миллиарды долларов на вашем ПО. Вас это расстраивает?

ЛТ: Нет. Это не расстраивает меня по нескольким причинам. Одна из них — у меня все хорошо. У меня правда все хорошо.

Но другая причина в том, что без открытого ПО, без его бесплатного распространения, Linux никогда не стал бы тем, какой он сейчас. Это принесло мне некоторый опыт, который мне не нравится, например выступления, но в то же время — это опыт. Поверьте. Многие вещи делают меня очень счастливым, и, я думаю, я все сделал правильно.

КА: Идея открытого ПО — думаю, мы закончим на этом — идея открытого ПО сейчас реализована в полной мере? Или нам еще есть куда идти и есть что делать?

ЛТ: У меня двоякое мнение. Одна из причин, по которой открытое ПО так хорошо работает в коде, в том, что в итоге код либо черный, либо белый. Часто можно с уверенностью сказать: это сделано верно, а вот это — нет. Код или работает, или нет, то есть пространства для спора совсем немного. И несмотря на это, мы все еще спорим. Во многих других сферах — так, часто говорят об открытой политике — там иногда сложно сказать: да, мы можем применить те же самые принципы в этой сфере, потому что черное и белое превращаются не просто в серое, но в разные цвета.

Открытое ПО сейчас возвращается в науку. Наука была первой. Но в итоге наука стала закрытой сферой с очень дорогими журналами и прочим. Открытое ПО делает ее снова доступной, например с помощью arXiv и открытых журналов. Википедия тоже изменила мир. Есть и другие примеры, и, я уверен, будут еще.

КА: Но вы не мессия, и не ваша задача их называть.

ЛТ: Нет. Это ваша задача, ребята, правда?

КА: Верно. Линус Торвальдс, спасибо вам за Linux, спасибо за интернет, спасибо за телефоны с Android. Спасибо, что пришли на TED и так открыто рассказали о себе.

Перевод: Надя Борисова
Редактор: Анна Котова

Источник

Свежие материалы