OpenSource
и качество, или не плодите софт в неволе

Виталий Филиппов, CUSTIS

ПО? Качество? О чём это мы?

  • О ПО, какое оно? Особенности, закрытое, открытое.
  • Типичное представление об OpenSource СПО.
  • Зоопарк свободных лицензий Elephant-red.svg
  • Свободное ПО и бизнес. Handshake icon.svg
  • Проблемы закрытого ПО
  • Свободное ПО и качество ↑↑↑

ПО — продукт особенный

  • Бинарники и исходники
  • Постоянная работа с личными данными
  • Сильная завязка на платформы, форматы, протоколы
McSource.png Binaries.jpg

А также…

Bug-feature.jpg
  • Часто — является уникальным IDA Logo.jpg
  • Сложность продукта ⇒ обязательное наличие БАГОВ!
  • Умирание без поддержки
  • Но в то же время простота сборки
  • …и нулевая стоимость копирования.

Программы окружили нас!

AEM ECU.jpg

Даже если вы не работаете за компьютером, вы окружены :-)

  • Мобильные устройства
  • Вся бытовая техника
  • Самолёты, поезда
  • Автомобили (ECU, сигналки)
  • Продолжите список сами :)

Типичное представление об СПО

Halyava2.jpg

Обычно думают так…

  • Linux, Android
  • «Не для простых смертных»
  • Исходники, копилефт
  • RMS, FSF, вирус — не вирус

Часто забывают о…

Richard stallman laptop 3.jpg
  • OpenSource Свободное ПО
  • Свободное Некоммерческое
  • Как появилось свободное ПО?
  • Зоопарк свободных лицензий
  • Связь открытости и качества (???)
  • Linux GNU/Linux

Закрытое ПО

  • Модель «производитель-потребитель»
  • «Лицензирование», закрытые лицензии: Вам Запрещено Всё
  • Недоверие к пользователю, как начало порчи отношений
  • Изощрённые способы защиты и монетизации
  • Монополия и «бесплатная первая доза»
  • СЕРВИСЫ: худший (но честный) вид закрытого ПО

НЕсвободные лицензии

KPZ.jpg

НЕсвободные лицензии

Shared Source
Приоткрыто «на посмотреть»
Freeware
«Free as beer». Можно распространять свободно, но вирус :)
Shareware
Можно распространять, но нельзя свободно использовать.
Proprietary
«Bred in captivity». Никто не видел за пределами.

Что такое свобода?

4 свободы:

  1. Использовать
  2. Изучать и модифицировать (требует исходники)
  3. Распространять
  4. Распространять модифицированное

Что такое Open-Source?

OSI logo.png

«Не хотим рассматривать „свободу ПО“ с моральной точки зрения!»

Появилось, чтобы не использовать термин «Free» *

Open Source Definition

Более запутанное определение; 10 пунктов.

  • Запрет дискриминации: технологий, людей, продуктов, другого ПО, сфер применения.
  • Свободное повторное распространение в составе дистрибутива! без нужды доп. лицензирования.
    • Не путать с просто свободным распространением
  • Доступность исходников вместе с (*) бинарями.
  • Модификация, сборка и распространение на тех же условиях.

Свободные лицензии

  • Гарантируют пользователю 4 свободы.
  • Public Domain: отказ от прав ** — CC0, Unlicense
  • Permissive: без доп. ограничений — MIT/Apache/BSD и т. п.
  • Слабый Copyleft: не-совсем-запрет смены лицензии — LGPL, CeCILL-C, MPL
  • Строгий Copyleft: запрет смены лицензии — GPL, CeCILL
  • Есть ещё сильнее — Affero GPL
  • + Защита от патентного преследования

Вирус — не вирус

Частое заблуждение:

BadVirusGPL.jpg WhiteFluffyBSD.jpg

…И я уж молчу о том, как боятся AGPL.

Все забыли о появлении FSF (1985) и GPL?

Burgui.png
СПО было всегда (MIT, PDP-10, 1970—1980)

Потом Буржуи :-) закрыли Lisp-машины

Если GPL-вирус, то закрытые исходники вообще не размножаются (ц)

Семейство Creative Commons

CC-BY permissive
CC-BY-NC некоммерческая ⇒ несвободная
CC-BY-ND без производных ⇒ несвободная
CC-BY-NC-ND   NC+ND
CC-BY-SA хороший copyleft не для софта
CC-0 хороший Public Domain

И всё бы хорошо…

…Но людская подлость нашла баги в этих свободах!

Баги в свободах

  • TiVo
    • Коллеги, не покупайте Motorola и Sony Ericsson!
  • Патенты
    • ТРОЛОЛО
    • К счастью, у нас их нет...
  • Законы, запрещающие некоторое ПО

Багфикс: GPLv3.

Патенты

И патентные тролли.

TrollFace.svg

M$ -> Barnes&Noble

  • 6,339,780 расположение иконки статуса загрузки в зоне браузера, отображающей контент
  • 5,579,517 и 5,758,352 совместимость имён файлов, используемых текущей операционной системой и её устаревшими версиями
  • 5,652,913 хранение факторов доступа ввода/вывода в структуре данных общего пользования
  • 6,791,536 и 6,897,853 симуляция ввода от манипулятора «мышь»
  • 5,778,372 постепенная загрузка браузером изображений, включённых в электронный документ
  • 5,889,522 класс для создания виджетов со вкладками (средствами операционной системы)
  • 6,891,551 использование указателей для изменения размеров области выделения при выделении текста
  • 6,957,233 добавление заметок к нередактируемым документам

