Özel yazılımdan bahseden araştırma makaleleri neden kaynak kodunu serbest bırakmıyor? [kapalı]


69

Araştırma raporlarında belirtilen yazılımın kaynak kodunun yayımlanmamasının bir nedeni var mı? Araştırma makalelerinin, uygulama detaylarından ziyade bir şeyi gerçekleştirme genel fikriyle ilgili olduğunu biliyorum, ancak kodu neden serbest bırakmadıklarını anlamıyorum.

Örneğin, bu kağıt şununla biter:

Sonuçlar

İnsan çizgi çizme sistemi, OpenGL kullanarak C ++ 'da Qt çerçevesi aracılığıyla gerçekleştirilir ve ilave bir donanım desteği olmadan 2.00 GHz Intel çift çekirdekli işlemci iş istasyonunda çalışır. Sistem yeni yolu ve dokuyu sentezlerken etkileşimli çizgiler çizebiliriz.

Kaynak kodunu kasıtlı olarak yapmayı düşündükleri para kazanma nedeniyle mi yoksa telif hakkı nedeniyle kapalı mı tutuyorlar?


42
Aynı sebepten dolayı, çoğu makale ham veriden yoksundur (sadece istatistiksel olarak çarpık "sonuçları" yayınlamak).
SK-mantık

2
Soruyu değiştirdim. Belki de "söz" en iyi kelime değildir. Bazı durumlarda, kağıtlarda belirtilen hususların bazıları kritik olarak yazılıma bağlıdır, ancak yazılım buhardır. Olduğu gibi, kağıdın geçerliliğini doğru bir şekilde değerlendirmek için birinin yazılımı çalıştırması gerekir.
Kaz,

7
@JohnL Bir kağıt eleştirel olmadan yazılıma bağlı olabilir söyleyebilirim hakkında yazılım. Bir yazılım aracı kullanılarak gösterilen / bulunan dünyanın ilginç bir özelliği gibi. Aracı inceleyemezsek, sonucun doğru olduğunu nasıl bilebiliriz? (Ya da daha doğrusu: aracı görebilirsek doğrulamak çok daha kolay!)
Andres F.

4
@Andres F - Bir olasılık, yazılımın kendi versiyonunu, makalede açıklanan fikirleri kullanarak gerçekleştirmektir. Bu daha fazla iş olmasına rağmen, tartışmalı bir şekilde daha fazla değeri vardır - aynı uygulamayı tekrar çalıştırmak sadece bir uygulamayı tekrar gösterir. Yeni bir uygulama, fikirlerin kendilerinin geçerli olduğunu ve bazı uygulama detaylarının bir şansı olmadığını göstermeye yardımcı olur. Yeniden uygulama sırasında daha önce fark edilmemiş veya tanımlanmamış önemli konular bulunabilir.
Steve314

3
@KonradRudolph, elbette her zaman kullanılamayacak. Yayınlanmasından bu yana birkaç yıl içinde bile kullanılamayabilir (bantlar silindi ve yeniden kullanıldı, tüm grup dağıldı, kağıt parçalandı, vb.)
SK-mantık

Yanıtlar:


71

Akla birkaç neden geliyor.

  • Kod makale için çok büyük. Kısa bir süre için, ilginç projeler, onları tanımlayan makale ile yayınlanacak kadar kısaydı. Bu yine de olabilir, ancak ilginç olacak kadar büyük boyutta birçok proje, onları tanımlayan yazılarla yayınlanmayacak kadar büyüdü.
  • Halka açık ana bilgisayarlar ücretsiz veya dayanıklı değildir. Yakın zamana kadar, ucuz, dayanıklı, erişimi kolay, halka açık ana bilgisayarlar mevcut değildi.
  • Bir makaleyi yayınlamak, bir projeyi yayınlamaktan daha kolaydır. Bazı insanlar bir gazeteyi veya projeyi yayınlamak için zamana sahiptir, ancak ikisini birden değil
  • Teşvikler role bağlandı. Yıllar önce, bir meslektaşıma ürün geliştirme ve patentler hakkında sorular sordum ve oradaki çoğu insanın birbirinden hoşlandığını duydum. Kağıt yazarlarda (akademi düşünün) ve açık kaynak geliştiricilerde olduğu gibi, ödüller bir iş ürününe veya diğerine yöneliktir.
  • Kendini motive etme. Fikirleri açıklama veya kodu uygulama arzusu, aynı kişide her zaman eşit kısımlarda bulunmaz. Profesörlerimin birçoğu, hiç bir zaman çok fazla kodlanmadıklarını veya akıcı bir şekilde kodlama yapmaktan yıllarca uzak olduklarını açıkça itiraf etti. Benzer şekilde, birçok geliştirici koduna ya da kaynak kontrolüne karar verdiğinde yorum yapmak istemez.
  • Proje barındırma ve iş ürününün dayanıklılığı da bir konudur. Bundan birkaç yıl sonra gidebilecek bir yere bağlanmak isteyen ve bunun sonucunda da kağıdın değerini azaltıyor.
  • Gelenek. Yayıncılar makaleleri incelemeye ve yayınlamaya yöneliktir, ancak projeler için aynı değerlendirmeyi almaya hazır olmayabilirler.
    Ayrıca, mantıklı bir tekrarlanabilirliğin ne olduğuna dair geleneksel görüşler alanlar arasında farklılık gösterir. Yeni bir sentez metodu hakkında bir makale yayınlayan bir kimyagerin, başka bir kimyagerin sentezi gerçekleştirmesi için yeterince detay yazması beklenir. Eğitimleri ve ürünleri dergiye göndermesi beklenmiyordu. Makaleyi kullanmak / çoğaltmak isteyen okurların kendi eğitimlerini almaları ve sentezlerini kendi laboratuvarlarında yapmaları beklenir (uygulamada nasıl yapıldığını görmek için laboratuvara gelip sormak isteyebilirler). Bir biyologdan da yeni transgenik farelerini kağıda tutması beklenmez. Çoğaltılabilirlik hakkındaki bu görüş, örneğin, gerçek uygulamanın gönderilmesinin aksine, algoritmanın bir (sözde kod) tanımının yapılmasına karşılık gelir.
  • Çıplak kod şok edici olabilir . Kağıt uzunluğu belgesini prova okumak için kod incelemesine, kod incelemesine ve bir projenin kalite güvencesine göre daha az parlatma gerekir. Çok fazla kodum var, size göstermek yerine anlatmaktan daha rahat edeceğim. Umarım her şey güzel kod yazacağımız bir noktaya doğru ilerler, ancak kodunuz aceleyle koştu, ancak zorlukla işler veya tamamen çalışmazsa, çalıştırılabilir dosyaları veya kaynağı paylaşmamak daha rahat olabilir.
  • Kapalı kaynak Herkes açık kaynağı benimsemedi. DoD için yapılan çalışmalar, ticari projeler veya projenin halka açık hale getirilmesinden faydalanabileceği özel olarak finanse edilen projeler hakkında pek çok makale yazılmıştır, ancak yine de kodu açık kaynak koduyla aşındırarak aşınabilecek piyasa avantajları için ticari sırlar veya ilk diğer iş ürünleri.
  • Bu koda dayalı olarak daha fazla çalışma yayınlayın. Kod yayınlanmadıysa, yazarın takip çalışmalarını yayınlamada bir avantaj sağlayabilir. Diğer rakip araştırmacıların değerli zaman alabilecek çalışmaları yeniden düzenlemeleri gerekebilir.

