Saya penggemar berat kode sumber terbuka. Saya pikir saya mengerti sebagian besar keuntungan dari open source. Saya seorang peneliti mahasiswa sains, dan saya harus bekerja dengan cukup banyak perangkat lunak dan kode yang tidak open source (baik itu milik, atau itu tidak umum). Saya benar-benar tidak dapat melihat alasan yang bagus untuk ini, dan saya dapat melihat bahwa kodenya, dan orang-orang yang menggunakannya, pasti akan mendapat manfaat dari menjadi lebih umum (jika tidak ada yang lain, dalam sains sangat penting bahwa hasil Anda dapat direplikasi jika perlu, dan itu jauh lebih sulit jika orang lain tidak memiliki akses ke kode Anda).
Sebelum saya keluar dan mulai proselitisasi, saya ingin tahu: apakah ada argumen bagus untuk tidak merilis kode nirlaba di depan umum, dan dengan lisensi yang sesuai dengan OSI?
(Saya menyadari ada beberapa pertanyaan serupa di sekitar, tetapi sebagian besar fokus pada situasi di mana kode tersebut terutama digunakan untuk menghasilkan uang, dan saya tidak bisa banyak relevan dalam jawabannya.)
Klarifikasi: Dengan "tidak-untuk-untung", saya menyertakan motif keuntungan hilir, seperti pengakuan merek perusahaan induk dan ekspektasi keuntungan investor. Dengan kata lain, pertanyaannya hanya terkait dengan perangkat lunak yang TIDAK ada motif untung terkait dengan perangkat lunak tersebut.
sumber
Jawaban:
Anda perlu mempertimbangkan bahwa sumber terbuka kode Anda mungkin memerlukan upaya tambahan.
Sebagai contoh, dalam entri blog ini, insinyur Sun / Oracle menjelaskan upaya yang harus mereka ambil ketika membuka sumber kode mereka: Open Source atau Laundry Kotor?
Catatan semua perubahan di atas harus dilakukan untuk kode yang telah dianggap sangat OK sebagai sumber tertutup - yang membuatnya menjadi upaya ekstra murni untuk berbicara.
sumber
Keamanan.
Misalnya, Anda membangun kerangka web dan Anda sendiri yang menggunakannya.
Sebagai proyek nirlaba, Anda belum punya waktu untuk mendedikasikan untuk memeriksa setiap bit kode untuk kerentanan terhadap satu serangan atau yang lain:
Sekarang, setelah bersumber dari proyek terbuka, Anda mengizinkan mata ramah untuk berkontribusi, tetapi Anda juga memungkinkan mata jahat penuh wawasan tentang pekerjaan Anda, dan, jika mereka menemukan server yang menjalankan kode Anda, Anda telah menghilangkan kemampuan Anda untuk menyembunyikan ketidaksempurnaan dalam ketidakjelasan.
Tentu saja, ini mungkin tidak berlaku untuk jenis perangkat lunak yang Anda kerjakan; dan seperti biasa ketidakjelasan bukanlah alasan untuk kemalasan dalam keamanan.
Namun, sama seperti yang saya temukan di beberapa level yang saya lewati di Stripe menangkap permainan bendera , mengetahui kode adalah salah satu cara termudah untuk menemukan kerentanan (dan kadang-kadang itu bisa menjadi satu-satunya cara).
sumber
Alasan yang bagus untuk tidak membuka sumber adalah sebagian sumber Anda mungkin memiliki hak cipta. Seberapa sering Anda tidak mencari solusi cepat untuk masalah di web dan hanya mengambil potongan kode yang Anda temukan?
Yah, itu mungkin hak cipta dan saya tidak tahu apakah penulis ingin menemukan kodenya dilisensikan di bawah lisensi yang berbeda.
sumber
Anda harus berhati-hati dengan cara memilih lisensi untuk menghindari kemungkinan masalah pertanggungjawaban.
Seorang pengacara mungkin orang yang lebih baik untuk diajak bicara tentang hal ini, tetapi ide umumnya adalah apa yang terjadi jika seseorang menggunakan (atau menyalahgunakan) aplikasi dan itu menyebabkan kerugian? Apakah kamu bertanggung jawab? Jelas ini akan tergantung pada jenis perangkat lunak apa yang Anda tulis, tetapi Anda harus selalu berhati-hati dengan apa yang lisensi Anda katakan tentang kewajiban Anda. Ini bisa menjadi hal yang sulit untuk dilakukan dengan benar, jadi mungkin lebih mudah untuk tidak merilis kode sumber.
sumber
Peringatan: Saya Bukan Pengacara .
Nah, jika itu bukan untuk-keuntungan dan kekayaan intelektualnya sangat terkait dengan kode perangkat lunak, maka beberapa mungkin ingin melindunginya dari penggunaan kembali secara komersial, atau bahkan dieksploitasi secara kejam untuk membuat salinan karbon dari perangkat lunak Anda.
Beberapa alasan lain - yang mungkin berakar pada yang pertama, sebenarnya - adalah bahwa dalam kasus Anda banyak penelitian kelas atas terjadi dengan pendanaan swasta, dan biasanya investor ingin melihat ROI. Dan sejauh ini, tidak semua pelaku industri perangkat lunak (atau pendatang baru) telah sepenuhnya diyakinkan tentang kelayakan model sumber terbuka (kemungkinan besar karena kurangnya pengetahuan dan pemahaman tentang perizinan, atau oleh ketakutan sederhana bahwa perizinan tidak akan mencegah kejahatan). menggunakan dan menyalin).
Selain itu, perusahaan-perusahaan ini tidak ingin digugat kembali oleh orang-orang yang berusaha untuk mendapat untung di belakang mereka, dan perizinan dipandang sebagai perlindungan dalam hal ini juga, dengan alasan baik atau tidak.
Ini mungkin tidak tampak begitu, tetapi mungkin organisasi nirlaba menguntungkan bagi pendiri atau investor mereka. Manfaatnya tidak langsung. Jadi mereka memiliki minat besar pada NFP yang kuat dan tidak dikalahkan oleh pesaing (meskipun Anda juga tidak akan sering berpikir tentang "pesaing" di pasar nirlaba), dan mereka ingin menjaga mereka IP, bahkan jika dengan biaya tidak mendapatkan bola mata gratis untuk meninjau kode mereka untuk menemukan masalah dan memperbaikinya sejak dini.
Perhatikan juga bahwa undang-undang hak cipta berbeda dari satu negara ke negara lain. Banyak negara Eropa menganggap undang-undang hak cipta AS dan sistem paten AS agak bodoh, misalnya, jadi ada latar belakang budaya dan bobot yang sulit dilepaskan.
Tuliskan 2 sen saya pada subjek.
(Saya banyak bekerja di universitas, dan baru-baru ini dalam bioinformatika dan layanan kesehatan ... Ini pertanyaan berulang bagi saya dan kolega saya :))
sumber
Setidaknya ada dua jenis open source.
Jika sikap Anda adalah "ini sesuatu yang berguna, saya sudah selesai dengan itu" (dan itu ternyata akurat) maka ada sedikit kerugian.
Di sisi lain, jika sikap Anda adalah "Saya benar-benar bersemangat dan saya ingin beberapa pengguna nyata membantu mendorong pengembangan di masa depan" maka pikirkan dengan sangat hati-hati. Anda harus menghabiskan waktu mendukung pengguna, banyak dari mereka yang tidak tahu apa-apa. Anda harus mempertimbangkan permintaan yang saling bertentangan untuk fitur dan perangkat tambahan. Anda akan merasa semakin sulit untuk melakukan perubahan, untuk menjaga kompatibilitas ke belakang.
sumber