ทำไมไม่วิจัยเอกสารที่กล่าวถึงซอฟต์แวร์ที่กำหนดเองปล่อยซอร์สโค้ด? [ปิด]


69

มีเหตุผลหรือไม่ที่ซอร์สโค้ดของซอฟต์แวร์ที่กล่าวถึงในรายงานการวิจัยไม่ได้ถูกเปิดเผย? ฉันเข้าใจว่างานวิจัยเป็นเรื่องเกี่ยวกับแนวคิดทั่วไปของการทำอะไรบางอย่างให้สำเร็จกว่ารายละเอียดการใช้งาน แต่ฉันไม่เข้าใจว่าทำไมพวกเขาถึงไม่ปล่อยโค้ด

ตัวอย่างเช่นกระดาษนี้ลงท้ายด้วย:

ผล

ระบบการวาดเส้นมนุษย์ถูกนำไปใช้ผ่านเฟรมเวิร์ก Qt ใน C ++ โดยใช้ OpenGL และรันบนเวิร์กสเตชันโปรเซสเซอร์ Dual Core 2.00 GHz Intel โดยไม่ต้องใช้ฮาร์ดแวร์เพิ่มเติมใด ๆ เราสามารถวาดเส้นแบบโต้ตอบในขณะที่ระบบสังเคราะห์เส้นทางและพื้นผิวใหม่

พวกเขาปิดซอร์สโค้ดโดยเจตนาเนื่องจากการสร้างรายได้ที่พวกเขาตั้งใจจะทำกับมันหรือเพราะลิขสิทธิ์


42
ด้วยเหตุผลเดียวกันกับที่เอกสารส่วนใหญ่ขาดข้อมูลดิบ (การเผยแพร่ "ผลลัพธ์" บิดเบือนทางสถิติเท่านั้น)
SK-logic

2
ฉันแก้ไขคำถาม บางที "พูดถึง" อาจไม่ใช่คำที่ดีที่สุด ในบางกรณีประเด็นบางประการที่เกิดขึ้นในเอกสารนั้นขึ้นอยู่กับซอฟต์แวร์เป็นช่วง ๆ แต่ซอฟต์แวร์นั้นเป็นไอ เช่นเดียวกับในการประเมินความถูกต้องของกระดาษอย่างถูกต้องใครบางคนจะต้องสามารถเรียกใช้ซอฟต์แวร์ได้
Kaz

7
@ JohnL ฉันว่ากระดาษสามารถขึ้นอยู่กับซอฟต์แวร์โดยไม่ต้องเกี่ยวกับซอฟต์แวร์ เหมือนทรัพย์สินที่น่าสนใจของโลกที่แสดงให้เห็น / พบโดยใช้เครื่องมือซอฟต์แวร์ หากเราไม่สามารถตรวจสอบเครื่องมือเราจะทราบได้อย่างไรว่าข้อสรุปนั้นถูกต้อง (หรือค่อนข้าง: มันเป็นวิธีที่ง่ายต่อการตรวจสอบมันถ้าเราสามารถดูเครื่องมือ!)
Andres F.

4
@Andres F - ความเป็นไปได้อย่างหนึ่งคือการใช้ซอฟต์แวร์เวอร์ชั่นของคุณเองโดยใช้แนวคิดที่อธิบายไว้ในบทความ แม้ว่านี่จะทำงานได้มากกว่า แต่ก็มีคุณค่ามากกว่า - การรันการใช้งานเดียวกันอีกครั้งแสดงให้เห็นถึงการใช้งานเพียงครั้งเดียวอีกครั้ง การนำไปใช้ใหม่ช่วยแสดงให้เห็นว่าความคิดของพวกเขานั้นถูกต้องและไม่ใช่รายละเอียดของการนำไปปฏิบัติบางอย่าง ปัญหาที่สำคัญที่อาจไม่เคยสังเกตเห็นหรืออธิบายมาก่อนอาจถูกค้นพบในระหว่างการนำกลับมาใช้ใหม่
Steve314

3
@ KonradRudolph แน่นอนว่ามันจะไม่สามารถใช้ได้เสมอไป อาจใช้งานไม่ได้ในสองสามปีนับตั้งแต่การตีพิมพ์ (เทปลบและนำกลับมาใช้ใหม่ทั้งกลุ่มถูกยกเลิกกระดาษฉีกเป็นชิ้นเล็กชิ้นน้อย ฯลฯ )
SK-logic

คำตอบ:


71

ด้วยเหตุผลหลายประการ

  • รหัสมีขนาดใหญ่เกินไปสำหรับบทความ ในช่วงเวลาสั้น ๆ โครงการที่น่าสนใจนั้นสั้นพอที่จะเผยแพร่ด้วยกระดาษที่อธิบายไว้ สิ่งนี้ยังคงเกิดขึ้นได้ แต่หลายโครงการที่มีขนาดใหญ่พอที่จะน่าสนใจได้เติบโตขึ้นใหญ่เกินกว่าจะตีพิมพ์ด้วยเอกสารที่อธิบายได้
  • โฮสต์สาธารณะไม่ฟรีหรือคงทน จนกระทั่งเมื่อไม่นานมานี้ราคาถูกคงทนและเข้าถึงโฮสต์สาธารณะได้ง่าย
  • การเผยแพร่กระดาษนั้นง่ายกว่าการเผยแพร่โครงการ บางคนมีเวลาในการเผยแพร่บทความหรือโครงการ แต่ไม่ใช่ทั้งสองอย่าง
  • แรงจูงใจผูกติดอยู่กับบทบาท หลายปีที่ผ่านมาฉันถามเพื่อนร่วมงานเกี่ยวกับการพัฒนาผลิตภัณฑ์และสิทธิบัตรและได้คำว่าคนส่วนใหญ่ที่นั่นทำอย่างใดอย่างหนึ่ง เช่นเดียวกับนักเขียนกระดาษ (คิดว่านักวิชาการ) และนักพัฒนาโอเพ่นซอร์สรางวัลจะมุ่งเน้นไปที่ผลิตภัณฑ์งานหนึ่งหรืออื่น ๆ
  • แรงจูงใจในตนเอง ความปรารถนาที่จะอธิบายแนวคิดหรือการนำรหัสมาใช้ไม่ได้แสดงอยู่ในส่วนที่เท่ากันในบุคคลเดียวกันเสมอไป อาจารย์ของฉันหลายคนยอมรับอย่างเปิดเผยว่าพวกเขาไม่เคยเขียนรหัสมากหรืออยู่ห่างจากการเขียนรหัสอย่างคล่องแคล่วเป็นเวลาหลายปี ในทำนองเดียวกันนักพัฒนาหลายคนแทบจะไม่ต้องการเขียนความคิดเห็นในรหัสของพวกเขาหรือเมื่อพวกเขากระทำเพื่อควบคุมแหล่งที่มา
  • ความทนทานของการโฮสต์โครงการและผลิตภัณฑ์ที่ใช้งานก็เป็นปัญหาเช่นกัน ใครอยากจะเชื่อมโยงบางแห่งที่อาจหายไปไม่กี่ปีจากนี้และเป็นผลให้ลดค่าของกระดาษ
  • ประเพณี. ผู้จัดพิมพ์มุ่งเน้นไปที่การตรวจสอบและเผยแพร่เอกสาร แต่อาจไม่พร้อมสำหรับการประเมินผลโครงการเดียวกัน
    นอกจากนี้มุมมองแบบดั้งเดิมในสิ่งที่เป็นระดับที่เหมาะสมของการทำซ้ำแตกต่างกันไปในแต่ละสาขา นักเคมีที่ตีพิมพ์บทความเกี่ยวกับวิธีการสังเคราะห์ใหม่คาดว่าจะเขียนรายละเอียดที่เพียงพอสำหรับนักเคมีคนอื่นเพื่อทำการสังเคราะห์ เธอไม่ได้ถูกคาดหวังให้จัดส่ง educts และผลิตภัณฑ์ไปยังวารสาร ผู้อ่านที่ต้องการใช้ / ทำซ้ำกระดาษคาดว่าจะซื้อของตัวเองและทำการสังเคราะห์เองในห้องปฏิบัติการของพวกเขา (แม้ว่าพวกเขาอาจขอให้มาเยี่ยมชมห้องปฏิบัติการเพื่อดูว่ามันจะทำในทางปฏิบัติ) นักชีววิทยาจะไม่คาดว่าจะติดหนูแปลงพันธุ์ใหม่ของเขากับกระดาษ มุมมองเกี่ยวกับการทำซ้ำนี้สอดคล้องกับเช่นให้คำอธิบาย (หลอกรหัส) ของอัลกอริทึมเมื่อเทียบกับการจัดส่งการใช้งานจริง
  • รหัส Naked สามารถตกตะลึง ใช้เวลาขัดน้อยลงในการอ่านเอกสารที่มีความยาวกระดาษมากกว่าการตรวจสอบรหัสตรวจสอบรหัสและคุณภาพรับประกันโครงการ ฉันมีรหัสจำนวนมากฉันจะบอกคุณได้ดีกว่าแสดงให้คุณเห็น หวังว่าทุกสิ่งจะก้าวไปข้างหน้าถึงจุดที่เราทุกคนจะเขียนโค้ดที่สวยงาม แต่ถ้ารหัสของคุณถูกเร่งเร้าแทบจะไม่ทำงานหรือไม่สมบูรณ์คุณอาจจะรู้สึกสบายใจที่จะไม่แบ่งปันไฟล์ปฏิบัติการหรือแหล่งที่มา
  • แหล่งที่มาปิด ไม่ใช่ทุกคนที่ได้ยอมรับโอเพ่นซอร์ส เอกสารจำนวนมากถูกเขียนเกี่ยวกับงานสำหรับกระทรวงโครงการเชิงพาณิชย์หรือโครงการเอกชนที่มีผลประโยชน์จากการเปิดเผยโครงการต่อสาธารณชน แต่ยังคงมีความลับทางการค้าหรือข้อได้เปรียบทางการค้ารายแรกหรือข้อได้เปรียบทางการตลาดเป็นครั้งแรก ผลิตภัณฑ์งานอื่น ๆ
  • เผยแพร่งานเพิ่มเติมตามรหัสนี้ หากรหัสไม่ถูกเผยแพร่อาจทำให้ผู้เขียนได้เปรียบในการเผยแพร่การติดตามผล นักวิจัยอื่น ๆ ที่แข่งขันกันอาจจำเป็นต้องปรับใช้งานใหม่ซึ่งอาจต้องใช้เวลาอันมีค่า

