果壳中的Julia



Julia非常快!

Julia从一开始就是为了高性能 而设计的。Julia程序通过LLVM编译为多个平台的高效的本地代码。

动态类型

Julia是动态类型,但它很像脚本语言,并且针对使用者拥有良好的互动支持。

可选类型

Julia拥有丰富的描述性数据类型语言,而类型声明可以。 用于澄清和巩固程序。

其他

Julia使用多分派作为标准,使其易于表达许多面向对象和函数式编程模式。标准库提供异步I/O、进程控制、日志记录、分析和一个包装管理器等等。

技术

Julia擅长数值计算。它的语法很适合数学,很多数字支持数据类型,并且开箱即用的并行性。 Julia的多分派特性非常适合定义数字和数组数据类型。

可组合

Julia包自然能很好地协同工作。单位数量的矩阵或货币和颜色的数据表列,并且他们协同工作还具有良好的性能。




生态系统



通用计算

构建、部署或嵌入代码

Julia允许您编写UI静态编译代码,甚至将其部署到Web服务器上。它还具有强大的类shell功能,用于管理其他进程。它提供了类似Lisp的宏和其他元编程工具。

Julia有用于C/FortranC++PythonRJava和许多其他语言的外部函数接口。Julia也可以通过其嵌入API嵌入到其他程序中。具体来说,Python程序可以使用Pyjua调用Julia。R程序可以对R的JuliaCall进行同样的操作,这是通过从R调用MixedModels.jl来演示的。

并行计算

并行和异构计算

Julia专为并行性而设计,并为各个级别的并行计算提供内置基元:指令级并行多线程分布式计算Celeste.jl项目在NERSC的Cori超级计算机上使用650,000个核心 达到了1.5 PetaFLOP/s

Julia编译器还可以为各种硬件加速器生成本地代码,例如GPUs和Xeon Phis。诸如DistributedArrays.jlDagger.jl之类的包为并行性提供了更高级别的抽象方法。

机器学习

可扩展的机器学习

Julia为深度学习(Flux.jlKnet.jl),机器学习和AI提供了强大的工具。Julia的数学语法使其成为表达算法的理想方式,就像它们在论文中编写一样,通过自动微分GPU加速和使用JuliaDB支持千兆字节的数据,构建可训练的模型。

Julia丰富的机器学习和统计生态系统包括广义线性模型决策树聚类的功能。您还可以找到贝叶斯网络马尔可夫链蒙特卡罗的包。

科学计算

丰富的科学计算生态系统

Julia的设计从根本上讲非常擅长数值和科学计算。 这可以在Julia编写的丰富的科学工具中看到,例如最先进的微分方程生态系统(DifferentialEquations.jl),优化工具(JuMP.jlOptim.jl),迭代线性求解器(IterativeSolvers.jl)以及更多的系统可以帮助驱动所有的模拟情景。

Julia还提供了许多特定领域的生态系统,如生物学 (BioJulia),运筹学 (JuliaOpt),量子物理学(QuantumOptics),非线性动力学(JuliaDynamics),定量经济学(QuantEcon),天文学(JuliaAstro)和生态学(EcoJulia)。 有了一群来自科学界各个部门的高度热情的开发人员和维护人员,这个生态系统将继续变得越来越强大。

数据科学

与数据交互

Julia数据生态系统允许您快速加载多维数据集,并行执行聚合、连接和预处理操作,并以高效的格式将它们保存到磁盘中。还可以使用OnlineStats.jl对流数据执行联机计算。无论您是在寻找方便和熟悉的DataFrames,还是使用JuliaDB的一种新方法,Julia都为您提供了丰富多样的工具。QueryVerse包充当一个元包,您可以通过它使用JulianAPI访问这些工具。除了处理表格数据外,JuliaGraphs软件包还使处理组合数据变得容易。

Julia可以使用JDBC.jlODBC.jl驱动程序处理几乎所有的数据库。此外,它还使用Spark.jlHDFS.jlHive.jl与Hadoop生态系统集成。

可视化

数据可视化与绘图

数据可视化具有复杂的历史。 绘图软件在功能和简单性,速度和美感以及静态和动态界面之间进行权衡。 有些软件包会进行显示而不会对其进行更改,而其他软件包则会进行实时更新。.

Plots.jl是一个可视化界面和工具集。 它提供了跨各种后端的通用API,如GR.jlPyPlot.jlPlotlyJS.jl。 喜欢更多语法图形样式API的用户可能会喜欢纯粹的Julia Gadfly.jl绘图包。 对于那些不想离开终端的人来说,还有UnicodePlots.jl






来自JuliaCon 2018的视频







包/类库



Julia已被下载超过200万次,而Julia社区已经开发了超过1,900个Julia软件包。这些包括各种数学库,数据操作工具和用于通用计算的包。除此之外,您还可以轻松使用PythonRC/FortranC++Java中的库。如果你找不到你想要的东西,请在Discourse上提问,或者直接参与贡献!







最近的博客文章



JuliaCon 2018年的展望

2018年Julia社区奖

祝贺 Tim Besard, Katharine Hyatt, Chris Rackauckas and Elliot Saba







和我们一起探讨







Julia代码编辑和IDE



Visual Studio Code