Mengapa makalah penelitian yang menyebutkan perangkat lunak khusus merilis kode sumber? [Tutup]


69

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?


42
Untuk alasan yang sama, sebagian besar makalah tidak memiliki data mentah (hanya mempublikasikan "hasil" yang didistorsi secara statistik).
SK-logic

2
Saya mengedit pertanyaan. Mungkin "menyebutkan" bukanlah kata terbaik. Dalam beberapa kasus, beberapa poin yang dibuat di koran sangat tergantung pada perangkat lunak, tetapi perangkat lunaknya adalah vaporware. Seperti dalam, untuk mengevaluasi dengan benar validitas kertas, seseorang harus dapat menjalankan perangkat lunak.
Kaz

7
@ JohnL Saya akan mengatakan makalah dapat sangat tergantung pada perangkat lunak tanpa tentang perangkat lunak. Seperti properti menarik dunia yang diperagakan / ditemukan menggunakan alat perangkat lunak. Jika kami tidak dapat meninjau alat ini, bagaimana kami tahu kesimpulannya benar? (Atau lebih tepatnya: jauh lebih mudah untuk memvalidasinya jika kita dapat melihat alatnya!)
Andres F.

4
@Andres F - Satu kemungkinan adalah untuk mengimplementasikan versi perangkat lunak Anda sendiri menggunakan ide-ide yang dijelaskan di koran. Meskipun ini lebih banyak pekerjaan, itu juga bisa dibilang memiliki nilai lebih - menjalankan implementasi yang sama lagi hanya menunjukkan satu implementasi lagi. Implementasi baru membantu menunjukkan bahwa ide-ide itu sendiri valid, dan bukan kebetulan beberapa detail implementasi. Masalah-masalah signifikan yang mungkin belum diketahui atau dijelaskan sebelumnya dapat ditemukan selama implementasi ulang.
Steve314

3
@KonradRudolph, tentu saja itu tidak akan selalu tersedia. Bahkan mungkin menjadi tidak tersedia dalam beberapa tahun sejak publikasi (kaset dihapus dan digunakan kembali, seluruh kelompok dibubarkan, kertas robek, dll.)
Logika

Jawaban:


71

Beberapa alasan muncul di benak saya.

  • Kode terlalu besar untuk artikel. Untuk waktu yang singkat, proyek-proyek menarik cukup singkat untuk diterbitkan dengan kertas yang menggambarkannya. Ini masih bisa terjadi, tetapi banyak proyek dengan ukuran yang cukup besar untuk menarik telah tumbuh terlalu besar untuk diterbitkan dengan makalah yang menggambarkannya.
  • Host publik tidak gratis atau tahan lama. Sampai saat ini, host publik yang murah, tahan lama, mudah diakses tidak tersedia.
  • Penerbitan makalah lebih mudah daripada menerbitkan proyek. Beberapa orang punya waktu untuk menerbitkan makalah atau proyek, tetapi tidak keduanya.
  • Insentif terkait dengan peran. Bertahun-tahun yang lalu saya bertanya kepada seorang kolega tentang pengembangan produk dan paten dan mendapat kabar bahwa kebanyakan orang di sana melakukan satu atau yang lain. Seperti halnya penulis makalah (think akademia) dan pengembang open source, hadiah diarahkan untuk satu produk kerja atau lainnya.
  • Motivasi diri. Keinginan untuk menggambarkan ide atau menerapkan kode tidak selalu ada di bagian yang sama pada orang yang sama. Banyak profesor saya secara terbuka mengakui bahwa mereka tidak pernah mengkodekan terlalu banyak, atau bertahun-tahun lagi dari memiliki kode yang lancar. Demikian pula, banyak pengembang hampir tidak ingin menulis komentar dalam kode mereka atau ketika mereka berkomitmen untuk kontrol sumber.
  • Daya tahan proyek hosting dan produk kerja juga menjadi masalah. Siapa yang ingin menautkan suatu tempat yang mungkin hilang beberapa tahun dari sekarang dan sebagai hasilnya, mengurangi nilai kertas.
  • Tradisi. Penerbit berorientasi pada peninjauan dan penerbitan makalah, tetapi mungkin tidak siap untuk melakukan evaluasi yang sama untuk proyek.
    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.
  • Kode telanjang bisa mengejutkan . Dibutuhkan jauh lebih sedikit pemolesan untuk membaca bukti dokumen panjang kertas daripada memeriksa kode, meninjau kode, dan memastikan kualitas suatu proyek. Saya memiliki banyak kode yang lebih nyaman saya ceritakan daripada menunjukkannya kepada Anda. Semoga semuanya bergerak maju ke titik di mana kita semua akan menulis kode yang indah, tetapi jika kode Anda tergesa-gesa, hampir atau tidak sepenuhnya berfungsi, Anda mungkin lebih nyaman tidak berbagi executable atau sumbernya.
  • Sumber tertutup. Tidak semua orang menerima open source. Banyak makalah yang ditulis tentang pekerjaan untuk DoD, proyek komersial, atau proyek yang didanai swasta di mana ada manfaat dari paparan proyek kepada publik, tetapi masih ada rahasia dagang atau keuntungan pasar pertama yang dapat terkikis dengan sumber terbuka kode atau produk kerja lainnya.
  • Publikasikan pekerjaan lebih lanjut berdasarkan kode ini. Jika kode tidak dipublikasikan, ini dapat memberi penulis keuntungan dalam menerbitkan karya lanjutan. Peneliti lain yang bersaing mungkin perlu menerapkan kembali pekerjaan yang mungkin membutuhkan waktu yang berharga.