Проблемы свободы ПО

  • Тивоизация, патенты. Фикс: GPLv3.
  • SaaS. Фикс: AGPL(3).
  • Скрипты — несвободное ПО без вашего ведома
    • Обфускация == исходник? Фикс: GPLv3, MPL, Apache.
    • компоновка? не компоновка? Фикс: LGPL(3), MPL, Apache.

Баги в лицензиях

  • CeCILL, EUPL: GPLv2 + Европейские законы
  • BSD, PHP: Рекламные баги (Fix: FreeBSD, X11, Apache)
  • Guile: GPL + компоновка
  • BDB: копилефт типа GPL
  • MPL: не баг, а фича — файловый копилефт
  • CDDL: специально несовместима с GPL
  • Clear BSD: явно не дают прав на патенты
  • Старые APSL: центральный контроль

Кошерные лицензии

  • ПО: AGPLv3, GPLv3, LGPLv3, Apache v2.
  • Public Domain: CC0.
  • Медиа: CC-BY-SA.
  • Лицензии для мнений/решений/лицензий (for works of opinion and judgment): CC-BY-ND.

Другие популярные

  • MIT/X11/FreeBSD/ISC: Минималистичная Permissive.
  • MPL 2.0: Файловый копилефт by Mozilla.
  • Всё остальное — от лукавого!

Stand Up For Your Freedom

Почему свобода в жизни считается такой важной, а в ПО нет?

Поддерживайте,
  изучайте,
    используйте,
      создавайте свободное ПО!

Это работа на перспективу!

Свободное ПО и бизнес

Ошибочно мыслятся врагами!

А это не так!

  1. СПО выгодно компаниям!
  2. 75 % кода ядра Linux пишется компаниями.
    Red Hat, IBM, Novell, Intel…
  3. Да и считать пользователей врагами — ошибка!

Выгода от СПО

  • Не для монополистов с закрытым продуктом ☠☠☠
  • Велосипеды ↓↓ Крутые вещи ↑↑
  • Пользователь — ваш друг!
  • Защита от монополистов и прочих пи…
  • Стоимость используемого ПО
  • Качество инструментов разработки ↑↑↑

Модели бизнеса

Заказная

Каждый проект создаётся на заказ.

  • 50 % экспорта софта из России

Сервисная

Продаются дополнительные услуги — обучение, поддержка…

  • Red Hat, Novell, Canonical, MySQL
  • Firefox & Google

Гибридная

Free + Non-Free

Parallels Virtuozzo, RHEL, VirtualBox, MySQL, OpenDarwin/Mac OS X, Zend Server…

Облачная

Cloud.svg

Продаём работу ПО в своём облаке серверов.

Citrix, SugarCRM, Amazon EC2.

Продажа устройств

ПО свободно. Продаются устройства.

GalaxyNexus.png Sparkfun.gif

Фонды и пожертвования

Фонд спонсирует разработку. Кто-то спонсирует фонд.

FSF-Logo.svg Apache Software Foundation Logo.svg Wikimedia-logo.png Wikimedia

Kickstarter logo.png — 1 500 000 $ на Wasteland 2!

Ещё?

Придумайте свою! :-)

Свободное ПО и качество ↑↑

  • Цель закрытого ПО — срубить денег.
  • Цель свободного ПО — создать полезный продукт.
  • Качество серверного СПО общепризнано.

Раз мы хотим качество, значит, есть проблемы?

Отношение к пользователям

...и С пользователями

User.svg

Закрытое ПО

BlackBox.svg

Юзер не должен знать об устройстве системы

(глупый, сломает, потеряет, украдёт, не заплатит…)

А польза от него одна — деньги!

Закрытое ПО

⇒ Система непрозрачна, by design !

MuddyGlass.jpg

Свободное ПО

  • Система прозрачна.
  • Система не ограничивает пользователя.
  • Пользователь — потенциальный contributor.
  • Открытость к взаимодействию (публичный трекер, вики, мэйллист)…

Репутация

  • «Мы делаем людям полезное!»
  • «Смотрите, какие у нас крутые разработчики! Наймите нас!»
  • «Наш продукт безопасен — убедитесь сами!»
  • Количество и качество пользовательской базы
  • СПО — именно о качестве, а не о том, чтобы что-то быстро разработать и продать

Бесплатные ресурсы

  • Бесплатные тестеры
    • Закон Линуса
    • Самое лучшее тестирование — тестирование для себя
  • Бесплатные патчеры (даже если патч ещё не принят)
  • Бесплатные программисты ...???
  • Обучение своих, и выбор технологий
  • Защита от «умирания»

Security Via Obscurity

А также Adware, Spyware и прочие закладки и контроль.

  • Реклама (которую, видимо, уже не осуждают?)
  • Шпионские модули
  • Отрубание совместимости
  • Stuxnet & Иранские Ядерные Центрифуги

Почему в закрытом ПО есть эти проблемы?

Потому что никто не видит, что внутри!

И всем пофиг на тех, кто снаружи :)

…плюс монополизм, vendor-lock, партнёрство сговор…

Меня это не касается!

У вас есть машина?

CodeGrabbers.jpg

(а мобильник?..)

С сигналками всё плачевно

Вы думаете, там есть криптография? Заблуждаетесь :)

  • У большинства — статический диалог O_o
  • 2-й уровень — Common PRNG
  • Если и не, то есть «Service Mode»
  • «А у меня Black Bug» (?)

Пыщь, пыщь, трололо?