Библиотека сайта rus-linux.net
Столлман: разработчики становятся жертвой патентов
Мэтт Лоуни (Matt Loney), ZDNet UK
31 марта, 2002, 17:52
Ричард Столлман хорошо известен в среде сторонников свободного ПО как автор GNU Public License, модели лицензирования, используемой большинством программистов open-source и гарантирующей, что написанные ими программы останутся общедоступными.
На прошлой неделе британский Институт информационной политики (Foundation for Information Policy Research) пригласил Столлмана выступить в лаборатории вычислительной техники Кембриджского университета с докладом о патентовании программного обеспечения. Столлман ответил, что он видит проблему не в патентовании отдельных программ ("от этого нет никакого вреда"), но в патентовании идей: "Вот что делает их (патенты) опасным препятствием развитию программного обеспечения".
По Столлману, сам термин "интеллектуальная собственность" несостоятелен и вводит в заблуждение: "Предполагается, что высказанную мысль можно считать собственностью. Это вовсе не способствует ясному, непредвзятому обмену мнениями".
Ниже приводится запись выступления Столлмана.
Патентование - это лотерея
Большинство из тех, кто рассуждает о системе патентования, сами кормятся от этой системы и поэтому стараются убедить вас в ее справедливости. Но патенты - это, по существу, лотерея, так как они редко приносят кому-то выгоду. Организаторы лотерей навязывают вам мысль о выигрыше, но никогда не упоминают о проигравших, и система патентования устроена точно так же.
Давайте посмотрим на патенты с точки зрения жертв; это разработчики программного обеспечения. Когда нужно написать какую-то программу, вы первым делом пытаетесь определить, какие патенты покрывают данную область. Но это невозможно, так как некоторые заявки на патенты засекречены. Они должны быть опубликованы через 18 месяцев, но для вас это слишком большой срок.
Например, в 1984 году была написана программа Compress. В то время еще не было патента на алгоритм (компрессии) LZW, но заявка уже была подана, и в 1985 году патент был выдан. После этого распространители программы Compress стали получать угрозы. Но ее автор просто использовал идею, о которой он прочитал в одном из журналов: в то время так делали все авторы программ.
Трудность патентного поиска
Выданные патенты публикуются патентным бюро, так что весь их список доступен, но вы никогда не изучите его полностью, ведь патентов очень много и отследить их невозможно.
Можно искать связанные патенты, но все вы их вс╦ равно не найдете. Например, выдан патент на естественный порядок пересчета электронных таблиц; этот термин означает, что каждая ячейка пересчитывается после всех ячеек, от которых она зависит, так что все данные всегда достоверны. Это так называемый метод топологической сортировки. Патент, который я обнаружил в 1963 году, охватывал несколько способов реализации такой сортировки, но в нем не упоминались ключевые слова "топологическая сортировка" или "естественный порядок пересчета". Он назывался "Метод комбинирования формул в объектный код"; когда я впервые увидел этот патент, то подумал, что он выдан ошибочно.
Даже при наличии списка патентов их очень трудно проанализировать, так как написаны они на заковыристом юридическом языке. В 80-е годы австралийское правительство провело исследование патентных систем и пришло к заключению, что если бы не международное давление, то заводить такую систему не было бы никакого смысла. Они выяснили, например, что инженеры отказываются читать патенты, так как в них слишком трудно разобраться.
Что же дальше? С патентом можно поступить тремя способами: обойти его; купить лицензию или опротестовать патент в суде.
Подход I: обойти патент
Лучший способ обойти патент на программное обеспечение - не использовать идею, которую он защищает. В некоторых случаях патентуется отдельная функция, и вы можете обойти патент, не используя эту функцию.
А если она важна? Иногда без одной функции все же можно обойтись. Например, в свое время пользователи текстового процессора xyWrite получили по почте даунгрейд, удаляющий функцию, которая позволяет присваивать сокращения длинным словам и фразам. Разработчики xyWrite попытались договориться с владельцем патента, но затем решили отключить эту возможность. Для одной функции такое приемлемо, но, когда поступят патентные претензии на множество функций, скорее всего, придется выбрасывать всю программу.
А что делать с патентом British Telecom на прослеживание гиперссылок при dial-up доступе? Без прослеживания гиперссылок не обойтись. Или взять патент на алгоритм Pretty Good Privacy. Он десять лет мешал широкому внедрению шифрования с открытым ключом в США, так как владельцы патента налагали ограничение на его использование. Обойти этот патент не было никакой возможности, а другой альтернативы у тех, кто хотел включить в свои продукты шифрование с открытым ключом, не было.
Конечно, в некоторых случаях можно найти лучший алгоритм. Не имея возможности применять алгоритм компрессии в проекте GNU, мы стали искать более эффективный алгоритм компрессии данных. Мы остановились на GZIP. Работал он хорошо, но, когда мы начали требовать, чтобы люди прекратили пользоваться файлами gif (в которых используется запатентованный метод компрессии LZW), они отказались, так как браузеры еще не поддерживали новый алгоритм. А производители браузеров говорили, что этим алгоритмом еще никто не пользуется. Инерция этого замкнутого круга была так велика, что мы десять лет не могли уломать пользователей.
Так что иногда обойти патенты на ПО легко, а бывает, что и невозможно. А иногда если обойти патент, то программа становится бесполезной. Все зависит от ситуации.
Случается, что компания возьмет и сделает формат стандартом де-факто, и если он запатентован, то это становится настоящей катастрофой. Недавно поднялся шум, когда W3C предложила начать прием стандартов, покрываемых патентами. Сообщество запротестовало, и W3C отменила свое решение.
Подход II: лицензирование патента
Лицензирование патента не всегда возможно, так как его владелец не обязан предлагать вам лицензию. Многие владельцы патентов все же делают это, но иногда требуют много денег. Некоторые просят 5% - это еще терпимо, но что если вам для своей программы придется лицензировать 20 патентов? На практике две-три лицензии делают бизнес-план неосуществимым.
Патенты выгодно лицензировать транснациональным мегакорпорациям, которые владеют множеством патентов и кросслицензируют их. В 1990 году сотрудник IBM опубликовал в журнале Think статью, в которой утверждалось, что патенты дают два преимущества: во-первых, приносят роялти, а во-вторых, обеспечивают доступ к патентам других компаний. Причем второе преимущество, по его словам, на порядок важнее первого.
Так что возможность лицензировать патенты других компаний в десять раз важнее продажи лицензий на собственные патенты. Для IBM такая возможность компенсирует все проблемы, создаваемые патентной системой. Эта практика кросслицензирования опровергает распространенный миф о голодающих гениях, миф о том, что патенты защищают мелких изобретателей (сам термин "защита" в данном случае чисто пропагандистский).
Предположим, что гениальный изобретатель провел годы в лишениях, создавая что-то новое, и теперь хочет внедрить это в производство. Начнем с того, что в high-tech индустрии никто не работает в одиночку, а изобретатели имеют все шансы устроиться на работу, так что сам сценарий голодающего гения нереалистичен. Но можно себе представить, что у кого-то возникла хорошая идея. Что же произойдет, если изобретатель попытается использовать патент, мешающий крупной компании? IBM в таких случаях отвечает просто: "У нас есть такие-то патенты, которые частично пересекаются с вашим патентом. Вы готовы защищаться в суде? А почему бы нам с вами не обменяться патентами?". Человек соглашается и идет заниматься своей идеей дальше, а IBM получает доступ к его патенту и возможность конкурировать с ним, так что никакой реальной "защиты" изобретатель не получает.
Корпорации видят систему патентов с лучшей стороны, поэтому они ее и защищают. IBM почти всегда может склонить вас к кросслицензированию, а мелкие компании - только иногда.
Способ III: тяжба в суде
Предполагается, что патент выдается на что-то новое, полезное и неочевидное. Но для патентного бюро "новое" означает "отсутствующее в наших картотеках", а "неочевидное" - неочевидное для людей с IQ ниже 50.
Патентное бюро США совершает откровенные глупости. Таков, например, знаменитый патент на мышей, выданный Гарварду. Его предметом является род мышей с введенным геном, ответственным за рак. Так как ген уже известен, способ введения известен и род мышей известен, то патент по существу защищает способ введения любого гена любому животному. Такой чрезмерный охват не редкость.
Многие патенты могут показаться программисту очевидными, но эксперт патентного бюро скажет вам, что их надо рассматривать в контексте десятилетней давности. Он заговорит вас до потери сознания, а затем изобразит владельцев патента блестящими изобретателями, достижения которых никак нельзя ставить под сомнение. Судья, возможно, посмотрит на предмет строже, но за это придется заплатить миллионы долларов. Суд - это выход, однако из-за связанных с ним расходов такая возможность часто отпадает, даже когда удается найти прототип. В результате несостоятельный патент может стать опасным инструментом.
Итак, все три способа иногда можно использовать, но если патентов много, то вы как будто идете по минному полю. Прошли один шаг, другой, но с каждым последующим ваши шансы дойти до конца минного поля тают.
Патентование программ: особый случай?
Говорят, что раз патенты существуют в других областях, то почему программное обеспечение должно быть исключением? В этом вопросе содержится допущение, что все должны страдать одинаково. Однако, чтобы выяснить, что это неправда, достаточно ответить на более прямой вопрос: действительно ли область ПО так отличается от других? И должна ли система патентов в разных областях работать по-разному?
Да, в других областях патенты работают иначе. Например, в биотехнологии патент может влиять на единственный продукт. Если разрабатывается новый продукт, то он защищается отдельно. Идея проста: один продукт защищается одним патентом, который покрывает этот продукт.
Программное обеспечение - абсолютно иной случай, так как пакеты ПО очень велики и в них самые разные идеи используются самыми разными способами. Эти идеи нужно реализовать именно в этом сочетании - нельзя просто назвать их и рассчитывать, что это будет работать. Поэтому, когда пишешь программу, используешь множество идей, часть которых может быть запатентована, но их сочетание тоже может быть запатентовано, так что тысячи идей окажутся покрытыми существующими патентами.
Вот почему патенты препятствуют совершенствованию продуктов.
Одно экономическое исследование демонстрирует, как наложение системы патентов на область с нарастающей инновационностью может тормозить прогресс. Сторонники говорят: "Да, проблемы возможны, но система патентов способствует инновациям, так что с проблемами можно смириться".
На самом деле нет никаких причин верить, что система патентов содействует прогрессу.
Исключительность ПО
В чем причина такой исключительности ПО? В том, что мы создаем идеализированные математические концепции. Мы можем построить замок, поставив его на тонкую спицу, и он будет стоять. В других областях пришлось бы иметь дело с материалом и заставлять служить реальные физические объекты.
Если же я хочу поместить оператор if внутрь оператора while, мне не нужно беспокоиться о том, что оператор if будет колебаться относительно оператора while и со временем разрушится. Не нужно заботиться, чтобы оператор if достаточно хорошо рассеивал тепло и чтобы падение напряжения на операторе if не остановило работу оператора while или, если это должно работать под водой, чтобы соленая вода не попала между двумя операторами и не вызвала коррозию. Мне не нужно думать о том, как физически собирать каждую копию и смогу ли я в процессе сборки получить физический доступ к операторам, чтобы вложить их один в другой, и я не обязан предусмотреть возможность замены одного из операторов в случае его отказа.
То, что нам не приходится беспокоиться о столь многих вещах, делает разработку программного обеспечения принципиально более простым делом, чем конструирование физических изделий. Это может показаться странным. Но я сравниваю физические и программные системы одного и того же порядка сложности, с одним и тем же количеством деталей. А что мы делаем, когда имеем дело с простым предметом (таким как программирование)? Мы усложняем его; мы создаем программные системы, которые по числу элементов гораздо крупнее физических систем. Физическая система с миллионом деталей - это мегапроект; программная система с миллионом элементов - это несколько сотен тысяч строк кода; многие программисты пишут столько за несколько лет.
Более того, если разработан физический продукт, то нужно строить завод для его изготовления. А чтобы сделать копию программы, достаточно напечатать copy, причем одной и той же командой copy можно скопировать любую программу. Так что создавать программные системы значительно проще и дешевле.
Итак, программное обеспечение на самом деле отличается от других областей, так как мы работаем с математическим материалом; проектировать продукты гораздо проще; и силами всего нескольких человек можно создать гораздо более крупную систему. В результате наши продукты содержат множество идей, которые могут оказаться уже запатентованными.
Если бы патентовались симфонии
В какой-то мере написание программы сродни сочинению симфонии: вы используете аккорды и многие идеи, которые уже применялись. Предположим, что европейские правительства 17-го века создали бы музыкальное патентное бюро. Теперь вообразите, что на дворе 1800-й год и вы - Бетховен: вы решили написать симфонию и сделать ее легальной. Это оказалось бы невозможным, а в ответ на вашу жалобу владельцы патента сказали бы: "О, г-н Бетховен, вы просто скулите, потому что у вас нет своих собственных идей".
Нет, у Бетховена было множество хороших идей, но он использовал и идеи других композиторов. Не существует гения, способного создать абсолютно новую музыку, которая всем бы понравилась, и никто не может создать программу, в которой не использовались бы известные идеи. Конечно, в новом текстовом процессоре будут новые идеи, но будет и множество известных. И так как проекты по разработке ПО столь громадны, нам не нужны никакие искусственные системы мотивации, чтобы люди обращались к новым идеям; человек просто сидит и в процессе работы изобретает новые идеи.
До патентования ПО большинство разработчиков публиковали свои идеи в расчете на всеобщее уважение. Теперь предполагается, что система патентования стимулирует обнародование новых идей. Но и раньше никто не держал в секрете идеи; в секрете держали код, а идеи публиковали: это позволяло сотрудникам заслужить уважение и почувствовать самоуважение. Когда же появились патенты, код по-прежнему держат в секрете, но и идеи перестали публиковать. Так что система патентования не привела ни к одному открытию. Зато запатентованные идеи теперь будут заперты на 20 лет.
Решение
Как изменить правила, чтобы решить эту проблему? Изменения нужно вносить в двух местах: в патентном бюро и там, где патенты применяются.
Изменение критериев выдачи патентов может сработать в тех странах, где патенты на программное обеспечение раньше не выдавались - например, в большинстве европейских стран. Надо просто изменить патентное законодательство так, чтобы нельзя было патентовать идеи в области программного обеспечения, - и Европа избежит этих проблем.
В США это не пройдет, так как здесь уже выдано огромное число патентов на ПО. В США нужно что-то предпринять для изменения области действия патентов; например, сказать, что нельзя предъявлять претензии к программам общего назначения, работающим на компьютерах, которые сами не нарушают патент.
Для Европы же первая идея - отличное решение. Когда в США начали выдавать патенты на программы, на это никто не обратил внимания, и политических дебатов по этому поводу не было. В 80-х годах проблему никто не замечал, и только в 90-х программисты заволновались.
В Европе ведутся бурные политические дебаты. Особую активность проявляют разработчики открытого ПО, но это угроза не только для нас; пострадают все программисты и даже пользователи.
Много рекомендаций о расширении практики патентования ПО в Европе исходит от британского патентного бюро. Оно проводило публичное обсуждение, и большинство его участников было против патентования программ, но затем появился отчет, из которого следует, что люди вроде бы согласны. Британское патентное бюро пользуется очень растяжимым термином "технический эффект". В результате бюро пропагандирует нечто, что как будто помогает решить проблему, но на самом деле дает карт-бланш на патентование всего и вся.
Если бы предприятия, использующие компьютеры, поняли, какими трудностями им это грозит, они бы восстали. Иногда бюрократия может быть полезной, но если она не служит никаким целям, кроме создания искусственных монополий, в ней нет ничего хорошего.
Сражение не окончено. Его еще можно выиграть.