Opensource и качество

Материал из YourcmcWiki
Перейти к: навигация, поиск
Автор

Виталий Филиппов
Дополнительный нижний колонтитул

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

Варианты названия:

  • Opensource и качество, или почему проприетарщина уныла
  • Opensource и качество, или «я в неволе не размножаюсь»
  • Opensource и качество, или софт в неволе не плодится!

Тезисы

Почему так часто оказывается, что закрытое ПО имеет различные проблемы, и их так сложно, или вовсе невозможно, исправить? Причина кроется в изначальной модели бизнеса и цели разработки, которой является не создание качественного продукта, а продажи и зарабатывание денег на потребителях. Потребителю ни в коем случае не доверяют, исходники закрываются (а то сопрут!!!), не дай бог, навешивается реклама, DRM и руткиты, публичный багтрекер, конечно же, отсутствует, служба техподдержки инструктируется отвечать по шаблону, а в блогах тусуются позитивные заряженные веществами евангелисты, от которых ничего не добьёшься. Результат — ни решить проблемы, ни повлиять на дальнейшую жизнь проекта.

А теперь призыв — посмотрите в сторону OpenSource! Это же бесплатное решение многих проблем с качеством вашего продукта, а заодно, например, и многих ваших же проблем с качеством инструментов! Конечно, OpenSource тоже не должен пониматься как в карго-культе — «открыли исходники и качество резко возросло» — открытость должна быть в головах, а не на бумаге.

Именно о том, как производство и использование свободного ПО может помочь повысить качество, и будет доклад.

Информация о докладчике

Виталий Филиппов, ведущий веб-разработчик в компании CUSTIS. Также выступал на конференциях Highload-2009 (блиц-доклад), SECR-2009, РИТ-2010 (два блица: раз, два), ADD-2010, ADD-2011, DevConf-2011, WhaleRider-2011.

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

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

План ⌘⌘

  • Проблемы закрытого ПО
  • Типичное представление об OpenSource
  • О малоизвестном:
    • Свободные лицензии во всём многообразии
    • Opensource & бизнес
    • Opensource & качество ↑↑↑

Особенности ПО как продукта ⌘⌘

  • Бинарники и исходники
  • Постоянная работа с личными данными
  • Сильная завязка на платформы, форматы, протоколы
  • Необходимость поддержки
  • Часто - уникальность продукта
  • Сложность продукта ⇒ обязательное наличие БАГОВ!
  • И в то же время - простота сборки...
  • ...и нулевая стоимость копирования.

Закрытое ПО ⌘⌘

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

FOSS: Типичное представление %% ⌘⌘

Halyava2.jpg

По возрастанию знания: ⌘⌘

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

Но многое малоизвестно: ⌘⌘

  • OpenSource Свободное ПО
  • Свободное Некоммерческое
  • Как появилось свободное ПО?
  • Зоопарк свободных лицензий
  • Связь открытости и качества (???)

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

4 свободы:

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

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

Гарантируют пользователю 4 свободы.

  • Public Domain (отказ от прав **)
  • Permissive (без доп. ограничений)
  • Weak Copyleft (запрет смены лицензии, кроме компоновки)
  • Strong Copyleft (запрет смены лицензии)

Популярные несвободные ⌘⌘

  • Shared Source
  • Freeware
  • Shareware
  • Proprietary

Тут возможны любые ограничения. :)

Семейство Creative Commons ⌘⌘

  • CC-BY
  • CC-BY-NC
  • CC-BY-ND
  • CC-BY-NC-ND
  • CC-BY-SA
  • CC-0

И всё бы хорошо... %% ⌘⌘

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

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

  • TiVo
  • Патенты
  • Законы, запрещающие некоторый софт

Фикс: GPLv3.

Ещё баги ⌘⌘

  • Сервисы. Фикс: AGPLv3.
  • JavaScript. Фикс: распространять свободно.
  • Скрипты в целом. Фикс: LGPLv3.

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

  • Рекламные баги: BSD, PHP. Fix: FreeBSD, X11, Apache
  • CeCILL: французский GPL.
  • "GPL + разрешение компоновки"
  • MPL, CDDL: "хитрые ограничения"
  • Clear BSD: явно не дают прав на патенты
  • Старые APSL (вообще несвободные)

