目前来看还有哪些语言还有可能挤身进科学/工程计算中?

目前已经在科学/工程领域的计算中占有一席之地的语言:C/C++, Fortran, Python, Ada, MATLAB, Mathematica。

不太了解是否可以算的:Ocatve, Scilab, Julia。

你怎么遗漏了Matlab

已补 (凑字数专用)

Julia 当然可以. 科学工程计算问题基本和数值求解 PDE 是同义词. 而 Julia 的 PDE 能力貌似很强:

1 个赞

居然一個lisp都沒有嗎?

AutoLisp? :see_no_evil:

1 个赞

这也算的话,那cadence的skill是不是也能算😅

能自己开发 solver 的强者是不会在意用什么语言的

很可惜苹果放弃 x86 以后 Clozure CL 多个方面都不太行了,基本上 Common Lisp 门面只有 SBCL 了

这和苹果什么关系呢?主流科学计算软件都对 Apple Silicon 有适配,Apple 不只是实现了 ARM SME,也在 SDK 里提供了专门优化过的向量计算,BLAS,LAPACK,比砍掉 AVX512 的 Intel 强多了。实际上 Apple 做向量计算指令集的经验从还在和 IBM, Motorola 一起整 PowerPC 的时候就有了。

所以我觉得 Swift 未来的前景可以期待,只要 Apple 继续向 AI 投入的话,官方就会支持做数值计算和 PDE 的库

6 个赞

为什么不提vba?AutoCAD也支持vba吧

R 肯定也得有把

R 是做统计的语言。当然统计也可以算广义的科学计算。

如果统计也算科学计算的话,那当然也要算上 Jags 和 Stan 这两个概率编程的 DSL 了。甚至还有 SAS 和 Stata 这两个商业软件。

1 个赞

+1,比较希望 Swift 能发展起来。

P.S. 话说 Zig 怎么样?

不太行,社区看不到有做科学计算的,可能还不如 Haskell

1 个赞

很奇怪为什么Java 会没有在科学计算上有比较优秀的支持?感觉落后C/C++ 一大截。

Stan 还是比较小众且是基于C/C++和R基础上的包,不算是一种编程语言。另外传统的概率模型,也可以自己来更高效率实现其中推断相关的采样策略,Stan提供的支持很好,但过于通用有时候也很低效,特别是在大参数的条件下。 从我的经验看,基于深度学习的概率模型,更有应用场景和范围。

还真是,不过 Swift 这边的问题其实是很多苹果官方的好东西都只给自己做而不会考虑跨平台,要先把其他平台的库封装成和苹果那些库一样的接口,好消息是 Swift 和 Python 在这一方面其实在一条起跑线上,因为 Python 也得做封装。

Haskell 也是可惜了,GHC 支持 ARM64,但 stack 还没有,HLS 也一直都是实验性支持。

相较于 Java 其实我还是更好奇 Scala。

1 个赞

Java 可以用,https://scijava.org 还有 Apache 的数学库都比较 solid,就是不太好利用 SIMD,Scala 同理。还是做金融的更多。

Intel oneAPI 虽然说是公开标准,也有部分是开源项目,出了 Intel 平台也一样没能用的(想用 AMD 和 NVIDIA 还要自己编译不包括闭源组件的 toolkit),最主要的是桌面 CPU 萎了,除非回心转意不搞做不好的大小核,适合做科学计算的好东西恐怕以后一段时间只有 Xeon 才有。

AMD 也在做高性能计算,但还是在计算集群而不是面向个人用户。

我也是对scala一直比较感兴趣,很喜欢这个语言的collection 库设计。只要Java能对科学计算支持好,scala 理论上就可以直接拿来用。 但这些年scala 感觉用的人越来越少了,我个人还挺想在生物数据分析上,多利用这个语言,开发一些软件包。 在金融领域,现在还有很多公司在利用Scala么?

主要是 JetBrains 发明了 Kotlin 吸走了大量的潜在用户。JetBrains 其实承认 Scala 满足了他们对语言的要求,但 Scala 是 EPFL 的 JetBrains 不可能和其他人共享话语权,所以他们要自立门户。(虽然他们的理由是 Scala 不够快,但这其实不能算主要原因,因为快慢是可以优化的)

这没辙,因为 Java 最开始设计是希望抹消平台差异的 JNI 也不怎么好用,只能看看 GraalVM 和 Scala Native 了。(不过也希望渺茫,这俩可能比 Zig 和 Haskell 还没戏)

1 个赞