27
หากกระดาษขึ้นอยู่กับซอร์สโค้ดก็ไม่ควรเผยแพร่ หากคุณไม่สามารถเผยแพร่รหัสได้คุณจะไม่สามารถเผยแพร่เอกสารได้ กระดาษที่ระบุว่า "โปรแกรมของเราทำสิ่งที่ยอดเยี่ยมเหล่านี้" และคุณไม่สามารถประเมินบทความได้โดยไม่ต้องใช้โปรแกรมนั้นจากนั้นกระดาษจะเป็นแผ่นพับโฆษณาสำหรับซอฟต์แวร์บางอย่าง
Kaz

3
ในข้อตกลงฉบับสมบูรณ์กับ Kaz - หากต้องการตรวจทานงานวิจัยที่คุณต้องการบางสิ่งที่ไม่พร้อมใช้งาน (ข้อมูลรหัส ฯลฯ ) ไม่ควรยอมรับวารสารที่ตรวจสอบโดยเพื่อน ข้อโต้แย้งเกือบทั้งหมดที่ DeveloperDon ระบุได้ชี้ให้เห็นว่าเป็นเรื่องจริงสำหรับการเผยแพร่ข้อมูลเช่นกัน ... แต่ตอนนี้มีการเคลื่อนไหวค่อนข้างใหญ่ในช่วงไม่กี่ปีที่ผ่านมา
โจ

3
โพสต์ที่ดี ฉันยังเพิ่มว่าบางครั้งนักวิทยาศาสตร์ที่แยกต่างหากที่สร้างซอฟต์แวร์ขึ้นมาเองนั้นเป็นส่วนหนึ่งของการทำซ้ำของการทดสอบ ถ้ามันใช้งานได้เฉพาะวิธีที่ 1 คนใช้รหัส แต่ไม่ใช่วิธีที่ผู้อื่นใช้รหัส ... จากนั้นผลลัพธ์สามารถถูกถามด้วยคำถามและข้อผิดพลาดสามารถระบุได้
Jimbo Jonny

4
จุดที่สองถึงจุดสุดท้ายของคุณแข็งแกร่งที่สุด
l

4
@AndresF รหัสเป็นสิ่งสำคัญอย่างยิ่งในกระดาษ บทความคือ "นี่คือสิ่งที่ฉันทำนี่คือวิธีการของฉันนี่คือผลลัพธ์ของฉัน" รหัสคือการประมวลผลของวิธีการและควรให้ผลลัพธ์ที่แน่นอนเหมือนกัน หากคุณต้องการทำซ้ำผลลัพธ์ของกระดาษ แต่ใช้รหัสของกระดาษคุณจะไม่ทำซ้ำสิ่งใด สิ่งที่คุณควรทำคืออ่านส่วนวิธีการของพวกเขามาพร้อมกับการนำไปใช้งานของคุณเองแล้วเขียนบทความเกี่ยวกับเรื่องนี้เมื่อคุณไม่สามารถทำซ้ำผลลัพธ์ของพวกเขาได้
Tacroy

40

อ่านการนำเสนอของ Randall LeVeque ในหัวข้อ "เหตุผล 10 อันดับแรกที่ไม่เปิดเผยรหัสของคุณ (และเหตุผลที่คุณควรทำต่อไป)" http://faculty.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

เขาให้เหตุผลว่ารหัสนั้นคล้ายคลึงกับบทพิสูจน์ในวิชาคณิตศาสตร์และเชิญชวนให้เราพิจารณาโลกที่การพิสูจน์ไม่ได้ถูกเผยแพร่เพราะมันยาวเกินไปหรือน่าเกลียดเกินไปหรือไม่ทำงานในกรณีขอบหรืออาจจะคุ้มค่า เงินหรือใครบางคนอาจขโมยมัน ...

โดยทั่วไปถ้าคุณกำลังทำวิทยาศาสตร์คุณควรเผยแพร่รหัสของคุณ มิฉะนั้นคุณกำลังเล่นแร่แปรธาตุและคุณสามารถบินกลับไปยังยุคมืดและตายจากโรคระบาดเท่าที่ฉันกังวล


7
+1 การนำเสนอที่ยอดเยี่ยม ฉันดีใจที่มีคนผลักดันให้เกิดการเปลี่ยนแปลง :)
Andres F.

+1 ขอบคุณสำหรับลิงค์; ที่อาจช่วยฉันในการเจรจาอย่างต่อเนื่องกับเจ้านายของฉันเกี่ยวกับการปล่อยรหัสของเราบางส่วนเป็นโอเพ่นซอร์ส
แฟรงค์

คำพูดขึ้นมา! การเปรียบเทียบที่ดีสมควรได้รับคะแนนจากฉัน
nullpotent

