Dalam karir akademis saya, saya telah membaca beberapa makalah akademik tentang berbagai topik ilmu komputer. Banyak yang melibatkan implementasi dan beberapa penilaian implementasi itu, namun saya telah menemukan bahwa sangat sedikit dari mereka yang benar-benar menerbitkan kode yang mereka gunakan.
Bagi saya, manfaat termasuk implementasi yang sebenarnya akan signifikan, yaitu:
- Perluasan kepercayaan atau kemampuan reproduksi (coba saja sendiri!)
- Klarifikasi ambiguitas (terutama untuk makalah yang ditulis oleh penutur asli)
- Penggunaan kembali kode untuk aplikasi
Jadi mengapa begitu sedikit makalah yang benar-benar memasukkan kode?
Saya kira itu mungkin maksud dari organisasi di balik kertas untuk memanfaatkan implementasi dalam aplikasi mereka sendiri, dan dengan demikian tidak ingin merilisnya, tetapi jika itu masalahnya, mengapa bahkan menulis kertas?
soft-question
research-practice
paper-review
Kevin Dolan
sumber
sumber
Jawaban:
Berikut ini adalah artikel yang dikemukakan dengan baik oleh David Donoho dan Jonathan Buckheit yang saya baca di sekolah pascasarjana yang menyentuh persis topik ini dari sudut pandang para peneliti wavelet:
"WaveLab dan Penelitian yang Dapat Diproduksi Kembali"
Gagasan mereka bahkan lebih ambisius, untuk menyediakan kode untuk mereproduksi semua angka di kertas mereka dalam paket Matlab yang nyaman.
Saya sangat menyukai ide mereka tetapi saya pikir masalahnya jelas.
(1) Ini adalah pekerjaan tambahan (membersihkan kode, membuat setidaknya antarmuka pengguna yang belum sempurna, menulis beberapa dokumentasi, memberikan beberapa dukungan ketika orang-orang pasti mengalami masalah)
(2) Tidak benar-benar diperlukan / diharapkan oleh sebagian besar konferensi / pengulas
Tetapi saya merasa bahwa komunitas riset CS akan mendapat manfaat jika ada harapan membuat kode dan data yang digunakan dalam publikasi apa pun tersedia secara publik dalam format yang dapat digunakan. Saya akui bahwa saya sendiri belum melakukannya bahkan ketika jumlah pekerjaan yang terlibat dapat dikelola. Saya pikir itu hanya sulit untuk membuat diri Anda berusaha ekstra ketika tidak ada dorongan eksternal.
sumber
Jika Anda bekerja untuk laboratorium industri, akan jauh lebih mudah untuk mendapatkan kertas yang disetujui untuk rilis daripada mendapatkan kode yang disetujui untuk rilis (bahkan jika kertas berisi semua informasi yang diperlukan untuk menulis ulang kode). Salahkan birokrasi.
sumber
Dimigrasi dan diperluas dari komentar:
Saya pikir ini harus bervariasi berdasarkan subbidang. Hampir semua hal-hal Teori B yang saya kenal (dan terutama Haskell, Agda, dan kadang-kadang Coq-terkait) termasuk kode yang diterbitkan, kadang-kadang bahkan sebagai lampiran atau lebih baik belum diuraikan dalam surat kabar. Sejumlah makalah dari, misalnya, ICFP ditulis sebagai program melek untuk memulai, dan sumber mereka secara keseluruhan diterbitkan oleh penulis. Sejumlah besar dari mereka pada gilirannya telah menghasilkan perpustakaan diekstraksi untuk distribusi.
Dari surat kabar yang tersisa, jumlah yang wajar tidak pernah memiliki kode untuk memulai. Dari mereka, mungkin ada dua alasan utama. Pertama adalah makalah yang konten utamanya adalah pohon bukti, mengetik aturan dengan bukti kesehatan terkait dan sejenisnya. Di antara itu, kemajuan dalam metatisori mekanis telah mendorong setidaknya beberapa penulis untuk memberikan kode dalam teorema pilihan mereka (lihat slide Weirich pada POPLmark:) http://www.seas.upenn.edu/~sweirich/talks/cambridge-09. pdf). Kedua adalah yang diturunkan dari barang-barang Bird-Merteens (banannas & co.). Ini umumnya diterjemahkan ke dalam bahasa fungsional tanpa terlalu banyak pekerjaan. Namun, saya menduga bahwa ada keduanya biasanya kehilangan generalitas, dan yang berurusan dengan masalah konkret dan mengetik yang tidak perlu mempersulit hal-hal dan membuat lebih sulit untuk mengikuti alasan yang sama.
Saya ingin membuktikan pengamatan saya sedikit, begitu juga dengan hitungan kasar dua hari pertama ICFP 2010. Dari makalah standar (yaitu tidak mengalami laporan pengalaman atau pembicaraan yang diundang), 12 dari 21 menyediakan semacam kode. Tiga menyediakan Coq (yang keempat mengklaim sebagian bukti tetapi tidak mempublikasikannya). Tiga Haskell proided. Tiga disediakan Agda. Satu disediakan Skema, satu disediakan Caml, dan satu disediakan Twelf. (Perhatikan bahwa beberapa kode disediakan untuk lebih dari satu asisten bukti, atau untuk formalisasi dan implementasi). Dari beberapa makalah yang tersisa, beberapa memang bekerja pada tingkat abstraksi yang cukup tinggi sehingga menerapkannya dalam asisten pembuktian akan menjadi makalah baru itu sendiri, dan cukup banyak lagi yang berhasil yang saya duga dapat diimplementasikan dalam asisten pembuktian menggunakan teknik standar, tetapi yang tentunya akan membutuhkan banyak pekerjaan untuk melakukannya.
sumber
Anda percaya bahwa kode harus dipublikasikan, tetapi Anda bertanya mengapa makalah tidak menyertakan kode. Ini adalah dua hal yang berbeda.
Sebagian besar waktu, tidak ada cukup ruang untuk mempublikasikan kode dalam jumlah yang signifikan. Di bidang penelitian saya (pemrosesan gambar) pseudocode atau informasi arsitektur seringkali jauh lebih berharga dan saya tidak pernah menemukan diri saya macet karena kurangnya kode dalam sebuah makalah. Ini sering dibiarkan sebagai latihan bagi pembaca yang memahami artikel tersebut.
Namun ada banyak kode yang tersedia untuk menggambarkan makalah. Penulis biasanya memiliki halaman web dan bahkan jika peninjau tidak mendapatkan kesempatan untuk mencoba dan memeriksa kode itu sendiri, seleksi alam tampaknya bekerja dengan cukup baik dan penulis yang tidak menerbitkan kode jauh lebih sedikit dikutip.
sumber
Ini mungkin sudah ditanyakan beberapa waktu lalu, namun saya selalu merasa kuat tentang ini sehingga saya akan memberikan dua sen saya. Saya telah bekerja selama bertahun-tahun (tidak lagi) dalam komunitas SAT. Kebanyakan peneliti jarang menerbitkan kode mereka. Makalah ini diterbitkan bersama dengan algoritma tetapi sangat jarang untuk melihat kode sebenarnya dari SAT solver (pemecah MAXSAT) dll, diterbitkan bersama dengan kertas.
Dan kenyataannya adalah bahwa hanya dengan kode yang diterbitkan di koran Anda tidak akan pernah memiliki kesempatan untuk mereproduksi eksperimen penulis. Bukan hanya karena kode yang diterbitkan tidak lengkap (tentu saja) tetapi juga karena bahkan kode semu yang diterbitkan jarang menerjemahkan secara semi-langsung ke dalam apa yang sebenarnya dilaksanakan.
Alasan di balik ini sulit untuk diketahui dan mungkin tergantung dari peneliti ke peneliti tetapi kebanyakan dua kali lipat.
Pertama, peneliti cenderung untuk terus bekerja dalam satu makalah solver penerbit setelah makalah pada solver yang sama dan secara bertahap menambahkan fitur baru yang menerjemahkan ke versi baru solver. Ada obsesi tidak sehat bahwa pesaing akan menggunakan pemecah Anda untuk memajukan karier mereka dengan memperluas dan menerbitkan makalah tanpa memberi Anda kredit jatuh tempo (artinya, rekan penulis).
Kedua, beberapa kode benar-benar (seperti semua perangkat lunak) ditulis terburu-buru. Skrip setengah matang. Fitur yang belum diuji, dll. Dengan menerbitkan kode ini, peneliti akan merasa dirinya akan mempermalukan diri sendiri dan merusak reputasi mereka.
Saya meninggalkan Anda dengan referensi terbaru tentang ini dari ACM: http://cacm.acm.org/magazine/2011/5/107698-the-importance-of-reviewing-the-code/fulltext
sumber
Secara historis, artikel ilmiah harus dicetak di atas kertas, dan jurnal dikirimkan secara internasional. Setiap halaman tambahan digunakan untuk menambah biaya yang signifikan, sehingga artikel tunduk pada batasan panjang, dan bahkan kode kerja sederhana biasanya membutuhkan banyak ruang daripada deskripsi informal.
Saat ini tidak ada alasan kuat untuk tidak memasukkan kode dalam jenis artikel apa pun yang merujuk suatu algoritma.
Mungkin juga bermanfaat untuk meninggalkan format berorientasi-cetak seperti pdf dan catatan tambahan yang mendukung format yang lebih sadar semantik (HTML dengan MathML atau mungkin variasi open source dari Mathematica).
sumber