Tại sao các tài liệu nghiên cứu đề cập đến phần mềm tùy chỉnh phát hành mã nguồn? [đóng cửa]


69

Có một lý do tại sao mã nguồn của phần mềm được đề cập trong các tài liệu nghiên cứu không được phát hành? Tôi hiểu rằng các tài liệu nghiên cứu liên quan nhiều hơn đến ý tưởng chung về việc hoàn thành một cái gì đó hơn là chi tiết triển khai, nhưng tôi không hiểu tại sao họ không phát hành mã.

Ví dụ, bài viết này kết thúc bằng:

Các kết quả

Hệ thống vẽ đường người được triển khai thông qua khung Qt trong C ++ bằng OpenGL và chạy trên máy trạm xử lý lõi kép Intel tốc độ 2,00 GHz mà không cần bất kỳ hỗ trợ phần cứng bổ sung nào. Chúng ta có thể tương tác vẽ các đường trong khi hệ thống tổng hợp đường dẫn và kết cấu mới.

Họ có giữ mã nguồn đóng một cách có chủ ý vì kiếm tiền mà họ dự định thực hiện với nó hay vì bản quyền?


42
Vì lý do tương tự, hầu hết các bài báo đều thiếu dữ liệu thô (chỉ xuất bản "kết quả" bị bóp méo thống kê).
SK-logic

2
Tôi chỉnh sửa câu hỏi. Có lẽ "đề cập" không phải là từ tốt nhất. Trong một số trường hợp, một số điểm được thực hiện trong các bài viết phụ thuộc rất nhiều vào phần mềm, nhưng phần mềm là phần mềm bốc hơi. Như trong, để đánh giá đúng tính hợp lệ của bài báo, ai đó phải có khả năng chạy phần mềm.
Kaz

7
@ John Tôi muốn nói rằng một bài báo có thể cực kỳ phụ thuộc vào phần mềm mà không liên quan đến phần mềm. Giống như một tài sản thú vị của thế giới được thể hiện / tìm thấy bằng cách sử dụng một công cụ phần mềm. Nếu chúng ta không thể xem lại công cụ, làm sao chúng ta có thể biết kết luận là đúng? (Hay đúng hơn: cách xác thực nó dễ dàng hơn nếu chúng ta có thể nhìn thấy công cụ này!)
Andres F.

4
@Andres F - Một khả năng là triển khai phiên bản phần mềm của riêng bạn bằng cách sử dụng các ý tưởng được mô tả trong bài viết. Mặc dù đây là công việc nhiều hơn, nhưng nó cũng được cho là có nhiều giá trị hơn - chạy lại cùng một triển khai chỉ thể hiện một lần thực hiện lại. Một triển khai mới giúp chứng minh rằng bản thân các ý tưởng là hợp lệ và không phải là một số chi tiết thực hiện. Các vấn đề quan trọng có thể không được chú ý hoặc mô tả trước đây có thể được phát hiện trong quá trình thực hiện lại.
Steve314

3
@KonradRudolph, tất nhiên nó sẽ không luôn luôn có sẵn. Nó thậm chí có thể trở nên không khả dụng trong một vài năm kể từ khi xuất bản (băng bị xóa và sử dụng lại, cả nhóm tan rã, xé giấy, v.v.)
SK-logic

Câu trả lời:


71

Một số lý do đến với tâm trí.

  • Mã quá lớn cho bài viết. Trong một khoảng thời gian ngắn, các dự án thú vị đã đủ ngắn để được xuất bản cùng với bài báo mô tả chúng. Điều này vẫn có thể xảy ra, nhưng nhiều dự án có kích thước đủ lớn để trở nên thú vị đã phát triển quá lớn để được xuất bản cùng với các bài báo mô tả chúng.
  • Máy chủ công cộng không miễn phí hoặc bền. Cho đến gần đây, giá rẻ, bền, dễ truy cập máy chủ công cộng không có sẵn.
  • Xuất bản một bài báo dễ hơn xuất bản một dự án. Một số người có thời gian để xuất bản một bài báo hoặc một dự án, nhưng không phải cả hai.
  • Ưu đãi gắn liền với vai trò. Nhiều năm trước tôi đã hỏi một đồng nghiệp về phát triển sản phẩm và bằng sáng chế và nhận được thông báo rằng hầu hết mọi người ở đó đã làm cái này hay cái khác. Như với các nhà văn giấy (nghĩ là học viện) và các nhà phát triển nguồn mở, phần thưởng được hướng đến một sản phẩm công việc này hoặc sản phẩm khác.
  • Tự động viên. Mong muốn mô tả ý tưởng hoặc thực hiện mã không phải lúc nào cũng có mặt trong các phần bằng nhau trong cùng một người. Nhiều giáo sư của tôi công khai thừa nhận rằng họ hoặc không bao giờ được mã hóa nhiều, hoặc đã nhiều năm không được mã hóa thành thạo. Tương tự, nhiều nhà phát triển hầu như không muốn viết bình luận trong mã của họ hoặc khi họ cam kết kiểm soát nguồn.
  • Độ bền của lưu trữ dự án và sản phẩm làm việc cũng là một vấn đề. Ai muốn liên kết ở đâu đó có thể đã mất vài năm kể từ bây giờ và kết quả là, làm giảm giá trị của bài báo.
  • Truyền thống. Các nhà xuất bản được định hướng để xem xét và xuất bản các bài báo, nhưng có thể không sẵn sàng đưa ra đánh giá tương tự cho các dự án.
    Ngoài ra, các quan điểm truyền thống về mức độ tái sản xuất hợp lý là khác nhau giữa các lĩnh vực. Một nhà hóa học xuất bản một bài báo về một phương pháp tổng hợp mới dự kiến ​​sẽ viết ra đủ chi tiết để một nhà hóa học khác thực hiện tổng hợp. Cô ấy sẽ không được dự kiến ​​sẽ chuyển các giáo dục và sản phẩm cho tạp chí. Độc giả muốn sử dụng / tái tạo bài báo dự kiến ​​sẽ mua giáo dục của chính họ và tự tổng hợp trong phòng thí nghiệm của họ (mặc dù họ có thể yêu cầu đến và đến phòng thí nghiệm để xem cách thực hiện trong thực tế). Một nhà sinh vật học cũng sẽ không được đính kèm những con chuột biến đổi gen mới của mình vào bài báo. Quan điểm về khả năng tái tạo này tương ứng với việc đưa ra một mô tả (mã giả) của thuật toán trái ngược với vận chuyển thực hiện thực tế.
  • Mã trần có thể gây sốc . Cần ít đánh bóng hơn để đọc bằng chứng tài liệu chiều dài giấy hơn là kiểm tra mã, đánh giá mã và đảm bảo chất lượng cho một dự án. Tôi có rất nhiều mã tôi sẽ thấy thoải mái hơn khi nói với bạn về việc hiển thị cho bạn. Hy vọng mọi thứ đang tiến tới một điểm mà tất cả chúng ta sẽ viết mã đẹp, nhưng nếu mã của bạn được vội vàng, hầu như không hoàn toàn hoạt động, bạn có thể thoải mái hơn khi không chia sẻ các tệp thực thi hoặc nguồn.
  • Nguồn đóng. Không phải ai cũng chấp nhận nguồn mở. Nhiều bài báo viết về công việc cho DoD, các dự án thương mại hoặc các dự án được tài trợ bởi tư nhân, nơi có lợi ích từ việc tiếp xúc với dự án với công chúng, nhưng vẫn có những bí mật thương mại hoặc trước tiên là những lợi thế thị trường có thể bị xói mòn bằng cách mở mã nguồn hoặc sản phẩm làm việc khác.
  • Xuất bản công việc tiếp theo dựa trên mã này. Nếu mã không được công bố, nó có thể mang lại cho tác giả một lợi thế trong việc xuất bản công việc tiếp theo. Các nhà nghiên cứu cạnh tranh khác có thể cần phải thực hiện lại công việc có thể mất thời gian quý báu.

