如果没有,是否有可能给出一个粗略的数量级估计,在再次考虑之前我应该等待多长时间?
我对计算科学语言成熟需要多长时间的粗略估计大约是十年。
示例 1:SciPy 始于 2001 年左右。2009 年,Scipy 0.7.0 发布,ODE 集成器有一个与 VODE 的接口(ode15s
大致相当于 ;ode15s
是基于 NDF 的,VODE 是 BDF/Adams-Bashforth,具体取决于)。使用 SciPy 0.10.0 的接口dopri5
,大致相当于 MATLAB 的接口,这是ode45
一种 Runge-Kutta 4 阶方法,通常作为第一个实用的数值积分方法引入本科生。SciPy 0.10.0 于 2011 年 12 月发布,他们花了大约 10 年的时间才将 MATLAB 的一项功能引入我认识的每个工程本科生。
示例 2:Mathworks 成立于 1984 年。在他们的第一个版本中,他们使用了一个名为 JACKPAC 的 LAPACK 端口到 C(以编写它的 MathWorks 工程师 Jack Little 的名字命名)。他们直到 2000 年才用 LAPACK 取代它。
Julia 可能需要更少的时间,但我估计从成立到成为主流大约需要 10 年。(它已经发布了一年左右;那么可能是 9-10 年?)
Julia 的图书馆系统是否在这些领域得到了充分的发展?特别是,对于这些类型的活动,API 是否或多或少是稳定的,或者我是否会发现我的旧代码在升级到新版本的 Julia 后往往会崩溃?
我不使用 Julia,所以请对我说的话持保留态度,因为我只看到 Jeff Bezanson 就 Julia 做过演讲。他们竭尽全力使链接和使用来自 C、Python 和 Fortran 的库变得容易。如果您找不到可以满足您需求的 Julia 库,请使用更成熟的语言为库编写 Julia shim。因此,我不认为缺少库是一个问题。我认为一个问题是确保对核心语言功能的更改不会让您感到厌烦。如果您查看 Julia Git 存储库中的里程碑,您会发现“破坏”标签的使用频率很高(在 0.2 版本中使用了 12 次,在 0.3 版本中使用了 5 次)。对我来说,这表明核心语言仍在发展,这就是我现在犹豫使用该语言的原因。
编辑:Aurelius 提出了一个很好的观点:
是什么让你认为 Julia 会真正成为主流,而不是像许多其他语言一样默默无闻地消亡?SciPy/numpy 拥有/拥有不断增长的 python 社区的支持,而 Julia 没有。
在最初的答案中,我决定避开“朱莉娅会成功成为主流吗?”的问题。越多越好。失败很容易;成功是困难的。我认为 Julia 最好的比较是与 MATLAB、R 和 Octave 等技术计算语言。HPC 语言(Chapel、Fortress、UPC 等)的受众比技术计算语言更窄,而通用语言(C、Python、C++ 等)的受众比技术计算语言更广泛。
我认为有助于 Julia 的东西是在不牺牲表现力的情况下为性能而设计。与 MATLAB、R 甚至 Python 相比,Julia 与 C 等编译语言相比更具竞争力。这个设计目标也是一个可以从现有语言中吸引人们的功能,例如:
- 非常关心性能并且来自 C 和 Fortran 等语言,但愿意牺牲一点性能(可能是2ish的一个因素)来从编译语言转向更少行的解释语言(以及用于更快速的开发和测试)。
- 关心高生产力并来自 Python、R 和 MATLAB 等语言但想要更高性能的人。在执行方面,纯 Python、纯 MATLAB 和纯 R 都很慢。这些语言的开发人员已经竭尽全力将库包装在编译语言中,但是您无法包装所有内容,并且在某些时候,核心语言会减慢您的速度。Core Julia 速度更快,可以让您更快地完成更多科学工作。
- 关心自由软件的人。Julia 是解释型和自由的(Python、Octave 等也是);MATLAB 不是。
Julia 也在尝试促进并行性。我觉得没有足够的资格扩展这一点,我不认为这是该语言的主要吸引力,但我认为这是他们正在努力的一个卖点,我希望其他人能够阐明这一点。
然而,即使他们有技术优势,语言创造者也必须做一些跑腿工作来推广语言和传福音。Jeff Bezanson、Alan Edelman、Stephen Karpinski 和 Viral Shah 正在努力使该语言取得成功。Alan Edelman 与计算科学界有着深厚的联系,他之前曾参与过语言级项目(尤其是 MATLAB 的 Star-P 扩展)。一段时间以来,Jeff Bezanson 一直在做巡回会议,将 Julia 提升为计算科学家和工程师。在麻省理工学院,他们在招募学生和教职员工(尤其是 Steven G. Johnson)方面做得很好,他们通过向 Julia 添加库来做出贡献。他们在《连线》杂志上发表了一篇文章,并设法为自己找到了一篇维基百科的文章,这一切都在仅仅一年之后。他们的 Git 仓库有数千颗星,数百个分叉,和数百只手表,因此按照开源标准,他们的项目取得了成功。我认为到目前为止,他们已经做了所有正确的事情,所以这是维持这种努力和建立社区的问题。他们仍然可能失败,但走到这一步向我表明他们有合理的成功机会。