ฉันไม่แน่ใจว่าการเปรียบเทียบนี้ดีมากสำหรับวัตถุประสงค์ที่นี่ ฉันเป็นนักเคมี (ใครอยากเห็นรหัสที่ตีพิมพ์มากกว่านี้) ไม่มีนักคณิตศาสตร์ แต่บทพิสูจน์ที่ฉันเคยเห็นมักจะไม่ได้ทำทุกขั้นตอน ดังนั้น IMHO จึงสอดคล้องกับคำอธิบายหลอกรหัสย่อของอัลกอริทึมมากกว่าซอร์สโค้ดจริง
cbeleites

27

โดยทั่วไปแล้วโปรแกรมที่ใช้สร้างผลลัพธ์ของเอกสารเป็นเพียงเครื่องมือและมีเพียงผลลัพธ์เท่านั้น ดังนั้นพวกเขาจึงไม่ถูกวางลงบนกระดาษซึ่งนำเสนอบริบทวิธีการผลลัพธ์และการอภิปรายเกี่ยวกับพวกเขา

แต่ผลลัพธ์จะต้องทำซ้ำ จากนั้นเมื่อแหล่งข้อมูลที่เป็นกระดาษนั้นเปิดเผยต่อสาธารณชนโปรแกรมแปลงให้เป็นผลลัพธ์มักจะต้องใช้ด้วย พวกเขามักจะวาง "ที่ไหนสักแห่ง" บนเว็บหากไม่ยกประเด็นสิทธิบัตร / ลิขสิทธิ์ หรืออย่างน้อยผู้แต่งจะต้องส่งโปรแกรมให้คุณหากคุณถามพวกเขา


2
ฉันไม่คิดว่าคุณต้องส่งใครก็ตามที่ถามรหัสที่มีค่าของคุณกับคุณ ... IMHO คำตอบนี้ผิด แต่ผมอยากจะเห็นโลกการวิจัยที่มีข้อมูลเป็นฟรี ...
เดิร์ค

3
@ Dirk เท่าที่ฉันรู้นี้เป็นเรื่องธรรมดาในการศึกษาเชิงประจักษ์ซอฟต์แวร์ ในการส่งทีมของฉันในโดเมนนี้ครั้งล่าสุด (ยังไม่ได้รับการยอมรับ) ผู้ตรวจสอบคนหนึ่งขอให้สาธารณชนเข้าถึงข้อมูลของเรารวมถึงรหัสบางส่วนอย่างชัดเจน ฉันไม่เข้าใจว่าทำไมรหัสควรมีค่ามาก เป็นเพียงการทำให้เกิดความคิดที่อธิบายไว้ในบทความ การเผยแพร่โปรแกรมเป็นวิธีที่จะให้ผู้อ่านตรวจสอบว่าเราแปลความคิดของเราเป็นการกระทำที่ถูกต้องหรือไม่
mgoeminne

1
อืมคุณรู้หรือไม่ว่า (ก) ผู้ตรวจสอบของคุณคือใครและ (ข) ให้รหัสและข้อมูลของคุณกับคนที่อาจแข่งขันกับคุณโดยตรง
เดิร์ค

1
ไม่ใช่เพราะ (a) ผู้ตรวจสอบขอให้เผยแพร่รหัสในสถานที่ที่พวกเขาสามารถเข้าถึงโดยไม่ระบุชื่อ (หรือการรับรองความถูกต้องทำโดยวารสาร) (b) เมื่อบทความของคุณเผยแพร่แล้วนักวิจัยคนอื่น ๆ สามารถใช้วิธีการ / เครื่องมือเดียวกัน เพื่อทำซ้ำการศึกษาของคุณในชุดข้อมูลอื่นหรือแม้แต่ในชุดข้อมูลเดียวกัน การทำซ้ำมีชื่อเสียงน้อยกว่ากระดาษต้นฉบับพวกเขาจะกล่าวถึงงานของคุณและพวกเขาให้การตรวจสอบที่แข็งแกร่งกับกระดาษของคุณ ดังนั้นผู้เขียนดั้งเดิมยินดีที่จะให้ผู้อื่นทำงานทั้งหมดนี้เพื่อพวกเขา
mgoeminne

@Paul ฉันไม่เห็นการเชื่อมต่อกับการเผยแพร่ซอร์สโค้ด อย่างไรก็ตามผู้แก้ไขที่ดีต้องใส่ใจกับหมายเหตุที่ผู้ตรวจทานเขียนเพื่อให้เหตุผลในการตัดสินใจ ดังนั้นจึงกล่าวถึงเช่น "เรื่องไร้สาระ" ไม่ได้นำมาพิจารณา หากบรรณาธิการประเมินข้อเสนอแนะของผู้ตรวจสอบที่ไม่เกี่ยวข้องพอเขาถามความเห็นของผู้เชี่ยวชาญคนอื่น นักเรียนที่จบไม่ได้มีส่วนร่วมในกระบวนการตรวจสอบ และหากคุณไม่สามารถปล่อยให้เอกสารของคุณตอบรับหลังจากส่งมานานหลายปีคุณควรมองเห็นบทความนี้ (หรือเนื้อหา) ไม่ดีนัก
mgoeminne

14

มันไม่ได้เป็นแหล่งปิด ซอฟต์แวร์ก็ยังไม่ได้รับการเผยแพร่เลย

คำตอบสั้น ๆ :

มีสาเหตุหลายประการที่จะไม่เผยแพร่ซอฟต์แวร์ แต่เป็นเรื่องแปลกที่จะเผยแพร่ซอฟต์แวร์ในลักษณะที่เป็นแหล่งปิด

คำตอบยาว:

แหล่งที่ปิดหมายถึงซอฟต์แวร์ที่ได้รับการเผยแพร่และรหัสแหล่งที่มาไม่ได้ แต่กรณีที่เหมือนกันคือทั้งซอฟแวร์หรือแหล่งที่มาของรหัสที่ได้รับการตีพิมพ์