27
Makale kaynak koduna bağlı ise, yayınlanmamalıdır. Kodu yayınlayamıyorsanız, kağıdı yayınlayamazsınız. "Programımız bu harika şeyleri yapıyor" yazan bir kağıt ve o programı çalıştırmadan kağıdı değerlendiremazsınız, o zaman da kağıt bazı yazılımlar için bir reklam broşürü olmakla sınırlıdır.
Kaz

3
Kaz ile tam bir anlaşmaya varıldığında - araştırmayı gözden geçirmek için uygun olmayan bir şeye ihtiyacınız varsa (veri, kod vb.), Hakemli bir dergi tarafından kabul edilmemelidir. DeveloperDon'un bahsettiği iddiaların hemen hemen hepsi veri açıklaması için de geçerliydi ... henüz son yıllarda oldukça büyük bir hareket var.
Joe,

3
BÜYÜK post. Ayrıca, bazen ayrı bilim adamlarının yazılımı kendi başlarına yeniden yaratan deneylerin tekrarlanabilirliğinin bir parçası olduğunu da eklerdim. Yalnızca 1 kişinin kodladığı şekilde çalışıyorsa, ancak diğerlerinin kodladığı şekilde değilse ... sonuçlar sorgulanabilir ve hatalar belirlenebilir.
Jimbo Jonny

4
son noktaya
kadarki

4
@AndresF. Kod kesinlikle bir gazetede en az önemli olan şeydir. Bir makale "İşte ne yaptım; işte yöntemlerim; işte sonuçlarım". Kod, yöntemin kodlamasıdır ve aynı sonuçları vermelidir. Kağıdın sonuçlarını çoğaltmak ancak kağıdın kodunu kullanmak istiyorsanız, hiçbir şeyi çoğaltmadınız; ne olduğunuz sözde yapmak onların sonuçlarını yeniden edemez zaman bu konuda bir makale yazmak sonra kendi uygulanması ile gelip, ve onların yöntemleri bölümünü okunur.
Tacroy

40

Randall LeVeque'in "Kodunuzu Paylaşmamanın En İyi 10 Sebebi (neden olmasın?)" Başlıklı sunusunu okuyun: http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

Kodun, Matematik'teki kanıtlara benzer olduğunu ve bizi kanıtların yayınlanmadığı bir dünyayı düşünmeye davet ettiğini, çünkü çok uzun ya da çok çirkin olduklarını ya da son vakalarda çalışmadıklarını veya değersiz olduklarını savunuyor. para ya da birisi onu çalabilir ...

Temel olarak, eğer bilim yapıyorsanız, kodunuzu yayınlamanız gerekir. Aksi takdirde, simya yapıyorsunuz ve karanlık çağlara geri dönüp endişelendiğim sürece vebadan ölebilirsiniz.


7
+1 Harika sunum. Değişime zorlayan insanlar olduğu için memnunum :)
Andres F.

+1 Bağlantı için teşekkürler; Bu, bazı kodlarımızı Açık Kaynak olarak yayınlamam konusunda patronumla yaptığım görüşmelerde bana yardımcı olabilir.
Frank

