我现在正在大学里上一门叫做“科学计算”的数学课,教授告诉我们,C语言是用于科学计算的最常用的语言,我想知道这个教授的准确度有多高?
发布于 2009-09-13 03:09:00
在我的业务(粒子物理学)中,我们基本上从fortran77直接转移到了c++和python。我们这些关心编程的人都知道c,但它只为小众应用程序(嵌入式DAQ板、特殊用途驱动程序等)编写。
但是学习c语言会给你的编程打下坚实的基础,而且和教授争论也是无利可图的。
发布于 2009-09-13 03:40:21
我认为你教授的答案即使是正确的,也不能很好地为你服务。
根据我作为科学计算和数据系统顾问的经验,C当然经常使用,但Fortran和C++也是如此。到目前为止,Python是最常用的脚本语言。
我认为这种情况将会改变。现在最大的问题是并行计算,这是痛苦的(MPI有人吗?)在我提到的传统语言中。我的猜测是,许多并行化将(也应该)转移到虚拟机上: Java或.NET;也就是说,我认为并行化应该是JIT的工作。我不知道这是通过Fortress实现的,还是通过某种传统语言实现的。英特尔正在推动parallel tools用于C/C++,但我想知道从长远来看,像Terracotta这样的东西是否会更好(我还没有听说科学界有人尝试过它-大财团已经尝试过了,但他们并不是那么开放)。
如果问题是你应该学习什么才能在科学计算领域找到一份工作,那么我要说的第一件事是,你更有可能因为你的科学技能而被雇佣,而不是你的编程技能(这部分解释了许多科学代码的糟糕状态,有关更多信息,请参见this SO topic)。如果你打算因为你的编程技能(可能是HPC)而被录用,那么在这位教授看来,在不久的将来,对于较新的项目来说,这些技能可能已经过时了。不过,了解一些Python也不会有什么坏处,包括NumPy。
发布于 2009-09-13 03:07:53
据我所知,Fortran在科学上是非常常见的,但C语言的通用性已经足够,对于某些人来说,它是几乎所有类型编程的一个很好的解决方案。
https://stackoverflow.com/questions/1416745
复制相似问题