27
Nếu bài báo phụ thuộc vào mã nguồn, thì nó không nên được công bố. Nếu bạn không thể xuất bản mã, bạn không thể xuất bản giấy. Một bài báo có nội dung "chương trình của chúng tôi thực hiện những điều tuyệt vời này" và bạn không thể đánh giá bài báo mà không chạy chương trình đó, sau đó tờ giấy giới thiệu là một tài liệu quảng cáo cho một số phần mềm.
Kaz

3
Hoàn toàn đồng ý với Kaz - nếu để đánh giá ngang hàng nghiên cứu bạn cần một thứ không có sẵn (dữ liệu, mã, v.v.), thì nó không nên được chấp nhận bởi một tạp chí đánh giá ngang hàng. Hầu như tất cả các lập luận mà DeveloperDon đề cập đã chỉ ra đúng cho việc phát hành dữ liệu, ... nhưng bây giờ đã có một phong trào khá lớn trong những năm gần đây đối với nó.
Joe

3
Bài viết TUYỆT VỜI. Tôi cũng nói thêm rằng đôi khi các nhà khoa học riêng biệt tự tạo lại phần mềm là một phần của tính lặp lại của thí nghiệm. Nếu nó chỉ hoạt động theo cách 1 người mã hóa nó, nhưng không hoạt động theo cách người khác mã hóa nó ... thì kết quả có thể được gọi vào câu hỏi và lỗi có thể được xác định.
Jimbo Jonny

4
điểm thứ hai của bạn đến điểm cuối cùng là mạnh nhất
l --''''''--------- '' '' '' '' '' '' '

4
@AresresF. Mã là hoàn toàn nhất điều quan trọng trong một bài báo. Một bài báo là "Đây là những gì tôi đã làm, đây là phương pháp của tôi, đây là kết quả của tôi". Mã này là một sự mã hóa của phương thức và nó sẽ tạo ra kết quả chính xác như nhau. Nếu bạn muốn sao chép kết quả của bài báo nhưng sử dụng mã của bài báo, bạn đã không sao chép bất cứ điều gì; những gì bạn phải làm là đọc phần phương pháp của họ, đưa ra cách thực hiện của riêng bạn và sau đó viết một bài báo về nó khi bạn không thể sao chép kết quả của họ.
Tacroy

40

Đọc bài trình bày của Randall LeVeque về "10 lý do hàng đầu để không chia sẻ mã của bạn (và tại sao bạn vẫn nên)" http://facemony.washington.edu/rjl/talks/LeVeque_CSE2011.pdf

Ông lập luận một cách thuyết phục rằng mã tương tự như bằng chứng trong Toán học và mời chúng ta xem xét một thế giới nơi các bằng chứng không được công bố, vì chúng quá dài, hoặc quá xấu, hoặc không hoạt động trong các trường hợp cạnh, hoặc có thể có giá trị tiền, hoặc ai đó có thể đánh cắp nó ...

Về cơ bản, nếu bạn đang làm khoa học, thì bạn nên xuất bản mã của mình. Mặt khác, bạn đang làm giả kim thuật và bạn có thể bay ngay về thời kỳ đen tối và chết vì bệnh dịch hạch theo như tôi nghĩ.


7
+1 Trình bày tuyệt vời. Tôi rất vui vì có những người thúc đẩy sự thay đổi :)
Andres F.

+1 Cảm ơn liên kết; điều đó có thể giúp tôi trong các cuộc đàm phán đang diễn ra với sếp của tôi về việc phát hành một số mã của chúng tôi dưới dạng Nguồn mở.
Frank