Kelime yukarı! İyi benzetme benden bir oyu hakediyor.
nullpotent

Bu karşılaştırmanın buradaki amaç için gerçekten iyi olduğundan emin değilim. Ben kimyacıyım (kim daha çok kod yayınlanmış olarak görmeyi tercih ederse) matematikçi değil, fakat genelde gördüğüm kanıtlar her küçük adımı atmıyor. Yani IMHO, algoritmanın gerçek kaynak kodundan ziyade yoğunlaştırılmış sahte kod tanımına karşılık gelirler.
cbeleites

27

Genel olarak, bildiri sonuçlarını üretmek için kullanılan programlar sadece araçlardır ve yalnızca sonuç önemlidir. Dolayısıyla bağlamı, metodolojiyi, sonuçları ve bunlar hakkında bir tartışmayı sunan kağıda yerleştirilmezler.

Ancak sonuçlar tekrarlanabilir olmalıdır. Ve sonra, kağıdın dayandığı veri kaynakları kamuya açık olduğunda, bunları sonuçlara dönüştüren programlar da genellikle gereklidir. Herhangi bir patent / telif hakkı sorununu gündeme getirmezse, genellikle Web üzerinde "bir yere" yerleştirilirler. Ya da en azından yazarlar size sorarsanız programları göndermelidir.


2
Değerli kodunuzu soran birisini göndermek zorunda olduğunuzu sanmıyorum ... IMHO Bu cevap yanlış. Ama bilgilerin özgür olduğu bir araştırma dünyası görmek istiyorum ...
Dirk

3
@Dirk Bildiğim kadarıyla, bu yazılım ampirik çalışmalarında nispeten yaygındır. Ekibimin bu alandaki son (henüz kabul edilmemiş) gönderiminde, hakemlerden biri açıkça kamuya açık bir şekilde kodumuza ve bazı kod parçalarına erişim talebinde bulundu. Kodun neden bu kadar değerli olması gerektiğini anlamıyorum. Bu (genellikle) sadece makalede açıklanan fikirlerin gerçekleştirilmesidir. Programları yayınlamak, okuyucunun fikirlerimizi eylemlere doğru bir şekilde çevirip çevirmediğimizi kontrol etmesinin bir yoludur.
mgoeminne

1
Hmm, yani (a) hakeminizin kim olduğunu ve (b) sizinle doğrudan rekabet edebilecek birine kodunuzu ve verilerinizi verdiniz mi?
Dirk

1
Gerçekten değil (a) Hakemler kodu anonim olarak erişebilecekleri bir yerde yayınlamak isterler (ya da onaylama dergi tarafından yapılır) (b) Makaleniz yayınlandığı için, diğer araştırmacılar aynı metodolojiyi / araçları fena halde kullanabilirler Çalışmanızı başka bir veri setinde ve hatta aynı veri setinde çoğaltmak için. Kopyalar orijinal belgeden daha az prestijlidir, çalışmanızı belirteceklerdir ve ödeviniz için güçlü bir onaylama sunacaklardır. Böylece asıl yazarlar, başkalarının bu işleri kendileri için yapmalarına izin vermekten memnuniyet duyarlar.
mgoeminne

@Paul Kaynak kod yayını ile bağlantıyı göremiyorum. Her neyse, iyi editörler, hakemlerin kararlarını haklı çıkarmak için yazdıkları notlara dikkat eder. Bu nedenle “Saçmalık” gibi sözler dikkate alınmıyor. Editör hakemlerin tavsiyelerinin yeterince alakalı olmadığını tahmin ederse, başka bir uzmanın görüşünü ister. Mezun olan öğrenciler inceleme sürecinde yer almazlar. Ve birkaç yıl gönderildikten sonra makalenizin kabul edilmesine izin veremezseniz, bu makalenin (veya içeriğinin) çok iyi olmadığını öngörmeniz gerekir.
mgoeminne

14

Kapalı kaynak değil. Yazılım sadece hiç yayınlanmadı.

Kısa cevap:

Yazılımı yayınlamamanın birkaç nedeni vardır, ancak yazılımı kapalı kaynaklı bir şekilde yayınlamak nadirdir.

Uzun cevap:

Kapalı kaynak, yazılımın yayınlandığı ve kaynak kodunun yayınlanmadığı anlamına gelir . Ancak genel durum ne yazılım ne de kaynak kodun yayınlanmadığıdır .

Tecrübelerime göre (atmosferik bilimde çalışıyorum), yazarlar onlarla iletişim kurarsanız ve araştırma yapmak için kendi yazılımlarını (kaynak kodu da dahil) alıp alamayacağınızı sorarsanız çok mutlu olurlar. Kendilerine dayanan bir proje içeren bir makale yazacaksam, en azından bir alıntı yapacaklar (iyi!), Ama muhtemelen ortak yazılan bir makaleyi çıkaracaklar (elbette, çünkü t Yazılımlarını, birinin yardımı olmadan kullanabilmesi için belgelendirin). Nispeten ucuz bir yardımcı yazar kağıdı, bu yüzden daha iyi .

Asıl soru şudur:

Neden yazılımı yayınlamıyorlar?

