今天偶然撞进日本Okayama University (冈山大学)Kenichi Kanatani (金谷健一)大牛的主页:
http://www.suri.cs.okayama-u.ac.jp/~kanatani/
看到大牛有几句话这么说:
Today, however, presenting a theory is only half of research; it finishes when programs and systems based on it are available as public software shared by researchers.
当今(的科学研究),光是提出理论只能算才完成了一半的研究工作,只有把基于此理论的程序和系统发布出来供所有研究人员共享,才算完成。
With this belief in mind, my colleagues and I have has been writing programs in the C/C++ language and making them publicly accessible.
我本人怀有此信念,故将与同事在研究中所写的C/C++代码贡献出来,大家可以下载使用。
一些projects代码的下载地址在这里:http://www.suri.cs.okayama-u.ac.jp/~kanatani/e/eprogram.html
大牛所言,不就是伟大的开源精神吗?!
鄙人深有感触,公开代码好处很多,我考虑有四:
- 与paper的公开化一样,代码的公开有利于其他研究人员在你的基础上继续你的研究;
- 代码的公开使得其他的研究人员可以更加广泛地测试你算法的真实性能,优点有哪些,缺陷又有哪些,用在不同的数据上效果又如何,是否有新的问题,有了问题就方便在你的基础上进行改善,这在某种程度上更有利于对作者工作进行补充;
- 有了代码就可以基本上杜绝学术上造假,编造数据,编造结果的情况,因为大家都可以对你的算法进行实际测试咯;
- 方便刚入行的研究人员进行学习,诚然现在已经有大量的开源资源可供学习,但是,正如俗语所云,隔行如隔山,编程的看不懂论文,搞学术的写不出代码,学术大牛的代码公开行为更加以利于新手break the gap。
当然,公开代码也涉及很多其他问题。比如,公开了代码,国人很多发表论文靠抄袭、靠编造数据还怎么活啊~:p
而且,代码这东西跟论文还不一样,白纸黑字儿,你抄了我的很容易看出来,而且学术界有完善的文献索引规范,代码就不一样了,你编译到商业化的程序里,鬼知道。
当然,这里涉及到商业问题,版权问题,开源代码的传播协议,二进制级别的程序检查问题,就不多扯了。
搞学术,有“码”才有真相!