Julia 1.0 中文文档

    关于中文文档

    Julia 语言相关的本地化工作是一个由社区驱动的开源项目JuliaZH.jl,旨在方便 Julia 的中文用户。我们目前使用 作为翻译平台。翻译工作正在进行,有任何疑问或建议请到社区论坛文档区反馈。若有意参与翻译工作,请参考。

    由于 Julia 的编译器和其它语言比如 Python 或 R 有所不同,一开始您或许会觉得 Julia 中什么样的代码运行效率高,什么样的代码运行效率低似乎并不很直观。 如果您发现 Julia 变慢了,我们非常建议您在尝试其它功能前读一下提高性能的窍门 。只要您理解 Julia 的工作方式, 就会很容易地写出运行效率甚至可以和 C 相媲美的代码。

    Julia 具有通过类型推倒和在 LLVM 上实现的可选类型标注,多重派发,良好的性能。它是一个支持过程式,函数式 面向对象编程的多范式语言。它提供了简易和简洁的高等数值计算,它类似于 R 、 MATLAB 和 Python ,支持一般用途的编程。为了达到这个目的 Julia 在数学编程语言的基础上,参考了不少流行动态语言,例如 ), Perl), ), Lua), 和 )。

    • 核心语言很小;标准库是用 Julia 本身写的,如整数运算在内的基础运算
    • 完善的类型,方便构造对象和做类型声明
    • 基于多重派发通过很多不同的参数类型来定义函数行为的能力
    • 为不同类型自动生成高效,专用的代码

    类型系统和多重派发是 Julia 语言最主要的特征(尽管类型和多重派发并不必要被显式使用):函数通过函数名称和不同类型变量的组合进行定义,然后在调用时会派发 最接近(most specific)的定义上去。这样的编程模型非常适合数学化的编程,尤其是在传统的面向对象派发中,一些函数的第一个变量理论上并不“拥有”这样一个操作时。 而在Julia中运算符只是函数的一个特殊标记——例如,为用户定义的新类型添加加法运算,你只要为 函数定义一个新的方法就可以了。 已有的代码就可以无缝接入这个新的类型。

    一部分是因为动态类型推导(可以被可选的类型标注增强),另一部分是因为在这个语言建立之初就对性能非常看重,Julia 的计算性能超过了其它的 动态语言,甚至能够与静态编译语言竞争。对于大型数值问题,速度一直都是,也一直会是一个重要的关注点:这些年以来,被处理的数据量的增长有着Moore定律。

    • 免费开源()
    • 用户定义的类型和内建类型一样快和兼容
    • 无需特意编写向量化的代码;非向量化的代码就很快
    • 为并行计算和分布式计算设计
    • 轻量级的“绿色”线程 (协程)
    • 优雅、可扩展的类型转换
    • 高效支持 ,包括但不限于 UTF-8
    • 直接调用 C 函数(不需封装或调用特别的 API)
    • 像 Shell 一样强大的管理其他进程的能力
    • 像 Lisp 一样的宏和其他元编程工具