Причини НЕ відкривати вихідний код некомерційного коду? [зачинено]


34

Я великий шанувальник відкритого коду. Я думаю, я розумію більшість переваг відкритого коду. Я науковий співробітник, і мені доводиться працювати з дивовижною кількістю програмного забезпечення та коду, який не є відкритим кодом (або він є власником, або не є загальнодоступним). Я справді не можу побачити вагомих причин для цього, і я бачу, що коду та людям, які його використовують, безумовно виграло б бути більш публічними (якщо нічого іншого, в науці важливо, що ваші результати можуть бути повторені, якщо це необхідно, і це набагато складніше, якщо інші не мають доступу до вашого коду).

Перш ніж вийти і почати прозелітизувати, я хочу знати: чи є хороші аргументи, щоб не випускати публічно неприбутковий код та мати ліцензію, сумісну з OSI?

(Я розумію, що існує декілька подібних питань навколо, але більшість акцентують увагу на ситуаціях, коли код в основному використовується для заробітку, і я не міг би бути багато відповідним у відповідях.)

Пояснення: Під "неприбутковим" я включаю мотиви прибутку нижче, такі як визнання бренду материнської компанії та очікування прибутку інвестора. Іншими словами, питання стосується лише програмного забезпечення, для якого НЕ БУДЬ мотив прибутку, пов'язаний із програмним забезпеченням.


+1, як я вважаю, що це питання цікавий сам. Але мені цікаво, чи це правильне запитання про це. Можливо, ви отримаєте різні точки зору від інших сайтів SE, наприклад, на сайті PM.SE. Просто пропозиція.
хайлем

@haylem, я не бачив PM.SE, але це здається, що це більше стосується технічних аспектів управління проектами?
naught101

Чи будете ви активно підтримувати проект згодом або це кладовище коду. Іншими словами, яке майбутнє проекту.

@ ThorbjørnRavnAndersen: так, я припускаю активне обслуговування, розробку та використання коду.
naught101

Відповіді:


28

Потрібно врахувати, що відкритий пошук коду може вимагати додаткових зусиль.

Як приклад, у цій публікації блогу інженер Sun / Oracle описує зусилля, які їм доводилося докладати, коли відкривати код свого коду: Open Source або брудна пральня?

Коли ми готуємося зануритися у світ з відкритим кодом, одна з багатьох видів діяльності - це підготовка коду до відкритих джерел. Є кілька очевидних речей, які потрібно зробити. Наприклад, наш вихідний код включає суміш коду, який ми написали, та код, який ми ліцензували від інших. Нам потрібно буде відокремити останнє та відкрити вихідний код лише відповідних фрагментів коду.

Ще одна підготовча діяльність - «очищення» коду патентованої інформації, згадування конкретних замовників, розробників, технологій тощо. Це трохи менш очевидно, але врахуйте наступний приклад:

/\*
 \* HACK - insert a time delay here because the stupid Intertrode
 \* Technologies framebuffer driver will hang the system if we
 \* don't. Those guys over there must really be idiots.
 \*/

Хоча все вищезазначене може бути правдивим, ми, мабуть, маємо певні стосунки з Intertrode Tech, і такі коментарі в коді можуть якось нашкодити нашому бізнесу, і тому його слід усунути. Напевно, це не повинно було бути там в першу чергу, але зараз саме час вийняти це.

Інша частина діяльності "вичісування" - це видалення нецензурних лексик та інших "небажаних" слів ...

Зверніть увагу, що всі вищезазначені зміни повинні були бути внесені до коду, який вважався цілком нормальним як закрите джерело - це робить чисті додаткові зусилля, так би мовити.


2
Що ж, це стосується великих компаній з існуючою базою коду, а ще менше - для коду, який пишеться як Open Source з нуля.
Конрад Рудольф

1
@KonradRudolph OP згадував, що я повинен працювати з ... кодом, який не є відкритим кодом (або він є власником, або він не є загальнодоступним), тобто він не був там з нуля
gnat


11

Безпека.

Наприклад, скажіть, ви будуєте веб-фреймворк і ви самі ним користуєтеся.

Як неприбутковий проект, у вас не було часу присвятити інспектуванню кожного біта коду на предмет вразливості до тієї чи іншої атаки:

  • КСРР
  • XSS
  • Введення SQL
  • Фіксація сесії
  • Використання грізних сторонніх бібліотек або навіть мов

Тепер, відкривши проект, ви дозволяєте дружелюбним очам робити свій внесок, але ви також дозволяєте зловмисним поглядам повне розуміння вашої роботи, і, якщо вони знайдуть сервер, на якому працює ваш код, ви усунули свою здатність приховати свій недосконалості в незрозумілості.

