Apakah ada alasan mengapa kode sumber perangkat lunak yang disebutkan dalam makalah penelitian tidak dirilis? Saya mengerti bahwa makalah penelitian lebih tentang ide umum untuk mencapai sesuatu daripada detail implementasi, tapi saya tidak mengerti mengapa mereka tidak merilis kode.
Misalnya, makalah ini diakhiri dengan:
Hasil
Sistem menggambar garis manusia diimplementasikan melalui kerangka kerja Qt di C ++ menggunakan OpenGL, dan berjalan pada workstation prosesor dual core Intel 2,00 GHz tanpa bantuan perangkat keras tambahan. Kita dapat menggambar garis secara interaktif saat sistem mensintesis jalur dan tekstur baru.
Apakah mereka menutup kode sumber secara sengaja karena monetisasi yang ingin mereka lakukan dengannya, atau karena hak cipta?
Jawaban:
Beberapa alasan muncul di benak saya.
Juga pandangan tradisional tentang tingkat reproduksibilitas yang masuk akal bervariasi antar bidang. Seorang ahli kimia yang menerbitkan makalah tentang metode sintesis baru diharapkan untuk menuliskan cukup detail bagi ahli kimia lain untuk melakukan sintesis. Dia tidak diharapkan mengirimkan educts dan produknya ke jurnal. Pembaca yang ingin menggunakan / mereproduksi kertas diharapkan untuk membeli educt mereka sendiri dan melakukan sintesis sendiri di lab mereka (meskipun mereka mungkin meminta untuk datang dan mengunjungi lab untuk melihat bagaimana hal itu dilakukan dalam praktiknya). Biolog juga tidak diharapkan untuk menempelkan tikus transgenik barunya ke kertas. Pandangan ini tentang reproduktifitas sesuai dengan misalnya memberikan deskripsi (pseudo-code) dari algoritma yang bertentangan dengan pengiriman implementasi yang sebenarnya.
sumber
Baca presentasi Randall LeVeque tentang "10 Alasan Teratas untuk Tidak Membagikan Kode Anda (dan mengapa Anda tetap harus melakukannya)" http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf
Dia berargumen dengan meyakinkan bahwa kode itu analog dengan bukti dalam Matematika, dan mengundang kita untuk mempertimbangkan dunia di mana bukti tidak dipublikasikan, karena terlalu panjang, atau terlalu jelek, atau tidak bekerja dalam kasus tepi, atau mungkin bernilai uang, atau seseorang mungkin mencurinya ...
Pada dasarnya, jika Anda melakukan sains, maka Anda harus menerbitkan kode Anda. Kalau tidak, Anda melakukan alkimia dan Anda bisa terbang kembali ke zaman kegelapan dan mati karena wabah sejauh yang saya ketahui.
sumber
Secara umum, program yang digunakan untuk menghasilkan makalah hasil hanya alat, dan hanya hasilnya yang penting. Jadi mereka tidak diletakkan di atas kertas yang menyajikan konteks, metodologi, hasil dan diskusi tentang mereka.
Tetapi hasilnya harus dapat direproduksi. Dan kemudian, ketika sumber data yang menjadi dasar makalah ini tersedia untuk umum, program-program yang mengubahnya menjadi hasil pada umumnya juga diperlukan. Mereka sering ditempatkan "di suatu tempat" di Web jika tidak menimbulkan masalah paten / hak cipta. Atau, setidaknya, penulis harus mengirim Anda program jika Anda bertanya.
sumber
Ini bukan sumber tertutup. Perangkat lunaknya sama sekali belum dipublikasikan.
Jawaban singkat:
Jawaban panjang:
Sumber tertutup berarti bahwa perangkat lunak telah diterbitkan dan kode sumber belum. Tetapi kasus yang umum adalah bahwa baik perangkat lunak maupun kode sumber belum dipublikasikan .
Dalam pengalaman saya (saya bekerja dalam ilmu atmosfer), penulis sangat senang jika Anda menghubungi mereka dan bertanya apakah Anda bisa mendapatkan perangkat lunak mereka (termasuk kode sumber, tentu saja) untuk melakukan penelitian. Jika saya akan menulis makalah dengan proyek berdasarkan pada mereka, mereka setidaknya akan mendapatkan kutipan dari itu (bagus!), Tetapi mungkin mendapatkan kertas yang ditulis bersama (karena tentu saja, mereka tidak t dokumentasikan perangkat lunak mereka sehingga seseorang dapat menggunakannya tanpa bantuan mereka). Makalah penulis yang relatif murah, jadi itu lebih baik .
Pertanyaan sebenarnya adalah:
Ada beberapa alasan untuk ini:
Daftarnya bisa dibuat lebih lama. Layak untuk menjadi pertanyaan terpisah, di Academia.SE, tidak di sini.
(Perhatikan bahwa di grup saya, kami menerbitkan perangkat lunak kami - berlisensi di bawah GPL )
sumber
Itu mungkin terdengar sinis, tetapi dalam pengalaman saya, makalah penelitian tidak ditulis agar mudah dipahami atau mudah direproduksi. Sebaliknya, dalam komunitas riset, lebih penting untuk memiliki artikel yang terdengar dan terlihat sangat ilmiah. Untuk alasan itu sebagian besar penulis mengubah kode mereka menjadi rumus matematika dan mencoba membuktikan bahwa algoritme mereka benar secara matematis. Biasanya jumlah halaman untuk artikel seperti itu terbatas sehingga tidak ada ruang tersisa untuk mempublikasikan kode. Namun, tentu saja ini tidak akan membatasi penulis mana pun untuk menautkan ke kode lengkap dengan URL ...
Orang bisa berasumsi bahwa jika kode tidak dipublikasikan, baik penulis ingin mometariskan temuan mereka, atau (apa yang menurut saya pribadi lebih sering terjadi) mereka takut orang akan melihat bahwa penelitian mereka tidak sehebat yang mereka klaim. Seringkali hasil hanya berlaku untuk sejumlah kasus yang sangat terbatas.
Juga, saya telah melihat bahwa dari satu program sederhana / algortihm beberapa makalah penelitian dibatalkan. Jika kode akan diterbitkan, akan sulit untuk menulis makalah lebih lanjut tentang topik yang sama. Jadi pengetahuan ditahan untuk mempublikasikannya dari waktu ke waktu dalam potongan kecil.
Ingatlah selalu bahwa di universitas, bukan hasil atau penerapan penelitian yang penting, tetapi jumlah makalah yang Anda terbitkan. Menyedihkan, tetapi benar.
sumber
Selain dari niat untuk menguangkan, saya tidak melihat alasan yang baik untuk meninggalkan kode sumber dari makalah penelitian. Ada gerakan kecil mulai yang mengusulkan penyediaan kode sumber sebagai aturan untuk menerbitkan penelitian apa pun yang tergantung pada perangkat lunak dalam beberapa cara, bentuk, atau bentuk. Anda dapat membaca lebih lanjut tentang itu, itu disebut Manifesto Kode Ilmu .
sumber
Jawaban di atas kehilangan beberapa alasan praktis yang sering muncul dalam Grafik Komputer (area di mana makalah yang disebutkan oleh penulis diterbitkan). Kode Rilis sangat bervariasi antar bidang dalam CS - misalnya dalam Pembelajaran Mesin, kode biasanya diterbitkan. Dalam Interaksi Komputer Manusia, kode hampir tidak pernah dipublikasikan.
Saya telah merilis sedikit kode dalam Grafik Komputer, dan sementara saya pikir penulis harus merilis kode mereka, ada banyak alasan sederhana, teori non-konspirasi mengapa mereka tidak . Sebagai contoh
1) Sebagian besar proyek penelitian Grafik Komputer melibatkan kolaborasi antara banyak peneliti, sering kali di institusi yang berbeda, masing-masing memberikan beberapa bagian dari teka-teki (yaitu algoritma, perpustakaan, dll). Untuk merilis kode kerja, semua peneliti harus setuju. Ini jarang merupakan diskusi sederhana dan biasanya lebih mudah untuk menghindari masalah tersebut.
2) Seringkali kode untuk kertas tunggal tertanam dalam basis kode yang lebih besar sedang dikembangkan dalam laboratorium. Basis kode itu akan berisi karya yang tidak dipublikasikan lainnya. Memisahkan kode untuk satu proyek adalah banyak pekerjaan, seringkali tanpa manfaat langsung bagi orang-orang yang harus melakukan pekerjaan ini (lihat insentif di bawah).
3) Universitas sering memiliki hak IP untuk kode tersebut. Oleh karena itu, perlu untuk menghubungi "kantor inovasi" yang akan membuat hidup Anda tanpa henti sulit, ingin Anda untuk mendokumentasikan "penemuan" sehingga mereka dapat mematenkannya, dll, sebelum Anda membukanya. Dalam beberapa kasus, universitas bahkan dapat menolak izin untuk mengeluarkan sumber (ini bervariasi antar lembaga, dan sangat rumit oleh (1))
4) Banyak penelitian Grafik Komputer dilakukan oleh Perusahaan. Dalam hal ini penulis juga tidak memiliki kode, dan harus mendapatkan izin dari Pengacara untuk merilis kode. Pengacara memiliki sedikit atau tidak ada insentif untuk mengatakan ya.
5) Tidak ada insentif untuk menerbitkan kode. Sebagian besar kode penelitian Grafik Komputer tidak pernah digunakan oleh orang lain. Sekalipun demikian, untuk kode tujuan umum Anda biasanya hanya mendapatkan pengakuan (tidak berharga dalam hal CV Anda). Jika Anda beruntung, Anda akan mendapatkan kutipan. Mempekerjakan komite dan agen hibah umumnya tidak peduli sedikit pun jika Anda merilis kode Anda. Jadi, waktu yang dihabiskan untuk menyiapkan kode untuk rilis adalah waktu yang terbuang yang dapat dihabiskan di kertas lain. (Ada orang yang secara aktif mencoba mengubahnya di Komputer Grafik).
6) Ada insentif untuk tidak menerbitkan kode. Kode terkadang dapat berubah menjadi perusahaan pemula, dilisensikan ke perusahaan yang sudah ada, dll. Ini mendanai penelitian di masa depan. Kita semua harus makan.
sumber
Tergantung. Seseorang yang menulis makalah, atau penyelia mereka, memutuskan apa yang harus dilakukan dengan kode sumber. Terkadang, orang menjadikan proyek sebagai sumber terbuka.
Terkadang, proyek biasanya didanai oleh perusahaan, yang berarti itu adalah milik mereka. Dalam kasus tersebut, penulis makalah tidak diizinkan untuk menunjukkan kode.
sumber
Ini biasanya masalah keterbatasan halaman. Jika algoritma ini sangat pendek, seringkali diwakili, setidaknya sebagai pseudocode, dalam makalah. Di sisi lain, jika versi cetak dari kode yang mendasari bahkan segelintir halaman, mencetak kode tidak akan menyisakan ruang untuk daging artikel. Artikel jurnal yang panjangnya sepuluh halaman adalah artikel yang panjang.
Tidak menyediakan sumber membuat potensi penipuan. Karena potensi ini, banyak jurnal sekarang mengharuskan penulis menyerahkan kode sumber mereka sebagai informasi tambahan (yang dapat diperoleh dari jurnal jika Anda memiliki akses; biaya langganan yang lumayan mungkin terlibat). Beberapa jurnal lain mengharuskan penulis untuk merilis kode sumbernya kepada siapa saja yang memintanya. Namun jurnal lain masih di zaman kegelapan; kode sumber tidak diperlukan untuk pengiriman dan penulis tidak diharuskan untuk melepaskannya.
Hal termudah untuk dilakukan adalah bertanya kepada penulis apakah mereka dapat menyediakan kode sumber kepada Anda. Alamat email penulis biasanya terdaftar di sebagian besar makalah jurnal saat ini.
sumber
Pengalaman saya sebagai ilmuwan (5 makalah yang diterbitkan) adalah bahwa sering kali tidak diharuskan oleh jurnal untuk merilis kode yang digunakan untuk membuat hasil. Itu tidak mengatakan bahwa jurnal tidak akan menerima skrip. Banyak jurnal memungkinkan bahan tambahan online. Beberapa jurnal yang diarahkan pada algoritme dan semacamnya (mis. Komputer dan Geosains) mengharuskan Anda menambahkan sumber algoritme, tetapi ini lebih merupakan pengecualian daripada aturan.
Selain budaya di jurnal, kode bagi para ilmuwan hanyalah sarana untuk mencapai tujuan. Banyak yang bukan pengembang perangkat lunak profesional. Karena banyak yang menganggap kode hanya sebagai alat untuk mengekspresikan ilmu pengetahuan, mereka tidak merasakan urgensi untuk juga menerbitkan kode. Selain itu, memoles kode Anda ke titik di mana kode itu dapat diterbitkan membutuhkan banyak pekerjaan. Seorang ilmuwan dibayar untuk melakukan sains, bukan menulis perangkat lunak.
sumber
Lebih sering daripada tidak, program yang sebenarnya hanyalah alat untuk sampai ke tujuan, bukan produk dengan sendirinya. Memberi perincian lengkap kode sumber akan sama dengan memberikan gambar penuh pena yang digunakan untuk menandatangani laporan, dan / atau skema PC.
Karena itu, terutama di mana peer review sedang diundang, kode sumber akan tersedia - meskipun di bawah beberapa bentuk Non Disclosure Agreement (NDA) - karena ada Kekayaan Intelektual yang terkandung dalam program.
Jika Anda benar-benar tertarik pada kode ini, saya sarankan komentar @Buttons adalah saran terbaik: Tanyakan kepada mereka :)
sumber
Banyak tergantung pada tujuan penulisan kode. Jika itu untuk menunjukkan suatu poin, mungkin itu tidak dioptimalkan, dan karena itu tidak ideal untuk dirilis. Jika konsep dan metodologi yang mendasarinya valid, maka harus dimungkinkan untuk membuat ulang hasil kode dari awal. Mungkin ada masalah hak cipta dan kepemilikan juga.
Pada prinsipnya, secara teknis tidak mungkin untuk merilis kode tetapi alasan yang mungkin tidak dirilis bervariasi. Mungkin tidak ada jawaban sederhana untuk pertanyaan ini karena alasan itu. Dalam kasus tertentu mungkin Anda bisa bertanya kepada peneliti yang bersangkutan.
sumber
Makalah yang Anda kutip sudah 28 halaman, dan sebagian besar konten adalah tentang keputusan desain yang terkait dengan pemecahan masalah (dinyatakan dalam judul).
Kode adalah langkah terakhir untuk memvalidasi desain. Ini tidak sepele, tetapi bukan bagian yang menambah nilai dalam hasil makalah ini, terutama jika Anda mempertimbangkan ruang yang dibutuhkan.
Tidak setiap kasus sama. Beberapa makalah memang memberikan kode sumber, atau setidaknya kode semu. Beberapa editor tidak mengizinkannya. Beberapa mengizinkannya, tetapi karena ruang, penulis tidak memasukkannya. Satu jurnal tempat saya menerbitkan kode sumber memformatnya sebagai "angka" dan versi elektronik memilikinya sebagai data gambar, meskipun saya mengirimkannya sebagai teks.
sumber
Masalah insentif dan insentif peneliti umumnya untuk memastikan bahwa mereka dapat menghasilkan aliran kertas yang stabil yang secara bertahap dibangun satu sama lain. Mahasiswa pascasarjana umumnya membutuhkan 3-5 makalah yang diterbitkan sehingga mereka dapat berubah menjadi bab individu dari tesis mereka untuk lulus. Staf pengajar junior perlu menghasilkan sebanyak mungkin publikasi sebelum ulasan tenurial mereka. Untuk alasan itu, sebagian besar makalah akademis benar-benar kertas
n
dalam seri. Sebagai contoh, kertas yang Anda rujuk dibangun di atas kertas yang kelompoknya sama terbitkan setahun sebelumnya dan membahas landasan yang akan dibahas oleh makalah berikutnya.Menerbitkan kode sumber berpotensi memungkinkan peneliti lain dalam kelompok yang berbeda untuk menghasilkan kertas
n+1
sebelum penulis asli melakukan atau setidaknya untuk menghasilkan makalah yang mencakup sebagian kecil dari dasar yang penulis harapkan untuk diliput sebagai bagian dari aliran penelitian ini. Jika itu terjadi, siswa pascasarjana dapat dengan mudah menemukan dirinya menghabiskan 6-12 bulan lagi di sekolah pascasarjana untuk menghasilkan hasil penelitian yang cukup untuk lulus. Anggota fakultas dapat berakhir dengan satu makalah yang diterbitkan lebih sedikit ketika waktu tinjauan tenurial tiba. Kedua hal ini jelas merupakan pukulan besar bagi karier peneliti. Tambahkan dalam kenyataan bahwa aplikasi akademik sering menjadi bagian dari upaya penelitian beberapa orang dalam kelompok penelitian (baik secara langsung atau karena mereka berbagi komponen tertentu) dan ada tekanan dalam kelompok penelitian untuk tidak mengeluarkan kode yang mungkin berakhir dengan menyakiti seseorang yang Anda bekerja dengan setiap hari.Anda sering mendapatkan jenis diskusi serupa di bidang di mana pengumpulan data mentah memakan waktu dan sangat terdistribusi. Dalam astronomi, misalnya, sebuah kelompok penelitian dapat menghabiskan waktu bertahun-tahun untuk mengumpulkan data sebelum mereka memiliki cukup informasi untuk menerbitkan satu makalah. Tetapi mereka kemudian akan menggunakan data itu untuk menghasilkan serangkaian makalah. Kelompok-kelompok penelitian sangat enggan untuk membagikan lebih banyak set data mereka daripada yang diperlukan karena menjadi terlalu mudah bagi kelompok-kelompok lain untuk bebas naik pada waktu yang diinvestasikan mengumpulkan data untuk mendapatkan hasil dari benar-benar menganalisis data.
Akhirnya, banyak kode ini akan dirilis seperti data astronomi akhirnya dirilis. Itu sering terjadi ketika penulis mencapai akhir makalah itu atau ketika sebagian besar kelompok penelitian yang bekerja pada topik yang sama memiliki mesin yang sama sehingga melepaskan kode tidak lagi memberi peneliti baru keunggulan kompetitif.
Ini akan ideal untuk sains jika data dan kode dirilis lebih cepat. Tapi itu sering merugikan peneliti ilmiah dan itu adalah masalah insentif siapa dalam hal ini.
sumber
Sebagai seseorang yang telah melakukan ini (di sisi siswa) beberapa kali di masa lalu: seringkali para profesor menulis makalah bahkan tidak pernah melihat kode sumber sendiri. Mereka akan meminta mahasiswa pascasarjana mereka menulis kode, dan kemudian hanya meminta eksekusi akhir (atau bahkan hanya konfirmasi hasil) ketika sudah selesai.
Lagipula, sering kali kode yang ditulis tidak terlalu mudah dibaca, karena para siswa hanya meretasnya untuk menyelesaikannya, dan karena (walaupun mereka sangat cerdas) mahasiswa pascasarjana yang tidak memiliki pengalaman di dunia nyata cenderung tidak menjadi pembuat kode terbaik di dunia ...
sumber
Sebagian besar alasan yang dapat saya pikirkan telah muncul di sini, tetapi saya pikir saya akan menambahkan dua lagi yang sebenarnya terjadi pada saya:
Jurnal tidak tahu harus berbuat apa .
Untuk salah satu makalah yang sedang saya kerjakan, saya memutuskan bahwa saya benar-benar, tanpa pertanyaan akan memasukkan kode sumber (inti dari makalah ini adalah visualisasi data) dan contoh data yang akan disertakan. Jadi bersama dengan kiriman saya melampirkan Suplemen Elektronik 1 dan 2 - skrip R dengan kode saya, dan file CSV dengan data yang diperlukan untuk skrip R tersebut.
Jurnal tersebut, ternyata, hanya dapat mengambil suplemen elektronik jika mereka telah disisipkan ke file Word. Setelah mencoba bagian yang lebih baik dalam sehari untuk mendapatkan skrip R dalam bentuk itu, saya menyerah dan memutuskan untuk tidak memasukkan kode sebagai pelengkap. Saya bisa saja meng-host-nya di Universitas saya, tetapi sebagai mahasiswa pascasarjana saya tahu bahwa saya akan kehilangan akun saya di sana dalam ~ 1 tahun - open source tidak ada gunanya jika itu segera disusul dengan linkrot.
Saya akhirnya hosting di GitHub dan meletakkan referensi untuk itu di koran, tapi itu karena saya benar - benar ingin kode masuk. Saya bisa melihat, terutama karena kebanyakan orang di bidang saya tidak menggunakan sesuatu seperti GitHub, hanya memutuskan bahwa upaya itu tidak akan sebanding dengan segelintir orang yang akan mengunduhnya, dan siapa yang dapat mengirim email kepada saya jika mereka benar-benar menginginkannya.
Jurnal itu tidak tertarik
Saya memasukkan beberapa detail kecil tentang kode itu sendiri ke dalam makalah berdasarkan permintaan dari pengulas, tetapi ini adalah jurnal klinis (baca: tidak ada kode), itu tidak memungkinkan suplemen elektronik, dan sekali lagi, menambahkan kode sumber kemungkinan akan menjadi lebih banyak masalah daripada nilainya.
Ironisnya, jika ada yang tidak pergi mencari kode, itu (atau segera akan) open source, tapi aku sudah berjalan di tepi 'ini berkembang distractingly teknis' dan saya memutuskan bahwa singkat, 'membuat resensi bahagia 'Menyebutkan adalah semua yang akan saya lakukan.
sumber
Banyak kali implementasi (mis. Perangkat lunak tidak masalah) tetapi semakin implementasi TIDAK mempengaruhi hasil.
Kapan saja masalah implementasi ... kode sumber pasti harus tersedia! Semakin hasilnya tergantung pada implementasi atau metode komputasi semakin penting untuk memposting kode sumber.
sumber
Saya ingin menambahkan beberapa poin pada jenis kode yang saya tangani sebagai ahli kimia (ahli kimia yang melakukan analisis data):
Orang yang menulis kode analisis data (seperti saya lakukan) relatif sedikit dibandingkan dengan orang yang menggunakan kode itu. "Kode khusus yang ditulis sendiri" tidak berarti bahwa penulis menulisnya - bisa menjadi kode rekan sehingga penulis tidak dapat mempublikasikannya.
Publikasi terpisah dari kode dapat direncanakan, dan penulis kode (atau pengawas) mungkin khawatir bahwa kebaruan hilang jika kode telah (sebagian) dipublikasikan sebelumnya.
Bahkan jika jurnal di mana publikasi kode dimaksudkan untuk tidak keberatan dengan kode yang telah tersedia untuk umum sebelumnya, kepedulian murni dari penyelia (atau seseorang di kantor IP) dapat cukup untuk menghentikan publikasi kode.
Kode analisis data seringkali disesuaikan dengan data. Tidak masuk akal tanpa data. (Anda mungkin berpendapat bahwa data harus dipublikasikan, tetapi itu adalah pertanyaan yang berbeda dan di luar topik di sini.)
Dengan cara apa pun, di institut saya, kami mengarsipkan data mentah dan kode analisis data bersama dengan kertas. Kebijakan default belum (belum?) Membuat mereka tersedia untuk umum , tetapi mereka pasti akan tersedia berdasarkan permintaan.
(Pandangan tradisional tentang apa yang dapat direproduksi dalam kimia lebih sesuai dengan deskripsi (mungkin kode semu) dari algoritma daripada mengirim kode sumber yang sebenarnya)
Banyak kolega saya menggunakan alat interaktif untuk analisis data mereka yang tidak mencatat langkah-langkah analisis data. Jadi tidak ada kode sumber yang bisa dipublikasikan. Analisis data kurang sesuai dengan pemrograman daripada pendekatan lab: Anda melakukan sesuatu dan menuliskan apa yang Anda lakukan dan amati dalam buku lab Anda.
sumber