Chuẩn rồi! Tương tự tốt xứng đáng một phiếu bầu từ tôi.
nullpotent

Tôi không chắc sự so sánh này thực sự tốt cho mục đích ở đây. Tôi là nhà hóa học (người muốn xem nhiều mã hơn được xuất bản), không phải là nhà toán học, nhưng những bằng chứng tôi đã thấy thường không đưa ra từng bước nhỏ. Vì vậy, IMHO chúng tương ứng với một mô tả mã giả cô đọng của thuật toán hơn mã nguồn thực tế.
cbeleites

27

Nói chung, các chương trình được sử dụng để tạo ra các kết quả giấy tờ chỉ là công cụ và chỉ có kết quả mới là vấn đề. Vì vậy, chúng không được đặt trên bài báo trình bày bối cảnh, phương pháp luận, kết quả và một cuộc thảo luận về chúng.

Nhưng kết quả phải được tái sản xuất. Và sau đó, khi các nguồn dữ liệu dựa trên giấy được công khai, các chương trình chuyển đổi chúng thành kết quả thường được yêu cầu. Chúng thường được đặt "ở đâu đó" trên Web nếu nó không gây ra bất kỳ vấn đề bằng sáng chế / bản quyền nào. Hoặc, ít nhất, các tác giả phải gửi cho bạn các chương trình nếu bạn hỏi họ.


2
Tôi không nghĩ bạn phải gửi bất cứ ai hỏi bạn mã quý giá của bạn ... IMHO Câu trả lời này là sai. Nhưng tôi muốn thấy một thế giới nghiên cứu nơi thông tin là miễn phí ...
Dirk

3
@Dirk Theo tôi biết, điều này tương đối phổ biến trong các nghiên cứu thực nghiệm phần mềm. Trong lần gửi cuối cùng (chưa được chấp nhận) của nhóm của tôi trong miền này, một trong những người đánh giá rõ ràng đã yêu cầu quyền truy cập công khai vào dữ liệu của chúng tôi cũng như một số đoạn mã. Tôi không hiểu tại sao mã nên rất quý giá. Đó (nói chung) chỉ là hiện thực hóa các ý tưởng được mô tả trong bài báo. Xuất bản các chương trình là một cách để người đọc kiểm tra xem chúng tôi có dịch chính xác ý tưởng của mình thành hành động hay không.
mgoeminne

1
Hmm, vì vậy bạn biết (a) người đánh giá của bạn là ai và (b) đưa mã và dữ liệu của bạn cho ai đó có thể cạnh tranh trực tiếp với bạn?
Dirk

1
Không thực sự bởi vì (a) Các nhà đánh giá yêu cầu xuất bản mã ở nơi họ có thể truy cập ẩn danh (hoặc xác thực được thực hiện bởi tạp chí) (b) Vì bài báo của bạn được xuất bản, các nhà nghiên cứu khác có thể sử dụng cùng một phương pháp / công cụ để sao chép nghiên cứu của bạn trên một tập dữ liệu khác hoặc thậm chí trên cùng một tập dữ liệu. Các bản sao ít uy tín hơn so với giấy gốc, chúng sẽ trích dẫn công việc của bạn và chúng cung cấp một xác nhận mạnh mẽ cho giấy của bạn. Vì vậy, các tác giả ban đầu rất vui khi để những người khác làm tất cả công việc này cho họ.
mgoeminne

@Paul Tôi không thấy kết nối với ấn phẩm mã nguồn. Dù sao, các biên tập viên giỏi chú ý đến các ghi chú mà các nhà phê bình viết để biện minh cho các quyết định của họ. Do đó, những đề cập như "Thật vớ vẩn" không được tính đến. Nếu biên tập viên ước tính các khuyến nghị của người đánh giá là không đủ liên quan, anh ta hỏi ý kiến ​​của một chuyên gia khác. Học sinh tốt nghiệp không tham gia vào quá trình xem xét. Và nếu bạn không thể để giấy của mình được chấp nhận sau vài năm nộp, bạn nên dự tính giấy này (hoặc nội dung của nó) không tốt lắm.
mgoeminne

14

Nó không phải là nguồn đóng. Phần mềm đơn giản là chưa được công bố.

Câu trả lời ngắn:

Có một số lý do để không xuất bản phần mềm, nhưng việc xuất bản phần mềm theo cách đóng là không phổ biến.

Câu trả lời dài:

Nguồn đóng có nghĩa là phần mềm đã được xuất bản và mã nguồn thì không. Nhưng trường hợp phổ biến là cả phần mềm và mã nguồn đều không được công bố .

