Изменения

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

Opensource и качество

7625 байтов добавлено, 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}}
* + Защита от патентного преследования
</tab>
==== Лицензии [[rupedia:Creative Commons|Creative Commons]] ====
'''CC''' — семейство лицензий, в основном удобных для не-программных продуктов, по причине использования более общей терминологии. Но это вовсе не значит, что использовать их для этого совсем нельзя, например, под CC-BY-SA любят распространять [http://flash-mp3-player.net Flash-MP3 плееры].
=== Проблемы свободы ПО ⌘⌘ ===
* Тивоизация, патенты. Фикс: GPL{{blue|v3}}.
* SaaS. Фикс: AGPL(3).
* Скрипты — {{red|несвободное ПО без вашего ведома}}
** {{red|Обфускация}} == исходник? Фикс: GPL{{blue|v3}}, MPL, Apache.** {{red|компоновка? }} {{green|не компоновка?}} Фикс: LGPL(3), MPL, Apache.
=== Проблемы свободы ПО — разъяснение ===
С <abbr title="Software as a Service">SaaS</abbr> всё понятно. Разрабатывая что-то свободное, что вероятно кто-то доработает и будет использовать исключительно на своём сервере, обслуживая запросы других людей - людей — помните, что доработки он может и не открыть. Для таких продуктов полезно использовать AGPL (3-ей версии).
Со скриптами чуть интереснее — причём тут имеется ввиду не только JavaScript, который ваш браузер выполняет постоянно, обфусцированный, несвободный, и без вашего ведома (хотя бы при запросах в Google), но и другие скриптовые языки, набравшие сейчас очень большую популярность.
С ними проблемы две: во-первых, обфусцированный скрипт — это исходник? GPL 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)}}
* Guile: GPL + компоновка
{{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

Навигация