จากประสบการณ์ของฉัน (ฉันทำงานในวิทยาศาสตร์บรรยากาศ) ผู้เขียนมีความสุขมากถ้าคุณติดต่อพวกเขาและถามว่าคุณจะได้รับซอฟต์แวร์ของพวกเขา (รวมถึงซอร์สโค้ดแน่นอน) สำหรับการทำวิจัย ถ้าฉันจะเขียนบทความเกี่ยวกับโครงการของพวกเขาอย่างน้อยพวกเขาก็จะได้รับการอ้างอิงจากมัน (ดี!) แต่อาจได้รับกระดาษที่เขียนร่วมจากมัน (เพราะแน่นอนพวกเขาไม่ได้ ' จัดทำเอกสารซอฟต์แวร์เพื่อให้ผู้อื่นสามารถใช้งานได้โดยไม่ต้องใช้ความช่วยเหลือ) กระดาษเขียนร่วมที่ค่อนข้างถูกดังนั้นมันดีกว่ามาก

คำถามที่แท้จริงคือ:

เหตุใดพวกเขาจึงไม่เผยแพร่ซอฟต์แวร์

มีหลายสาเหตุนี้:

  • ซอฟต์แวร์ที่เผยแพร่ต้องมีเอกสารประกอบ โดยปกติแล้วคนไม่ชอบเขียนเอกสาร
  • ซอฟต์แวร์ที่เผยแพร่อาจดึงดูดผู้ใช้ ผู้ใช้อาจมีคำถาม ใช้เวลา (แต่ดูด้านบน)
  • ซอฟต์แวร์ที่เผยแพร่อาจต้องมีการบำรุงรักษาที่ไม่สำคัญ
  • ซอฟต์แวร์การเผยแพร่ต้องใช้โฮสติ้ง

รายการอาจจะทำอีกต่อไป มันสมควรที่จะเป็นคำถามแยกต่างหากที่ Academia.SE ไม่ใช่ที่นี่

(โปรดทราบว่าในกลุ่มของฉันเราจะเผยแพร่ซอฟต์แวร์ของเรา - ได้รับอนุญาตภายใต้ GPL )


มันอาจเป็นไปได้ที่จะเผยแพร่รหัส แต่ภายใต้ใบอนุญาตที่ไม่อนุญาตให้แก้ไข
asmeurer

ฉันไม่เคยนึกถึงสถานการณ์นี้ที่ผู้เขียนจะเผยแพร่เฉพาะเวอร์ชันที่คอมไพล์เพียงเพื่อพิสูจน์ว่าซอฟต์แวร์มีอยู่จริงเพราะมันไม่ได้ช่วยให้เข้าใจว่าพวกเขาทำอย่างไร - โดยฉันหมายถึงรายละเอียดการดำเนินการฉันชอบอ่านแหล่งข้อมูล รหัส!
alecail

8

ที่อาจฟังดูถูก แต่ในงานวิจัยประสบการณ์ของฉันไม่เขียนง่ายต่อการเข้าใจหรือง่ายในการทำซ้ำ แต่ในชุมชนการวิจัยมันสำคัญกว่าที่จะมีบทความที่ฟังดูดีและมีความเป็นวิทยาศาสตร์มาก ด้วยเหตุผลดังกล่าวผู้เขียนส่วนใหญ่จึงแปลงรหัสของพวกเขาเป็นสูตรทางคณิตศาสตร์และพยายามพิสูจน์ว่าอัลกอริทึมของพวกเขาถูกต้องทางคณิตศาสตร์ โดยปกติแล้วจำนวนหน้าสำหรับบทความดังกล่าวจะถูก จำกัด ดังนั้นจึงไม่มีพื้นที่เหลือสำหรับการเผยแพร่โค้ด แต่แน่นอนว่าสิ่งนี้จะไม่ จำกัด ผู้แต่งที่จะเชื่อมโยงไปยังรหัสที่สมบูรณ์ด้วย URL ...

อาจสันนิษฐานได้ว่าหากรหัสไม่ถูกเผยแพร่ผู้เขียนต้องการสรุปผลการค้นพบของพวกเขาหรือ (สิ่งที่ฉันคิดว่าเป็นการส่วนตัวมากขึ้น) พวกเขากลัวว่าคนจะเห็นว่างานวิจัยของพวกเขาไม่น่าประทับใจเท่าที่อ้าง บ่อยครั้งที่ผลลัพธ์นำไปใช้กับกรณีจำนวน จำกัด เท่านั้น

นอกจากนี้ฉันได้เห็นว่าจากหนึ่งในโปรแกรม / algortihm ง่าย ๆ งานวิจัยหลายฉบับที่ถูกปั่นออก หากรหัสจะถูกเผยแพร่ก็จะยากที่จะเขียนเอกสารเพิ่มเติมในหัวข้อเดียวกัน ดังนั้นความรู้จึงถูกระงับไว้เพื่อเผยแพร่ในช่วงเวลาเล็ก ๆ น้อย ๆ

โปรดจำไว้เสมอว่าที่มหาวิทยาลัยมันไม่ได้เป็นผลลัพธ์ที่มากหรือการบังคับใช้การวิจัยที่สำคัญ แต่จำนวนเอกสารที่คุณเผยแพร่ มันเศร้า แต่จริง


13
สิ่งนี้ถูกกล่าวว่าลองถามนักวิจัย! บางครั้งพวกเขาจะให้รหัสต้นฉบับแก่คุณ
Lucina

3
ฉันไม่คิดว่าคุณจะยุติธรรมอย่างเต็มที่ที่นี่: "ในชุมชนการวิจัยเป็นสิ่งสำคัญยิ่งกว่าที่จะมีบทความที่ฟังดูดีและมีความเป็นวิทยาศาสตร์มาก" นี่หมายความว่าไม่มีค่าต่อเนื้อหาอ้างอิงเกือบเป็นเพราะคุณไม่สามารถเข้าใจได้เพราะมันดูเป็นวิทยาศาสตร์ จำนวนเอกสารที่คุณเผยแพร่แทบไม่เกี่ยวข้องหากไม่มีใครสนใจเนื้อหามากนัก ในมุมมองของฉันการตอบสนองนี้พูดถึงอคติของคุณมากกว่าความเป็นจริง
ล่อลวง

2
@temptar บางทีฉันอาจจะลำเอียงในทางลบ สิ่งที่ทำให้ฉันประทับใจมากที่สุดคือนักวิจัยส่วนใหญ่ไม่เต็มใจที่จะอธิบายงานวิจัยของพวกเขาในแบบที่เข้าใจง่าย เมื่อฉันมีอาจารย์ผู้หนึ่งซึ่งหลังจากอธิบายอัลกอริธึมให้ฉันแล้วเพิ่ม: "แต่ในกระดาษเราจะเขียนสิ่งนี้ซับซ้อนมากขึ้นเพื่อให้มันฟังดูเป็นวิทยาศาสตร์มากกว่า"
codingFriend1

6
@ codingFriend1 - คุณไม่สามารถและไม่ควรพูดคุยบนพื้นฐานของประสบการณ์เดียว นั่นเป็นวิธีการที่ไม่มีหลักวิทยาศาสตร์อย่างลึกซึ้ง คุณต้องพิจารณาว่าใครคือกลุ่มเป้าหมายสำหรับผู้เชี่ยวชาญด้านการวิจัยและในหลาย ๆ กรณีมันไม่ใช่คนที่ต้องการคำอธิบายที่คุณคิดว่าจำเป็น นี่คือสิ่งที่เรามีการสื่อสารทางวิทยาศาสตร์สำหรับ - เพื่อเชื่อมกับผู้ที่ไม่ใช่ผู้เชี่ยวชาญ
ล่อลวง

3
ฉันสนับสนุนคำตอบของ codingFriend1 นี่เป็นคำวิจารณ์ทั่วไปที่มุ่งเน้นไปที่ชุมชนวิทยาศาสตร์ที่ฉันอาศัยอยู่และโดยเฉพาะที่มหาวิทยาลัยของฉัน (ซึ่งเป็นสิ่งที่ดีที่สุดในประเทศ): นักวิทยาศาสตร์ถูกผลักดันให้ตีพิมพ์เอกสารยิ่งแปลกใหม่ยิ่งดี "เผยแพร่หรือพินาศ" นักวิทยาศาสตร์จากพื้นที่ที่ฉันไม่ค่อยคุ้นเคยก็รายงานเรื่องนี้เช่นกัน ขออภัยในหลาย ๆ ที่มันเป็นความจริงที่น่าเศร้าและแพร่หลาย
Andres F.

7

นอกเหนือจากความตั้งใจที่จะสร้างรายได้ฉันไม่เห็นเหตุผลที่ดีสำหรับการปล่อยซอร์สโค้ดออกจากงานวิจัย มีการเคลื่อนไหวเล็ก ๆ ที่เริ่มเสนอรหัสแหล่งที่มาเป็นกฎในการเผยแพร่งานวิจัยใด ๆ ที่ขึ้นอยู่กับซอฟต์แวร์ในบางวิธีรูปร่างหรือรูปแบบ คุณสามารถอ่านเพิ่มเติมเกี่ยวกับเรื่องนี้ก็เรียกว่ารหัสวิทยาศาสตร์ประกาศ


1
+1 สำหรับลิงก์! มันแสดงให้เห็นถึงความเชื่อของฉันในสิ่งที่วิทยาศาสตร์และการวิจัยควรจะเป็น
Andres F.

6

คำตอบข้างต้นพลาดด้วยเหตุผลบางประการที่เกิดขึ้นบ่อยๆในคอมพิวเตอร์กราฟิกส์ การปล่อยรหัสแตกต่างกันอย่างมากระหว่างเขตข้อมูลใน CS - ตัวอย่างเช่นในการเรียนรู้ของเครื่องรหัสมักจะถูกเผยแพร่ ใน Human Computer Interaction รหัสนั้นแทบจะไม่เคยเผยแพร่เลย

ฉันได้รับการปล่อยตัวไม่น้อยของรหัสในคอมพิวเตอร์กราฟฟิคและในขณะที่ฉันคิดว่าผู้เขียนควรปล่อยรหัสของพวกเขามีหลายเหตุผลง่ายไม่สมรู้ร่วมคิดทฤษฎีว่าทำไมพวกเขาทำไม่ได้ ตัวอย่างเช่น

1) โครงการวิจัยด้านกราฟิกคอมพิวเตอร์ส่วนใหญ่เกี่ยวข้องกับการทำงานร่วมกันระหว่างนักวิจัยหลายคนซึ่งมักจะอยู่ในสถาบันที่แตกต่างกันโดยแต่ละแห่งจะให้ชิ้นส่วนของปริศนา (เช่นอัลกอริทึมห้องสมุด ฯลฯ ) ในการเผยแพร่รหัสการทำงานนักวิจัยทุกคนต้องยอมรับ นี่เป็นการสนทนาที่ง่ายและมักจะหลีกเลี่ยงปัญหาได้ง่ายกว่า