Theo kinh nghiệm của tôi (tôi làm việc trong khoa học khí quyển), các tác giả rất vui nếu bạn liên hệ với họ và hỏi liệu bạn có thể lấy phần mềm của họ (bao gồm cả mã nguồn, tất nhiên) để thực hiện nghiên cứu. Nếu tôi sẽ viết một bài báo với một dự án dựa trên chúng, ít nhất họ sẽ nhận được một trích dẫn từ nó (tốt!), Nhưng có lẽ sẽ nhận được một bài báo đồng tác giả từ đó (vì dĩ nhiên, họ đã không ' tài liệu phần mềm của họ để ai đó có thể sử dụng nó mà không cần sự giúp đỡ của họ). Một giấy đồng tác giả tương đối rẻ, vì vậy thậm chí còn tốt hơn .

Câu hỏi thực sự là:

Tại sao họ không xuất bản phần mềm?

Cái này có một vài nguyên nhân:

  • Phần mềm được xuất bản cần tài liệu. Thông thường, mọi người không thích viết tài liệu.
  • Phần mềm được công bố có thể thu hút người dùng. Người dùng có thể có câu hỏi. Điều này cần có thời gian (nhưng xem ở trên).
  • Phần mềm được xuất bản có thể yêu cầu bảo trì không tầm thường.
  • Phần mềm xuất bản yêu cầu lưu trữ.

Danh sách có thể được thực hiện lâu hơn. Nó xứng đáng là một câu hỏi riêng biệt, tại Academia.SE, không phải ở đây.

(Lưu ý rằng trong nhóm của tôi, chúng tôi xuất bản phần mềm của chúng tôi - được cấp phép theo GPL )


Cũng có thể xuất bản mã, nhưng theo giấy phép không cho phép sửa đổi.
asmeker

Tôi thậm chí đã không nghĩ đến tình huống này khi các tác giả chỉ xuất bản một phiên bản được biên dịch chỉ để chứng minh rằng phần mềm thực sự tồn tại, bởi vì nó không giúp làm sáng tỏ cách họ đã làm - bằng cách tôi có nghĩa là chi tiết ẩn ý .. Tôi thích đọc nguồn mã!
alecail

8

Điều đó nghe có vẻ hoài nghi, nhưng theo kinh nghiệm của tôi, các tài liệu nghiên cứu không được viết để dễ hiểu hoặc đơn giản để tái tạo. Thay vào đó, trong cộng đồng nghiên cứu, điều quan trọng hơn là có một bài viết nghe có vẻ rất khoa học. Vì lý do đó, hầu hết các tác giả chuyển đổi mã của họ thành các công thức toán học và cố gắng chứng minh rằng thuật toán của họ là đúng về mặt toán học. Thông thường số lượng trang cho một bài viết như vậy bị giới hạn nên không còn chỗ trống để xuất bản mã. Tuy nhiên, tất nhiên điều này sẽ không giới hạn bất kỳ tác giả nào liên kết đến mã hoàn chỉnh với một URL ...

Người ta có thể cho rằng nếu mã không được công bố, thì các tác giả muốn xác định lại những phát hiện của họ, hoặc (điều mà cá nhân tôi nghĩ là trường hợp thường xuyên hơn) họ sợ rằng mọi người sẽ thấy rằng nghiên cứu của họ không tuyệt vời như họ tuyên bố. Thường kết quả chỉ áp dụng cho một số trường hợp rất hạn chế.

Ngoài ra, tôi đã thấy rằng từ một chương trình đơn giản / algortihm, một số tài liệu nghiên cứu đã được đưa ra. Nếu mã được xuất bản, sẽ rất khó để viết thêm bất kỳ bài báo nào về cùng một chủ đề. Vì vậy, kiến ​​thức được giữ lại để xuất bản nó theo thời gian trong các lát nhỏ.

Luôn luôn nhớ rằng tại các trường đại học, nó không phải là quá nhiều kết quả hoặc khả năng ứng dụng của nghiên cứu là quan trọng, nhưng số lượng bài báo bạn xuất bản. Thật đáng buồn, nhưng sự thật.


13
Điều này đang được nói, hãy thử hỏi các nhà nghiên cứu! Đôi khi họ sẽ cung cấp cho bạn mã nguồn.
Lucina

3
Tôi không nghĩ rằng bạn đang hoàn toàn công bằng ở đây: "Thay vào đó, trong cộng đồng nghiên cứu, điều quan trọng hơn là có một bài viết nghe có vẻ rất khoa học.". Điều này ngụ ý rằng không có giá trị cho nội dung cơ bản, gần như vì bạn không thể hiểu nội dung đó vì nó có vẻ khoa học. Số lượng bài báo bạn xuất bản gần như không liên quan nếu không ai quan tâm nhiều đến nội dung. Phản ứng này, theo quan điểm của tôi, nói về định kiến ​​của bạn hơn là thực tế.
cám dỗ

2
@teemar Vâng có lẽ tôi hơi thiên vị. Điều thực sự gây ấn tượng với tôi nhất là hầu hết các nhà nghiên cứu rõ ràng không sẵn sàng mô tả nghiên cứu của họ theo cách dễ hiểu. Khi tôi có một giáo sư, sau khi giải thích một thuật toán cho tôi, đã thêm: "Nhưng trong bài báo chúng tôi sẽ viết điều này phức tạp hơn để làm cho nó nghe có vẻ khoa học hơn".
mã hóaFriend1

6
@ mã hóaFriend1 - bạn không thể và không nên khái quát hóa trên cơ sở một kinh nghiệm duy nhất. Đó là một cách tiếp cận sâu sắc không khoa học. Bạn phải xem xét đối tượng mục tiêu của một chuyên gia nghiên cứu là ai và trong nhiều trường hợp, đó không phải là những người cần loại giải thích mà bạn cho là cần thiết. Đây là những gì chúng tôi có truyền thông khoa học cho - để kết nối với những người không chuyên.
cám dỗ

3
Tôi ủng hộ câu trả lời của mã hóaFriend1. Đây là một lời chỉ trích phổ biến nhắm vào cộng đồng khoa học nơi tôi sống, và cụ thể là tại Đại học của tôi (dù sao cũng là trường tốt nhất trong cả nước): rằng các nhà khoa học được thúc đẩy xuất bản bài báo, càng kỳ lạ thì càng tốt. "Xuất bản hoặc diệt vong". Các nhà khoa học từ các khu vực tôi ít quen thuộc cũng báo cáo điều này. Xin lỗi, nhưng ở nhiều nơi, đó là sự thật đáng buồn và lan rộng.
Andres F.

7

Ngoài ý định kiếm tiền, tôi không thấy lý do chính đáng để bỏ mã nguồn ra khỏi tài liệu nghiên cứu. Có một phong trào nhỏ bắt đầu đề xuất cung cấp mã nguồn làm quy tắc để xuất bản bất kỳ nghiên cứu nào phụ thuộc vào phần mềm theo một cách nào đó, hình dạng hoặc hình thức. Bạn có thể đọc thêm về nó, nó được gọi là Tuyên ngôn mã khoa học .


1
+1 cho liên kết! Nó thể hiện đầy đủ niềm tin của tôi vào những gì khoa học và nghiên cứu nên được.
Andres F.

6

Các câu trả lời trên bỏ lỡ một vài lý do thực tế thường xuất hiện trong Đồ họa máy tính (lĩnh vực mà bài báo được tác giả đề cập đã được xuất bản). Phát hành mã khác nhau rất nhiều giữa các trường trong CS - ví dụ như trong Machine Learning, mã thường được xuất bản. Trong tương tác máy tính của con người, mã gần như không bao giờ được công bố.

Tôi đã phát hành khá nhiều mã trong Đồ họa máy tính và trong khi tôi nghĩ các tác giả nên phát hành mã của họ, có nhiều lý do đơn giản, không theo thuyết âm mưu tại sao họ không làm như vậy . Ví dụ

1) Hầu hết các dự án nghiên cứu Đồ họa máy tính liên quan đến sự hợp tác giữa nhiều nhà nghiên cứu, thường ở các tổ chức khác nhau, mỗi tổ chức cung cấp một số câu đố (ví dụ: thuật toán, thư viện, v.v.). Để phát hành mã làm việc, tất cả các nhà nghiên cứu phải đồng ý. Điều này hiếm khi là một cuộc thảo luận đơn giản và thường sẽ dễ dàng hơn để tránh vấn đề.