Звичайно, це може не стосуватися типу програмного забезпечення, над яким ви працюєте; і як завжди незрозумілість - це не привід для лінощів у безпеці.

Однак, так само, як я виявив у кількох рівнях, які я пройшов у грі Stripe, захопивши прапор , знаючи, що код є одним з найпростіших способів знайти вразливості (а іноді це може бути і єдиний спосіб).


7
Ця дискусія триває протягом багатьох віків, і моє враження було, що відкритий код є кращим для безпеки, але лише якщо проект досить популярний (принаймні серед розробників). Як це не дивно, що в мережі є не дуже хороший аргумент (що я все одно можу знайти).
naught101

1
У поєднанні з коментарями naught101s це має багато сенсу. Якщо менше людей піклується про ваше джерело, а ви використовуєте у виробництві, шанси дуже хороші, що хтось "злий" перевірить його і використає проти вас (зрештою)
шлінген,

1
Безпека через незрозумілість?
Дунайський матрос

3
@lechlukasz Ви навіть прочитали весь пост?
Ніколь

1
@Oleksi Спасибі, але я це знаю. Я сказав, що "невідомість - це не привід для лінощів у безпеці". Це питання не про відкриту проти закриту, а про відкриття раніше закритої системи. Я випадково повністю погоджуюся з посиланням, яке ви опублікували, але розробники не є ідеальними, і коли ви відкриєте вихідну систему, є ймовірність, що перші очі, які знайдуть помилку, використають її замість того, щоб виправити її для вас.
Ніколь

10

Хороша причина не відкривати вихідний код - це те, що частина вашого джерела може бути захищена авторським правом. Як часто ви не шукаєте в Інтернеті швидке вирішення проблеми і просто берете фрагмент знайденого вами коду?

Ну, вони можуть бути захищені авторським правом, і я не знаю, чи хотів би автор знайти, щоб його код був перепідписаний за іншою ліцензією.


1
+1 для авторських прав. Просто хотів також додати патенти. Ви можете просто дізнатись, що ваш проект з відкритим кодом порушує деякі тисячі та тисячі патентів на програмне забезпечення, які мешкають у "корпусі". Потокове відео? Запатентований. Оголошення з оплатою за клік? Запатентований. Просто кілька прикладів. Однак шанси на те, що "корпусу" все одно, якщо ви не конкурент.
Amadeus Hein

1
Хе-хе. Це насправді не аргумент проти відкритого коду, але проти піратства. Але ви маєте рацію, я вважаю, що це проблема в багатьох великих приватних кодах.
naught101

1
@ naught101 Погодився. Відкритий код лише розкриває проблему. Закрита власниця в цьому випадку - це питання не потрапляння;)
Андрес Ф.

Отже, ви говорите, що одна з причин утримувати джерело закрито - це дозволяти вам приховувати випадкові порушення авторських прав? Ви не вважаєте, що це досить неетична причина для використання?
Марк Бут

1
Неетично .... можливо, дуже дуже вагомий привід не відкривати джерело, звичайно.
Пітер Б

6

Вам потрібно бути обережним у виборі ліцензії, щоб уникнути можливих проблем з відповідальністю.

Адвокат може бути кращою людиною, щоб поговорити з цим питанням, але загальна ідея - що відбувається, якщо хтось використовує (або зловживає) додатком, і це заподіює певну шкоду? Ви відповідаєте? Очевидно, це залежатиме від типу програмного забезпечення, яке ви пишете, але завжди потрібно бути уважним до того, що ваша ліцензія говорить про вашу відповідальність. Це може бути складною справою, тому просто не випускати вихідний код може бути простіше.


1
Так, це хороший момент, і в більшості ліцензій на ОС десь є текст, що охоплює дупу. Напевно, я припускав ліцензію типу "без відповідальності прийнято".
naught101

4

Попередження: Я не юрист .

Ну, якщо це некомерційна ціна, а її інтелектуальна власність сильно прив'язана до коду програмного забезпечення, то деякі можуть захотіти захистити його від комерційного повторного використання або навіть неправомірного використання для створення копійок вашого програмного забезпечення.

Деякі інші причини, які, ймовірно, є корінням у першому, насправді - полягають у тому, що у вашому випадку багато досліджень високого класу відбувається з приватним фінансуванням, і зазвичай інвестори хочуть бачити рентабельність інвестицій. І поки що жоден суб'єкт індустрії програмного забезпечення (або новачків) не був повністю переконаний у життєздатності моделі з відкритим кодом (швидше за все, через відсутність знань та розуміння ліцензування або простого страху, що ліцензування не запобіжить зловмисності. використовує та копіює).

Крім того, ці компанії не хочуть повернути до суду тих, хто намагався отримати прибуток на спині, і ліцензування розглядається як гарантія і в цьому плані, з поважною причиною чи ні.

Це може не виглядати так, але, можливо, некомерційні організації вигідні для своїх засновників чи інвесторів. Переваги просто не є прямими. Таким чином, у них є великий інтерес до того, що НФП будуть сильними і не будуть їх бити до стримування конкурентів (навіть якщо ви також не часто думаєте про "конкурентів" на неприбутковому ринку), і вони хочуть зберегти свої IP, навіть якщо ціною не стає більше безкоштовних очних кульок, щоб переглянути свій код, щоб знайти проблеми та покращити його на початку.

Зауважте також, що закони про авторські права відрізняються від країни до країни. Багато європейських країн вважають закони про захист авторських прав США та патентну систему США досить глухими, наприклад, тому культурні передумови та вагу важко позбутися.

За мої 2 центи на цю тему.

(Я багато працював з університетами, а останнім часом у галузі біоінформатики та охорони здоров’я ... Це питання, що повторюється для мене та моїх колег :))


Хрм .. Я свого роду розглядав код і IP в своєму запитанні. Можливо, я мав би зробити це яснішим. Я вважаю, що ROI та міркування щодо брендингу є мотивами отримання прибутку ... (Я розумію, що "наука" була трохи розпливчастою, і що багато науки є вигідним - моє поле (
натомість

Уточнив питання. Вибачте за клопоти.
naught101

Я вважаю ваше поле вигідним. Він може не мати широкого ринку, але це не означає, що це не вигідно. У fqct, я вважаю, що це залучає досить великі гроші. Чому ти відчуваєш інакше?
хайлем

Я в кліматичному моделюванні. Ніхто не платить за кліматичні моделі. Ніхто не платить за використання кліматичних моделей. Прибутків від використання програмного забезпечення немає. Люди отримують зарплату, щоб робити дослідження за допомогою цих моделей (а це часто включає в себе написання моделей), а час на обчислення іноді оплачується, але обидва означають, що код спільного використання полегшить роботу (більше часу витратити на дослідження, а не писати код , менше часу витрачається на об'єкти HPC). Я насправді не бачу, як програмне забезпечення пов'язане з будь-якою прибутковістю.
naught101

1
@psr: Я думаю, що це naught101: результати результатів використання моделі є вигідними, але необов'язково багато грошей заробляється на продажі програмного забезпечення, що реалізує модель. Здивує і мене, але міг би бути.
haylem

1

Існує щонайменше два різні види відкритого коду.

Якщо ваше ставлення до "ось щось корисне, я з цим закінчую" (і це виявляється точно), то недоліків мало.

З іншого боку, якщо ваше ставлення до цього: "Я дуже схвильований і хочу, щоб деякі реальні користувачі допомагали рухати майбутній розвиток", тоді подумайте дуже ретельно. Вам доведеться витратити час на підтримку користувачів, багато з яких безглузді. Вам доведеться розглянути суперечливі запити щодо функцій та вдосконалень. Вам буде важче вносити зміни, щоб зберегти відсталу сумісність.


3
Я насправді не бачу, як випуск коду зобов’язує когось надавати підтримку? І в науці, принаймні, більшість користувачів досить чітко чіпляються, принаймні про процес, якщо не про сам код.
naught101

1
@ Naught101: зобов'язує немає, але якщо хто -то використовує ваш код, ви будете отримувати електронну пошту, питання, пропозиції ... які будуть приймати будь - то зусилля , щоб ручки, якщо ви просто ігнорувати їх. Поза зовнішньою наукою багато користувачів не надто чіпляються, тому ви можете виявити, що ви допомагаєте людям з елементарними питаннями налаштування тощо. Просто тому, що ви випустили якийсь код. Я пережив це, принаймні. Навіть відмови в стилі BSD "надаються як є" тощо. Не - і не повинні - не заважають людям просити допомоги.
Joonas Pulakka

1
Оновлено, оскільки ця відповідь насправді не менш застосовна, ніж багато інших. @JoonasPulakka: звичайно, це не повинно зупиняти людей просити допомоги. Але це повинно зупинити їх на очікування відповіді. Крім того, якщо фактичне програмне забезпечення вийшло публічно, то, мабуть, ви несете таку ж відповідальність перед користувачами, незалежно від того, чи є ваш код загальнодоступним (можливо, залежно від EULA). Можливо, вам доведеться очікувати більше запитів від розробників, якщо ви випустите код, але було б непогано подумати, що більшість з них матиме трохи підказки, і, можливо, заплатите за якусь пораду патч чи два ..
naught101
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.