2) บ่อยครั้งที่โค้ดสำหรับกระดาษแผ่นเดียวถูกฝังอยู่ใน codebase ขนาดใหญ่กว่าซึ่งได้รับการพัฒนาภายในห้องปฏิบัติการ codebase นั้นจะมีงานที่ไม่ได้เผยแพร่อื่น ๆ การแยกรหัสสำหรับโครงการเดียวนั้นเป็นงานจำนวนมากบ่อยครั้งที่ไม่มีประโยชน์ทันทีต่อคนที่ต้องทำงานนี้ (ดูสิ่งจูงใจด้านล่าง)

3) มหาวิทยาลัยมักจะมีสิทธิ์ใน IP ของรหัส ดังนั้นจึงจำเป็นต้องติดต่อ "สำนักงานนวัตกรรม" ที่จะทำให้ชีวิตของคุณไม่มีที่สิ้นสุดยากที่ต้องการให้คุณเอกสาร "การประดิษฐ์" เพื่อให้พวกเขาสามารถจดสิทธิบัตร ฯลฯ ก่อนที่คุณจะเปิดแหล่งที่มา ในบางกรณีมหาวิทยาลัยอาจปฏิเสธการอนุญาตให้ปล่อยแหล่งที่มา (ซึ่งแตกต่างกันระหว่างสถาบันและมีความซับซ้อนมากโดย (1))

4) การวิจัยกราฟิกคอมพิวเตอร์จำนวนมากดำเนินการโดย บริษัท ในกรณีดังกล่าวผู้เขียนไม่ได้เป็นเจ้าของรหัสอย่างใดอย่างหนึ่งและจะต้องได้รับอนุญาตจากทนายความเพื่อที่จะปล่อยรหัส ทนายความแทบไม่มีแรงจูงใจที่จะตอบว่าใช่

5) ไม่มีแรงจูงใจในการเผยแพร่โค้ด ไม่มีใครอื่นใช้รหัสการวิจัยกราฟิกคอมพิวเตอร์กราฟิก แม้ว่าจะเป็นรหัสทั่วไปคุณก็จะได้รับการตอบรับ หากคุณโชคดีคุณจะได้รับการอ้างอิง การว่าจ้างคณะกรรมการและหน่วยงานให้สิทธิ์โดยทั่วไปจะไม่สนใจสักนิดหากคุณปล่อยรหัสของคุณ ดังนั้นเวลาที่ใช้ในการเตรียมรหัสสำหรับการเปิดตัวจึงเป็นการเสียเวลาที่อาจใช้ไปกับเอกสารอื่น (มีคนพยายามเปลี่ยนสิ่งนี้ในคอมพิวเตอร์กราฟิก)

6) มีแรงจูงใจที่จะไม่เผยแพร่รหัส บางครั้งรหัสอาจกลายเป็น บริษัท ที่เริ่มต้นได้รับอนุญาตให้ใช้กับ บริษัท ที่มีอยู่เป็นต้นซึ่งเป็นการสนับสนุนการวิจัยในอนาคต เราทุกคนต้องกิน


# 2 มีความสำคัญมาก ไม่เพียง แต่จะเป็นงานจำนวนมากที่จะแยกรหัสที่เกี่ยวข้องกับกระดาษ แต่เมื่อคุณทำคุณอาจพบว่านอกบริบท (นั่นคือห่างจากเครื่องมืออื่น 100 ห้องสมุดและการตั้งค่าแบบกำหนดเองของ ห้องปฏิบัติการ) มันไร้ค่าเป็นหลักและเป็นไปไม่ได้ที่จะเข้าใจหรือใช้ นอกจากนี้ "รหัสการวิจัย" มักจะเปราะบางมากออกแบบมาเพื่อพิสูจน์จุดหนึ่งของกระดาษเพียงอย่างเดียวไม่ได้สร้างระบบซอฟต์แวร์ที่แข็งแกร่งและนักวิจัยไม่มีเวลาหรือความชอบที่จะแก้ไขมันให้เพียงพอที่จะเป็นอย่างอื่น ปวดหัวอย่างรุนแรงกับคนอื่น
Larry Gritz

5

มันขึ้นอยู่กับ. คนที่เขียนบทความหรือหัวหน้างานตัดสินใจว่าควรทำอะไรกับซอร์สโค้ด บางครั้งผู้คนทำให้โครงการเป็นโอเพ่นซอร์ส

บางครั้งโครงการมักได้รับเงินทุนจาก บริษัท ต่างๆซึ่งหมายความว่าเป็นทรัพย์สินของพวกเขา ในกรณีเหล่านั้นผู้เขียนกระดาษไม่ได้รับอนุญาตให้แสดงรหัส


3

มักเป็นเรื่องของข้อ จำกัด ของหน้า หากอัลกอริทึมสั้นเกินไปมันมักจะถูกแสดงอย่างน้อยเป็น pseudocode ในกระดาษ ในทางกลับกันหากเวอร์ชันที่พิมพ์ของรหัสอ้างอิงนั้นมีจำนวนหน้ายาวการพิมพ์รหัสจะไม่มีที่ว่างสำหรับเนื้อบทความ บทความวารสารที่มีความยาวสิบหน้าเป็นบทความยาว