2) Thường thì mã cho một tờ giấy được nhúng trong một cơ sở mã lớn hơn đang được phát triển trong phòng thí nghiệm. Cơ sở mã hóa đó sẽ chứa các công việc chưa được công bố khác. Tách mã cho một dự án duy nhất là rất nhiều công việc, thường không có lợi ích ngay lập tức cho những người phải làm công việc này (xem phần khuyến khích bên dưới).

3) Các trường đại học thường có quyền IP đối với mã. Do đó, cần phải liên hệ với "văn phòng đổi mới", người sẽ khiến cuộc sống của bạn trở nên khó khăn vô cùng, muốn bạn ghi lại "phát minh" để họ có thể cấp bằng sáng chế, v.v., trước khi bạn mở nguồn. Trong một số trường hợp, trường đại học thậm chí có thể từ chối cấp phép phát hành nguồn (điều này khác nhau giữa các tổ chức và rất phức tạp bởi (1))

4) Rất nhiều nghiên cứu Đồ họa Máy tính được thực hiện bởi Tập đoàn. Trong trường hợp đó, các tác giả cũng không sở hữu mã, và phải xin phép Luật sư để phát hành mã. Luật sư có ít hoặc không có động lực để nói có.

5) Không có động cơ để xuất bản mã. Hầu hết các mã nghiên cứu Đồ họa Máy tính không bao giờ được sử dụng bởi bất kỳ ai khác. Ngay cả khi đó là, đối với mã mục đích chung, bạn thường chỉ nhận được một xác nhận (không có giá trị về CV của bạn). Nếu bạn may mắn, bạn sẽ nhận được một trích dẫn. Các ủy ban tuyển dụng và các cơ quan Grant thường không quan tâm một chút nếu bạn phát hành mã của mình. Vì vậy, thời gian dành cho mã chuẩn bị phát hành là lãng phí thời gian mà có thể đã được dành cho một bài báo khác. (Có những người tích cực cố gắng thay đổi điều này trong Đồ họa máy tính).

6) Có những ưu đãi để không công bố mã. Mã đôi khi có thể biến thành các công ty khởi nghiệp, được cấp phép cho các công ty hiện có, vv Điều này tài trợ cho nghiên cứu trong tương lai. Tất cả chúng ta phải ăn.


# 2 là rất quan trọng. Không chỉ có thể là một khối lượng công việc khổng lồ để phân tách mã có liên quan đến một tờ giấy, mà một khi bạn làm, bạn có thể thấy rằng ngoài ngữ cảnh (đó là, ngoài 100 công cụ, thư viện và thiết lập tùy chỉnh khác của phòng thí nghiệm), về cơ bản là vô dụng và không thể hiểu hoặc sử dụng. Ngoài ra, "mã nghiên cứu" thường rất dễ vỡ, được thiết kế vừa đủ để chứng minh quan điểm của một bài báo, không tạo ra một hệ thống phần mềm mạnh mẽ và nhà nghiên cứu không có thời gian hoặc thiên hướng để sửa nó đủ để trở thành bất cứ điều gì khác ngoài đau đầu dữ dội với bất cứ ai khác.
Larry Gritz

5

Nó phụ thuộc. Một người viết một bài báo, hoặc người giám sát của họ, quyết định những gì nên được thực hiện với mã nguồn. Đôi khi, mọi người làm cho dự án thành một nguồn mở.

Đôi khi, các dự án thường được tài trợ bởi các công ty, có nghĩa đó là tài sản của họ. Trong những trường hợp đó, tác giả của giấy không được phép hiển thị mã.


3

Đó thường là vấn đề giới hạn trang. Nếu thuật toán quá ngắn, thường thì nó được biểu diễn, ít nhất là mã giả, trong bài báo. Mặt khác, nếu phiên bản in của mã cơ bản thậm chí dài một vài trang, thì việc in mã sẽ không còn chỗ cho phần cốt lõi của bài viết. Một bài báo dài mười trang là một bài viết dài.

Không làm cho nguồn có sẵn tạo ra một tiềm năng gian lận. Vì tiềm năng này, nhiều tạp chí hiện yêu cầu các tác giả gửi mã nguồn của họ dưới dạng thông tin bổ sung (có thể lấy được từ tạp chí nếu bạn có quyền truy cập; có thể phải trả phí đăng ký rất nhiều). Một số tạp chí khác yêu cầu các tác giả phát hành mã nguồn của họ cho bất cứ ai yêu cầu. Tuy nhiên, các tạp chí khác vẫn còn trong thời kỳ đen tối; mã nguồn không bắt buộc phải nộp và các tác giả không bắt buộc phải phát hành nó.

