Синельников Евгений (mastersin) wrote,
Синельников Евгений
mastersin

Право поделиться.

Я думал начать эту статью со слов "Хочу поделиться...", но решил, что как-то тавтологично получится, не правда ли? Итак, в чём же состоит "Право поделиться"? Ведь бывает такое желание - поделиться? Почему же есть смысл говорить о каком-то праве на реализацию такого побуждения? Разве кто-то может его запретить?



Вы пробовали когда-нибудь подарить компьютерную программу? Ведь проще простого, если владеешь исходным кодом, собрать приложение выложить в интернете и наслаждаться отзывами... Но всё не так-то просто:


  • приложение должно заработать у пользователя, то есть программа для запуска приложений (операционная система) должна успешно запустить ваше приложение;

  • ошибки, которые неизбежно выявятся, нужно будет вовремя исправлять;

  • мощности, которые нужны будут для сборки, и сервера для раздачи вашей программы потребуется оплачивать;

  • рассказывать о существовании самой программ и её возможностях тоже кому-то придётся.



ILoveSFD

В итоге выяснится, что для того, чтобы что-то такое подарить, нужно очень хорошо вложиться. И это будет ещё не всё. Ведь программа для запуска вашего приложения, то есть операционная система, тоже будет необходима. А если её сделал не ты, то она тоже стоит недёшево. Вот так и получится постепенно, что, делясь программой из самых лучших побуждений, вы, по сути, навязываете дополнительно то, что стоит денег.

Но и это будет ещё не всё, вам потребуются, вероятно, специализированные средства - программы для разработки, дополнительные библиотеки, которые тоже, вероятно, могут стоить тех или иных денег. Если вы создаёте коммерческое решение, то вы просто включите всё это в стоимость своего продукта. Но вы же хотели поделиться. И как тут быть?

В принципе, подобные вопросы и ограничения могут быть даны не только для компьютерной программы, но в данной статье речь пойдёт именно о программах, потому у них есть одно важное свойство - стоимость их копирования практически равно нулю. Это не совсем так, но стоимость тиражирования очень и очень низка. В связи в этим появляются соответствующие возможности.


Для начала определимся, что для реализации такого права должны быть выполнены необходимые условия:


  • Прежде всего, должно быть желание. А его ещё надо как-то в себе оформить и удержать;
  • Далее возможность. Нельзя ничем поделиться, если у тебя ничего нет;
  • Ну, и, наконец, а может быть с этого и стоит начинать, нужно чтобы то, чем вы делитесь, имело определённую ценность. Иначе наш "подарочек" никому не будет нужен.


Одно из ключевых решений в мире, позволяющих реализовать такое право поделиться, не навязывая что-то дополнительное косвенно, называется GNU GPL (англ.) - Универсальная общественная лицензия GNU. Суть этой лицензии очень проста:


  • вы даёте право использовать без ограничений то, что подарено;

  • вы разрешаете неограниченно копировать то, что вы дарите;

  • вы позволяете изучать то, как устроено подаренное;

  • вы даёте право распространять подаренное в модифицированном (улучшенном) виде, с одним дополнительным требованием - исходные условия распространения должны быть сохранены.







Последнее условие очевидным образом позволяет не дать возможность украсть то, что вы дарите людям с иными, чем у вас умыслами. Не дать возможность использовать то, что вы решили подарить, против вас самого. Вследствии этого есть очевидное противоречие, которое связано с принципиальной позицией основателя GNU GPL и фонда свободного программного обеспечения Ричарда Столмана. Ведь, вроде как, речь шла о возможности или свободе подарить? А, в итоге, налагаются какие-то ограничения. В связи с этим существует альтернативное направление, которое связано с лицензией BSD. Оговорив это, а также то, что это давний спор огромного Open Source сообщества вокруг так называемых свободных лицензий, продолжим. И будем исходить из того, что для нас важно, чтобы то, что мы дарим, не было кем-то украдено с корыстным умыслом.

Ну, хорошо. Вот нам даны условия, которыми мы можем воспользоваться, а можем придумать и свои. Чем это нам собственно поможет? Если бы на текущий момент ещё ничего бы не было сделано, то говорить было бы не о чем. Но это не так. На текущий момент создано очень многое.

Во-первых, объявлено, что для полноценной реализации задуманного плана необходимы базовые программные пакеты: системные утилиты, компиляторы и интерпретаторы для различных языков программирования, специализированные библиотеки, ядро операционной системы. Собранное всё это вместе в виде конкретного дистрибутива называется операционной системой в широком смысле. В нашем случае, наиболее популярным решением являются дистрибутивы на базе ядра Linux - GNU/Linux дистрибутивы, где это уже всё создано в рамках вышеозвученных условий.

Во-вторых, ну, создано что-то там кем-то, но мы-то тут причём? Нам-то это зачем? Лицензии там, не лицензии... Сделал я, выложил, работает и нормально... Так-то оно так, но ведь нужно как-то и собственные условия обозначить. Сегодня вы дарите, а завтра выясняется, что вы пошутили, что вас не так поняли, и теперь сами денег требуете... Таким образом, свою лицензию, рано или поздно, обозначить всё равно придётся.