Баги в лицензиях - разъяснение

  • Рекламные баги: BSD (Berkeley Inc) — в NetBSD 1997 было 75 штук, PHP («php» во всех названиях). Фиксы: FreeBSD, X11, Apache.
  • CeCILL: GPLv2, переписанная французскими юристами и адаптированная к французскому и европейскому вообще праву. Конкретика здесь — в области гарантий, области действия, и неупоминания «соответствующих законов». Есть небольшое подозрение, что и к нашим законам лицензия могла бы быть более применима, но вот незадача, для использования в русских судах лицензию нужно писать на русском :)
  • Есть лицензии «GPL + разрешили линковаться с проприетарщиной» — люди не вкурили LGPL.
  • MPL, CDDL: «хитрые ограничения», из-за которых та же фаерфоксина выпускает под MPL+GPL+LGPL. А именно, если вы поправите, то они могут использовать это в своих проприетарных «Larger Works» (ну нетскейп же); + разрешает перелицензировать бинари.
  • Clear BSD: явно прописано, что не дают прав на патенты.
  • Старые APSL: вообще несвободные. Центральный контроль, возможность отзыва, запрет личного пользования.

"Хорошие" лицензии ⌘⌘

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

OpenSource и бизнес

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

Цель закрытого ПО - срубить денег. Цель свободного ПО - создать полезный продукт.

Не надо думать, что единственной целью создания закрытого ПО всегда является исключительно получение прибыли на продаже лицензий. Многие закрытые программы точно так же изначально создаются любителями своего дела и тоже с целью создания полезного продукта, на котором кроме того ещё и МОЖНО заработать. Проблема в том, что успешные компании, производящие ПО, с ростом всё более и более бюрократизируются, а неуспешные - просто умирают или продаются и забирают с собой в могилу продукт. (Примеры!! Oracle/Sun, Google/толпа проектов.) А бюрократизация приводит к усложнению огранизации, процессов и обратной связи, росту количества менеджеров и росту издержек, уходу создателей от разработки или вообще из компании, потере интереса разработчиков до среднестатистического, за который платят, а следовательно - падению их производительности, иссяканию новых идей, подмене изначальной цели (создать нечто полезное, на чём можно и заработать) только желанием заработать и постепенному скатыванию в говно.

Нет, всё это, опять-таки не значит, что любая закрытая программа обязательно скатится в говно. Это значит, что удержаться от скатывания в говно закрытому софту труднее, чем свободному. Говно - это "асимптотически равновесное состояние" закрытого софта :)

Отличие от других сфер: сесть и начать творить можно в любой момент. Кон Коливас.

Проблемы закрытого ПО

  • Монополия, сговор
  • Отсутствие обратной связи
  • Нечестная конкуренция (+ патенты)
  • Продукт держится на инициативе производителя
  • Необходимость переписывания и перелицензирования кучи всякого г***а
  • "Тупые юзеры"
  • Adware, Spyware и прочие закладки
    • Реклама (которую, видимо, уже не осуждают?)
    • Шпионские модули
    • Отрубание совместимости
    • Stuxnet & Иранские Ядерные Центрифуги
  • Программисты пишут не потому что им нравится, а потому, что их заставляют
  • Платность :-)
  • Проблемы обмена опытом

Как таки поднять качество

По сути, все эти проблемы FOSS помогает решить!

  • foss — именно о качестве, а не о том, чтобы что-то быстро разработать и продать
  • Открытые инструменты разработки
  • Открытость нужна в головах, а не на бумаге, и foss ей способствует
  • Количество и качество пользовательской базы
  • Бесплатные тестеры
  • Иногда бесплатные программисты
    • Ну или патчеры. Даже если вы патч не примете, его могут найти и зафиксить что-то, на что у вас пока не хватило времени
  • Обучение собственных программистов взаимодействием с внешним сообществом
  • Сообщество поможет выбрать правильные технологии (которые не сдохнут)
  • Независимость от вендоров
  • Меньшая вероятность попадания в продукт ВАШИХ закладок - лучшая репутация продукта
  • Тупо деньги - их лучше заплатить людям, чем "дяде". Даже если понадобятся чуть более умные люди, вы всё равно выиграете (умные люди, это ж хорошо).
  • Проблема форка: технически лучше всегда за ними следить.

Картинки

NewTux.svg

Alan Cox.jpg

Alan Cox Red.jpg