การไม่ให้แหล่งที่มานั้นสร้างโอกาสในการฉ้อโกง เนื่องจากความเป็นไปได้นี้วารสารหลายฉบับจึงต้องการให้ผู้เขียนส่งซอร์สโค้ดของพวกเขาเป็นข้อมูลเพิ่มเติม (ซึ่งสามารถหาได้จากวารสารถ้าคุณมีการเข้าถึง; วารสารอื่น ๆ บางฉบับกำหนดให้ผู้เขียนต้องปล่อยซอร์สโค้ดของพวกเขาให้กับทุกคนที่ขอมา แต่วารสารอื่น ๆ ยังคงอยู่ในยุคมืด ไม่ต้องใช้ซอร์สโค้ดสำหรับการส่งและผู้เขียนไม่จำเป็นต้องเผยแพร่

สิ่งที่ง่ายที่สุดที่จะทำคือถามผู้เขียนว่าพวกเขาสามารถจัดหาซอร์สโค้ดให้คุณได้หรือไม่ โดยทั่วไปที่อยู่อีเมลของผู้เขียนจะแสดงอยู่ในวารสารส่วนใหญ่


1
ฉันคิดว่าซอร์สโค้ดที่มีอยู่สำหรับการตรวจสอบไม่จำเป็นต้องมีข้อความเต็มในกระดาษจริง :) ไม่เพียงเพราะมีโอกาสที่จะถูกโกง แต่ฉันคิดว่ามันมีประโยชน์จริง ๆ สำหรับผู้ตรวจสอบเพื่อให้สามารถตรวจสอบซ้ำได้ กระทำผิดพลาดอย่างแท้จริง โดยเฉพาะอย่างยิ่งถ้า coders เป็นนักวิทยาศาสตร์ไม่ใช่โปรแกรมเมอร์!
Andres F.

3

ประสบการณ์ของฉันในฐานะนักวิทยาศาสตร์ (5 บทความที่ตีพิมพ์) ก็คือบ่อยครั้งที่วารสารไม่ต้องการเผยแพร่รหัสที่ใช้เพื่อสร้างผลลัพธ์ ไม่ได้บอกว่าวารสารจะไม่ยอมรับสคริปต์ วารสารหลายฉบับอนุญาตให้มีเนื้อหาเสริมออนไลน์ได้ วารสารบางฉบับมุ่งเน้นไปที่อัลกอริทึมและเช่น (คอมพิวเตอร์และธรณีศาสตร์) ต้องการให้คุณเพิ่มแหล่งที่มาของอัลกอริทึม แต่นี่เป็นข้อยกเว้นมากกว่ากฎ

นอกเหนือจากวัฒนธรรมในวารสารแล้วสำหรับนักวิทยาศาสตร์รหัสเป็นเพียงวิธีการที่จะสิ้นสุด หลายคนไม่ใช่นักพัฒนาซอฟต์แวร์มืออาชีพ เนื่องจากหลายคนมองว่ารหัสเป็นเพียงเครื่องมือในการแสดงความรู้ทางวิทยาศาสตร์พวกเขาไม่รู้สึกเร่งรีบในการเผยแพร่รหัส นอกจากนี้การขัดรหัสของคุณจนถึงจุดที่สามารถเผยแพร่ได้นั้นต้องใช้งานจำนวนมาก นักวิทยาศาสตร์ได้รับค่าตอบแทนในการทำวิทยาศาสตร์ไม่ใช่เขียนซอฟต์แวร์


แต่ในทางซอฟแวร์นั้นเป็นการพิสูจน์ นั่นคือความหมายของวิทยาศาสตร์คอมพิวเตอร์: โปรแกรมเป็นบทพิสูจน์ ฉันคิดว่านี่อาจเป็นกรณีของความมั่นใจที่ไม่เพียงพอในผลลัพธ์หรือความเข้าใจผิดทางวัฒนธรรมเกี่ยวกับความสำคัญของการสร้างหลักฐานการทำงานจริงของการวิจัยของคุณ
Andres F.

1
ฉันไม่ได้พูดเกี่ยวกับวิทยาศาสตร์คอมพิวเตอร์ perse แต่วิทยาศาสตร์มากขึ้นโดยทั่วไป ในทางทฤษฎี CS หลายคนทำงานกับอัลกอริธึมและการพิสูจน์ด้วยคณิตศาสตร์ ซอฟต์แวร์เป็นเพียงการนำมาใช้งาน
Paul Hiemstra

หากรหัสของคุณเป็นเชิงอรรถในเอกสารฉันเห็นด้วย หากเป็นการตรวจสอบบางประเภทและมีส่วนของตนเอง แต่มีขนาดเล็กแสดงว่าเป็นส่วนหนึ่งของการพิสูจน์หรือการตรวจสอบอย่างน้อยที่สุด หากคุณจะไม่เผยแพร่รหัสก็แสดงว่าไม่เกี่ยวข้องกันอย่างชัดเจนและคุณอาจลบการเอ่ยถึงจากกระดาษของคุณทุกครั้ง!
Andres F.

2

บ่อยครั้งที่โปรแกรมจริงเป็นเพียงเครื่องมือที่จะไปให้ถึงจุดจบแทนที่จะเป็นผลิตภัณฑ์ในแบบของตัวเอง การให้รายละเอียดที่สมบูรณ์ของซอร์สโค้ดนั้นจะคล้ายกับการวาดภาพปากกาที่ใช้ในการเซ็นรายงานและ / หรือแผนงานของพีซีอย่างสมบูรณ์

ต้องบอกว่าโดยเฉพาะอย่างยิ่งเมื่อมีการเชิญผู้ตรวจสอบอย่างดีซอร์สโค้ดจะสามารถใช้ได้แม้ว่าภายใต้ข้อตกลงการไม่เปิดเผยข้อมูล (NDA) บางรูปแบบเนื่องจากมีทรัพย์สินทางปัญญาเป็นตัวเป็นตนอยู่ภายในโปรแกรม

หากคุณสนใจในรหัสอย่างแท้จริงฉันแนะนำความคิดเห็น @Buttonsเป็นคำแนะนำที่ดีที่สุด: ถามพวกเขา :)


1

มากขึ้นอยู่กับวัตถุประสงค์ในการเขียนรหัส ถ้ามันแสดงให้เห็นถึงจุดมันอาจเป็นไปได้ว่ามันไม่ได้รับการปรับให้เหมาะสมและดังนั้นจึงไม่เหมาะที่จะได้รับการปล่อยตัวออกมา หากแนวคิดและวิธีการพื้นฐานนั้นถูกต้องคุณควรสร้างผลลัพธ์ของโค้ดใหม่ตั้งแต่เริ่มต้น อาจมีปัญหาเรื่องลิขสิทธิ์และความเป็นเจ้าของเช่นกัน

โดยหลักการแล้วมันเป็นไปไม่ได้ในทางเทคนิคที่จะปล่อยรหัสไม่ได้ แต่เหตุผลที่อาจไม่ได้รับการเผยแพร่นั้นมีความหลากหลาย อาจไม่มีคำตอบง่ายๆสำหรับคำถามนี้ด้วยเหตุผลดังกล่าว ในบางกรณีคุณอาจถามนักวิจัยที่เกี่ยวข้อง


1

บทความที่คุณอ้างถึงมีอยู่แล้ว 28 หน้าและเนื้อหาส่วนใหญ่เกี่ยวกับการตัดสินใจออกแบบที่เกี่ยวข้องกับการแก้ปัญหา (ระบุไว้ในชื่อเรื่อง)

รหัสเป็นขั้นตอนสุดท้ายในการตรวจสอบการออกแบบ มันไม่ใช่เรื่องเล็กน้อย แต่มันไม่ใช่ส่วนที่เพิ่มคุณค่าในผลลัพธ์ของกระดาษโดยเฉพาะอย่างยิ่งถ้าคุณพิจารณาพื้นที่ที่จะใช้

ไม่ใช่ทุกกรณีเหมือนกัน เอกสารบางอย่างให้รหัสที่มาหรืออย่างน้อยโค้ดหลอก บรรณาธิการบางคนไม่อนุญาต บางคนอนุญาต แต่เนื่องจากพื้นที่ผู้เขียนจึงไม่รวม สมุดรายวันหนึ่งที่ฉันเผยแพร่ซอร์สโค้ดจัดรูปแบบเป็น "ตัวเลข" และเวอร์ชันอิเล็กทรอนิกส์มีข้อมูลเป็นรูปภาพแม้ว่าฉันจะส่งเป็นข้อความก็ตาม