В связи с этим хочу вспомнить, как на заре проверки в России "лиценизионности" программного обеспечения на предприятиях, люди как зачумлённые были готовы как угодно отделаться от проверяющих органов и желали видеть формальную бумагу о праве на использование любых программных продуктов. Даже свободных и бесплатных. Очевидно, что это нарушение принципа презумпции невиновности. Но раболепное желание перестраховаться подталкивало и до сих пор подталкивает к этому. Ведь юридическая сторона построена на ответственности. Кто-то должен гарантировать, что данный продукт бесплатен и свободен, а не было и нет такого формального института, который напрямую берёт на себя ответственности за свободно-распространяемые программные решения.

Итак, вернёмся к исходной задаче. Мы хотим поделиться программой, но не хотим обременять пользователя дополнительными тратами. И что же мы ему предлагаем? Мы ему предлагаем хакерскую операционную систему вместо той, к которой он привык? Как-то не хорошо... Вопрос о том есть ли смысл отказываться от уже используемой пользователем операционной системы - это снова отдельная тема. Будем считать, что идеальный подарок - это такой подарок, когда ничего менять не нужно, когда всё будет работать везде. Это, конечно, усложняет задачу. А задача из создания компьютерной программы, которой мы хотим поделиться, превращается в задачу создания кросплатформенного приложения, которое сможет работать под любой операционной системой.

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

Конечно, создать и поддерживать любой набор технологий в одиночку невозможно. Безусловно для реализации любого набора открытых технологий требуется коллективная собранность. Не побоюсь этого слова - общность, объединённая общими целями и задачами. А раз открытые технологии существуют, то и общность такая безусловно существует.

Оформлена ли она до конца? Можно ли найти её представителей? Вокруг каких, собственно, открытых технологий собрана эта общность? Является ли она целостной? Или это некое множество общностей, собранных под шапкой Open Source сообщества? Всё это тоже отдельные темы. Нас же должны волновать, в рамках исходной темы, следующие вопросы:


  • Какие открытые технологии нам реально сейчас доступны?

  • Какие лицензионные ограничения они на нас налагают?

  • На что мы можем расчитывать и что мы можем себе позволить, с точки зрения развития перспективных открытых технологий?


Отвечая последовательно на эти вопросы, я бы хотел подытожить эту статью, общим взглядом и желанием всерьёз рассмотреть предложенные вопросы. Хотелось бы отметить, что сфера открытых технологий столь огромна, что перечислить удастся только что-то очень существенное и только в рамках моей собственной компетенции. В связи с этим я бы попросил прокомментировать, и дополнить то, что я пропущу (по мере комментирования я буду вносить поправки). Попробуем построить для список в виде иерархической таблицы:

Группа технологий Стек технологий Типы приложений Прикладные задачи
Linux-решения Серверные Linux-дистрибутивы Инфраструктурные службы
LAMP and AMPPS Веб приложения

Десктопные Linux-дистрибутивы клиентские рабочие места

  • GTK/Gnome

  • QT/KDE

  • SDL/OpenGL

  • ...


Облачные технологии средства виртуализации

Кросплатформенные технологии QT родные графические приложения
Mozilla/XUL родные графические приложения

  • ...


... ...

  • ...


Mono Unity3d приложения

  • ...


Java-решения графические среды ... ...
специальные инструменты ... ...
веб-службы ... ...
сетевые службы ... ...
сервера приложений ... ...

Ну, хорошо. Что-то мы перечислили, что-то доступно... Но это всё или нет? Разумеется, что нет. Всё существенно зависит от задачи. Для совсем простых задач есть множество ограниченных версий коммерческих продуктов и что-то эти продукты, конечно, позволяют. И если вы что-то хотите сделать в одиночку, то вам сейчас доступное многое, хотя и не всё. Но чтобы понять свои возможности и ограничения нужно отталикиваться не от технологий, а от задач. Не от возможности личного участия, а от возможности подключения любого количества заинтересовавшихся вашей идеей других людей.

Ну, например, вы - студент и у вас есть студенческие лицензии на средства разработки компании Microsoft (Visual Studio, Windows Server и т.п.). Сегодня, например, эти средства вам доступны по программе Dreamspark. И как это вам поможет привлечь других, если они уже не студенты? А завтра и вы сами перестанете быть студентом. Кроме того, все эти средства ориентированы только на фиксированную платформу и подарок ваш, всё равно получится ущербным - требующим очередную платную версию Windows.

Так на что же можно, в итоге, реально рассчитывать? Рассчитывать можно и нужно не только на открытые технологии, но на компетентного носителя, владеющего и развивающего эти технологии. А таким наосителем в нетривиальных задачах может быть только коллектив.

Вот такой коллектив и должен собираться, планировать и развивать открытые технологии. И этого коллектива сегодня должен быть очередной ежегодный праздник - День Свободы ПО. К сожалению, наши попытки его проведения год от года, по моим ощущениям, как организатора, существенно отдалились от того, что я попытался описать выше. Надеюсь, постепенно, нам это удастся исправить. С праздником, товарищи!

Tags: fsf, sarfsc, sfd
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

  • 2 comments