我现在正在大学里上一门名为"科学计算"的数学课,教授告诉我们C是用于科学计算的最常用的语言,我只是想知道这位教授有多准确?
在我的业务(粒子物理学)中,我们几乎从fortran 77直接转向c ++和python.我们这些关心编程的人都知道c,但它只是针对小众应用程序(嵌入式DAQ板,专用驱动程序......)而编写的.
但是学习c将为你提供一个坚实的编程基础,与教授争论很少有利可图.
即使它是正确的,我也不认为你教授的答案对你有好处.
根据我作为科学计算和数据系统顾问的经验,C当然使用了很多,但Fortran和C++也是如此.Python是迄今为止最常用的脚本语言.
我认为这会发生变化.现在最重要的是并行计算,这是我所提到的传统语言中的痛苦(MPI任何人?).我的猜测是,很多并行化将(并且应该)转移到虚拟机:Java或.NET; 也就是说,我认为并行化应该是JIT的工作.不知道是否会使用Fortress或传统语言中的一种,我不知道.英特尔正在推动用于C/C++的并行工具,但是我想知道从长远来看,像Terracotta这样的东西是否会更好(我没有听说科学界的任何人尝试过它 - 大型金融公司,但他们并非如此打开).
如果问题是你应该学习什么来获得科学计算的工作,那么我要说的第一件事就是你更有可能被雇用来获得科学技能而不是你的编程技巧(这部分解释了对不起的状态)很多科学代码,更多关于这个看到这个SO主题).如果你是将要聘请你的编程技能(可能HPC),然后再考虑在这个教授认为,这些可能是过时的在不那么遥远的未来新项目.不过,包括NumPy在内的Python知道并不会有什么坏处.
从我所听到的来看,Fortran在科学方面非常普遍,但C语言足够通用,对于某些人来说,它对于大多数类型的编程来说都是一个很好的解决方案.
对于生物信息学和计算生物学,C非常受欢迎.