Bunun birkaç nedeni var:

  • Yayınlanan yazılımın dokümantasyona ihtiyacı var. Genellikle insanlar dokümantasyon yazmayı sevmezler.
  • Yayımlanan yazılım kullanıcıları etkileyebilir. Kullanıcıların soruları olabilir. Bu zaman alır (ancak yukarıya bakın).
  • Yayımlanan yazılım önemsiz bakım gerektirebilir.
  • Yayımlama yazılımı barındırma gerektirir.

Liste daha uzun olabilirdi. Burada değil, Academia.SE'de ayrı bir soru olmayı hak ediyor.

( Grubumda GPL lisansı altında lisanslı olan yazılımımızı yayınladığımızı unutmayın )


Kodu yayınlamak da mümkün olabilir ancak değişiklik yapılmasına izin vermeyen bir lisans altında.
asmeurer

Yazılımın gerçekten var olduğunu ispatlamak için yazarların yalnızca derlenmiş bir versiyonunu yayınlayabilecekleri bu durumu bile düşünmedim, çünkü nasıl yaptıklarını anlamalarına yardımcı olmuyor - uygulama ayrıntılarını nasıl ifade ettiğimi kullanarak .. Kaynak okumayı seviyorum kod!
alecail

8

Bu çok saçma gelebilir, ancak deneyimlerime göre araştırma yazıları anlaşılması kolay veya çoğaltılması basit olacak şekilde yazılmamıştır. Bunun yerine, araştırma topluluğunda, çok bilimsel görünen ve sağlam görünen bir makaleye sahip olmak daha önemlidir. Bu nedenle çoğu yazar kodlarını matematiksel formüllere dönüştürür ve algoritmalarının matematiksel olarak doğru olduğunu kanıtlamaya çalışır. Genellikle böyle bir makalenin sayfa sayısı sınırlıdır, bu nedenle kodu yayınlamak için boş yer kalmaz. Yine de, elbette bu, hiçbir yazarı tam kodla bir URL’ye bağlamakla sınırlamaz ...

Kod yayınlanmadığında yazarların bulgularını yanlışlamak istediğini veya (kişisel olarak düşündüğüm şeyin daha sık olduğu gibi) insanların araştırmalarının iddia ettiği kadar harika olmadığını görmekten korktuklarını varsayabiliriz. Genelde sonuçlar sadece çok sınırlı sayıda vaka için geçerlidir.

Ayrıca, basit bir programdan / algortihm'den birkaç araştırma makalesinin çıktığını gördüm. Eğer kod yayınlanırsa, aynı konuda başka yazılar yazmak da zor olurdu. Böylece zamanla küçük dilimler halinde yayınlamak için bilgi saklanır.

Üniversitelerde, önemli olan araştırmanın sonuçları veya uygulanabilirliği değil, yayınladığınız makale sayısının çok fazla olmadığını her zaman unutmayın. Üzgün, ama doğru.


13
Bu söyleniyor, araştırmacılara sormaya çalışın! Bazen size kaynak kodu vereceklerdir.
Lucina

3
Burada tam olarak adil olduğunuzu sanmıyorum: "Bunun yerine, araştırma topluluğunda, çok bilimsel görünen ve görünen bir makaleye sahip olmak daha önemlidir.". Bu, altta yatan içeriğe hiçbir değer olmadığını gösterir; çünkü bunu anlayamazsınız çünkü bilimsel görünmektedir. Yayınladığınız kağıtların sayısı, içeriğe hiç kimse ilgi duymuyorsa, neredeyse alakasızdır. Bu cevap, benim görüşüme göre, gerçeklikten ziyade önyargılarınızdan bahsediyor.
temptar

2
@temptar Peki belki biraz olumsuz önyargılıyım. Beni en çok etkileyen şey, pek çok araştırmacının, araştırmalarını anlaşılması kolay bir şekilde tanımlamaya istekli olmadıklarıdır. Bir keresinde bana bir algoritmayı açıkladıktan sonra şöyle bir profesör vardı: “Ancak yazıda bunu daha bilimsel hale getirmek için daha karmaşık yazacağız”.
codingFriend1

6
@ codingFriend1 - Tek bir deneyime dayanarak genellenemez ve genellenmemelidir. Bu çok bilimsel olmayan bir yaklaşımdır. Bir araştırma uzmanı için hedef kitlenin kim olduğunu göz önünde bulundurmalısınız ve birçok durumda, gerekli olduğunu düşündüğünüz açıklamaya ihtiyaç duyan insanlar değildir. Uzman olmayanlara köprü olmak için bunun için bilimsel iletişimimiz var.
temptar

3
Friend1'in cevabını kodlamayı destekliyorum. Bu, yaşadığım bilimsel topluluğa ve özellikle Üniversitemize (ki yine de ülkedeki en iyisi olana) yönelik ortak bir eleştiriydi: bilim adamlarının makaleleri yayınlamaya itilmesi, ne kadar egzotik olursa o kadar iyi. "Yayınla ya da yok ol". Daha az aşina olduğum alanlardan bilim adamları da bunu bildirmektedir. Üzgünüz, ama birçok yerde bu üzücü ve yaygın bir gerçek.
Andres F.

7

Para kazanma niyetinin yanı sıra, kaynak kodunu araştırma kağıtlarının dışında bırakmak için iyi bir neden görmüyorum. Kaynak kodunu, yazılıma, şekline veya biçimine bağlı herhangi bir araştırmayı yayınlamak için bir kural olarak sunmayı öneren küçük bir hareket vardır. Bu konuda daha fazla okuyabilirsiniz, Bilim Kod Manifesto denir .


