在科学环境中进行编程的实践? [英] Practices for programming in a scientific environment?

查看:96
本文介绍了在科学环境中进行编程的实践?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

去年,我在大学的一个物理研究小组实习.在这个小组中,我们主要使用 LabVIEW 编写程序来控制我们的设置,进行数据采集和分析我们的数据.对于前两个目的来说,这很正常,但是对于数据分析,这确实是一个痛苦.最重要的是,每个人大多都是自学成才,因此编写的代码通常很乱(难怪每个博士都很快决定从头开始重写所有内容).版本控制是未知的,并且由于IT部门的严格软件和网络法规而无法设置.

Last year, I did an internship in a physics research group at a university. In this group, we mostly used LabVIEW to write programs for controlling our setups, doing data acquisition and analyzing our data. For the first two purposes, that works quite OK, but for data analysis, it's a real pain. On top of that, everyone was mostly self-taught, so code that was written was generally quite a mess (no wonder that every PhD quickly decided to rewrite everything from scratch). Version control was unknown, and impossible to set up because of strict software and network regulations from the IT department.

现在,事情实际上出乎意料地好了,但是自然科学界的人们如何进行软件开发?

Now, things actually worked out surprisingly OK, but how do people in the natural sciences do their software development?

一些具体问题:

  • 您使用了哪些语言/环境来开发科学软件,尤其是数据分析?什么图书馆? (例如,您使用什么作图?)
  • 是否对没有编程背景的人进行了培训?
  • 您是否有版本控制和错误跟踪之类的内容?
  • 您将如何尝试创建一个不错的编程环境,而又不会给单个科学家带来太多麻烦(尤其是物理学家是固执己见的人!)

到目前为止的答案(或我对它们的解释):(2008-10-11)

The answers (or my interpretation of them) thus far: (2008-10-11)

  • 使用最广泛的语言/软件包:
    • LabVIEW
    • Python
      • 带有 SciPy PyLab 等(另请参见布兰登对下载和链接的答复)
      • Languages/packages that seem to be the most widely used:
        • LabVIEW
        • Python
          • with SciPy, NumPy, PyLab, etc. (See also Brandon's reply for downloads and links)
          • 不要强迫人们遵守严格的协议.
          • 自己建立环境,并向他人展示收益.帮助他们自己开始使用版本控制,错误跟踪等.
          • 查看其他人的代码可以有所帮助,但请注意,并非所有人都可能会喜欢它.

          推荐答案

          您使用了哪些语言/环境来开发科学软件,特别是.数据分析?什么图书馆? (例如,您使用什么作图?)

          我以前曾为 Enthought 工作. .scipy.org"rel =" noreferrer> SciPy .我们与签约Enthought的公司的科学家合作进行了定制软件开发.对于科学家来说,Python/SciPy似乎是一个舒适的环境.如果您是一位没有软件背景的科学家,那么起步要比说C ++或Java少得多.

          I used to work for Enthought, the primary corporate sponsor of SciPy. We collaborated with scientists from the companies that contracted Enthought for custom software development. Python/SciPy seemed to be a comfortable environment for scientists. It's much less intimidating to get started with than say C++ or Java if you're a scientist without a software background.

          "Python发行版" 随附了所有科学计算库,包括分析,绘图, 3D可视化等.

          The Enthought Python Distribution comes with all the scientific computing libraries including analysis, plotting, 3D visualation, etc.

          是否对没有编程背景的人进行了培训?

          Enthought确实提供了 SciPy培训,SciPy社区非常乐于回答邮件列表中的问题

          Enthought does offer SciPy training and the SciPy community is pretty good about answering questions on the mailing lists.

          您是否有版本控制,错误跟踪之类的内容?

          是,是(Subversion和Trac).由于我们正在与科学家合作(通常是远离他们),因此版本控制和错误跟踪至关重要.经过一些指导才能使一些科学家了解版本控制的好处.

          Yes, and yes (Subversion and Trac). Since we were working collaboratively with the scientists (and typically remotely from them), version control and bug tracking were essential. It took some coaching to get some scientists to internalize the benefits of version control.

          您将如何尝试创建一个不错的编程环境,而又不会给单个科学家带来太多麻烦(尤其是物理学家是固执己见的人!)

          确保他们熟悉工具链.它需要预先进行投资,但会使他们不太愿意拒绝它,而倾向于更熟悉的东西(Excel).当工具失效(并且会失败)时,请确保它们有地方可以寻求帮助—邮件列表,用户组,组织中的其他科学家和软件开发人员.越有帮助,让他们重返物理领域越好.

          Make sure they are familiarized with the tool chain. It takes an investment up front, but it will make them feel less inclined to reject it in favor of something more familiar (Excel). When the tools fail them (and they will), make sure they have a place to go for help — mailing lists, user groups, other scientists and software developers in the organization. The more help there is to get them back to doing physics the better.

          这篇关于在科学环境中进行编程的实践?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