Цей переклад може не відображати змін, внесених із 2021-11-02 у англійський оригінал.
Ви можете поглянути на ці зміни. Будь-ласка перегляньте файл README стосовно перекладів для того, щоб отримати інформацію про координування перекладів цієї статті.
Інтерв'ю з Річардом Столменом у BYTE
Проведено Девідом Бецом і Джоном Едвардсом
Річард Столмен обговорює свою сумісну з Unix програмну систему, яка знаходиться в суспільному надбанні, з редакторами “BYTE” (липень 1986 р.)
Річард Столмен взяв на себе, мабуть, найсміливіший проект в історії розробки вільного програмного забезпечення систему GNU. В “Маніфесті GNU”, опублікованому в номері “Журналу доктора Добба” за березень 1985 року, Столмен описав GNU як “повну програмну систему, сумісну з Unix, яку він створює так, щоб зміг віддати її вільно кожному, хто може її використовувати… Як тільки GNU буде написана, кожен зможе отримати гарне системне програмне забезпечення так само вільно, як повітря. (GNU — це скорочення, позначає “GNU — це не Unix”; літера “G” вимовляється).
Столмен широко відомий як автор EMACS, потужного текстового редактора, який він розробив у Лабораторії штучного інтелекту в MIT. Не випадково, що першим програмним компонентом, створеним в рамках проекту GNU, була нова реалізація EMACS. GNU EMACS вже заслужив репутацію однієї з найкращих реалізацій EMACS, доступних на сьогоднішній день за будь-якою ціною.
BYTE: Ми читали ваш “Маніфест GNU” в номері “Журналу доктора Добба” за березень 1985 року. Що сталося з тих пір? Було це дійсно початком, і наскільки ви з тих пір просунулися?
Столмен: Публікація в “Журналі доктора Добба” не була початком проекту. Я написав “Маніфест GNU”, коли збирався почати проект, в якості пропозиції виробникам комп'ютерів профінансувати його. Вони не захотіли брати участь, і я вирішив, що замість того, щоб витрачати свій час на вишукування фондів, я повинен витратити його на написання програм. Маніфест був опублікований приблизно через півтора року після того, як я його написав, коли я тільки-но почав поширювати GNU EMACS. З тих пір на додачу до того, що я зробив GNU EMACS всеохопнішим і змусив його працювати на набагато більшому числі комп'ютерів, я майже закінчив оптимізуючий компілятор C і все інше програмне забезпечення, необхідне для запуску програм на C. Це включає зневадник рівня вихідного коду, у якого є багато функцій, яких немає в інших зневадників рівня вихідного коду для Unix. Зокрема, у нього є змінні всередині зневадника, щоб ви могли зберігати значення, а також історія всіх виведених значень, яка надзвичайно полегшує обхід спискових структур.
BYTE: Ви закінчили редактор, який тепер широко поширений, і закінчуєте компілятор.
Столмен: Я розраховую закінчити його в жовтні цього року.
BYTE: А як щодо ядра?
Столмен: Зараз я планую почати з ядра, написаного в MIT і недавно випущеного в світ за припущення, що я використовую його. Це ядро називається TRIX; воно засноване на віддаленому виклику процедур. Мені ще потрібно додати сумісність з багатьма особливостями Unix, якої у нього поки немає. Над цим я ще не починав працювати. Я поки закінчую компілятор, а потім приступлю до ядра. Мені також, мабуть, доведеться переписати файлову систему. Я маю намір зробити її стійкою до збоїв, просто записуючи блоки в потрібному порядку так, що структура диска ніколи не порушиться. І ще я збираюся ввести номери версій. У мене є складна схема узгодження номерів версій з тим, як люди зазвичай використовують Unix. Потрібно, щоб була можливість вказувати імена файлів без номера версії, але в водночас треба, щоб номер версії можна було вказувати в явному вигляді; те, й інше має працювати із звичними програмами Unix, ніяк не зміненими для врахування цієї особливості. Мені здається, у мене є схема здійснення цього, але тільки перевірка на ділі покаже, чи буде це працювати.
BYTE: Не могли б ви коротко описати, чим GNU як система буде перевершувати інші системи? Ми знаємо, що одна з ваших цілей — створити щось сумісне з Unix. Але, принаймні, в плані файлової системи, ви вже сказали, що збираєтеся піти далі і створити щось краще.
Столмен: Компілятор C буде видавати кращий код і працювати швидше. Зневадник також кращий. Кожну частину я можу поліпшити, а можу і не поліпшити. Але єдиної відповіді на це питання немає. У деякій мірі я виграю від повторної реалізації, що робить багато систем набагато ліпшими. Частково це тому, що я провів багато часу в цій галузі і працював над багатьма іншими системами. І тому у мене є багато ідей для реалізації. Одна з сторін, з якої вона буде краща, це те, що практично все в системі буде працювати з файлами будь-якого розміру, рядками будь-якого розміру і з будь-якими символами в них. Система Unix дуже погана в цьому відношенні. Відсутність довільних меж — це аж ніяк не новий принцип проектування програм. Це просто було стандартною практикою при програмуванні Unix встановлювати їх скрізь, можливо, просто тому, що вони писали її для дуже маленького комп'ютера. Єдине обмеження в системі GNU — це коли ваша програма вичерпує доступну пам'ять через те, що намагається обробити занадто велику кількість даних, які ніде розмістити.
BYTE: А це навряд чи станеться, якщо у вас є віртуальна пам'ять. Просто вам може знадобитися вічність для отримання рішення.
Столмен: насправді ці обмеження виявляються задовго до того, як вам знадобиться вічність для отримання рішення.
BYTE: Не могли б ви розповісти дещо про те, для роботи на яких конкретно типах машин і середовищ призначений GNU EMACS? Зараз він працює на VAX'ах; перенесли його в якій-небудь формі на персональні комп'ютери?
Столмен: Я не зовсім розумію, що ви маєте на увазі під персональними комп'ютерами. Наприклад, Sun — це персональний комп'ютер? GNU EMACS вимагає як мінімум мегабайт вільної пам'яті, а бажано більше. Його, як правило, використовують на машинах з віртуальною пам'яттю. За винятком різних технічних проблем в невеликому числі компіляторів C, GNU EMACS буде працювати майже на будь-якій машині з віртуальною пам'яттю і досить новою версією Unix, і на більшості з них він вже працює.
BYTE: чи пробував хто-небудь переносити його на комп'ютери Atari або Macintosh?
Столмен: У Atari 1040ST поки недостатньо пам'яті. Я вважаю, що на такій машині Atari він буде працювати. Я також думаю, що у майбутніх машин Atari з'явиться в тій чи іншій формі переадресація пам'яті. Звичайно, я не розробляю програми для роботи на комп'ютерах, які переважають сьогодні. Коли я запустив цей проект, я знав, що він займе кілька років. Тому я вирішив, що не хочу робити систему гіршу через те, що візьму на себе додаткові труднощі, змушуючи її працювати в обмеженому сучасними параметрами середовищі. Отож, замість цього я вирішив, що збираюся писати її так, як це здається найбільш природно і добре. Я впевнений в тому, що через пару років будуть переважати машини достатнього розміру. Насправді зростання розмірів пам'яті відбувається так швидко, що мене дивує, як повільно більшість людей починають використовувати віртуальну пам'ять; мені здається це надзвичайно важливим.
BYTE: Я вважаю, що люди не вважають це необхідним для однокористувацьких машин.
Столмен: Вони не розуміють, що один користувач не означає одну програму. Безумовно, для будь-якої системи типу Unix важливо мати можливість запускати багато різних процесів одночасно, навіть якщо за комп'ютером тільки ви один. GNU EMACS міг би працювати на машині без віртуальної пам'яті з достатньою кількістю пам'яті, але тоді ви не могли б як слід працювати з іншою системою GNU або Unix.
BYTE: Наскільки у GNU EMACS розвинений Лісп? Мені здалося, що його можна використовувати як засіб для вивчення Ліспа.
Столмен: Це, безумовно, можливо. GNU EMACS містить повну, хоча і не дуже потужну систему Ліспа. Вона досить потужна для написання команд редактора. Вона не зрівняється, скажімо, з системою Загального Ліспа, яку можна застосовувати навіть для системного програмування, але вона володіє всім, що повинно бути в Ліспі.
BYTE: чи є у вас прогноз про те, коли ви зможете поширювати працююче середовище, у якому, якщо ми встановимо її на наші машини або робочі станції, ми зможемо робити що-небудь осмислене за допомогою тільки тих програм, які ви будете поширювати?
Столмен: Важко сказати. Це може статися протягом року, але, звичайно, може зайняти і більше. Можливо, це займе і менше часу, але тепер це не дуже ймовірно. Я думаю, що закінчу компілятор протягом місяця або двох. Єдина велика частина роботи, яку мені належить виконати крім нього, це ядро. Спершу я припускав, що на GNU піде близько двох років, але вже минуло два з половиною роки, а я все ще не закінчив. Почасти причиною затримки було те, що я витратив багато часу на роботу над одним компілятором, який виявився глухим кутом. Мені довелося повністю його переписати. Інша причина що я витратив так багато часу на GNU EMACS. Спочатку мені здавалося, що мені взагалі не доведеться цього робити.
BYTE: Розкажіть нам про вашу схему розповсюдження програм.
Столмен: Я не розміщую програми або керівництва в суспільне надбання з тієї причини, що я хочу бути впевненим в тому, що всі користувачі отримають свободу обміну. Я не хочу, щоб хтось створив поліпшену версію програми, яку я написав, і поширював її як невільну. Я хочу, щоб такої можливості не було. Я хочу заохочувати вільні поліпшення цих програм, і кращий спосіб зробити це — позбавити людину усякої спокуси зробити такі удосконалення невільними. Так, деякі з них утримаються від внесення поліпшень, але багато інших зроблять такі ж поліпшення, причому зроблять їх вільними.
BYTE: І як ви збираєтеся гарантувати це?
Столмен: Я роблю це, заявляючи авторські права на програми і додаючи зауваження, яке дає людям явний дозвіл копіювати програми і змінювати їх, але тільки в тому випадку, якщо вони будуть поширювати їх не інакше, як на тих же умовах, що і я. Ви не зобов'язані поширювати зміни, які ви внесете в будь-яку з моїх програм — ви можете зробити це тільки для самого себе, і ви не зобов'язані комусь її віддавати чи кому-небудь про це розповідати. Але якщо ви передаєте її кому-ще, ви повинні робити це на тих же умовах, які я використовую.
BYTE: чи маєте ви які-небудь права на виконуваний код, отриманий на виході компілятора C?
Столмен: Закони про авторське право не дають мені виняткових прав на результати роботи компілятора, тому вони не дають мені можливості говорити про це, та я і не намагаюся. Я не симпатизую людям, які розробляють невільні продукти за допомогою будь-якого компілятора, але намагатися заборонити їм розробляти їх цим компілятором не здається особливо корисним, тому я не збираюся цього робити.
BYTE: чи відносяться ваші обмеження і до тих, хто бере шматки ваших програм для створення чогось іншого?
Столмен: Так, якщо вони включать який-небудь значний фрагмент. Якщо це два рядки тексту, це нічого; авторське право на це не поширюється. По суті, я вибрав ці умови так, що спершу є авторське право, яким усі програмні комірники користуються, щоб не давати всім робити хоч що-небудь, а потім я додаю зауваження, в якому відмовляюся від частини цих прав. Я не вважаю, що причиною, по якій ви повинні підкорятися цим умовам, є закон. Підкорятися їм потрібно тому, що коли чесна людина поширює програми, то вона заохочує подальший обмін.
BYTE: певною мірою ви залучаєте людей до такого способу мислення, надаючи їм всі ці цікаві засоби, які вони можуть використовувати, але тільки якщо вони приймають вашу філософію.
Столмен: Так. Це можна також розуміти як використання законодавства, встановленого комірниками програм, проти них. Я використовую це для захисту суспільства від них.
BYTE: Оскільки виробники не побажали фінансувати проект, хто, на вашу думку, буде використовувати систему GNU, коли вона буде готова?
Столмен: Поняття не маю, але це питання не важливий. Моя мета дати людям можливість скинути ланцюги, які накидають невільні програми. Я знаю, що є люди, які хочуть цього. Можливо, є й такі, кому це байдуже, але я думаю не про них. Мені трохи прикро за них і за тих, на кого вони впливають. У даний момент людина, усвідомлює всю непривабливість умов невільних програм, відчуває себе в безвихідному положенні, бо у неї немає альтернативи, крім відмови від користування комп'ютером. Ось я і збираюся дати йому зручну альтернативу.
Інші можуть використовувати систему GNU просто тому, що вона чудова технічно. Наприклад, мій компілятор C виробляє майже найкращий код, який я коли-небудь бачив на виході компілятора C. А GNU EMACS, відповідно до загальної думки, набагато перевершує програми комерційних конкурентів. І ніхто не фінансував GNU EMACS, але всі ним користуються. Тому я думаю, що багато будуть використовувати іншу систему GNU через її технічні переваги. Однак я б писав систему GNU, навіть якщо б не міг зробити її технічно кращою, тому що я хочу, щоб вона була кращою в соціальному відношенні. Насправді проект GNU — це соціальний проект. Він користується технічними засобами для того, щоб змінити суспільство.
BYTE: У такому випадку для вас досить важливо, щоб люди взяли GNU. Створити ці програми, щоб віддати людям — не просто науковий експеримент. Ви сподіваєтеся, що вони змінять принципи роботи індустрії програмного забезпечення.
Столмен: Так. Одні кажуть, що ніхто і ніколи не стане використовувати її, тому що на ній немає привабливого фірмового знака, інші кажуть, що вона, напевно, надзвичайно важлива, і всі захочуть користуватися нею. Я не можу сказати, що станеться насправді. Я не знаю ніякого іншого способу спробувати позбутися від неподобств того поля діяльності, в якому я перебуваю, тому я повинен зайнятися саме цим.
BYTE: чи ви усвідомлюєте наслідки? Ви, очевидно, розумієте, що це дуже важлива політична і соціальна заява.
Столмен: Це зміна. Я намагаюся змінити підхід до людей знань і до інформації взагалі. Я вважаю, що спроби оволодіти знаннями, спроби контролювати, чи дозволено людям користуватися ними, або спроби заборонити людям обмінюватися ними — це шкідництво. Це діяльність, що збагачує людину, яка нею займається, за рахунок збідніння всього суспільства. Одна людина отримує один долар знищенням цінностей вартістю в два долари. Я думаю, що людина з совістю стала б робити такого роду речі, можливо, тільки під страхом смерті. І звичайно, люди, які роблять це, досить багаті; я можу тільки сказати, що вони не педантичні. Я б волів бачити, як люди отримують винагороду за написання вільних програм та за сприяння людям у їхньому використанні. Я не хочу спостерігати, як отримують винагороду люди, які пишуть вільні програми, тому що це насправді не йде на благо суспільству. Принцип капіталізму полягає в ідеї, що людям вдається заробляти гроші, виробляючи речі, а тому у них є стимул робити те, що корисно, автоматично, так би мовити. Але це не працює по відношенню до володіння знаннями. У них є стимул робити не те, що дійсно корисно, а робити те, що дійсно корисно, стимулу немає. Я вважаю за потрібне відзначити, інформація відрізняється від таких матеріальних об'єктів, як автомобілі або буханця хліба, тому що люди можуть копіювати її і обмінюватися нею самостійно і, якщо ніхто не намагається зупинити це, вони можуть змінювати її і покращувати стосовно до своїх умов. Це людям корисно. Але це не вірно по відношенню до буханок хліба. Якщо у вас є одна буханка хліба, і вам потрібна ще одна, ви не можете просто покласти свою хлібину в копіювальник хліба. Ви не можете зробити ще одну, не пройшовши всі стадії виготовлення першої. Тому не має значення, чи дозволено копіювати хліб — це неможливо.
До недавнього часу книги виготовлялися тільки на друкарських верстатах. Можна було зробити копію самостійно, від руки, але це було непрактично, тому що це вимагало набагато більшої праці, ніж з допомогою друкарського верстата. А у результаті виходило щось настільки менш привабливе, що, які б не були наміри і цілі, можна було вважати, що книги можна робити тільки в масовому виробництві. В силу цього авторське право не відбирало фактично ніяких прав у читачів. Покупець книги не міг робити нічого з того, що було заборонено авторським правом.
Але це не правильно стосовно комп'ютерних програм. Це також не правильно для касет з магнітною стрічкою. Це частково вірно для книг в наш час, але як і раніше вірно те, що для більшості книг дорожче і, без сумніву, важче зробити їх ксерокопію, ніж купити, а результат, як і раніше менше привабливий. Зараз ми переживаємо такий період, коли ситуація, що робила авторське право нешкідливим і прийнятним, переходить у ситуацію, в якій авторське право стане шкідливим і нестерпним. Тому люди, на яких обмовляють, називаючи “піратами”,— це фактично люди, які намагаються робити щось корисне, що їм заборонили робити. Закони про авторське право цілком і повністю створені для того, щоб допомагати людям отримати повний контроль над використанням деякої інформації для своєї особистої вигоди. Але вони не розраховані на те, щоб допомагати тим, хто хоче гарантувати доступність інформації в суспільстві і не давати іншим обкрадати суспільство. Я вважаю, що закон повинен виділяти клас праць, що належать товариству, який відрізняється від суспільного надбання в тому ж сенсі, в якому громадський парк відрізняється від вмісту сміттєвого бака. Він існує не для того, щоб його забирав, хто завгодно; він існує для того, щоб усім можна було ним користуватися, але нікому не заважаючи. Будь-який член суспільства, позбавлений похідної роботи від якоїсь праці, що належить громаді, повинен мати можливість відстояти свої права в суді.
BYTE: Але хіба пірати не зацікавлені в отриманні копій програм тільки для користування ними, а не тому, що хочуть використовувати ці знання для виробництва чогось кращого?
Столмен: Я не бачу в цьому суттєвої різниці. Чим більше людей користуються програмою, тим більше користі вона дає суспільству. У вас є буханець хліба, яку можна з'їсти один раз, а можна мільйон разів.
BYTE: Деякі користувачі купують комерційні програми, щоб отримати підтримку. Як ваша схема розповсюдження передбачає надання підтримки?
Столмен: Я підозрюю, що цих користувачів ввели в оману, і вони не розуміють, в чому справа. Безумовно, мати підтримку корисно, але коли вони починають думати про те, яке відношення це має до продажу програм або до того, що програми не вільні, вони плутаються. Немає гарантій, що невільна програма отримає хорошу підтримку. Те, що продавці обіцяють надати підтримку, не означає, що від неї буде хоча б якась користь. Крім того, підприємство може закритися. Насправді, люди вважають, що GNU EMACS підтримується краще, ніж комерційні EMACS'и. Одна з причин те, що я, мабуть, кращий хакер, ніж люди, написали інші EMACS'и, але інша причина полягає в тому, що у всіх є вихідні коди, і існує так багато людей, зацікавлених у тому, щоб зрозуміти, як робити з ним різні речі, що вам навіть не доведеться шукати підтримки у мене. Навіть проста безкоштовна підтримка, яка полягає у виправленні мною помилок, про яких мені повідомляють, і включення цього в наступний випуск, дає людям хороший рівень підтримки. Ви завжди можете найняти когось вирішити для вас яку-небудь проблему, а коли програми вільні, у вас є ринок з конкуренцією за підтримку. Ви можете найняти кого завгодно. Я поставляю список послуг з emacs'ом, список людей з номерами телефонів і сумами, які вони беруть за надання підтримки.
BYTE: Ви збираєте їхні виправлення помилок?
Столмен: Так вони самі надсилають мені їх. Я попросив всіх, хто хотів бути в цьому списку, пообіцяти, що вони ніколи не стануть просити нікого з своїх клієнтів тримати в секреті ні те, про що їм сказали, ні ті зміни програм GNU, які вони отримали в процесі такої підтримки.
BYTE: тобто люди не можуть конкурувати за підтримку на підставі того, що вони знають рішення деякої проблеми, якого більше ніхто не знає.
Столмен: Ні. Вони можуть конкурувати на підставі того, що вони розумні, а значить швидше за інших знайдуть рішення вашої проблеми, або на підставі глибшого на даний момент розуміння загальних проблем, або кращого вміння пояснити, що вам потрібно робити. Це все способи конкурувати. Вони можуть намагатися працювати краще, але не можуть активно заважати своїм конкурентам.
BYTE: Мені здається, це схоже на купівлю автомобіля. Вам зовсім не обов'язково повертатися до первісного виробника за підтримкою або технічним обслуговуванням.
Столмен: Або купівлю будинку що було б, якщо єдиним, хто міг би вирішити проблеми з вашим будинком, був би перший підрядник, який будував його? Це таке ж зловживання, як те, що пов'язане з невільними програмами. Люди розповідають мені про проблеми з Unix. Через те, що виробники продають поліпшені версії Unix, вони схильні збирати виправлення і віддавати їх тільки у двійковому вигляді. Це призводить до того, що помилки не виправляються.
BYTE: Вони дублюють всі зусилля, намагаючись вирішити проблеми незалежно.
Столмен: Так. Ось ще один аргумент, який допоможе подивитися на проблему невільною інформації з соціальної точки зору. Подумайте про кризу страхування відповідальності. Щоб отримати якусь компенсацію від суспільства, потерпілий повинен найняти адвоката і поділитися з ним грошима. Це дурний і неефективний спосіб допомогти людям, що стали жертвами нещасного випадку. І візьміть до уваги увесь той час, який люди витрачають в тисняві, щоб відтіснити своїх конкурентів. Подумайте про ручки, упакованих у великі картонні коробки, які коштують більше за ручки — тільки для того, щоб гарантувати, що ручку не вкрадуть. Хіба не було б краще, якщо б ми просто розклали безкоштовні ручки на кожному розі? Подумайте також про всі ці контрольні пости для оплати проїзду, які гальмують дорожній рух. Це гігантське соціальне явище. Люди знаходять способи робити гроші, заважаючи суспільству. Коли вони можуть зашкодити суспільству, вони можуть отримувати гроші за те, щоб вони залишили людей в спокої. Марнотратство, невіддільне від володіння інформацією, буде ставати все більш і більш помітним, і в кінцевому підсумку створить різницю між утопією, в якій ніхто не повинен працювати для того, щоб жити, тому що вся робота робиться роботами, і таким світом, як наш, де кожен витрачає багато часу на повторення того, що робить близький.
BYTE: Як, наприклад, написання попереджень про авторське право в програмах.
Столмен: Швидше, як нагляд над усіма для того, щоб гарантувати, що у них не буде заборонених копій чого-небудь, і повторення роботи, вже зробленої іншими, через того, що вона невільна.
BYTE: Цинік міг би поцікавитися, як ви заробите собі на життя.
Столмен: Консультаціями. Коли я консультую, я завжди залишаю за собою право роздавати те, що я написав в процесі консультації. Я також можу заробляти гроші на життя розсиланням поштою копій вільних програм, написаних мною чи іншими людьми. Багато присилають по 150 доларів за GNU EMACS, але тепер ці гроші йдуть у Фонд вільного програмного забезпечення, який я заснував. Фонд не платить мені зарплати, тому що це не в його інтересах. Замість цього він наймає інших людей працювати над GNU. До тих пір, поки я можу заробляти консультаціями, я вважаю, що так буде найкраще.
BYTE: Що в даний момент знаходиться на стрічці офіційного дистрибутиву GNU?
Столмен: Зараз стрічка містить GNU EMACS (одна версія підходить для всіх комп'ютерів); Bison, програму, яка заміняє YACC; MIT Scheme, неймовірно спрощений діалект Ліспа від професора Сусмена; і Hack, гру на дослідження підземель, схожу на Rogue.
BYTE: Чи надається друкований підручник у комплекті з стрічкою?
Столмен: Немає. Друковані керівництва коштують 15 доларів кожне, або копіюйте їх самі. Зробіть копії цього інтерв'ю і обмінюйтеся ними теж.
BYTE: Як отримати копію?
Столмен: Напишіть за адресою: Free Software Foundation, 675 Massachusetts Ave., Cambridge, MA 02139.
[Поточна адреса (з 2005 року): Free Software Foundation 51 Franklin St, Fifth Floor Boston, MA 02110-1301, USA. Телефон: +1-617-542-5942; Факс: +1-617-542-2652]
BYTE: Що ви збираєтеся робити після того, як закінчите з системою GNU?
Столмен: Ще не знаю. Іноді я думаю, що продовжу робити те ж саме в інших областях програмного забезпечення.
BYTE: Ого, то це тільки перший з цілого ряду штурмів програмної індустрії?
Столмен: Я сподіваюся. Але можливо, що все, чим я стану займатися, це жити легким життям, трохи працюючи, щоб тільки прожити. Мені нема чого жити на широку ногу. А в решту часу я можу шукати цікавих людей для спілкування або навчання у них речей, які я не вмію робити.