1
Bağlantı için +1! Bilim ve araştırmanın ne olması gerektiğine olan inancımı tamamen somutlaştırıyor.
Andres F.

6

Yukarıdaki cevaplar, Computer Graphics'te (yazarın bahsettiği makalenin yayınlandığı alan) sıkça ortaya çıkan birkaç pratik nedeni kaçırmaktadır. Kod Serbest Bırakma CS'deki alanlar arasında büyük farklılıklar gösterir - örneğin, Makine Öğrenmesi'nde, kod genellikle yayınlanır. İnsan Bilgisayar Etkileşimi'nde, kod neredeyse hiçbir zaman yayınlanmaz.

Ben Bilgisayar Grafik kod biraz serbest ettim ve yazarlar düşünmek yaparken gerektiğini kodlarını serbest, nedenini pek basit olmayan komplo teorisi nedeni vardır yoktur . Örneğin

1) Computer Graphics araştırma projelerinin çoğu, her biri bulmacanın bir parçasını sağlayan (örneğin, algoritmalar, kütüphaneler, vb.), Çoğu farklı kurumdaki çoklu araştırmacılar arasında işbirliğini içerir. Çalışma kodunu serbest bırakmak için tüm araştırmacıların kabul etmesi gerekir. Bu nadiren basit bir tartışmadır ve genellikle sorundan kaçınmak daha kolaydır.

2) Genellikle, tek bir kağıt için kod, laboratuarda geliştirilen daha büyük bir kod tabanına gömülür. Bu kod temeli başka yayınlanmamış çalışmaları içerecektir. Tek bir projenin kodunu ayırmak, çoğu zaman bu işi yapmak zorunda olan insanlara hemen bir faydası olmadan, çok fazla bir iştir (bkz. Aşağıdaki teşvik).

3) Üniversitelerin çoğu kez kod için IP hakları vardır. Bu nedenle, yaşamınızı hiç durmadan zorlaştıracak, “buluş” u belgelemenizi isteyen, böylece açmadan önce patent alabilmeleri için bir “yenilikler ofisine” başvurmak gerekir. Bazı durumlarda, üniversite kaynak yayınlama iznini bile inkar edebilir (bu, kurumlar arasında değişir ve (1) tarafından oldukça karmaşıktır)

4) Çok sayıda Bilgisayar Grafiği araştırması Şirketler tarafından yapılmıştır. Bu durumda yazarlar da koda sahip değildir ve kodu serbest bırakmak için Avukatlardan izin almak zorundadır. Avukatların evet demek için çok az teşebbüsü yoktur.

5) Kod yayınlamaya teşvik yoktur. Bilgisayar Grafikleri araştırma kodlarının çoğu hiç kimse tarafından kullanılmaz. Olsa bile, genel amaçlı kod için genellikle yalnızca bir onay alırsınız (CV'niz açısından değersiz). Şanslıysanız bir alıntı alırsınız. İşe alım komiteleri ve Hibe ajansları, genellikle kodunuzu yayınladıysanız bir bit umursamazlar. Dolayısıyla, serbest bırakılması için kod hazırlamak için harcanan zaman başka bir kağıtta harcanabilecek zaman kaybıdır. (Bilgisayar Grafikleri'nde aktif olarak bunu değiştirmeye çalışan insanlar var).

6) ilişkin teşvikler mevcuttur değildir kodu yayınlar. Kod bazen başlangıç ​​şirketlerine dönüşebilir, mevcut şirketlere lisanslanabilir vb. Olabilir. Bu, gelecekteki araştırmaları finanse eder. Hepimiz yemek zorundayız.


# 2 çok önemlidir. Bir kağıtla ilgili kodu ayırmak sadece çok büyük bir iş değil, aynı zamanda bir kez yaptığınız zaman, bağlam dışı (yani, diğer 100 araçtan, kütüphaneden ve özel kurulumdan uzakta) bulabilirsiniz. Laboratuar), anlamak ya da kullanmak aslında değersiz ve imkansızdır. Ek olarak, "araştırma kodu" çoğu zaman çok kırılgandır, sağlam bir yazılım sistemi yapmamak için bir kağıdın amacını kanıtlamak için yeterli bir şekilde tasarlanmıştır ve araştırmacının, başka bir şey olacak şekilde düzeltmek için zamanı veya eğilimi yoktur. başkası için şiddetli bir baş ağrısı.
Larry Gritz

5

Değişir. Bildiri yazan kişi veya danışmanı kaynak koduyla ne yapılması gerektiğine karar verir. Bazen insanlar projeyi açık bir kaynak yapar.

Bazen, projeler genellikle şirketler tarafından finanse edilir, bu onların mülkü olduğu anlamına gelir. Bu gibi durumlarda, makalenin yazarının kodu göstermesine izin verilmez.


3

Bu genellikle sayfa sınırlamaları konusudur. Algoritma aşırı derecede kısaysa, çoğu zaman makalede en azından sahte kod olarak gösterilir. Öte yandan, altta yatan kodun basılan versiyonu bile bir avuç sayfa uzunluğundaysa, kodu yazdırmak makalenin etine yer bırakmaz. On sayfa uzunluğunda bir dergi makalesi uzun bir makaledir.