1

เรื่องของแรงจูงใจและแรงจูงใจของนักวิจัยมักจะทำให้แน่ใจว่าพวกเขาสามารถสร้างกระแสเอกสารที่เพิ่มขึ้นอย่างต่อเนื่อง โดยทั่วไปแล้วนักศึกษาระดับบัณฑิตศึกษาต้องมีเอกสารตีพิมพ์ 3-5 ฉบับซึ่งพวกเขาสามารถเปลี่ยนเป็นบทต่างๆของวิทยานิพนธ์เพื่อจบการศึกษา คณะจูเนียร์จำเป็นต้องสร้างสิ่งพิมพ์ให้มากที่สุดเท่าที่จะทำได้ก่อนที่จะมีการทบทวนการดำรงตำแหน่ง ด้วยเหตุนี้เอกสารทางวิชาการส่วนใหญ่จึงเป็นกระดาษnในซีรีย์ ตัวอย่างเช่นกระดาษที่คุณอ้างอิงสร้างขึ้นบนกระดาษในกลุ่มเดียวกันที่เผยแพร่เมื่อปีก่อนและกล่าวถึงพื้นดินที่กระดาษหน้าถัดไปมีแนวโน้มที่จะครอบคลุม

การเผยแพร่ซอร์สโค้ดอาจทำให้นักวิจัยคนอื่นในกลุ่มต่าง ๆ สามารถผลิตกระดาษได้ n+1ก่อนที่ผู้เขียนต้นฉบับจะทำหรืออย่างน้อยก็ผลิตกระดาษที่ครอบคลุมเศษเสี้ยวที่สำคัญของพื้นดินที่ผู้เขียนคาดว่าจะครอบคลุมในส่วนของกระแสการวิจัยนี้ หากเกิดเหตุการณ์เช่นนี้นักศึกษาระดับบัณฑิตศึกษาจะพบว่าตนเองใช้เวลาอีก 6-12 เดือนในการเรียนระดับบัณฑิตศึกษาเพื่อสร้างผลงานวิจัยเพียงพอที่จะสำเร็จการศึกษา สมาชิกคณะอาจท้ายด้วยกระดาษตีพิมพ์น้อยลงหนึ่งเมื่อเวลาการทบทวนการดำรงตำแหน่งมา ทั้งสองอย่างนี้มีขนาดใหญ่มากต่ออาชีพนักวิจัย เพิ่มในความจริงที่ว่าการสมัครทางวิชาการมักจะเป็นส่วนหนึ่งของความพยายามในการวิจัยของหลาย ๆ คนภายในกลุ่มการวิจัย (ไม่ว่าโดยตรงหรือเพราะพวกเขาแบ่งปันองค์ประกอบบางอย่าง) และมีแรงกดดันภายในกลุ่มการวิจัยที่จะไม่ปล่อยรหัส คุณทำงานกับทุกวัน

คุณมักจะได้รับการพูดคุยที่คล้ายกันในสาขาที่การรวบรวมข้อมูลดิบใช้เวลานานและกระจายอย่างมาก ยกตัวอย่างเช่นในทางดาราศาสตร์กลุ่มวิจัยอาจใช้เวลาหลายปีในการรวบรวมข้อมูลก่อนที่พวกเขาจะมีข้อมูลเพียงพอที่จะตีพิมพ์บทความเดียว แต่พวกเขาจะใช้ข้อมูลนั้นเพื่อจัดทำเอกสาร กลุ่มวิจัยลังเลที่จะแบ่งปันชุดข้อมูลมากกว่าที่จำเป็นจริงๆเพราะมันง่ายเกินไปที่จะให้กลุ่มอื่นนั่งฟรีในเวลาที่ลงทุนเพื่อรวบรวมข้อมูลเพื่อเก็บเกี่ยวผลตอบแทนจากการวิเคราะห์ข้อมูลจริง

ในที่สุดรหัสนี้จำนวนมากจะได้รับการเผยแพร่เช่นเดียวกับข้อมูลทางดาราศาสตร์ในที่สุดได้รับการปล่อยตัวออกมา ซึ่งมักเกิดขึ้นเมื่อผู้เขียนถึงจุดสิ้นสุดของเอกสารชุดนั้นหรือเมื่อกลุ่มวิจัยส่วนใหญ่ที่ทำงานในหัวข้อที่คล้ายกันมีเอ็นจิ้นที่คล้ายกันดังนั้นการปล่อยรหัสไม่ได้ทำให้นักวิจัยใหม่ได้เปรียบในการแข่งขัน

มันจะเหมาะสำหรับวิทยาศาสตร์ถ้าข้อมูลและรหัสได้รับการปล่อยตัวเร็วขึ้น แต่นั่นมักจะเป็นอันตรายต่อนักวิจัยทางวิทยาศาสตร์และสิ่งที่มีแรงจูงใจสำคัญในกรณีนี้


"การเผยแพร่ซอร์สโค้ดอาจทำให้นักวิจัยคนอื่นในกลุ่มต่าง ๆ ผลิตกระดาษ n + 1 ก่อนที่ผู้เขียนจะทำหรืออย่างน้อยก็ผลิตกระดาษที่ครอบคลุมเศษเสี้ยวที่สำคัญของพื้นดินที่ผู้เขียนคาดหวังว่าจะเป็นส่วนหนึ่งของสิ่งนี้ กระแสการวิจัย " มันไม่ง่ายเลยสำหรับฉัน คนส่วนใหญ่ (รวมถึงตัวฉันเอง) จะมีปัญหาในการเข้าใจชนิดของนักวิจัยที่เขียนโค้ดโดยไม่ได้รับความช่วยเหลือจากผู้เขียน คุณรู้กรณีที่เกิดขึ้นจริง?
Faheem Mitha

1

ในฐานะที่เป็นคนที่เคยทำสิ่งนี้(ในด้านนักเรียน)หลายครั้งในอดีต: บ่อยครั้งที่อาจารย์ที่เขียนบทความไม่เคยเห็นแม้แต่ซอร์สโค้ดเอง พวกเขาจะให้นักเรียนระดับบัณฑิตศึกษาของพวกเขาเขียนรหัสและจากนั้นก็ขอให้ปฏิบัติการขั้นสุดท้าย(หรือเพียงแค่การยืนยันผล)เมื่อมันเสร็จสมบูรณ์

นอกจากนี้บ่อยครั้งที่โค้ดที่เขียนนั้นไม่สามารถอ่านได้มากนักเพราะนักเรียนเพิ่งแฮ็คมันเพื่อให้มันเสร็จและเพราะ(แม้ว่าพวกเขาจะสดใสมาก)นักเรียนที่จบการศึกษาที่ไม่มีประสบการณ์ในโลกแห่งความเป็นจริงมักจะไม่เป็นโคดีที่สุดของโลก ...


1

เหตุผลส่วนใหญ่ที่ฉันคิดว่าได้รับการเลี้ยงดูมาแล้วที่นี่ แต่ฉันคิดว่าฉันจะเพิ่มอีกสองที่เกิดขึ้นกับฉันจริง:

วารสารมีความคิดว่าจะทำอย่างไร

สำหรับหนึ่งในเอกสารที่ฉันกำลังทำงานอยู่ฉันตัดสินใจว่าฉันเป็นอย่างแน่นอนโดยไม่มีคำถามที่จะรวมซอร์สโค้ด (จุดทั้งหมดของบทความคือการสร้างภาพข้อมูล) และข้อมูลตัวอย่างเพื่อไปพร้อมกับมัน ดังนั้นพร้อมกับการส่งฉันแนบ Electronic Supplements 1 และ 2 - สคริปต์ R พร้อมรหัสของฉันและไฟล์ CSV พร้อมข้อมูลที่จำเป็นสำหรับสคริปต์ R ดังกล่าว