Cách dễ nhất để làm là hỏi các tác giả nếu họ có thể cung cấp mã nguồn cho bạn. Địa chỉ email của các tác giả thường được liệt kê trong hầu hết các bài báo hiện nay.


1
Tôi nghĩ rằng mã nguồn có sẵn để đánh giá không yêu cầu phải bao gồm toàn bộ văn bản của nó trong bài báo thực tế :) Không chỉ vì khả năng lừa đảo, mà tôi nghĩ rằng nó thực sự hữu ích cho những người đánh giá có thể nhân đôi bạn không phạm một sai lầm chính hãng. Đặc biệt là nếu các lập trình viên là nhà khoa học chứ không phải lập trình viên!
Andres F.

3

Kinh nghiệm của tôi với tư cách là một nhà khoa học (5 bài báo được xuất bản) là thường thì tạp chí không yêu cầu phát hành mã được sử dụng để tạo ra kết quả. Điều đó không có nghĩa là các tạp chí sẽ không chấp nhận các kịch bản. Nhiều tạp chí cho phép tài liệu bổ sung trực tuyến. Một số tạp chí hướng đến các thuật toán và như vậy (ví dụ: Máy tính và Khoa học địa chất) yêu cầu bạn thêm nguồn của thuật toán, nhưng đây là một ngoại lệ hơn là một quy tắc.

Ngoài văn hóa tại các tạp chí, đối với các nhà khoa học, mã chỉ là một phương tiện để kết thúc. Nhiều người không phải là nhà phát triển phần mềm chuyên nghiệp. Bởi vì nhiều người coi mã chỉ là một công cụ để thể hiện khoa học, họ không cảm thấy cấp bách để xuất bản mã. Ngoài ra, việc đánh bóng mã của bạn đến mức có thể được xuất bản mất rất nhiều công sức. Một nhà khoa học được trả tiền để làm khoa học, không viết phần mềm.


Nhưng theo một cách nào đó, phần mềm là bằng chứng. Đó là tất cả những gì về khoa học máy tính: các chương trình là bằng chứng. Tôi nghĩ rằng đây là một trường hợp không đủ tin tưởng vào kết quả, hoặc một sự hiểu lầm về văn hóa về tầm quan trọng của việc thực sự tạo ra một bằng chứng làm việc cho nghiên cứu của bạn.
Andres F.

1
Tôi đã không nói về khoa học máy tính, nhưng nói chung là khoa học hơn. Trong lý thuyết CS, nhiều người làm việc trên các thuật toán và bằng chứng trong một phép toán. Phần mềm chỉ là một thực hiện, một suy nghĩ lại.
Paul Hiemstra

Nếu mã của bạn là một chú thích trong bài báo, tôi đồng ý. Nếu đó là một loại xác minh và có phần riêng, tuy nhỏ, thì đó là một phần của bằng chứng hoặc ít nhất là xác nhận. Nếu bạn sẽ không xuất bản mã, thì rõ ràng nó không liên quan và bạn cũng có thể xóa mọi đề cập khỏi bài viết của mình!
Andres F.

2

Thường xuyên hơn không, chương trình thực tế chỉ là một công cụ để đi đến cuối cùng, chứ không phải là sản phẩm theo đúng nghĩa của nó. Cung cấp đầy đủ chi tiết về mã nguồn sẽ giống như cung cấp bản vẽ đầy đủ của bút được sử dụng để ký báo cáo và / hoặc sơ đồ của PC.

Đã nói rằng, đặc biệt là khi đánh giá ngang hàng đang được mời, mã nguồn sẽ có sẵn - mặc dù theo một số hình thức của Thỏa thuận không tiết lộ (NDA) - vì vốn đã có Sở hữu trí tuệ được thể hiện trong chương trình.

Nếu bạn thực sự quan tâm đến mã, tôi đề nghị bình luận của @Buttons là lời khuyên tốt nhất: Hỏi họ :)


1

Rất nhiều phụ thuộc vào mục đích mà mã được viết. Nếu nó là để chứng minh một điểm, nó có thể không được tối ưu hóa, và do đó không lý tưởng rằng nó được phát hành. Nếu các khái niệm và phương pháp cơ bản là hợp lệ, thì có thể tạo lại kết quả của mã từ đầu. Có thể có vấn đề về bản quyền và quyền sở hữu là tốt.

Về nguyên tắc, về mặt kỹ thuật không thể phát hành mã nhưng các lý do mà nó có thể không được phát hành rất đa dạng. Có lẽ không có câu trả lời đơn giản cho câu hỏi này vì lý do đó. Trong trường hợp cụ thể có lẽ bạn có thể hỏi các nhà nghiên cứu liên quan.


1

Bài viết mà bạn trích dẫn đã có 28 trang và hầu hết nội dung là về các quyết định thiết kế có liên quan đến việc giải quyết vấn đề (được nêu trong tiêu đề).

Mã là bước cuối cùng để xác nhận thiết kế. Nó không phải là nhỏ, nhưng nó không phải là phần làm tăng giá trị trong kết quả của bài báo, đặc biệt nếu bạn xem xét không gian mà nó sẽ chiếm.

Không phải mọi trường hợp đều giống nhau. Một số giấy tờ cung cấp mã nguồn, hoặc ít nhất là mã giả. Một số biên tập viên không cho phép nó. Một số cho phép nó, nhưng vì không gian, các tác giả không bao gồm nó. Một tạp chí nơi tôi đã xuất bản mã nguồn định dạng nó là "số liệu" và phiên bản điện tử có nó dưới dạng dữ liệu hình ảnh, mặc dù tôi đã gửi nó dưới dạng văn bản.


