背景资料
去年,我在一所大学的物理研究小组实习。在这个小组中,我们主要使用 LabVIEW来编写程序来控制我们的设置,进行数据采集和分析我们的数据。对于前两个目的来说,这个工作相当不错,但对于数据分析来说,这是一个真正的痛苦。除此之外,大多数人都是自学成才,所以编写的代码通常都是一团糟(难怪每个博士都很快决定从头开始重写所有代码)。版本控制是未知的,而且由于 IT 部门的严格软件和网络规定,不可能进行设置。
现在,事实上出人意料的好了,但是自然科学领域的人们是如何进行他们的软件开发的呢?
问题
一些具体问题:
- 您使用什么语言/环境开发科学软件,特别是数据分析?什么图书馆?(例如,你用什么来绘图?)
- 是否对没有任何重要编程背景的人进行过培训?
- 你有类似版本控制和 bug 跟踪的东西吗?
- 你将如何去尝试创造一个体面的编程环境,而不会让个别科学家(尤其是物理学家是顽固的人!)
到目前为止的答案摘要
到目前为止的答案(或者我对它们的理解) : (2008-10-11)
- 使用最广泛的语言/软件包:
- 几乎所有响应者都使用版本控制; 缺陷跟踪和其他流程不太常见。
- 软件木工课程是向科学家传授编程和开发技术的好方法。
- 如何改进?
- 不要强迫人们遵守严格的规章制度。
- 建立一个自己的环境,并向他人展示好处。帮助他们自己开始进行版本控制、 bug 跟踪等工作。
- 审查其他人的代码可能会有所帮助,但是要知道并不是每个人都会欣赏这一点。