วารสารตามที่ปรากฏออกมานั้นสามารถนำผลิตภัณฑ์เสริมอิเล็กทรอนิกส์มาใช้ได้ก็ต่อเมื่อพวกเขาถูกใส่เข้าไปในไฟล์ Word แล้ว หลังจากพยายามทำให้ส่วนที่ดีขึ้นของวันเพื่อให้ได้สคริปต์ R ในรูปแบบนั้นฉันยอมแพ้และตัดสินใจที่จะไม่รวมรหัสเป็นส่วนเสริม ฉันสามารถโฮสต์ที่มหาวิทยาลัยของฉันได้ แต่ในฐานะนักศึกษาระดับบัณฑิตศึกษาฉันรู้ว่าฉันกำลังจะสูญเสียบัญชีของฉันภายในหนึ่งปี ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~

ฉันสิ้นสุดขึ้นโฮสติ้งบน GitHub และวางอ้างอิงถึงที่ในกระดาษ แต่นั่นก็เป็นเพราะผมจริงๆอยากรหัสไปใน. ฉันสามารถมองเห็นโดยเฉพาะอย่างยิ่งเนื่องจากคนส่วนใหญ่ในเขตของฉันไม่ได้ใช้สิ่งที่ต้องการ GitHub เพียง การตัดสินใจว่าความพยายามจะไม่คุ้มค่ากับคนจำนวนมากที่จะดาวน์โหลดและผู้ที่สามารถส่งอีเมลถึงฉันได้หากพวกเขาต้องการ

วารสารไม่สนใจ

ฉันใส่รายละเอียดเล็ก ๆ น้อย ๆ เกี่ยวกับรหัสลงในกระดาษตามคำขอจากผู้ตรวจทาน แต่เป็นสมุดบันทึกทางคลินิก (อ่าน: ไม่มีรหัสเดียว) ก็ไม่อนุญาตให้ใช้ข้อมูลเพิ่มเติมทางอิเล็กทรอนิกส์และการเพิ่มรหัสต้นฉบับน่าจะเป็นไปได้ ปัญหามากกว่านั้นก็คุ้มค่า

กระแทกแดกดันถ้าใครไม่ไปหารหัสที่มันเป็น (หรือเร็ว ๆ นี้จะ) มาเปิด แต่ผมกำลังทำงานอยู่บนขอบของ 'นี้มีการเจริญเติบโตทางด้านเทคนิค distractingly' และฉันตัดสินใจว่าสั้น ๆ 'ให้ทานมีความสุข พูดถึงคือทั้งหมดที่ฉันจะทำ


0

หลายครั้งที่การใช้งาน (เช่นซอฟต์แวร์ไม่สำคัญ) แต่การใช้งานมากขึ้นส่งผลกระทบต่อผลลัพธ์

เมื่อใดก็ตามที่การติดตั้งมีความสำคัญ ... ซอร์สโค้ดควรมีให้อย่างแน่นอน! ยิ่งผลลัพธ์นั้นขึ้นอยู่กับการนำไปใช้หรือวิธีการคำนวณที่สำคัญกว่านั้นก็คือการโพสต์รหัสที่มา


เกี่ยวกับผู้ที่จะเก็บรหัสต้นฉบับ ตามหลักการแล้ววารสารที่บทความตีพิมพ์นั้นจะเก็บรหัสต้นฉบับทั้งหมดไว้ อย่างไรก็ตามวารสารที่สำคัญที่สุดหลายฉบับไม่ได้จัดเก็บทั้งบทความและซอร์สโค้ด IMO ถ้าสมุดรายวันไม่สามารถเก็บรหัสต้นฉบับทั้งหมดผู้เขียนมีหน้าที่ในการค้นหาสถานที่เก็บข้อมูลบนเว็บแอดเดรสสำหรับรหัสต้นฉบับ
Trevor Boyd Smith

0

ฉันต้องการเพิ่มสองสามคะแนนในประเภทของรหัสที่ฉันจัดการด้วยในฐานะนักเคมีวิเคราะห์ (นักเคมีที่ทำการวิเคราะห์ข้อมูล):

  • คนที่เขียนรหัสการวิเคราะห์ข้อมูล (เช่นฉัน) มีน้อยเมื่อเทียบกับคนที่ใช้รหัสนั้น "รหัสที่กำหนดเองที่เขียนขึ้นเอง" ไม่ได้หมายความว่าผู้เขียนเขียนไว้ - อาจเป็นรหัสของเพื่อนร่วมงานเพื่อให้ผู้เขียนไม่สามารถเผยแพร่ได้

  • อาจมีการวางแผนการตีพิมพ์รหัสแยกต่างหากและผู้เขียนรหัส (หรือหัวหน้างาน) อาจกังวลว่าสิ่งแปลกใหม่จะหายไปหากรหัสได้รับการเปิดเผยต่อสาธารณะ (บางส่วน) ก่อนหน้านี้
    แม้ว่าสมุดรายวันที่มีการเผยแพร่รหัสไม่ได้คัดค้านรหัสที่เปิดเผยต่อสาธารณชนมาก่อนความกังวลอย่างแท้จริงของหัวหน้างาน (หรือบุคคลในสำนักงาน IP) อาจเพียงพอที่จะหยุดการเผยแพร่รหัส

  • รหัสการวิเคราะห์ข้อมูลมักปรับให้เข้ากับข้อมูล มันไม่สมเหตุสมผลหากไม่มีข้อมูล (คุณอาจยืนยันว่าข้อมูลควรได้รับการเผยแพร่ต่อไป แต่นั่นเป็นคำถามและหัวข้อที่แตกต่างออกไปที่นี่) ไม่ว่า
    ในทางใดก็ตามที่สถาบันของฉันเราเก็บถาวรข้อมูลดิบและรหัสการวิเคราะห์ข้อมูลพร้อมกับเอกสาร นโยบายเริ่มต้นยังไม่ได้ (ยัง?) เพื่อให้พวกเขาเปิดเผยต่อสาธารณชนแต่พวกเขาจะสามารถใช้ได้ตามคำขอ

  • (มุมมองแบบดั้งเดิมเกี่ยวกับสิ่งที่สามารถทำซ้ำได้ในทางเคมีสอดคล้องกับคำอธิบาย (อาจเป็นรหัสหลอก) ของอัลกอริทึมมากกว่าส่งรหัสต้นฉบับจริง)

  • เพื่อนร่วมงานของฉันหลายคนใช้เครื่องมือโต้ตอบสำหรับการวิเคราะห์ข้อมูลซึ่งไม่ได้บันทึกขั้นตอนของการวิเคราะห์ข้อมูล ดังนั้นจึงไม่มีซอร์สโค้ดที่สามารถเผยแพร่ได้ การวิเคราะห์ข้อมูลสอดคล้องกับการเขียนโปรแกรมน้อยกว่าวิธีการแล็บ: คุณทำสิ่งต่าง ๆ และจดบันทึกสิ่งที่คุณทำและสังเกตในหนังสือห้องปฏิบัติการ


คำตอบนี้มาจากมุมมองการวิเคราะห์ข้อมูลค่อนข้างเฉพาะเจาะจง อย่างไรก็ตามคำถามนี้เชื่อมโยงจากสถาบันการศึกษาดังนั้นผู้ที่ไม่ใช่นักวิทยาศาสตร์คอมพิวเตอร์อาจเข้ามาอ่าน
cbeleites
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.