1

Vấn đề ưu đãi và các ưu đãi của các nhà nghiên cứu nói chung là để đảm bảo rằng họ có thể tạo ra một dòng giấy ổn định, tăng dần lên nhau. Sinh viên tốt nghiệp thường cần 3-5 bài báo được xuất bản mà họ có thể biến thành các chương riêng lẻ của luận án để tốt nghiệp. Giảng viên cơ sở cần tạo ra càng nhiều ấn phẩm càng tốt trước khi xem xét nhiệm kỳ của họ. Vì lý do đó, hầu hết các bài báo học thuật thực sự nlà một bài báo. Ví dụ, bài báo mà bạn tham khảo xây dựng trên một tờ giấy cùng nhóm được xuất bản một năm trước và thảo luận về mặt bằng mà bài báo tiếp theo có khả năng sẽ trình bày.

Xuất bản mã nguồn có khả năng cho phép một nhà nghiên cứu khác trong một nhóm khác sản xuất giấy n+1trước khi tác giả ban đầu làm hoặc ít nhất là để tạo ra một bài báo bao gồm một phần đáng kể của mặt đất mà tác giả dự kiến ​​sẽ bao gồm như một phần của dòng nghiên cứu này. Nếu điều đó xảy ra, sinh viên tốt nghiệp có thể dễ dàng tìm thấy mình dành thêm 6-12 tháng nữa ở trường học để tạo ra đủ sản lượng nghiên cứu để tốt nghiệp. Thành viên của khoa có thể kết thúc với một bài báo được xuất bản ít hơn khi thời gian xem xét nhiệm kỳ đến. Cả hai điều này rõ ràng là những cú đánh lớn đối với sự nghiệp của nhà nghiên cứu. Thêm vào thực tế là các ứng dụng học thuật thường là một phần trong nỗ lực nghiên cứu của nhiều người trong một nhóm nghiên cứu (trực tiếp hoặc vì họ chia sẻ một số thành phần nhất định) và có áp lực trong nhóm nghiên cứu không phát hành mã có thể gây tổn thương cho ai đó bạn làm việc với mỗi ngày.

Bạn thường nhận được các loại thảo luận tương tự trong các lĩnh vực nơi thu thập dữ liệu thô tốn thời gian và phân phối cao. Trong thiên văn học, ví dụ, một nhóm nghiên cứu có thể mất nhiều năm để thu thập dữ liệu trước khi họ có đủ thông tin để xuất bản một bài báo. Nhưng sau đó họ sẽ sử dụng dữ liệu đó để tạo ra một loạt các bài báo. Các nhóm nghiên cứu rất miễn cưỡng chia sẻ nhiều bộ dữ liệu của họ hơn là hoàn toàn cần thiết bởi vì các nhóm khác quá dễ dàng để đi xe miễn phí vào thời gian được đầu tư thu thập dữ liệu để gặt hái những phần thưởng khi phân tích dữ liệu thực sự.

Cuối cùng, rất nhiều mã này sẽ được phát hành giống như dữ liệu thiên văn cuối cùng được phát hành. Điều đó thường xuất hiện khi tác giả đạt đến cuối loạt bài báo đó hoặc khi hầu hết các nhóm nghiên cứu đang làm việc về các chủ đề tương tự có động cơ tương tự nhau nên việc phát hành mã không còn mang lại lợi thế cạnh tranh cho nhà nghiên cứu mới.

Sẽ là lý tưởng cho khoa học nếu dữ liệu và mã được phát hành nhanh hơn. Nhưng điều đó thường gây tổn hại cho các nhà nghiên cứu khoa học và đó là vấn đề khuyến khích trong trường hợp này.


"Xuất bản mã nguồn có khả năng cho phép một nhà nghiên cứu khác trong một nhóm khác sản xuất giấy n + 1 trước khi tác giả ban đầu làm hoặc ít nhất là sản xuất một bài báo bao gồm một phần đáng kể của mặt đất mà tác giả dự kiến ​​sẽ trình bày như một phần của điều này dòng nghiên cứu. " Điều này có vẻ không dễ dàng với tôi. Hầu hết mọi người (bao gồm cả bản thân tôi) sẽ gặp khó khăn trong việc hiểu loại các nhà nghiên cứu mã viết, mà không có sự giúp đỡ từ các tác giả, chứ đừng nói đến việc mở rộng nó. Bạn có biết trường hợp này đã thực sự xảy ra?
Faheem Mitha

1

Là một người đã làm điều này (về phía sinh viên) nhiều lần trong quá khứ: đôi khi các giáo sư viết bài thậm chí không bao giờ nhìn thấy mã nguồn. Họ sẽ yêu cầu học sinh tốt nghiệp viết mã, và sau đó chỉ yêu cầu thực thi cuối cùng (hoặc thậm chí chỉ là xác nhận kết quả) khi hoàn tất.

Ngoài ra, thường thì mã được viết không phải là rất dễ đọc, bởi vì các sinh viên chỉ hack nó để hoàn thành nó, và bởi vì (mặc dù họ rất thông minh) sinh viên tốt nghiệp không có kinh nghiệm trong thế giới thực có xu hướng không phải là lập trình viên giỏi nhất thế giới ...


1

Hầu hết các lý do tôi có thể nghĩ đã được nêu ra ở đây, nhưng tôi nghĩ rằng tôi sẽ thêm hai lý do thực sự xảy ra với tôi:

Tạp chí không biết phải làm gì .

Đối với một trong những bài báo mà tôi đang làm việc, tôi đã quyết định rằng tôi hoàn toàn, không có câu hỏi nào sẽ bao gồm mã nguồn (toàn bộ điểm của bài báo là trực quan hóa dữ liệu) và dữ liệu ví dụ đi cùng với nó. Vì vậy, cùng với việc gửi tôi đã đính kèm Bổ sung điện tử 1 và 2 - tập lệnh R với mã của tôi và tệp CSV có dữ liệu cần thiết cho tập lệnh R đã nói.

