Этикет и этика пользования OpenSource
Написать этот пост меня побудило справедливое замечание пользователя VBart к моему же предыдущему посту, который сейчас в черновиках. После соответствующих правок опубликую черновик — ссылка на комментарий заработает.
Я задумался об этике — гласной и негласной — пользования открытым кодом. Думаю, эта своеобразная памятка будет полезна не только мне, но вообще тем, кто, как и я, просто не задумывался о таком раньше, руководствуясь изложенным в лицензиях. По крайней мере в рунете чего-то подобного не нашёл, поэтому полагаю, что текст имеет право на жизнь.
Здесь как нельзя лучше подходит «золотое правило христианина» или, как указал eandr_67, «золотое правило этики», нравственности: «Относись к другим так, как хотел бы, чтобы относились к тебе», поэтому представим, что мы уже написали абстрактный проект (не суть важно, какой именно) и хотим, чтобы к нему относились хорошо.
Итак, первое и самое важное. Очевиднейшее. Открытое свободное ПО подразумевает, что мы тратим время — драгоценнейший ресурс — почти даром. И хотим, чтобы к этому времени относились уважительно.
Это означает, что замечания к абсолютно любому бесплатному коду желательно высказывать в форме предложений, а не недовольства. Мы — народ очень критичный по своей природе, не критиковать не можем и делаем это зачастую потому, что нам не всё равно. В итоге:
- Критикуйте бесплатное с предложением
Перекликается с общим правилом критики: «Критикуешь — предлагай».
Из этой же уважительности вытекает правило, похожее на правило этикета не использовать ложку, где можно использовать вилку, а именно:
- Не делайте собственный fork, где возможен pull request
Правило выше напоминает недавний диалог о новом клиенте хранилища npm. Благодарю автора комментария за диалог и верное по сути замечание. Если же что-либо вынуждает сделать свой форк, то:
- Делая собственный fork упоминайте оригинал
И даже если что-то не нравится в идеологии авторов, не следует забывать, что после форка мы меняем в основном чужой код, а не свой. И нужно быть благодарным за лицензию, позволяющую ветвление проекта, какими бы ни были разногласия с его авторами.
- Будьте благодарны за свой fork
Это — очевидное. Дальше — не совсем очевидное, на мой взгляд, правило, которое нарушил сам и поплатился не только «мелким» рейтингом, но «крупной» кармой — и по делу. Не жалуюсь.
Так вот, когда наш свободный бесплатный продукт используется, мы бы (в большинстве своём) хотели, чтобы пользователи упоминали об этом.
Хотя лично я отнёсся бы к сокрытию использования с пониманием: используешь — спасибо уже за то, что мой труд не пропадает, что он востребован. Если нужно — скрывай. Но я — не все, да и с учётом особенностей монетизации открытых проектов, на которые указывал VBart, такое не всегда возможно.
Итак, показывайте чужой продукт настолько, насколько позволяет стремление к безопасности. Особенно если некоторые инструменты сокрытия встроены в продукт — предпочитайте их. В итоге:
- Показывайте чужой продукт
Также, в идеале, хотелось бы, чтобы — при возможности пользователя труда — труд всё же оплачивался. И здесь справедливо и правильно говорить о хотя бы одном часе одного квалифицированного разработчика на основном языке продукта.
Например, в случае с C++ по данным с roem.ru на первый квартал 2015 года по Москве — 108 000 рублей. В месяце 22 рабочих дня по 8 часов. Итого: 108000/(22*8) = 613,(63) → 620 рублей с округлением. Данные не слишком актуальны, но наверняка близки к истине. Не так уж и много, правда? Но и достаточно, чтобы не ощущать себя пришедшим на всё готовое. Итак:
- Уважайте чужое время
- Критикуйте бесплатное с предложением
- Не делайте собственный fork, где возможен pull request
- Делая собственный fork упоминайте оригинал
- Будьте благодарны за свой fork
- Показывайте чужой продукт
- Оплатите час работы автора
- …
Здесь нет восьмого правила — добавляйте свои! Ответы по теме с рейтингом больше 1 будут адаптированы, то есть переформулированы кратко, добавлены в пост со ссылкой и пусть каждый сам решает, что с этим делать.
Спасибо за внимание и комментарии!