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

所以我还是挺担心的,万一英特尔这波没抗住,工程届直接倒退回没有成品软件的刀耕火种时代(然后再用几十年的时间把这些成品软件补出来)或者直接回到前信息化时代了。目前很多 FEM、CEF 软件并不能原生支持 ARM64,甚至连 AMD 的 CPU 都被性能负优化。(EE、CE 和科学没准能好一点?)

前信息化时代估计不至于, 更多可能是被迫买一台能够兼容的电脑 (或者是捡垃圾, 或者是从仓库里面寻宝) 然后就是用旧的程序继续跑.

不过如果这个领域比较热门的话, 倒是会有很多的现代化工作, 比如物理蒙卡模拟这边有 Gean4.ji (Julia 绑定 Cpp), 或者是重写某些 Fortran 的代码为 Cpp + Python.

但是如果做这种事未必能产生足够的回报,就不想做了……说到底基础设施到底还是依托具体的硬件。

做这样的事最终是对硬件厂商有好处,但是硬件厂商往往没有余力去配套完整的软件设施。只要别人不做,或者做了没有那么多用户,那就不影响产品竞争力。

可问题是,机器和开发者的寿命都不是无限的。

Julia会成为仅次于Python的科学计算语言。

有一个系统建模语言,Modelica,但不是编程语言。 基于或支持这种语言的软件包括Dymola, MapleSim, AmeSim, WOLFRAM SYSTEM MODELER, 还有苏州同元的MWORKS

APL,J。

老不是问题,Fortran 活得好好的。

Java 的 Vector JCP 迭代了 9 次了:JEP 489: Vector API (Ninth Incubator)

1 个赞

如果只是教学的话,不是应该效仿HtDP之类的,自己临时糊一个语言吗?我记得APL好像也是出于教学目的糊出来的吧。Sedgewick和Wayne的《算法》、Appel的“虎书”(C语言版),满屏的语法噪声,我觉得如果不是相关语言的专业程序员根本没法看,何况这些东西(通常)也并不能直接复制粘贴到项目里面。

是这样的, 所以一些不那么显学的实验室里面就需要去抢救比自己年级还要大的设备, 然后尝试将其现代化 :sweat_drops:.

问题不在于移植的困难 (前人代码比较抽象, 或者相关资料根本没有/甚至有错), 而是移植/现代化没啥动力 (没法发文章/没钱 + 很花时间, bushi)

商业公司的软件可能会好一些? 我看 Mathematica 现在 (14.1) 就已经支持 ARM 了.

Julia 现在结果的正确性怎么样了?我记得好像有人写文章吐槽过这个问题。

突然又想到了一个问题:D 语言、Elixir/Erlang 社区里有人在搞科学/工程计算么?

Elixir 我倒看到过有人在搞 AI。

R 语言不能漏哇

Julia肯定算,是优化强推的,专门为科学计算从语言底层来优化功能。

Octave、Scilab算是matlab开源版软件吧,语言好像也没什么像matlab那么成形完备吧

1 个赞

以我用过的开源信号处理软件包来看,哪怕用到 C lib 也基本是同时支持 octave 和 matlab 的。和 matlab 区别实质上只有闭源的 toolbox 和没有足够完善的编译器。

Octave 官方 Wiki 声称只有很少区别,如果有重要特性 octave 不支持可以作为 bug report 提交

https://wiki.octave.org/Differences_between_Octave_and_Matlab

1 个赞

请教楼主,已经学习过python 和 R了,还有必要了解Julia么?不知道它相对于python和R有哪些优点和缺点?

嗯嗯,Octave已经很完善了(“不完善”我的表述不大合适,提语言我脑子里想的是scilab,Octave只能说没simulink这个大工具,虽然我不大用但工程实践上很有用;其实simulink这个虽然在matlab软件里,和原生matlab相对独立),平替matlab(原生部分)确实没有大问题了,我们上课经常用它平替。

1 个赞

不用了吧,除非后面有什么项目或协作用到Julia了,可以临时学,也就是了解点语法和包什么的。

重点还是对着你的研究项目深入深入;我其实就用用Matlab、Python,仅在bioinfo或统计进阶工具时偶尔用用R。用深入一个工具远比学一堆有用,你看看你们领域什么大家用的最多、效率最高,用那个就好哇

3 个赞

最近 Clojure Conj 上有一个 talk: “Scientific Clojure, a bird’s eye view” by Thomas Clark (youtube 链接)

1 个赞

不是有coreml吗?

看中的是 AI 能带动 GPGPU,光是 AI 的话 CoreML 钉死了应用的方式,不能好用在图像音频文本以外的数据上

coreml更往下有MPS,已经有一大堆更复杂数值计算操作了(包括拉普拉斯算子等)。再往下有metal。而且也没有什么其它数据,最后不都是转为向量,矩阵。

现在apple都开始去搞JAX和MLX去了(