Kaynağın kullanılmaması sahtekarlık için potansiyel yaratır. Bu potansiyel nedeniyle, artık birçok dergi yazarların kaynak kodlarını ek bilgi olarak sunmalarını gerektirmektedir (erişiminiz varsa dergiden alınabilir; yüksek bir abonelik ücreti söz konusu olabilir). Diğer bazı dergilerde yazarların kaynak kodunu isteyen herkese serbest bırakmalarını ister. Ancak diğer dergiler hala karanlık çağlarda; kaynak kodu gönderim için gerekli değildir ve yazarların serbest bırakılması gerekli değildir.

Yapılacak en kolay şey, yazarlara size kaynak kodunu sağlayıp sağlayamayacaklarını sormaktır. Yazarların e-posta adresleri tipik olarak günümüzde çoğu dergi makalesinde listelenmiştir.


1
Bence kaynak kodun gözden geçirilmesi için mevcut olması, tam metninin asıl kağıda dahil edilmesini gerektirmiyor :) Sadece sahtekarlık potansiyeli nedeniyle değil, aynı zamanda gözden geçirenler için yapmadığınızdan şüphelenebilmeniz için gerçekten yararlı olduğunu düşünüyorum. gerçek bir hata yap. Özellikle de kodlayıcılar bilim adamı olsaydı, programcı olmazsa!
Andres F.

3

Bir bilim adamı olarak deneyimim (5 makale yayınlandı), çoğu zaman derginin sonuçları oluşturmak için kullanılan kodu serbest bırakması gerekmediği yönündedir. Bu, dergilerin senaryoları kabul etmeyeceği anlamına gelmiyor. Birçok dergi çevrimiçi ek materyale izin verir. Algoritmalara yönelik bazı dergiler ve diğerleri (örneğin, Bilgisayarlar ve Yerbilimleri) bir algoritmanın kaynağını eklemenizi gerektirir, ancak bu bir kuraldan çok bir istisnadır.

Dergilerdeki kültüre ek olarak, bilim adamları için kod sadece sona ermek için bir araçtır. Pek çoğu profesyonel yazılım geliştirici değildir. Çünkü çoğu kişi kodu sadece bilimi ifade etmek için bir araç olarak görüyor, onlar da kodu yayınlamaya aciliyet duymuyorlar. Ek olarak, kodunuzu yayınlanabileceği noktaya getirmek çok fazla iş gerektirir. Bir bilim insanına yazılım yazmak için değil, bilim yapmak için para verilir.


Ancak yazılım, bir şekilde, kanıtıdır. Bilgisayar biliminin konusu budur: programlar kanıtlar. Bunun ya sonuçlara yeterince güvenilmediğini ya da araştırmanızın çalışma kanıtını üretmenin önemine dair kültürel bir yanlış anlama olduğunu düşünüyorum.
Andres F.

1
Bilgisayar bilimi perse hakkında konuşmuyor, genel olarak daha çok bilim hakkında konuşuyordum. Teorik CS'de birçok insan matematiksel olarak algoritmalar ve kanıtlar üzerinde çalışır. Yazılım sadece bir uygulama, bir düşünce.
Paul Hiemstra

Kodunuz belgede dipnot ise, kabul ediyorum. Bir tür doğrulama ise ve küçük ancak kendi bölümüne sahipse, ispatın veya en azından doğrulamanın bir parçasıdır. Kodu yayınlamayacaksanız, açıkça ilgili değildir ve ayrıca her bir sözü makalenizden de çıkarabilirsiniz!
Andres F.

2

Sık sık değil, gerçek program kendi başına üründen ziyade, sonuna kadar atılacak bir araçtır. Kaynak kodun tüm detaylarını vermek, raporu ve / veya PC'nin şemasını imzalamak için kullanılan kalemin tam bir çizimini sağlamaya benzer.

Özellikle, hakem incelemesinin davet edildiği durumlarda, kaynak kodun - programın içinde yer alan Fikri Mülkiyet Varlığında olduğu gibi - bir çeşit Bilgilendirme Anlaşması (NDA) altında olmasına rağmen, mevcut olacağını söyledi.

Kodla gerçekten ilgileniyorsanız, @Buttons'ın yorumunun en iyi tavsiye olduğunu düşünüyorum: Onlara sorun :)


1

Çok şey, kodun yazıldığı amaca bağlıdır. Bir noktayı gösterecek olsaydı, optimize edilmemiş olabilir ve bu nedenle serbest bırakılması ideal olmayabilir. Altta yatan kavramlar ve metodoloji geçerliyse, kodun sonucunu sıfırdan yeniden oluşturmak mümkün olmalıdır. Ayrıca telif hakkı ve mülkiyet sorunları olabilir.

Prensip olarak, kodu serbest bırakmak teknik olarak imkansız değildir, ancak serbest bırakılmasının nedenleri değişmektedir. Muhtemelen bu nedenle bu sorunun basit bir cevabı yoktur. Belirli durumlarda belki ilgili araştırmacılara sorabilirsiniz.


1

Alıntı ettiğiniz makale 28 sayfadır ve içeriğin çoğu sorunun çözülmesiyle ilgili tasarım kararları hakkındadır (başlıkta belirtilmiştir).

Kod, tasarımı doğrulamak için son adımdır. Önemsiz değildir, ama bilhassa harcayacağı alanı düşünecekseniz, kağıdın sonuçlarına değer katan kısım değildir.

