朱莉娅 - 概述


什么是 Julia 编程语言?

关于科学编程的事实之一是它需要高性能、灵活的动态编程语言。不幸的是,在很大程度上,领域专家已经转向速度较慢的动态编程语言。使用这种动态编程语言可能有很多充分的理由,事实上,它们的使用也不能减少。另一方面,我们可以从现代语言设计和编译器技术中期待什么?一些期望如下 -

  • 它应该消除性能权衡。

  • 它应该为领域专家提供一个足以进行原型设计的单一环境。

  • 它应该为领域专家提供一个足够高效的单一环境来部署性能密集型应用程序。

Julia编程语言满足了这些期望。它是一种通用高性能灵活的编程语言,可用于编写任何应用程序。它非常适合科学和数值计算。

朱莉娅的历史

让我们从以下几点来了解 Julia 编程语言的历史 -

  • Jeff Bezanson、Stefan Karpinski、Viral B. Shah 和 Alan Edelman 于 2009 年开始研究 Julia。

  • 上述四人的开发团队于 2012 年 2 月 14 日推出了一个网站。该网站有一篇博客文章,主要解释 Julia 编程语言的使命。

  • 2012 年 4 月晚些时候,Stefan Karpinski 在接受 InfoWorld 杂志采访时将他们的编程语言命名为“Julia”

  • 2014年,名为“The JuliaCon”的Julia年度学术会议;用户和开发者已经启动,此后每年定期举行。

  • 2014年8月,Julia Version 0.3发布使用。

  • 2015年10月,Julia Version 0.4发布使用。

  • 2016年10月,Julia Version 0.5发布使用。

  • 2017 年 6 月,Julia 版本 0.6 发布使用。

  • Julia 版本 0.7 和版本 1.0 均于 2018 年 8 月 8 日同一天发布。其中 Julia 版本 0.7 对于测试包以及想要升级到版本 1.0 的用户特别有用。

  • Julia 版本 1.0.x 是仍受支持的最旧版本。

  • 2019年1月,Julia 1.1版本发布使用。

  • 2019年8月,Julia 1.2版本发布使用。

  • 2019年11月,Julia 1.3版本发布使用。

  • 2020年3月,Julia 1.4版本发布使用。

  • 2020年8月,Julia 1.5版本发布使用。

朱莉娅的特点

以下是 Julia 提供的一些特性和功能 -

  • Julia 为我们提供了一个低调但强大且动态的类型系统。

  • 借助多重分派,用户可以跨多种参数组合定义函数Behave。

  • 它具有强大的 shell,使 Julia 能够轻松管理其他进程。

  • 用户无需任何包装器或任何特殊 API 即可调用 C 函数。

  • Julia 为 Unicode 提供了有效的支持。

  • 它还为用户提供类似 Lisp 的宏以及其他元编程过程。

  • 它提供了轻量级的绿色线程,即协程。

  • 它非常适合并行性和分布式计算。

  • 在 Julia 中完成的编码速度很快,因为不需要为了性能而对代码进行矢量化。

  • 它可以有效地与其他编程语言(例如 Python、R 和 Java)交互。例如,它可以使用 PyCall 与 Python 交互,使用 RCall 与 R 交互,以及使用 JavaCall 与 Java 交互。

朱莉娅的范围

Julia 的核心设计师和开发人员 Jeff Bezanson、Stefan Karpinski、Viral B. Shah 和 Alan Edelman 明确表示,Julia 的明确设计目的是为了弥补技术计算学科中现有软件工具集中的以下差距:

原型设计- 原型设计是技术计算学科中的一个此类问题,需要一种高级且灵活的编程语言,以便开发人员不必担心计算和编程语言本身的低级细节。

性能- 实际计算需要最大性能。编程语言的生产版本通常应该用“ Fortran ”或“ C ”编程语言编写。

速度- 技术领域的另一个重要问题是速度。在 Julia 之前,程序员需要掌握高级编程(用 Matlab、R 或 Python 编写代码进行原型设计)和低级编程(编写程序中对性能敏感的部分,以加快实际计算速度) ,采用统计编译语言,如 C 或 Fortran)。

Julia 编程语言为实践者提供了编写高性能程序的可能性,这些程序像 C 或 Fortran 一样有效地使用 CPU 和内存等计算机资源。从这个意义上说,Julia 减少了对低级编程语言的需求。Julia、LLVM JIT(低级虚拟机即时)编译器技术的最新进展证明,在具有表达能力和纯粹速度的环境中工作是可能的。

与其他语言的比较

数据科学家的目标之一是实现表达能力和纯粹的速度,从而避免使用“C”编程语言。Julia 为程序员提供了一个技术计算的新时代,他们可以用高级编程语言开发库。

以下是 Julia 与最常用的编程语言(Matlab、R 和 Python)的详细比较:

MATLAB - Julia 的语法与 MATLAB 类似,但与 MATLAB 相比,它是一种更加通用的语言。尽管 Julia 中的大多数函数名称类似于 OCTAVE(MATLAB 的开源版本),但计算却截然不同。在线性代数领域,Julia 拥有与 MATLAB 同样强大的功能,但不会给用户带来同样的许可费用问题。与 OCTAVE 相比,Julia 也快得多。MATLAB.Jl是 Julia 提供 MATLAB 接口的软件包。

Python - Julia 将类似 Python 的代码编译为机器代码,为程序员提供与 C 编程语言相同的性能。如果我们比较 Julia 和 Python 的性能,Julia 领先 10 到 30 倍。借助 PyCall 包,我们可以在 Julia 中调用 Python 函数。

R - 众所周知,在统计领域,R 是最好的开发语言之一,但随着性能提高 10 到 1,000 倍,Julia 在统计领域与 R 一样可用。MATLAB 不适合做统计,R 也不适合做线性代数,但 Julia 非常适合做统计和线性代数。另一方面,如果我们将 Julia 的类型系统与 R 进行比较,前者的类型系统要丰富得多。