27
Jika kertas tergantung pada kode sumber, maka itu seharusnya tidak dipublikasikan. Jika Anda tidak dapat menerbitkan kode, Anda tidak dapat mempublikasikan makalah. Sebuah makalah yang mengatakan "program kami melakukan hal-hal indah ini", dan Anda tidak dapat mengevaluasi kertas tanpa menjalankan program itu, maka kertas berbatasan dengan menjadi brosur iklan untuk beberapa perangkat lunak.
Kaz

3
Dalam perjanjian lengkap dengan Kaz - jika untuk melakukan peer review penelitian Anda membutuhkan sesuatu yang tidak tersedia (data, kode, dll), itu tidak boleh diterima oleh jurnal peer-review. Hampir semua argumen yang disebutkan oleh Donor Donor menunjukkan benar untuk rilis data, juga ... namun sekarang ada gerakan yang agak besar dalam beberapa tahun terakhir ke arah itu.
Joe

3
Pos yang bagus. Saya juga menambahkan bahwa kadang-kadang ilmuwan yang terpisah membuat ulang perangkat lunak sendiri adalah BAGIAN dari pengulangan percobaan. Jika hanya bekerja dengan cara 1 orang mengkodekannya, tetapi tidak dengan cara orang lain mengkodekannya ... maka hasilnya dapat dipertanyakan dan kesalahan dapat diidentifikasi.
Jimbo Jonny

4
kedua Anda ke titik terakhir adalah yang terkuat
l

4
@AndresF. Kode adalah hal yang paling tidak penting dalam sebuah makalah. Sebuah makalah adalah "Inilah yang saya lakukan; inilah metode saya; inilah hasil saya". Kode adalah kodifikasi metode, dan harus menghasilkan hasil yang sama persis. Jika Anda ingin mereproduksi hasil kertas tetapi menggunakan kode kertas, Anda belum mereproduksi apa pun; apa yang seharusnya Anda lakukan adalah membaca bagian metode mereka, membuat implementasi Anda sendiri, dan kemudian menulis makalah tentang hal itu ketika Anda tidak dapat mereproduksi hasil mereka.
Tacroy

40

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.


7
+1 Presentasi yang luar biasa. Saya senang ada orang yang mendorong perubahan :)
Andres F.

+1 Terima kasih atas tautannya; yang dapat membantu saya dalam negosiasi yang sedang berlangsung dengan bos saya tentang melepaskan beberapa kode kami sebagai Sumber Terbuka.
Frank

Kabar! Analogi yang baik layak mendapat suara dari saya.
nullpotent

Saya tidak yakin perbandingan ini benar-benar bagus untuk tujuan di sini. Saya ahli kimia (yang lebih suka melihat lebih banyak kode diterbitkan), tidak ada ahli matematika, tetapi bukti-bukti yang saya lihat biasanya tidak memberikan setiap langkah kecil. Jadi IMHO mereka lebih cocok dengan deskripsi pseudo-code ringkas algoritma daripada kode sumber yang sebenarnya.
cbeleites

27

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.


2
Saya tidak berpikir Anda harus mengirim siapa pun yang meminta kode berharga Anda ... IMHO Jawaban ini salah. Tapi saya ingin melihat dunia penelitian di mana informasinya gratis ...
Dirk

3
@ Malas Sejauh yang saya tahu, ini relatif umum dalam studi empiris perangkat lunak. Dalam pengajuan tim saya yang terakhir (belum diterima) di domain ini, salah satu pengulas secara eksplisit meminta akses publik ke data kami serta beberapa bagian kode. Saya tidak mengerti mengapa kode ini sangat berharga. Ini (umumnya) hanya realisasi dari ide-ide yang dijelaskan dalam makalah. Menerbitkan program adalah cara untuk membiarkan pembaca memeriksa apakah kami menerjemahkan ide-ide kami dengan benar ke tindakan.
mgoeminne

