Изменения

Перейти к: навигация, поиск

Opensource и качество

12 268 байтов добавлено, 20:19, 10 октября 2015
Нет описания правки
* {{red|Недоверие к пользователю, как начало порчи отношений}}
* Изощрённые способы защиты и монетизации
* Частая монополия Монополия и бесплатная «первая «бесплатная первая доза»
* СЕРВИСЫ: худший (но честный) вид закрытого ПО
== Закрытое ПО — разъяснения = Комментарии ===
Закрытое (собственническое, proprietary) ПО — прямой перенос стандартной, капиталистической, собственнической модели ведения бизнеса — «производитель-потребитель» на программное обеспечение. Достаточно неприятно то, что многие воспринимают это как норму, а многие не знают, что бывает иначе.
* «Это для вашей защиты». В такой реализации защищённости пользователю это не прибавит, так как он не решает, что запускать, а что не запускать — за него решает Большой Брат. Зато, например, прибавится защита от тех, кто не поделился с M$ баблом на сертификат для драйвера (500$ в год).
=== {{red|НЕ}}свободные лицензии %% ⌘⌘ === «Эта змея была выращена в неволе»
[[File:BredInCaptivityKPZ.jpg|300px]]
=== {{red|НЕ}}свободные лицензии ⌘⌘ ===
; Freeware: {{green|«Free as beer»}}. Можно распространять свободно, но вирус :)
; Shareware: Можно распространять, но {{red|нельзя}} свободно использовать.
; Proprietary: «Bred in captivity». Никто не видел за пределами.
== Свободное ПО ==
<li>Распространять модифицированное</li>
</ol>
 
=== Что такое Open-Source? %% ⌘⌘ ===
 
[[File:OSI logo.png|200px]]
 
''«Не хотим рассматривать {{blue|„свободу ПО“}} с моральной точки зрения!»''
 
Появилось, чтобы не использовать термин «Free» {{red|*}}
 
==== Open Source Definition ⌘⌘ ====
 
