Существующий уже 15 лет (и ставший за это время популярным) сайт Slashdot для дискуссий по технологическим темам недавно предложил своим читателям задать вопросы Линусу Торвальдсу, создателю Linux. В итоге получилась любопытная беседа.
Так, первый из задававших вопросы предположил, что Торвальдс является противником патентов и копирайта. Увы, в реальности это далеко не так. “Мне нравятся авторские права, и я необязательно поддерживаю тех, кто считает патенты абсолютным злом, — пояснил Торвальдс. — Когда я горячусь насчет патентов или авторских прав, я выступаю в первую очередь против крайностей и плохой политики в этой области, а не против патентов и прав как таковых”.
В отношении копирайта он высказался так: “Мне непонятно, что странного в моей позиции, и еще менее понятно, почему из тезиса “с авторскими правами есть проблемы” нужно делать вывод, что “защиту авторских прав следует упразднить”. Второе из первого никак не вытекает”.
В чем Торвальдс видит проблемы, так это в следующем: “Я имел в виду такие положения, как “жизнь автора + 70 лет” и 95-летний период для корпоративных версий. Это смешно. Задумайтесь также о том, как трудно судить о добросовестном использовании чего-либо. Все это становится препятствием для архивации материалов, создания документальных фильмов и тому подобных вещей”.
Торвальдсу также задали вечно популярный вопрос, что бы он сделал в Linux по-другому с позиций сегодняшнего дня. Его ответ: “Меня об этом очень часто спрашивают, и я не вижу реальных путей, следуя которым в прошлом я мог бы сделать что-то лучше. Я вовсе не претендую на особую прозорливость — просто, если оглянуться на 20 лет назад, я, по большому счету, вижу, что действительно выбирал правильные решения. Я по-прежнему люблю GPLv2 и абсолютно уверен, что разработка Linux в открытом исходном коде стала самым выдающимся шагом”.
В конце ответа Торвальдс сказал: “Были ли у меня ошибки? Конечно. Но в целом, мне кажется, ОС Linux получилась очень хорошей, и я принимал правильные решения”. Если поразмыслить, с этим трудно не согласиться. За двадцать с лишним лет существования Linux эта ОС вошла в число доминирующих в Интернете, на смартфонах (благодаря Android), на суперкомпьютерах и т. д. Хотя на старте Linux рассматривалась как нечто вроде хобби, в итоге получилась весьма неплохая система.
В таких интервью неизбежно затрагиваются кое-какие архитектурные вопросы ОС, и один из читателей (наверно в 2012-й раз) спросил Торвальдса, размышлял ли он когда-нибудь на досуге насчет микроядерной архитектуры в стиле Hurd?
Как всегда, Торвальдс твердо ответил “нет”. “По-моему, микроядра — это глупость. Они переводят проблему в область коммуникаций, а это гораздо более трудные и фундаментальные вопросы, чем мелкие проблемы, которые таким образом намереваются решить. Модель микроядер ведет к ужасающим сложностям, с которыми вам потом придется бороться, изобретая новые пути для устранения лишних коммуникационных задержек и т. п. Hurd — прекрасный пример такого прожектерства, когда людям приходится заново создавать модели распределения памяти только из-за того, что нормальная модель “сделать быстрый системный вызов в рамках того же контекста” в микроядерной схеме не работает”.
“Между прочим, это касается не только микроядер, — продолжил он. — Всякий раз, когда у вас возникает “революционная идея” и вы из нее делаете основополагающую идеологию, есть шанс, что вы ошибаетесь. Одной из таких идеологий являются микроядра, были и другие примеры. Это все пустые разговоры. Реальность сложна, и не стоит надеяться на возможность решения всех проблем по модели “одной крупной идеи”. Единственный путь решения проблем в реальной жизни — долго и усердно трудиться над выправлением всех мелочей. А не какая-то всеобъемлющая идеология, от которой все магически заработает”.
Все, кто годами следит за Торвальдсом и его методом разработки, знают, что он верит в афоризм Томаса Эдисона: “Гений — это один процент вдохновения и 99 процентов труда”.
Далее был вопрос о том, как Linux удалось избежать сепаратистских войн, которые выпали на долю Unix в 80-е и 90-е годы. Из-за них Unix сначала уступил власть на офисных серверах NetWare и Windows, а потом пришел к упадку в дата-центрах и на веб-серверах, будучи вытесненным Linux.
Торвальдс ответил: “Я твердо верю, что поощрение слияния кода — самый важный аспект лицензирования. И то, что лицензия типа GPLv2 по сути требует, чтобы каждый имел право вновь присоединить к первоначальному проекту полезный код, — это великое дело, которое позволяет не беспокоиться о разветвлении разработок”.
На самом деле, по мнению Торвальдса, в форках нет ничего плохого: “Разветвление абсолютно необходимо, потому что это нормальный путь разработок. Ведь один из принципов разработки git (распределённая система управления версиями файлов) был в том, чтобы обеспечить легкость разветвления и убрать любые этому мешающие технические барьеры (типа “более централизованного репозитория”). Разветвление — важная вещь и всякий раз встает на повестку дня, когда разработчик думает о том, как получить в какой-то области лучший результат. Почувствуйте себя свободно, разветвите проект и докажите свою правоту. Продемонстрируйте всем, что вы умеете делать улучшения.
Если бы не было нормальных возможностей обратного слияния форков с исходным проектом, вот тогда они были бы злом. И в Linux это не только связано с лицензированием. Конечно, лицензия всегда дает легальную возможность воссоединения, если форки окажутся хорошими. Однако еще нужна культура поощрения форков, а не желание видеть в них нечто враждебное. Практически все Linux-дистрибутивы имеют собственные форки ядра, и никто не считает, что это плохо, — наоборот, это естественно и хорошо”.
Что касается реального написания кода, Торвальдс сегодня уже не посвящает этому много времени: “Вы понимаете, что я больше не берусь за все, что касается кода? Я трачу время не на код, а на чтение электронной почты и синтез того, что написали другие. И когда я действительно занимаюсь кодом, это не потому, что мне это интересно, а потому, что его испортили, и тогда я проклинаю людей, которые его написали, вместе с их предками и домашней живностью”.
Иными словами, Торвальдс хотел бы, чтобы программисты лучше разбирались в подлинно базовом, низкоуровневом типе кодирования. Не в серьезных и сложных вещах типа поиска неблокируемых имен, а просто в правильном использовании указателей на указатели и т. п.: “Например, я многократно встречал людей, которые удаляют элемент однонаправленного списка, отслеживая элемент “prev”, чтобы потом удалить этот элемент… Когда я вижу подобный код, то делаю вывод: этот человек не разбирается в указателях. И печально, что это обыденное явление”.
Хотя в настоящее время Торвальдс не особо много программирует, ему не грозит эмоциональное выгорание. “Я получаю удовольствие от своей работы, — пояснил он. — А еще я действительно люблю поспорить и хотя могу крепко разругаться и порой бываю похож на сварливого старика, меня также часто устраивает, когда все идет своим чередом. Я могу сильно вспылить по поводу некоторых вещей, но вместе с тем мне не свойственно слишком долго зацикливаться на каком-то конкретном вопросе, и, по-видимому, это помогает избежать эмоционального выгорания”.
При этом он не собирается в обозримом будущем отходить от дел. А если это время придет, его это мало сегодня волнует.
Не так давно ему задавали вопрос: “А что если Линус попадет под автобус?” На что он ответил: “У нас есть несколько “первых заместителей”, которые смогут принять эстафету, и меня гораздо больше беспокоят многие другие открытые проекты, у которых едва ли есть столь же крупное сообщество разработчиков, как у ядра. Вместе с тем я этим занимаюсь уже больше двух десятков лет и не вижу причин прекращать свою работу. Мне по-прежнему нравится мое дело, и я просто умру от скуки без своей возни с ядром”.