Tạp chí, hóa ra, chỉ có thể sử dụng các chất bổ sung điện tử nếu chúng được xỏ vào các tệp Word. Sau khi cố gắng tốt hơn trong một ngày để có được tập lệnh R ở dạng đó, tôi đã từ bỏ và quyết định không bao gồm mã dưới dạng bổ sung. Tôi có thể đã lưu trữ nó tại Đại học của mình, nhưng là một sinh viên tốt nghiệp, tôi biết rằng tôi sẽ mất tài khoản của mình ở đó sau 1 năm - nguồn mở sẽ không được sử dụng nếu nó ngay lập tức bị vượt qua với linkrot.

Tôi đã kết thúc việc lưu trữ nó trên GitHub và đưa một tài liệu tham khảo vào đó, nhưng đó là vì tôi thực sự muốn mã đi vào. Tôi có thể thấy, đặc biệt là vì hầu hết mọi người trong lĩnh vực của tôi không sử dụng cái gì đó như GitHub, chỉ quyết định rằng những nỗ lực đó sẽ không xứng đáng với số ít người sẽ tải xuống và dù sao họ cũng có thể gửi email cho tôi nếu họ thực sự muốn.

Tạp chí không quan tâm

Tôi đã chèn một số chi tiết nhỏ về chính mã vào một tờ giấy theo yêu cầu từ người đánh giá, nhưng đó là một tạp chí lâm sàng (đọc: không có mã nào), nó không cho phép bổ sung điện tử, và một lần nữa, thêm mã nguồn có thể đã được rắc rối hơn nó là giá trị.

Trớ trêu thay, nếu bất cứ ai đã đi tìm mã, thì đó là (hoặc sẽ sớm là) nguồn mở, nhưng tôi đã chạy trên rìa của 'Điều này đang phát triển kỹ thuật gây mất tập trung' và tôi đã quyết định rằng tóm tắt, 'làm cho người đánh giá hài lòng 'đề cập đến là tất cả những gì tôi sẽ làm.


0

Nhiều lần thực hiện (tức là phần mềm không thành vấn đề) nhưng việc triển khai DOES ngày càng ảnh hưởng đến kết quả.

Bất cứ khi nào việc thực hiện có vấn đề ... mã nguồn chắc chắn phải được cung cấp! Càng nhiều kết quả phụ thuộc vào việc thực hiện hoặc phương pháp tính toán, việc đăng mã nguồn càng quan trọng hơn.


Về ai / nơi sẽ lưu trữ mã nguồn. Lý tưởng nhất là tạp chí mà bài báo được xuất bản sẽ lưu trữ toàn bộ mã nguồn. Tuy nhiên, nhiều tạp chí quan trọng nhất không lưu trữ cả bài viết và mã nguồn. IMO nếu tạp chí không có khả năng lưu trữ toàn bộ mã nguồn, tác giả có trách nhiệm tìm một nơi lưu trữ địa chỉ web cho mã nguồn.
Trevor Boyd Smith

0

Tôi muốn thêm một vài điểm về loại mã tôi xử lý với tư cách là nhà hóa học (nhà hóa học thực hiện phân tích dữ liệu):

  • Những người viết mã phân tích dữ liệu (như tôi làm) tương đối ít so với những người sử dụng mã đó. "Mã tùy chỉnh được viết trong nhà" không có nghĩa là các tác giả đã viết nó - có thể là mã của đồng nghiệp để các tác giả không thể xuất bản nó.

  • Một ấn phẩm riêng biệt của mã có thể được lên kế hoạch và tác giả của mã (hoặc người giám sát) có thể lo ngại rằng tính mới bị mất nếu mã đã được công khai (một phần) trước đó.
    Ngay cả khi tạp chí nơi xuất bản mã được dự định không phản đối mã đã có sẵn công khai trước đó, mối quan tâm thuần túy của người giám sát (hoặc ai đó trong văn phòng IP) có thể đủ để ngăn chặn việc xuất bản mã.

  • Mã phân tích dữ liệu thường được điều chỉnh theo dữ liệu. Nó không có ý nghĩa quá nhiều mà không có dữ liệu. (Bạn có thể lập luận rằng dữ liệu nên được xuất bản bằng mọi cách, nhưng đó là một câu hỏi khác và ngoài chủ đề ở đây.)
    Trong bất kỳ cách nào, tại viện của tôi, chúng tôi lưu trữ dữ liệu thô và mã phân tích dữ liệu cùng với bài báo. Chính sách mặc định không phải là (chưa?) Để cung cấp chúng công khai , nhưng chắc chắn chúng sẽ có sẵn theo yêu cầu.

  • (Quan điểm truyền thống về độ tái lập trong hóa học tương ứng với mô tả (có thể là mã giả) của thuật toán so với vận chuyển mã nguồn thực tế)

  • Nhiều đồng nghiệp của tôi sử dụng các công cụ tương tác để phân tích dữ liệu của họ mà không ghi lại các bước của phân tích dữ liệu. Vì vậy, không có mã nguồn có thể được công bố. Các phân tích dữ liệu tương ứng với lập trình ít hơn so với phương pháp phòng thí nghiệm: bạn làm mọi thứ và viết ra những gì bạn làm và quan sát trong sổ phòng thí nghiệm của bạn.


Câu trả lời này là từ quan điểm phân tích dữ liệu, vì vậy thay vào đó là một phân khúc cụ thể. Tuy nhiên, câu hỏi này được liên kết từ academia.SX, vì vậy các nhà khoa học không phải là máy tính có thể đi cùng đọc nó.
cbeleites
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.