[http://www.opensource.org/docs/osd Более запутанное определение]; 10 пунктов.
* {{green|Запрет дискриминации}}: технологий, людей, продуктов, другого ПО, сфер применения.
* Свободное {{red|''повторное''}} распространение {{red|''в составе дистрибутива!''}} без нужды доп. лицензирования.
** Не путать с просто {{blue|''свободным распространением''}}…
* Доступность исходников {{blue|''вместе с''}} {{red|(*)}} бинарями.
* Модификация, сборка и распространение {{red|''на тех же''}} условиях.
 
==== Лицензии, признанные OSI, но не FSF ====
 
Следующие лицензии — Open-Source, но не свободные, по крайней мере не признанные таковыми Free Software Foundation. Легко заметить, что большинство из них очень малоизвестные, поэтому есть подозрение, что определение Open Source не так уж и хорошо.
 
Вообще в целом идея у OSI (в 1999 году) была такая — чтобы добиться большего распространения свободного ПО в корпоративной среде, сделать следующее:
# Уйти от слова «free», как от чего-то, пугающего корпоративщиков, которые несправедливо думали — раз бесплатно, значит говно;
# Ликвидировать путаницу с «freeware» &ne; «free software», введя новый термин, не равный ни тому, ни другому;
# Подзабить на моральную сторону и сделать акцент на преимуществах открытой модели разработки, и отразить это в своих принципах.
 
Однако вскоре п.1 стал неактуален, так как качество свободного ПО признали очень многие. П.2, хоть и сам внёс немножко путаницы («open source &ne; free software») остался полезен тем, что по словам «opensource программа для того-то» гораздо проще найти правильную программу в Google, чем по словам «free …» — по последнему запросу найдётся ещё и куча в 99 % случаях говённого Freeware и Shareware софта.
 
А п.3 в чём-то перекликается с темой доклада. И хотя я не считаю, что ради них можно отказываться от принципов свободы, с преимуществами открытой модели разработки я полностью согласен.
 
Сейчас большинство Open-Source программ и большинство известных Open-Source лицензий являются одновременно и свободными, именно поэтому термины так часто используются взаимозаменяемо. Но нужно всё-таки помнить, что свободные программы всегда будут Open-Source, а вот Open-Source могут быть и несвободными.
 
Итак, лицензии, признанные OSI, но не FSF — это:
 
* Adaptive Public License 1.0
* The Attribution Assurance License
* Computer Associates Trusted Open Source License 1.1 (CATOSL-1.1)
* CUA Office Public License (CUA-OPL-1.0)
* The X.Net, Inc. License
* Fair License
* Frameworx License 1.0
* Historical Permission Notice and Disclaimer (HPND)
* MirOS License
* Multics License
* NAUMEN Public License
* Nethack General Public License (NGPL)
* NTP License
* Non-Profit Open Software License version 3.0 (NPOSL-3.0)
* OCLC Research Public License 2.0 License (OCLC-2.0)
* Open Group Test Suite License (OGTSL)
* CNRI portion of the multi-part Python License
* RealNetworks Public Source License Version 1.0 (RPSL-1.0)
* Reciprocal Public License 1.5 (RPL-1.5)
* Ricoh Source Code Public License (RSCPL)
* Simple Public License (SimPL-2.0)
* Sybase Open Source Licence (Watcom-1.0)
* Vovida Software License v. 1.0 (VSL-1.0)
* wxWindows Library Licence
=== Свободные лицензии ++ ⌘⌘ ===
* {{blue|Public Domain}}: отказ от прав {{red|**}} — CC0, Unlicense
* {{blue|Permissive}}: без доп. ограничений — MIT/Apache/BSD и т. п.
* {{blue|Weak Слабый Copyleft}}: не-совсем-запрет смены лицензии, кроме компоновки — лицензии — LGPL, CeCILL-C, MPL* {{blue|Strong Строгий Copyleft}}: запрет смены лицензии — GPL, CeCILL
* Есть ещё сильнее — {{blue|Affero GPL}}
* + Защита от патентного преследования
 
=== Популярные лицензии ++ ⌘⌘ ===
 
* GPL: Копилефт-лицензии by Stallman
* MIT/X11/BSD/FreeBSD: Минималистичная Permissive
* Apache: Кошерный Permissive
* MPL: Файловый копилефт by Mozilla
=== Вирус — не вирус %% ⌘⌘ ===
</tab>
==== Лицензии [[rupedia:Creative Commons|Creative Commons]] ====
'''CC''' — семейство лицензий, в основном удобных для не-программных продуктов, по причине использования более общей терминологии. Но это вовсе не значит, что использовать их для этого совсем нельзя, например, под CC-BY-SA любят распространять [http://flash-mp3-player.net Flash-MP3 плееры].
=== Проблемы свободы ПО ⌘⌘ ===
* SaaSТивоизация, патенты. Фикс: AGPLv3GPL{{blue|v3}}.* JavaScriptSaaS. Фикс: распространять свободноAGPL(3).* Скрипты в целомСкрипты — {{red|несвободное ПО без вашего ведома}}** {{red|Обфускация}} == исходник? Фикс: GPL{{blue|v3}}, MPL, Apache. ** {{red|компоновка?}} {{green|не компоновка?}} Фикс: LGPLv3LGPL(3), MPL, Apache.
=== Баги в лицензиях ⌘⌘ Проблемы свободы ПО — разъяснение ===
* Связанные с конкретным законодательствомС <abbr title="Software as a Service">SaaS</abbr> всё понятно. Разрабатывая что-то свободное, что вероятно кто-то доработает и будет использовать исключительно на своём сервере, обслуживая запросы других людей — помните, что доработки он может и не открыть. Для таких продуктов полезно использовать AGPL (3-ей версии).** Пример — Со скриптами чуть интереснее — причём тут имеется ввиду не только JavaScript, который ваш браузер выполняет постоянно, обфусцированный, несвободный, и без вашего ведома (хотя бы мы, Россия :при запросах в Google) , но и Европа тожедругие скриптовые языки, набравшие сейчас очень большую популярность.** CeCILLС ними проблемы две: во-первых, обфусцированный скрипт — это исходник? GPLv2ничего не говорит на этот счёт, адаптированный к Европе а вот в GPL 3-ей версии, а также MPL и ФранцииApache явно прописано, что исходник — это «предпочтительная для модификации форма работы»; обфусцированная форма — точно не предпочтительная, соответственно, она и не является исходникомВо-вторых, как вообще определяются «границы» приложения, если оно полностью написано на скриптовом языке, особенно, если это какой-нибудь JavaScript? Мало того — может ли GPL’ный скрипт выполняться в интерпретаторе, имеющем несовместимую с GPL лицензию? Из-за этих вопросов трактовки Firefox, например, лицензируется как под MPL (1.1), так и под GPL. Решение — использовать для javascript’ов как минимум LGPL, а как максимум — MPL (файловый копилефт) или Permissive-лицензию типа Apache или NewBSD/FreeBSD. Все эти проблемы присутствуют в GPLv2 и похожих на неё лицензиях (например, EUPL, CeCILL) и решаются лицензиями семейства GPLv3. Вот и ответ на вопрос — почему желательно использовать именно 3-и версии. === Баги в лицензиях ++ ⌘⌘ === * Рекламные багиCeCILL, EUPL: GPLv2 + Европейские законы* BSD, PHP. : Рекламные баги {{blue|(Fix: FreeBSD, X11, Apache)}}* «GPL Guile: GPL + разрешение компоновки»компоновка* BDB: копилефт типа GPL* MPL: не баг, а фича — файловый копилефт* CDDL: «хитрые ограничения»специально несовместима с GPL
* Clear BSD: {{red|явно}} не дают прав на патенты
* Старые APSL (вообще несвободные): центральный контроль
=== Баги в лицензиях — разъяснение ===
Во-первых, '''рекламные баги'''. Самый известный пример — баг оригинальной лицензии BSD, которая говорила, что всё, что включает в себя ПО, распространяющееся под BSD-лицензией, должно где-то упоминать, что оно содержит «ПО, разработанное университетом Беркли». Дальше лицензию копипастили все, кому было не лень, меняя «университет Беркли» на название своей организации. В итоге, например, в NetBSD 1997-го года выпуска пришлось упоминать аж 75 разных организаций.
 
Второй баг — лицензия PHP, которая заставляет включать «php» в названия всех расширений. Не такой страшный, но тоже баг.
{{note}} Никогда не называйте permissive-лицензии «BSD-style» лицензиями, потому что так можно ввести кого-нибудь в заблуждение и породить новый рекламный баг.
Второй класс — это багиИсправление для этого — 3-пунктовая BSD, связанные с применением лицензий в конкретных законодательствах. Законы везде разные2-пунктовая FreeBSD-лицензия, чтобы во всём этом разобратьсяили аналогичный, нужно быть прокачанным юристом. Поэтомуно ещё более укороченный вариант — лицензия ISC (применяемая, например, существует CeCILL, который очень похож на GPLv2, но переписан французскими юристами и адаптирован к французскому и европейскому вообще правупо умолчанию в новых частях OpenBSD). [http://www.cecill.info/faq.en.html#pourquoi3-cecill Конкретика здесь] — в области гарантийий пункт, области действия, и неупоминания «соответствующих законов». Есть небольшое подозрение, что и к нашим законам лицензия могла бы быть более применима, но вот незадача, для удалённый во FreeBSD/ISC лицензиях — это запрет использования имя <организации> или других контрибьюторов в русских судах лицензию нужно писать на русском :)рекламе производных продуктов.
Есть Ещё один пример — лицензия PHP, которая заставляет включать «php» в названия всех расширений. CeCILL — лицензии, очень похожие на GPLv2, LGPLv2, BSD, но переписанные французскими юристами и адаптированные к французскому и европейскому вообще праву. [http://www.cecill.info/faq.en.html#pourquoi-cecill Конкретика здесь] — в области гарантий, области действия, и неупоминания «соответствующих законов». Есть лицензии типа Guile: «GPL + разрешили разрешение линковаться с проприетарщиной» — люди не вкурили LGPL. Есть лицензии типа <abbr title="Berkeley DB / Sleepycat Software License">BDB</abbr>, вместо которых можно было бы смело использовать GPL, ибо смысл тот же — свободно распространяться должно всё, что использует BDB.
MPL 1.1, CDDL: «хитрые ограничения», из-за которых та же фаерфоксина выпускается под MPL+GPL+LGPL.
Общая суть MPL — «Копилефт на уровне отдельных файлов». То есть , внесённые в MPL’ный файл изменения должны распространяться под MPL’ем, но MPL’ные файлы можно комбинировать в «Более крупном произведении» («Larger work») с файлами под другими лицензиями (если, конечно, это не противоречит самим этим лицензиям). Кроме того, MPL 1.1 разрешает перелицензировать бинарные сборки. Собственно говоря, из-за этих багов MPL 1.1 сам по себе и несовместим с GPL и требует двойного лицензирования, чтобы быть совместимым. MPL в основном удобно применять для JavaScript'ов (и, возможно, других ).
Однако, недавно вышла новая версия [http://mozilla.org/MPL/2.0/ MPL 2.0]:
* Теперь она «по умолчанию совместима» с GPL 2.0+, LGPL 2.1+, AGPL 3.0+ — то есть, если автором специально не отмечено обратное (для этого нужно писать, что «Incompatible with secondary license»). Раньше для этого требовалось явное двойное или тройное лицензирование (как в Firefox: GPL, LGPL, MPL).* Упрощено определение «исходников»: «the preferred form of the Covered Code for making modifications to it<s>, including all modules it contains, plus any associated interface definition files, scripts used to control compilation and installation of an Executable, or source code differential comparisons against either the Original Code or another well known, available Covered Code of the Contributor’s choice. The Source Code can be in a compressed or archival form, provided the appropriate decompression or de-archiving software is widely available for no charge»charge</s>». Хорошо *: В FAQ Mozilla утверждает, что это или плохо — хзхорошо, так как позволяет гибко трактовать определение и включать не только перечисленный набор дополнительных файлов, а именно то, что нужно включать в каждом конкретном случае. Может быть, это и не хорошо, потому что мало ли кто как это оттрактует… А проблема открытия конфигурации и скриптов сборки есть — например, Acer, в соответствии с GPLv2, опубликовал исходники ядра для своего телефона Liquid, но без конфига, и чтобы их собрать, конфиг нужно изобретать заново. Лицензия Apache 2, кстати, содержит аналогичное, но чуть более точное, определение исходников: «предпочтительная для доработки форма, включая (но не ограничивая) исходными кодами приложения, документации, конфигурации». CDDL же был специально основан на MPL 1.1, в частности, чтобы быть несовместимым с GPL. Никто от этого не выиграл, только геморроя прибавилось — например, были долгие срачи на тему ФС ZFS.
Clear BSD: в лицензии явно прописано, что не дают прав на патенты. Есть и такое. Вероятно, использовать эту лицензию значит подставлять филейные части тела патентным троллям.
Старые APSL (Apple Public Software License) — вообще несвободные. Ибо : имеют центральный контроль (все доработки надо отправлять ябблам), возможность отзыва лицензии теми же ябблами и запрет личного пользования доработанного ПО.
=== «Хорошие» Кошерные лицензии ⌘⌘ ===
* ПО: AGPLv3, GPLv3, LGPLv3, Apache v2.
* Медиа: CC-BY-SA.
* Лицензии для мнений/решений/лицензий (for works of opinion and judgment): CC-BY-ND.
 
=== Другие популярные ⌘⌘ ===
 
* MIT/X11/FreeBSD/ISC: Минималистичная Permissive.
* MPL 2.0: Файловый копилефт by Mozilla.
* {{red|Всё остальное — от лукавого!}}
=== Stand Up For Your Freedom ⌘⌘ ===
=== Разъяснение ===
{{warning}} Нужно добавить слайды с противопоставлением закрытого ПО (иллюстрация - иллюстрация — кучка Кощеев, "чахнущих «чахнущих над златом"златом») и СПО (все обмениваются друг с другом полезными няшками, и в итоге у всех больше).
Свободное ПО и бизнес зачастую кажутся людям врагами. Мол, цель СПО — полная бесплатность, а что же тогда кушать программистам? Так вот: это Совершенно Ошибочное Мнение, и вызывается оно бесплатностью копий.
{{green|''Фонд спонсирует разработку. Кто-то спонсирует фонд.''}}
[[File:FSF-Logo.svg|200px]] [[File:Apache Software Foundation Logo.svg|200px]] <span style="white-space:nowrap">[[File:Wikimedia-logo.png|60px]]&nbsp;<big>Wikimedia</big></span> [[File:Kickstarter logo.png|200px]] — [http://www.kickstarter.com/projects/inxile/wasteland-2 1 500 000 $ на Wasteland 2!]
==== Ещё? %% ⌘⌘ ====
Ещё одно отличие от других сфер: сесть и начать творить любой человек может в любой момент. И вот не надо говорить, что для этого нужно иметь программистское образование, пример — это [[wikipedia:Con Kolivas|Кон Коливас]], лет 8 занимавшийся проблемой отзывчивости Linux’а на настольных компьютерах и реализовавший [[rupedia:Brain Fuck Scheduler|BFS]]-планировщик. Риторический вопрос — даст вам кто-нибудь разрабатывать свой планировщик для закрытой винды? Да вам даже никто не даст посмотреть на реализацию стандартного.
Это всё не значит, что если ПО свободное, оно сразу априори лучшего качества, чем несвободное. Но по крайней меревам известно, если вы вдруг обнаружите недостатки качества свободного ПОчто его делали не из жажды денег, вы хотя бы ''можете'' их исправить. А в случае закрытого — ''у вас даже нет шанса''. «Системаа потому, которая не может сломатьсячто нужно или хочется, плоха теми держится оно зачастую именно на энтузиазме. Про энтузиазм проприерасты скажут, что её невозможно починитьэто плохо, если она всёа я скажу, что это очень даже хорошо -таки сломается»человек, работающий на энтузиазме, всегда добьётся лучшего результата, чем мотивированный исключительно деньгами. :)
И по крайней мере, если вы вдруг обнаружите недостатки качества свободного ПО, вы хотя бы ''можете'' их исправить. А в случае закрытого — ''у вас даже нет шанса''. «Система, которая не может сломаться, плоха тем, что её невозможно починить, если она всё-таки сломается». :) === Отношения Отношение к пользователям %% ⌘⌘ === {{green|к}} ''...и {{green|сС пользователями''}} пользователями %% ⌘⌘ ===
[[File:User.svg|100px]]
Другой пример — Opera. Публичного багтрекера у них нет, можно отправить баг, но нельзя смотреть, чего с ним делают. Если попытаться добиться ответа в комментах к [http://my.opera.com/desktopteam/blog/ постам заряженного веществами Desktop Team], вам разве что вынесут предупреждение модераторы, если вы вдруг повторите коммент в двух постах. Ответа же не последует. Команда сосредоточена на разработке новых фич, зачастую совершенно идиотских (Unite), а баги при этом встречаются [http://yourcmc.ru/wiki/%D0%91%D0%BB%D0%BE%D0%B3:%D0%92%D0%B8%D1%82%D0%B0%D0%BB%D0%B8%D0%B9_%D0%A4%D0%B8%D0%BB%D0%B8%D0%BF%D0%BF%D0%BE%D0%B2/2011-11-14_Opera_-_%D0%B7%D0%B0%D0%B3%D0%BE%D1%82%D0%BE%D0%B2%D0%BA%D0%B0_%D0%B3%D0%BE%D0%B2%D0%BD%D0%B0_%D0%B4%D0%BB%D1%8F_%D0%BC%D0%B5%D1%82%D0%B0%D0%BD%D0%B8%D1%8F_%D0%BD%D0%B0_%D1%85%D0%B0%D0%B1%D1%80%D0%B5 весьма серьёзные], живущие подолгу и во всех сборках.
 
Если посмотреть под винду, там это вообще на каждом шагу. Например, сколько существует коммерческих установщиков — не счесть. И все обвешаны хер пойми чем, какими-то своими свистелки-перделки… Потом появляется свободный NSIS и всех уделывает своей простотой.
Кроме того, как уже было упомянуто, это вообще общее свойство производителей — старание выполнять свои обязательства в минимальном объёме (например, гарантийные).
=== Репутация ⌘⌘ ===
* «Мы делаем людям полезное»полезное!»* «Смотрите, какие у нас крутые разработчики! Наймите нас!»* Наш «Наш продукт безопасен — убедитесь сами!»
* Количество и качество пользовательской базы
* СПО — именно о качестве, а не о том, чтобы что-то быстро разработать и продать
=== Почему в закрытом ПО есть эти проблемы? ⌘⌘ ===
Ответ простой: Потому что {{red|Монополия и Сговорникто не видит, что внутри}}.! И всем {{red|пофиг}} на тех, кто снаружи :) ''…плюс монополизм, vendor-lock, <s>партнёрство</s> сговор…''
=== Меня это не касается! %% ⌘⌘ ===
* Скрытые стоимости владения СПО. Обычно смысл такой — оно имеет менее «дружелюбные» к пользователю интерфейсы, и если вы ваще ни в чём разбираться не хотите, надо либо заказывать поддержку, либо иметь в компании умных людей, которые ''могут'' разобраться. Моё мнение такое: а что, если вам потребуются более умные люди для работы с СПО, потому что вначале нужно чему-то научиться, это что, минус? Ведь вы в итоге вложите деньги не в какого-то «дядю», а в ''своих разработчиков'', которые могут (или смогут в будущем) решать более крутые задачи.
* «Качество СПО, с которым часты всё-таки проблемы». Ответа два: во-первых, оно ещё не так распространено, частично из-за боязни людей ''начать''. Было бы лучше распространено — и качество, о котором вы говорите, могло бы быть и выше. А во-вторых, проблемы ''бывают'', но их ''можно решить'', в отличие от закрытого продукта, с которым при обнаружении проблем у вас есть только два варианта — использовать как есть или не использовать вообще.
 
== Дополнительные заметки ==
 
Нужно ещё рассказать о том, что за свободным ПО на самом деле часто стоят организации. Примеров тьма!
* JBoss / Hibernate
* Tuxera / ntfs-3g
* Куча разных / Linux
* Zend / PHP, Zend Framework
* Sensio Labs / Symfony
* Canonical / куча всего вокруг убунты
* Facebook / HipHop, XHProf, утилиты и патчи к MySQL
* Trolltech &rarr; Nokia &rarr; Digia / Qt

Навигация