1
Hmm, jadi Anda tahu (a) siapa pengulas Anda dan (b) memberikan kode dan data Anda kepada seseorang yang mungkin bersaing langsung dengan Anda?
Dirk

1
Bukan karena (a) Peninjau meminta untuk mempublikasikan kode di tempat yang dapat mereka akses secara anonim (atau otentikasi dilakukan oleh jurnal) (b) Karena makalah Anda diterbitkan, peneliti lain dapat menggunakan metodologi / alat yang sama untuk mereplikasi studi Anda pada set data lain atau bahkan pada set data yang sama. Replikasi kurang bergengsi dari kertas asli, mereka akan mengutip karya Anda, dan mereka menawarkan validasi yang kuat untuk kertas Anda. Jadi penulis asli senang membiarkan yang lain melakukan semua ini untuk mereka.
mgoeminne

@ Paul Saya tidak melihat koneksi dengan publikasi kode sumber. Bagaimanapun, editor yang baik memperhatikan catatan yang ditulis oleh pengulas untuk membenarkan keputusan mereka. Karena itu disebutkan seperti "Ini omong kosong" tidak diperhitungkan. Jika editor memperkirakan rekomendasi pengulas tidak cukup relevan, ia meminta pendapat ahli lainnya. Mahasiswa pascasarjana tidak mengambil bagian dalam proses peninjauan. Dan jika Anda tidak dapat membiarkan kertas Anda diterima setelah beberapa tahun pengiriman, Anda harus membayangkan makalah ini (atau kontennya) tidak begitu baik.
mgoeminne

14

Ini bukan sumber tertutup. Perangkat lunaknya sama sekali belum dipublikasikan.

Jawaban singkat:

Ada beberapa alasan untuk tidak mempublikasikan perangkat lunak, tetapi tidak biasa untuk mempublikasikan perangkat lunak secara tertutup.

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:

Mengapa mereka tidak mempublikasikan perangkat lunak?

Ada beberapa alasan untuk ini:

  • Perangkat lunak yang diterbitkan membutuhkan dokumentasi. Biasanya, orang tidak suka menulis dokumentasi.
  • Perangkat lunak yang diterbitkan dapat menarik pengguna. Pengguna mungkin memiliki pertanyaan. Ini membutuhkan waktu (tetapi lihat di atas).
  • Perangkat lunak yang diterbitkan mungkin memerlukan pemeliharaan non-sepele.
  • Perangkat lunak penerbitan membutuhkan hosting.

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 )


Dimungkinkan juga untuk menerbitkan kode, tetapi di bawah lisensi yang tidak memungkinkan modifikasi.
penanggung jawab

Saya bahkan tidak memikirkan situasi ini di mana penulis hanya akan menerbitkan versi yang dikompilasi hanya untuk membuktikan bahwa perangkat lunak itu benar-benar ada, karena tidak membantu memahami bagaimana mereka melakukannya - dengan cara saya maksud perincian implementasi .. Saya suka membaca sumber kode!
alecail

8

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.


13
Karena itu, coba tanyakan pada para peneliti! Terkadang mereka akan memberi Anda kode sumber.
Lucina

3
Saya rasa Anda tidak sepenuhnya adil di sini: "Sebaliknya, di komunitas riset, lebih penting memiliki artikel yang terdengar dan terlihat sangat ilmiah.". Ini menyiratkan bahwa tidak ada nilai untuk konten yang mendasarinya, hampir karena Anda tidak dapat memahaminya karena terlihat ilmiah. Jumlah makalah yang Anda terbitkan hampir tidak relevan jika tidak ada yang tertarik dengan konten tersebut. Tanggapan ini, dalam pandangan saya, berbicara tentang prasangka Anda daripada kenyataan.
temptar

2
@ temptar Yah, mungkin saya agak bias negatif. Yang paling mengejutkan saya adalah bahwa kebanyakan peneliti jelas tidak mau menggambarkan penelitian mereka dengan cara yang mudah dimengerti. Suatu ketika saya memiliki seorang profesor yang, setelah menjelaskan suatu algoritma kepada saya, menambahkan: "Tetapi dalam makalah kami akan menulis ini lebih rumit untuk membuatnya terdengar lebih ilmiah".
codingFriend1

6
@ codingFriend1 - Anda tidak bisa dan tidak boleh menyamaratakan berdasarkan satu pengalaman. Itu adalah pendekatan yang sangat tidak ilmiah. Anda harus mempertimbangkan siapa target audiens untuk spesialis riset dan dalam banyak kasus, bukan orang yang membutuhkan jenis penjelasan yang Anda anggap perlu. Inilah yang kami punya komunikasi ilmiah untuk - untuk menjembatani dengan non-spesialis.
temptar

