为什么Julia语言这么棒?


选择Julia有一个明显的理由:

它比其他脚本语言更快,允许您快速开发Python / MATLAB / R,同时生成与C / Fortran一样快的代码!

不了解Julia的新人可能对这种说法有点警惕。

  1. 为什么其他脚本语言不能更快呢?如果Julia能做到这一点,为什么其他人不能呢?
  2. 你如何与Julia基准测试人员确认这一点?(这对许多人来说非常困难!)
  3. 这听起来像违反了免费午餐启发式。真的没有遗漏吗?

很多人认为Julia是快速的,因为它是Just-In-Time(JIT)编译的(即每个语句都是使用编译后的函数运行的,这些函数在使用之前编译,或者之前的缓存编译)。这导致Julia相对JIT的Python / R等实现比较出现了疑问(默认情况下MATLAB使用JIT):这些JIT编译器的优化时间远远超过Julia,那么为什么我们应该疯狂并相信Julia会以某种方式快速优化所有这些?但是,这是对Julia的完全误解。我想以一种非常直观的方式展示Julia因其设计决策而快速展现。核心设计决策,通过多次调度专业化的类型稳定性等让Julia很容易通过编译器变成高效的代码,但同时让代码非常简洁并“看起来像一个脚本语言”。这些都将导致一些非常明显的性能提升。

核心理念:多重调度+类型稳定性=>速度+可读性

详细分析点击标题见原文。