Her durum aynı değildir. Bazı evraklar kaynak kodu ya da en azından sözde kod veriyor. Bazı editörler buna izin vermiyor. Bazıları buna izin verir, ancak alan nedeniyle, yazarlar onu içermez. Kaynak kodunu yayınladığım bir dergi, onu "rakamlar" olarak biçimlendirdi ve elektronik versiyonda, metin olarak göndermeme rağmen, resim verisi var.


1

Teşvikler önemlidir ve araştırmacıların teşvikleri genellikle artımlı olarak birbirleri üzerine inşa edilmiş sabit bir kağıt akışı üretebilmelerini sağlamak içindir. Lisansüstü öğrencilerinin mezun olabilmek için tezlerinin bireysel bölümlerine dönüştürebilecekleri 3-5 yayınlanan bildiriye ihtiyaçları vardır. Junior fakülte, görev süreleri incelemesinden önce ellerinden geldiğince çok sayıda yayın yapmalı. Bu nedenle, çoğu akademik makale nbir seride gerçekten bildiridir . Örneğin, başvuruda bulunduğunuz kağıt, bir yıl önce yayınlanan aynı grupta bir kağıda dayanır ve bir sonraki kağıdın kapsayabileceği zeminleri tartışır.

Kaynak kodu yayınlamak, potansiyel olarak farklı bir gruptaki başka bir araştırmacının kağıt üretmesini sağlar. n+1Asıl yazar yapmadan önce ya da en azından yazarın bu araştırma akışının bir parçası olarak kapsamasını beklediği yerin önemli bir bölümünü kapsayan bir kağıt üretmek için. Böyle bir durumda, mezun olan öğrenci, mezuniyet için yeterli araştırma çıktısı elde etmek amacıyla, mezuniyet okulunda 6-12 ay daha geçirerek kendisini kolayca bulabilir. Öğretim üyesi, görev süresi gözden geçirme süresi geldiğinde daha az yayınlanmış bir makale ile sonuçlanabilir. Bunların her ikisi de açıkça araştırmacının kariyeri için büyük darbeler. Akademik uygulamaların, genellikle bir araştırma grubundaki (doğrudan ya da belirli bileşenleri paylaştığı için) bir araştırma grubundaki birden fazla kişinin araştırma çabalarının bir parçası olduğunu ve araştırma grubunun içinde birinin zarar görmesine neden olabilecek bir kod yayınlamama baskısı bulunduğunu ekleyin. Her gün çalışıyorsun.

Ham veri toplamanın zaman alıcı ve yüksek oranda dağıldığı alanlarda sık sık benzer tartışmalar yaparsınız. Örneğin, astronomide bir araştırma grubu, bir makaleyi yayınlamak için yeterli bilgiye sahip olmadan önce veri toplamak için yıllarını harcayabilir. Ancak daha sonra bir dizi kağıt üretmek için bu verileri kullanırlar. Araştırma grupları, veri setlerini kesinlikle gerekenden daha fazla paylaşmakta isteksizdir, çünkü diğer grupların, verileri gerçekten analiz etmenin getirilerini elde etmek için veri toplama konusunda harcanan zamanda serbest sürüş yapması çok kolaydır.

Sonunda, tıpkı astronomik veriler gibi serbest bırakıldığı gibi, bu kodun çoğu serbest bırakılacak. Bu, yazar bu kağıt dizisinin sonuna geldiğinde veya benzer konularda çalışan araştırma gruplarının çoğunun benzer motorlara sahip olması durumunda ortaya çıkar.

Veri ve kod daha hızlı bir şekilde yayınlanırsa bilim için ideal olacaktır. Ancak bu genellikle bilimsel araştırmaya zarar verir ve bu durumda bu durumun teşviki önemlidir.


“Kaynak kodun yayınlanması, potansiyel olarak farklı bir gruptaki başka bir araştırmacının, orijinal yazarın yapmadan önce n + 1 kağıt üretmesine veya en azından yazarın bunun bir parçası olarak kapsamasını beklediği yerin önemli bir bölümünü kapsayan bir kağıt üretmesine izin verir. araştırma akışı. " Bu bana çok kolay gelmiyor. Çoğu insan (kendim dahil), araştırmacıların yazdıkları kod türlerini anlamakta, yazarların yardımı olmadan, onu genişletmek bile istemezlerdi. Bunun gerçekten olduğu olayları biliyor musunuz?
Faheem Mitha

1

Bunu (öğrenci tarafında) geçmişte birkaç kez yapan biri olarak: çoğu zaman kâğıt yazan profesörler kaynak kodunu bile görmezler. Lisans öğrencilerinin kodu yazmasını sağlayacaklar ve daha sonra tamamlandıktan sonra sadece son çalıştırılabilirleri (veya sadece sonucun bir onayını) isteyeceklerdir .

Ayrıca, çoğu zaman yazılı kod çok okunaklı değildir, çünkü öğrenciler bunu başarmak için bir araya hack ettiler, çünkü (çok parlak olsalar da) gerçek dünya deneyimi olmayan öğrencileri dünyadaki en iyi kodlayıcılar olma eğiliminde değiller. ...


1

Düşünebildiğim sebeplerin çoğu, burada çoktan gündeme geldi, ama aslında başıma gelen iki tane daha ekleyeceğimi düşündüm:

Derginin ne yapacağını bilemez .

Üzerinde çalıştığım yazılardan biri için kesinlikle kaynak kodun (makalenin asıl amacı veri görselleştirmesiydi) ve bununla birlikte verilecek örnek veriyi içerecek bir soru olmadan olmaya karar verdim. Bu yüzden başvuru ile birlikte Elektronik Ekler 1 ve 2'yi ekledim - kodumla birlikte bir R betiği ve söz konusu R betiği için gereken verileri içeren bir CSV dosyası.

Dergi, ortaya çıktığı gibi, yalnızca Word dosyalarına bağlanmışsa elektronik takviyeleri alabilir. R betiğini bu forma sokmak için günün daha iyi bir kısmını denedikten sonra pes ettim ve kodu ek olarak eklememeye karar verdim. Üniversitemde ağırlamış olabilirdim, ancak bir yüksek lisans öğrencisi olarak, ~ 1 yıl içinde hesabımı kaybedeceğimi biliyordum - açık kaynak linkrot ile hemen ele geçirildiyse, hiçbir faydası olmaz.

GitHub'da barındırmayı bıraktım ve kağıda bir referans verdim, ancak bunun nedeni kodun gerçekten girilmesini istemiş olmamdı. Özellikle alanımdaki çoğu GitHub gibi bir şey kullanmadığı için görebiliyorum. bu çabanın, indiren ve gerçekten isterlerse bana e-posta gönderebilecek bir avuç insanın değmeyeceğine karar vermek.

Dergi sadece ilgilenmiyor

Gözden geçirenlerin talepleri üzerine talep üzerine kodun bazı küçük ayrıntılarını ekledim, ancak klinik bir dergi (okundu: hiç kimse yok), elektronik desteklere izin vermiyor ve yine kaynak kodunun eklenmesi muhtemel değerinden daha fazla sorun.

Herkes eğer İronik vermedi kodu aramaya, öyle (veya yakında olacak) açık kaynak, ama ben zaten 'Bu distractingly teknik büyüyor' şeklinde ve kısa, 'gözden mutlu olduğuna karar kenarında koşuyordu 'Bahsetmek istediğim tek şeydi.


0

Çoğu zaman uygulama (yani yazılım önemli değil) ancak uygulama gittikçe artan biçimde, sonuçları etkiliyor.

Uygulama ne zaman önemli olursa olsun, kaynak kod mutlaka hazır olmalı! Sonuçların uygulamaya ya da hesaplama yöntemlerine bağlı olması, kaynak kodun kaydedilmesinin önemi artar.


Kaynak kodu kim / nerede saklayacak. İdeal olarak, makalenin yayınlandığı dergi kaynak kodun tamamını depolar. Ancak en önemli dergilerin çoğu hem makaleyi hem de kaynak kodunu saklamaz. IMO, dergi tüm kaynak kodunu saklama yeteneğine sahip değilse, kaynak kod için web adresli bir saklama yeri bulmaktan yazar sorumludur.
Trevor Boyd Smith

0

Bir kimyager olarak ele aldığım kodun türüne birkaç nokta eklemek istiyorum (kimyager veri analizi yapıyor):

  • Veri analizi kodunu yazan insanlar (benim yaptığım gibi), bu kodu kullanan kişilere kıyasla nispeten azdır . "Evin yazılmış Özel kod" yazarlar yazdım anlamına gelmez - Yazarlar bu yüzden iş arkadaşlarınızın kod olabilir olamaz yayınlayabilirsiniz.

  • Kodun ayrı bir yayınlanması planlanabilir ve kodun (kısmen) daha önce kamuya açıklanması durumunda kodun yazarı (veya denetçisi) yeniliklerin kaybedilmesinden endişe edebilir.
    Kod yayınının amaçlandığı dergi, daha önce kamuya açık olan kodlara itiraz etmese bile , denetçinin (veya IP ofisinde bulunan birisinin) endişesi , kodun yayınlanmasını durdurmak için yeterli olabilir.

  • Veri analizi kodu genellikle verilere göre uyarlanır. Veriler olmadan pek bir anlam ifade etmiyor. (Verilerin yine de yayınlanması gerektiğini savunabilirsiniz, ancak bu farklı bir soru ve konu dışıdır.)
    Herhangi bir şekilde kurumumda, ham verileri ve veri analiz kodunu makaleyle birlikte arşivliyoruz. Varsayılan politika (henüz?) Onları halka açık hale getirmek için değildir, ancak talep üzerine kesinlikle sağlanacaktır.

  • (Kimyada tekrar üretilebilirliğin ne olduğuna dair geleneksel görüş, asıl kaynak kodun gönderilmesinden ziyade algoritmanın bir tanımına (muhtemelen sözde koduna) karşılık gelir.

  • Meslektaşlarımın çoğu veri analizi için veri analizinin adımlarını kaydetmeyen etkileşimli araçlar kullanıyor. Yani yayınlanabilecek hiçbir kaynak kod yok . Veri analizi, bir programlamaya laboratuar yaklaşımından ziyade daha az karşılık gelir: bir şeyler yaparsınız ve laboratuar kitabınızda neler yaptığınızı ve gözlemlediğinizi yazarsınız.


Bu cevap veri analizi bakış açısına göre, yani belirli bir nişe dayanıyor. Bununla birlikte, bu soru akademi ile bağlantılıdır.
cbeleites
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.