3
Saya mendukung jawaban codingFriend1. Ini telah menjadi kritik umum yang ditujukan pada komunitas ilmiah tempat saya tinggal, dan khususnya di Universitas saya (yang merupakan yang terbaik di negara ini): bahwa para ilmuwan didorong untuk menerbitkan makalah, semakin eksotik semakin baik. "Terbitkan atau binasa". Para ilmuwan dari daerah yang kurang saya kenal juga melaporkan ini. Maaf, tetapi di banyak tempat itu adalah kebenaran yang menyedihkan dan tersebar luas.
Andres F.

7

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 .


1
+1 untuk tautan! Ini sepenuhnya mewujudkan kepercayaan saya pada apa sains dan penelitian seharusnya.
Andres F.

6

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.


# 2 sangat signifikan. Tidak hanya dapat menjadi pekerjaan yang sangat besar untuk memisahkan kode yang relevan dengan kertas, tetapi begitu Anda melakukannya, Anda mungkin menemukan bahwa di luar konteks (yaitu, jauh dari 100 alat lainnya, perpustakaan, dan pengaturan khusus dari laboratorium), pada dasarnya tidak berharga dan tidak mungkin untuk dipahami atau digunakan. Selain itu, "kode penelitian" sering sangat rapuh, direkayasa hanya cukup untuk membuktikan inti dari satu makalah, bukan untuk membuat sistem perangkat lunak yang kuat, dan peneliti tidak punya waktu atau kecenderungan untuk memperbaikinya cukup untuk menjadi apa pun selain sakit kepala yang parah bagi orang lain.
Larry Gritz

5

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.


3

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.


1
Saya pikir kode sumber yang tersedia untuk ditinjau tidak mengharuskan teks lengkapnya dimasukkan dalam makalah yang sebenarnya :) Tidak hanya karena potensi penipuan, tetapi saya pikir itu sebenarnya berguna bagi pengulas untuk dapat menggandakan cek Anda tidak melakukan kesalahan nyata. Terutama jika coders adalah ilmuwan dan bukan programmer!
Andres F.

3

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.


Tetapi perangkat lunak, dengan cara tertentu, adalah buktinya. Itulah yang dimaksud dengan ilmu komputer: program adalah bukti. Saya pikir ini adalah kasus tidak cukup percaya diri dalam hasil, atau kesalahpahaman budaya tentang pentingnya benar-benar menghasilkan bukti kerja penelitian Anda.
Andres F.

1
Saya tidak berbicara tentang ilmu komputer, tetapi lebih banyak ilmu secara umum. Dalam CS teoretis banyak orang bekerja pada algoritma dan bukti dalam logika matematika. Perangkat lunak hanyalah sebuah implementasi, sebuah renungan.
Paul Hiemstra

Jika kode Anda adalah catatan kaki di koran, saya setuju. Jika itu semacam verifikasi dan memiliki bagian sendiri, betapapun kecilnya, maka itu ADALAH bagian dari bukti atau setidaknya validasi. Jika Anda tidak akan menerbitkan kode, maka itu jelas tidak relevan dan Anda mungkin juga menghapus setiap menyebutkan dari kertas Anda!
Andres F.

2

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 :)


1

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.


1

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.


1

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 ndalam 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+1sebelum 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.


"Menerbitkan kode sumber berpotensi memungkinkan peneliti lain dalam kelompok yang berbeda untuk menghasilkan kertas n +1 sebelum penulis asli melakukannya atau setidaknya menghasilkan sebuah makalah yang mencakup sebagian kecil dari dasar yang penulis harapkan untuk dibahas sebagai bagian dari ini aliran penelitian. " Ini kedengarannya tidak mudah bagi saya. Kebanyakan orang (termasuk saya) akan mengalami kesulitan memahami jenis kode yang ditulis peneliti, tanpa bantuan dari penulis, apalagi memperluasnya. Apakah Anda tahu kasus di mana ini sebenarnya terjadi?
Faheem Mitha

1

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 ...


1

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.


0

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.


Mengenai siapa / di mana akan menyimpan kode sumber. Idealnya jurnal tempat artikel itu diterbitkan akan menyimpan keseluruhan kode sumber. Namun banyak jurnal terpenting tidak menyimpan artikel dan kode sumbernya. IMO jika jurnal tidak memiliki kemampuan untuk menyimpan seluruh kode sumber, penulis bertanggung jawab untuk menemukan tempat penyimpanan web addressable untuk kode sumber.
Trevor Boyd Smith

0

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.


Jawaban ini adalah dari sudut pandang analisis data, jadi agak khusus. Namun, pertanyaan ini terkait dari academia.SX, jadi ilmuwan non-komputer dapat ikut membaca ini.
cbeleites
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.