2009-07-18

Фонд Free Software Foundation развенчивает пустые обещания Microsoft

На прошлой неделе Microsoft расширила рамки действия документа Community Promise (Обещание Сообществу) на реализацию стандартов ECMA 334 и 335. Кто-то мог подумать, что теперь писать программы на C# станет безопаснее. Тем не менее, по мнению Free Software Foundation это "обещание" полно обходных лазеек и совершенно не стремится сделать использование C# более безопасным. На основе опубликованной статьи Ричарда Столлмана о Mono некоторые разработчики задаются вопросом -- почему Free Software Foundation выражает особенное беспокойство относительно C# и Mono, ведь, например, у Sun скорей всего есть патент, покрывающий Java, а у IBM -- патент, покрывающий компиляторы C. Что же теперь, препятствовать использованию Java и С? Free Software Foundation отвечает, что "все патенты на ПО представляют собой угрозу разработчикам -- но это не означает, что все патенты опасны одинаково. У различных компаний могут быть различные патенты, которые можно использовать для атаки на другие языки, но если бы мы стали беспокоиться по поводу каждого патента, который можно использовать против нас, мы бы никогда никуда не продвинулись. Патенты Microsoft намного более опасны: это единственная крупная компания, производящая ПО, которая провозгласила себя врагом GNU/Linux и подтверждает этот принцип, атакуя наше сообщество патентами. Если Microsoft заложила ловушку в патенте на язык C#, то это не более, чем подтверждение слов делом.

Microsoft последовательно предпринимает шаги, подтверждающие её позицию, с 2006 года, начиная с заявлений Баллмера по поводу Novell, патентов и Линукс в ноябре 2006 г., а также с интервью одного из президентов компании Боба Маглия (Bob Muglia), в котором он прояснял позицию компании, считающей C# одной из так называемых "патентованных инноваций". В мае 2007 г. последовало интервью журналу Fortune, где GNU/Linux обвинялась в нарушении 235 патентов Microsoft, а совсем недавно полная ясность в этом вопросе наступила в деле компании против TomTom в связи с VFAT.

"В свете стратегии использования патентов согласно лозунгу "разделяй и властвуй" по отношению к сообществу свободного ПО, C# представляет особенную угрозу. Этот язык был разработан в недрах Microsoft, поэтому наверняка различные аспекты его применения покрываются многими патентами, что может сделать из свободных реализаций C#, подобных Mono, лёгкую мишень для атак."

"Community Promise ничего не делает для того, чтобы изменить это положение. У Microsoft была возможность на деле продемонстрировать мирные намерения относительно C#, но вместо этого были приняты бессмысленные полумеры, оставляющие множество возможностей навредить нам.

Спецификации ECMA 334 и 335 описывают основы языка C#, включая информацию о стандартных библиотеках, которые должны быть доступны в любой совместимой реализации. Тем не менее, существует несколько библиотек, включённых в Mono и широко использующихся в приложениях, подобных Tomboy, не упоминаемых в стандартах. И речь здесь идёт не о Windows-специфичных библиотеках, подобных ASP.NET и Windows Forms. Напротив, мы говорим о библиотеках, входящих в пространство имён "System", предоставляющих общую функциональность, которую программисты ожидают найти в современных языках: сериализация двоичных объектов, регулярные выражения, XPath и XSLT и тому подобное.

Поскольку эти библиотеки никак не описываются в спецификациях ECMA, следовательно, они никак не защищены документом Community Promise. Если бы это было бы единственной проблемой, связанной с Promise, то можно было бы спокойно работать с приложениями, где не используются эти библиотеки, но проблема в том, что даже код, покрываемый Promise, не полностью безопасен. Скажем, вы написали реализацию одной из спецификаций, покрываемых Community Promise, и хотите узнать, будут ли вас преследовать в судебном порядке за то, что вы нарушили определённые патентные права. Вопрос необходимости этого уже сам по себе достаточно затрудняет дело, но даже если вам и удалось найти информацию, назавтра опять придётся всё узнавать заново, поскольку нет гарантии, что Community Promise будет вас защищать завтра. Community Promise не даёт вам никаких прав на патентную заявку. Promise только говорит, что Microsoft не будет привлекать вас к суду за нарушение патентных прав по патентам, которые ей принадлежат или которые она контролирует. Если Microsoft продаст один из таких патентов, то нет никаких препятствий к тому, чтобы покупатель патента не привлек к суду всех, кто пользуется программой.

Решением проблемы, по мнению Free Software Foundation, может стать безотзывная передача общественности патентной лицензии на все патенты, которые в настоящий момент используются в Mono. Подобная просьба будет являться вполне обоснованной, поскольку GPLv3 требует от распространителя предоставления аналогичной лицензии при передаче изменённых версий ПО, покрываемого лицензией, и у многих маленьких и больших компаний не возникало с этим никаких проблем.

"До тех пор, пока это не произошло, разработчики свободного ПО не должны писать программ, зависящих от Mono. Реализации C# всё еще могут подвергнуться патентным атакам Microsoft: Community Promise рассчитана только на то, чтобы предоставить некоторые лазейки заинтересованным в них компаниям. Мы не хотим увидеть, как труд программистов станет потерян для сообщества, если возможность использовать Mono будет потеряна, и до тех пор, пока софтверные патенты не будут уничтожены как таковые, использование других языков является лучшим способ предотвратить подобную возможность.

Комментариев нет: