Lý do KHÔNG mở mã phi lợi nhuận? [đóng cửa]


34

Tôi là một fan hâm mộ lớn của mã nguồn mở. Tôi nghĩ rằng tôi hiểu hầu hết các lợi thế của việc mở nguồn. Tôi là một nhà nghiên cứu sinh viên khoa học và tôi phải làm việc với một số lượng phần mềm và mã khá đáng ngạc nhiên không phải là nguồn mở (có thể là độc quyền hoặc không công khai). Tôi thực sự không thể thấy một lý do chính đáng cho điều này và tôi có thể thấy rằng mã và những người sử dụng nó chắc chắn sẽ được hưởng lợi từ việc công khai hơn (nếu không có gì khác, trong khoa học, điều quan trọng là kết quả của bạn có thể được sao chép nếu cần, và điều đó khó hơn nhiều nếu những người khác không có quyền truy cập vào mã của bạn).

Trước khi tôi ra ngoài và bắt đầu thịnh vượng, tôi muốn biết: có bất kỳ lý lẽ tốt nào để không phát hành mã phi lợi nhuận công khai và với giấy phép tuân thủ OSI không?

(Tôi nhận thấy có một vài câu hỏi tương tự xung quanh, nhưng hầu hết tập trung vào các tình huống mà mã chủ yếu được sử dụng để kiếm tiền và tôi không thể liên quan nhiều đến câu trả lời.)

Làm rõ: Bằng cách "phi lợi nhuận", tôi bao gồm các động cơ lợi nhuận hạ nguồn, chẳng hạn như nhận biết thương hiệu của công ty mẹ và kỳ vọng lợi nhuận của nhà đầu tư. Nói cách khác, câu hỏi chỉ liên quan đến phần mềm mà KHÔNG có động cơ lợi nhuận gắn liền với phần mềm từ trước đến nay.


+1 khi tôi thấy rằng một câu hỏi thú vị bản thân mình. Nhưng tôi tự hỏi nếu đây là nơi thích hợp để hỏi điều này. Có thể bạn sẽ nhận được những quan điểm khác nhau từ các trang SE khác, như trang PM.SE. Chỉ là một gợi ý.
haylem

@haylem, tôi đã không thấy PM.SE, nhưng có vẻ như đó là nhiều hơn cho các khía cạnh kỹ thuật của quản lý dự án?
ness101

Bạn sẽ chủ động duy trì dự án sau đó hay là một nghĩa địa mã. Nói cách khác, tương lai của dự án là gì.

@ ThorbjørnRavnAndersen: có, tôi đang giả sử bảo trì tích cực, phát triển và sử dụng mã.
ness101

Câu trả lời:


28

Bạn cần tính đến việc tìm nguồn mở mã của bạn có thể cần thêm nỗ lực.

Ví dụ, trong bài viết trên blog này, kỹ sư của Sun / Oracle đã mô tả những nỗ lực họ phải bỏ ra khi tìm nguồn cung ứng mã nguồn mở : Nguồn mở hay Giặt bẩn?

Khi chúng ta sẵn sàng lao vào thế giới nguồn mở, một trong nhiều hoạt động đang diễn ra là chuẩn bị mã để được mở nguồn. Có một số điều rõ ràng cần phải được thực hiện. Chẳng hạn, mã nguồn của chúng tôi bao gồm một hỗn hợp mã mà chúng tôi đã viết và mã mà chúng tôi đã cấp phép từ những người khác. Chúng ta sẽ cần tách riêng phần sau và chỉ nguồn mở cho các đoạn mã thích hợp.

Một hoạt động chuẩn bị khác là "lọc" mã thông tin độc quyền, đề cập đến các khách hàng cụ thể, nhà phát triển, công nghệ, v.v ... Điều này ít rõ ràng hơn, nhưng hãy xem xét ví dụ sau:

/\*
 \* 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.
 \*/

Mặc dù tất cả những điều trên có thể là sự thật, nhưng có lẽ chúng tôi có mối quan hệ nào đó với Intertrode Tech và việc có những nhận xét như thế này trong mã có thể gây tổn hại cho doanh nghiệp của chúng tôi và vì vậy cần xóa bỏ. Có thể cho rằng nó không nên ở đó ngay từ đầu, nhưng giờ là lúc để đưa nó ra ngoài.

Một phần khác của hoạt động "chà" là loại bỏ những lời tục tĩu và những từ "không mong muốn" khác ...

Lưu ý tất cả các thay đổi ở trên phải được thực hiện đối với mã đã được coi là hoàn toàn OK dưới dạng nguồn đóng - điều đó làm cho nó hoàn toàn nỗ lực hơn để nói.


2
Chà, điều này áp dụng cho các công ty lớn có cơ sở mã hiện có, ít hơn nhiều cho mã được viết là Nguồn mở từ đầu.
Konrad Rudolph

1
@KonradRudolph OP đã đề cập Tôi phải làm việc với ... mã không phải là nguồn mở (có thể là độc quyền hoặc không công khai) có nghĩa là nó đã không ở đó từ đầu
gnat

Không phải điều tương tự xảy ra với DOOM 3 sao? Vấn đề bằng sáng chế làm trì hoãn Doom 3 Phát hành mã nguồn
user16764

11

Bảo vệ.

Ví dụ: giả sử bạn xây dựng một khung web và chính bạn sử dụng nó.

Là một dự án phi lợi nhuận, bạn đã không có thời gian dành cho việc kiểm tra từng bit mã để tìm lỗ hổng cho cuộc tấn công này hay cuộc tấn công khác:

  • CSRF
  • XSS
  • Tiêm SQL
  • Phiên cố định
  • Sử dụng các thư viện bên thứ ba có lỗi hoặc thậm chí các ngôn ngữ

Bây giờ, khi đã mở nguồn dự án, bạn cho phép đôi mắt thân thiện đóng góp, nhưng bạn cũng cho phép đôi mắt độc hại hiểu biết sâu sắc về công việc của bạn và, nếu họ tìm thấy một máy chủ đang chạy mã của bạn, bạn đã loại bỏ khả năng che giấu sự không hoàn hảo trong tối nghĩa.

Tất nhiên, điều này có thể không áp dụng cho loại phần mềm bạn đang làm việc; và như mọi khi tối nghĩa không phải là lý do cho sự lười biếng trong bảo mật.

Tuy nhiên, giống như tôi đã tìm thấy trong một vài cấp độ mà tôi đã vượt qua trong trò chơi cờ bắt cờ , biết mã là một trong những cách dễ nhất để tìm lỗ hổng (và đôi khi nó có thể là cách duy nhất).


7
Cuộc tranh luận này đã diễn ra từ lâu và ấn tượng của tôi là nguồn mở tốt hơn cho bảo mật, nhưng chỉ khi dự án khá phổ biến (ít nhất là trong số các nhà phát triển). Thật kỳ lạ khi không có sự tranh luận thực sự tốt ở bất cứ đâu trên mạng (dù sao tôi cũng có thể tìm thấy).
ness101

1
Kết hợp với nhận xét naught101s rất có ý nghĩa. Nếu ít người quan tâm đến nguồn của bạn và bạn đang sử dụng trong sản xuất thì rất có thể ai đó "xấu xa" sẽ kiểm tra nó và sử dụng nó để chống lại bạn (cuối cùng)
schlingel

1
An ninh thông qua sự tối tăm?
Thủy thủ Danubian

3
@lechlukasz Bạn thậm chí đã đọc toàn bộ bài viết?
Nicole

1
@Oleksi Cảm ơn, nhưng tôi biết điều đó. Tôi nói "sự tối nghĩa không phải là lý do cho sự lười biếng trong bảo mật." Câu hỏi này không phải là về việc mở so với đóng, mà là về việc mở một hệ thống đã đóng trước đó. Tôi hoàn toàn đồng ý với liên kết bạn đã đăng, nhưng các nhà phát triển không hoàn hảo và khi bạn mở một hệ thống, có khả năng những con mắt đầu tiên tìm thấy một lỗi sẽ khai thác nó thay vì sửa nó cho bạn.
Nicole

10

Một lý do chính đáng để không mở nguồn là một số nguồn của bạn có thể có bản quyền. Tần suất bạn không tìm kiếm trên web để tìm giải pháp nhanh chóng cho một vấn đề và chỉ cần lấy đoạn mã bạn tìm thấy?

Chà, những thứ đó có thể có bản quyền và tôi không biết liệu tác giả có muốn tìm mã của mình được cấp lại theo một giấy phép khác hay không.


1
+1 cho bản quyền. Chỉ muốn thêm bằng sáng chế là tốt. Bạn có thể phát hiện ra rằng dự án nguồn mở của bạn đang vi phạm một số trong hàng ngàn hàng ngàn bằng sáng chế phần mềm có trong "quân đoàn". Truyền phát video? Được cấp bằng sáng chế. Quảng cáo trả cho mỗi lần nhấp? Được cấp bằng sáng chế. Chỉ là một số ví dụ. Tuy nhiên, rất có thể các "quân đoàn" không quan tâm - trừ khi bạn là đối thủ cạnh tranh.
Amadeus Hein

1
Hehe. Đó thực sự không phải là một lập luận chống lại nguồn mở, mà là chống vi phạm bản quyền. Nhưng bạn nói đúng, tôi cá rằng đây là một vấn đề trong rất nhiều mã riêng lớn.
ness101

1
@ ness101 Đồng ý. Nguồn mở chỉ phơi bày vấn đề. Đóng độc quyền trong trường hợp này là vấn đề không bị bắt;)
Andres F.

Vì vậy, bạn đang nói rằng một lý do để giữ nguồn đóng là để cho phép bạn che giấu vi phạm bản quyền thông thường? Bạn không nghĩ rằng đó là một lý do khá phi đạo đức để sử dụng?
Đánh dấu gian hàng

1
Vô đạo đức .... có lẽ, một lý do rất rất tốt để không mở nguồn, chắc chắn.
Pieter B

6

Bạn cần cẩn thận với cách bạn chọn giấy phép để tránh các vấn đề trách nhiệm pháp lý tiềm ẩn.

Một luật sư có thể là một người tốt hơn để nói về vấn đề này, nhưng ý tưởng chung là điều gì xảy ra nếu ai đó sử dụng (hoặc lạm dụng) ứng dụng và nó gây ra một số tác hại? Bạn có trách nhiệm không Rõ ràng điều này sẽ phụ thuộc vào loại phần mềm bạn đang viết, nhưng bạn luôn cần cẩn thận với những gì giấy phép của bạn nói về trách nhiệm pháp lý của bạn. Đây có thể là một điều khó khăn để có được đúng, vì vậy có thể dễ dàng hơn khi không phát hành mã nguồn.


1
Vâng, đó là một điểm tốt, và hầu hết các giấy phép hệ điều hành thường có một số văn bản bao phủ ở đó ở đâu đó. Tôi đoán rằng tôi đã giả sử giấy phép loại "không chịu trách nhiệm pháp lý".
ness101

4

Cảnh báo: Tôi không phải là luật sư .

Chà, nếu đó là một tổ chức phi lợi nhuận và tài sản trí tuệ của nó bị ràng buộc chặt chẽ với mã của phần mềm, thì một số người có thể muốn bảo vệ nó khỏi bị tái sử dụng thương mại hoặc thậm chí bị khai thác một cách lạm dụng để tạo ra các bản sao của phần mềm.

Một số lý do khác - thực sự có nguồn gốc sâu xa trong lý do thứ nhất, thực tế - là trong trường hợp của bạn, rất nhiều nghiên cứu cao cấp xảy ra với nguồn vốn tư nhân, và thường các nhà đầu tư muốn xem ROI. Và cho đến nay, không có tất cả các tác nhân của ngành công nghiệp phần mềm (hoặc người mới tham gia) đã bị thuyết phục hoàn toàn về khả năng tồn tại của mô hình nguồn mở (rất có thể là do thiếu kiến ​​thức và hiểu biết về cấp phép, hoặc bởi sợ đơn giản rằng việc cấp phép sẽ không ngăn chặn được độc hại sử dụng và bản sao).

Ngoài ra, các công ty này không muốn bị kiện bởi những người cố gắng kiếm lợi nhuận trên lưng và việc cấp phép được coi là một biện pháp bảo vệ trong vấn đề này, với lý do chính đáng hay không.

Nó có thể không xuất hiện như vậy, nhưng có thể các tổ chức phi lợi nhuận đang sinh lãi cho người sáng lập hoặc nhà đầu tư của họ. Những lợi ích không phải là trực tiếp. Vì vậy, họ rất quan tâm đến việc NFP sẽ phát triển mạnh mẽ và không bị các đối thủ cạnh tranh đánh bại (mặc dù bạn cũng thường không nghĩ đến "đối thủ cạnh tranh" trong thị trường phi lợi nhuận) và họ muốn bảo vệ họ IP, ngay cả khi phải trả giá bằng việc không nhận được nhiều bóng mắt miễn phí hơn để xem lại mã của họ để tìm ra vấn đề và cải thiện sớm.

Cũng lưu ý rằng luật bản quyền khác nhau giữa các quốc gia. Ví dụ, nhiều quốc gia châu Âu coi luật bản quyền của Hoa Kỳ và hệ thống bằng sáng chế của Hoa Kỳ khá là ngu ngốc, vì vậy, có một nền tảng văn hóa và sức nặng khó có thể rũ bỏ.

Jut 2 xu của tôi về chủ đề này.

(Tôi đã làm việc với các trường đại học rất nhiều, và gần đây về tin sinh học và chăm sóc sức khỏe ... Đó là một câu hỏi thường xuyên đối với tôi và các đồng nghiệp của tôi :))


Hrm .. Tôi đã xem xét mã và IP cùng nhau trong câu hỏi của tôi. Có lẽ tôi nên làm điều đó rõ ràng hơn. Tôi sẽ nghĩ về ROI và xây dựng thương hiệu cân nhắc như động cơ lợi nhuận ... (Tôi nhận ra rằng "khoa học" là một chút mơ hồ, và nhiều khoa học là lợi nhuận - lĩnh vực của tôi (hệ thống trái đất khoa học chắc chắn không phải là mặc dù).
naught101

Làm rõ câu hỏi. Xin lỗi cho những rắc rối.
ness101

Tôi muốn xem xét lĩnh vực của bạn có lợi nhuận. Nó có thể không có thị trường rộng, nhưng điều đó không có nghĩa là nó không sinh lãi. Trong fqct, tôi cho rằng nó liên quan đến số tiền khá lớn. Tại sao bạn cảm thấy khác?
haylem

Tôi đang làm người mẫu khí hậu. Không ai trả tiền cho các mô hình khí hậu. Không ai trả tiền để sử dụng các mô hình khí hậu. Không có lợi nhuận để làm từ việc sử dụng phần mềm. Mọi người được trả tiền để thực hiện nghiên cứu sử dụng các mô hình đó (và điều này thường bao gồm viết mô hình) và đôi khi thời gian tính toán được trả tiền, nhưng cả hai điều này có nghĩa là chia sẻ mã sẽ giúp mọi thứ rẻ hơn (dành nhiều thời gian hơn cho nghiên cứu thay vì viết mã , ít lãng phí thời gian trên các cơ sở HPC). Tôi thực sự không thấy phần mềm liên quan đến bất kỳ lợi nhuận nào.
nè 101

1
@psr: Tôi nghĩ đó là quan điểm của 101: có kết quả có lợi đối với kết quả sử dụng của mô hình, nhưng không nhất thiết phải kiếm được nhiều tiền khi bán phần mềm thực hiện mô hình. Làm tôi ngạc nhiên là tốt, nhưng rất có thể được.
haylem

1

Có ít nhất hai loại nguồn mở khác nhau.

Nếu thái độ của bạn là "đây là một cái gì đó hữu ích, tôi đã hoàn thành nó" (và điều đó hóa ra là chính xác) thì có rất ít nhược điểm.

Mặt khác, nếu thái độ của bạn là "Tôi thực sự phấn khích và tôi muốn một số người dùng thực sự giúp thúc đẩy sự phát triển trong tương lai" thì hãy suy nghĩ thật kỹ. Bạn sẽ phải dành thời gian hỗ trợ người dùng, nhiều người trong số họ không biết gì. Bạn sẽ phải xem xét các yêu cầu xung đột về các tính năng và cải tiến. Bạn sẽ thấy ngày càng khó thực hiện các thay đổi, để duy trì khả năng tương thích ngược.


3
Tôi thực sự không thấy cách phát hành mã bắt buộc ai phải cung cấp hỗ trợ? Và trong khoa học ít nhất, hầu hết người dùng đều khá chú ý, ít nhất là về quy trình, nếu không phải là bản thân mã.
nè 101

1
@ naught101: Bắt buộc không, nhưng nếu bất cứ ai sử dụng mã của bạn, bạn sẽ nhận được e-mail, câu hỏi, đề xuất ... sẽ mất một số nỗ lực để xử lý, trừ khi bạn chỉ cần chọn bỏ qua chúng. Ngoài khoa học, nhiều người dùng không quá chú ý nên bạn có thể thấy mình giúp đỡ mọi người với các vấn đề thiết lập cơ bản, v.v ... đơn giản chỉ vì bạn tình cờ phát hành một số mã. Tôi đã trải nghiệm điều đó, ít nhất. Ngay cả những từ chối theo kiểu BSD "được cung cấp như hiện tại", v.v. không - và không nên - ngăn mọi người yêu cầu trợ giúp.
Joonas Pulakka

1
Được khuyến khích vì câu trả lời này không thực sự ít được áp dụng hơn nhiều câu hỏi khác. @JoonasPulakka: tất nhiên không nên ngăn mọi người yêu cầu giúp đỡ. Nhưng nó nên ngăn họ mong đợi một câu trả lời. Ngoài ra, nếu bạn đã phát hành phần mềm thực tế ở nơi công cộng, thì có lẽ bạn có trách nhiệm tương tự với người dùng bất kể của bạn có công khai hay không (có lẽ tùy thuộc vào EULA). Có lẽ bạn phải mong đợi truy vấn nhiều hơn từ các nhà phát triển nếu bạn phát hành mã, nhưng nó muốn được tốt đẹp để nghĩ rằng hầu hết trong số họ sẽ có một chút của một đầu mối, và có thể trả một số lời khuyên một hai miếng vá hoặc ..
naught101
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.