21 мая 2010

GPL и некоторые опен-сорсеры: я негодую!

Чулан
Заранее прошу прощения, что буду пересказывать давно известные вещи, но вот на днях столкнулся сам, и просто не могу не высказаться :)

[краткое содержание: хотел воспользоваться для своих нужд так называемым «свободным ПО», потратил кучу времени, и в итоге ушёл ни с чем].

История такова. Имеется заказчик, продающий некоторый программный продукт. Для этого продукта предлагается написать очень полезный, но в общем-то необязательный модуль (M). По моим представлениям, модуль состоит из двух крупных алгоритмов, один из которых (M1) в чистом виде в природе не существует (т.е. его-то и надо сочинить), а второй (M2) представляет собой по сути библиотечную процедуру, хоть и весьма нетривиальную.

Разумеется, можно самому написать как M1, так и M2, но зачем изобретать велосипед? И я отправился за M2 на просторы интернета. И что же я там увидел, на этих просторах?

На первый взгляд, всё неплохо. Такие модули имеются, и даже в большом количестве. Но как оно часто бывает, более пристальный взглад моментально отсекает больше половины проектов — непонятные полузаброшенные начинания, «экспериментальные версии», не рекомендуемые самими авторами к реальному использованию, какие-то извлечённые из больших систем крупицы, не факт, что работающие независимо от всего остального.

С этим всё понятно, нормальная ситуация. Но дальше я оказался в положении совсем небольшого выбора: либо покупать (за большие, кстати, деньги) модуль у коммерческого поставщика, либо воспользоваться «опен сорсом». И тут я попал :) Дело в том, что модуль M2 — штука, как я уже говорил, нетривиальная, и почти все реализации так или иначе вышли из университетских лабораторий. А там, как говорится, let's face the facts:

— Половина всех проектов пишется на Java. Нам не подходит (нужен нейтив код, требование заказчика).
— Четверть так или иначе недоступна по «левым» причинам (главный разработчик написал диплом и свалил; проект закрыт, мы все занимаемся другими делами, и нам некогда возиться со старым кодом; всё это делается, чтобы написать научную статью, а использование в реальной жизни — гм, забейте — ну и так далее). Обидно, но в целом тоже понятно.
— А вот оставшаяся четверь — это, собственно, предмет моего негодования, а по сути — наплевательства на тех, кому данный проект хоть как-то может быть интересен.

Опять же, let's face the facts: в университетах (я сам работаю в университете) мы пишем софт, чтобы проводить исследования, сочинять публикации и ездить на конференции. Такая жизнь формирует некую параллельную систему ценностей, со своими плюсами и минусами. В данном случае явный минус — это разработка софта с единственной целью поддержать работу своей узкой группы. Т.е. пользователи софта — ну, пять-десять человек, а остальные им просто не интересны.

В идеальном мире университеты, существующие на налоги общества, должны этому обществу приносить пользу. И разработка софта (возможно, бесплатного), до которого не доходят руки индустрии — хороший шаг в этом направлении. Вот только делают этот шаг немногие.

Любимая история на практике — Linux и GPL. Типичная заява: «мы пишем на Linux, под Linux у нас всё компилируется, про другие платформы не спрашивайте, нам не интересно». Ну хорошо, любите вы линукс, дело ваше, имеете право. Ничего против линукса не имею. Но как это так, «вам не интересно»? Т.е. 90% (и более) потенциальных пользователей вашего софта вам не интересны? И где ж тогда справедливость, куда налоги идут? ;)

А GPL — это вообще изобретение дьявола. Если софт издаётся под лицензией GPL, его нельзя использовать в пакете, не распространяющемся по GPL лицензии. Авторы аргументируют так: дескать, было бы неправильно, если бы фирма взяла GPL-софт, доработала его, а потом конкурировала бы с нами. Логично и разумно. Но как можно было бы разумно с этим бороться? Требовать распространять GPL-код бесплатно даже с коммерческой программой? Конечно. Запрещать выпускать доработанный софт по не-GPL лицензии? Допустим, пусть так! Но ведь они идут дальше — предположим, у меня есть текстовый редактор, который при записи текста на диск архивирует файлы в ZIP. Казалось бы, я не конкурент архиватору ни с какой стороны. Тем не менее, использовать GPL ZIP-архиватор нельзя (нельзя даже вызывать исполняемый файл через командную строку)! Выпускай, дружок, весь свой текстовый редактор по лицензии GPL! (Есть, конечно, куда менее злая LGPL, но нужный мне модуль M2, распространяемый по LGPL, не попадался).

То есть по сути весь этот софт оказывается непригодным для серьёзного использования кем бы то ни было. Хочешь «свободного софта»? Ага. Сначала юзай нашу операционную систему, а потом ещё и подпиши договор кровью, что отныне весь твой софт (в котором наша библиотека лишь маленькая часть) будет распространяться «свободно». Такую модель можно называть как угодно, но не «свободной».

Результат: все те ресурсы, которые десятками университетов были потрачены на различные версии модуля M2, ничего мне не дали. Веду переговоры с коммерческой фирмой.

Выводы:
Если пишете свободный софт, думайте хотя бы чуть-чуть о своих пользователях. Пожалуйста! Пусть будет хоть какая-нибудь документация (иногда доходит до идиотизма: исходных текстов мегабайты, а вся документация — readme файл на 100 строк. Ну если вы столько кода понаписали, неужели нельзя найти время на более приличное введение?)
Пусть ваш проект будеть хоть немного переносим на другие платформы, кроме вашей любимой.
Не надо GPL! Ставьте коммерческим пользователям любые дополнительные условия: пусть заплатят вам за право использовать ваш софт, пусть обязуются выпускать любые доработанные версии вашего проекта бесплатно (т.е. пусть модернизируют и дебажат ваш код на свои деньги), пусть запихнут ваше имя в About box. Но не рубите на корню их возможности! Запрет на вызов GPL zip-архиватора из коммерческого софта (при любых обстоятельствах!) — это бред и большая потеря для всех. В конце концов, основная масса популярного «свободного софта» для разработчика — это никак не GPL.

Извините, что накипело. Неделю потратил на поиски. Теперь, по всей видимости, заплатим большие деньги капиталистам, которые будут и дальше развивать свой (качественный продукт), ещё более отдаляясь по уровню от симпатичных, казалось бы, романтиков-опенсорсеров.
Теги:open sourceGPLfrustration
Хабы: Чулан
-1
346 3
Комментарии 50
Лучшие публикации за сутки