The Julia Language

A fresh approach to technical computing.

Download v1.5.0   Documentation Star


Julia in a Nutshell



Julia is fast!

朱莉娅从一开始就为高性能而设计. Julia程序可通过LLVM编译为多个平台的高效本机代码.

Dynamic

Julia是动态键入的 ,感觉就像是一种脚本语言,并且对交互使用具有良好的支持.

Optionally typed

Julia具有丰富的描述性数据类型语言 ,并且类型声明可用于阐明和巩固程序.

General

Julia使用多个调度作为范例,从而可以轻松地表达许多面向对象和功能的编程模式. 它提供异步I / O调试日志记录性能分析程序包管理器等.

Easy to use

Julia具有高级语法,因此对于任何背景或经验水平的程序员来说,它都是一种可访问的语言. 浏览Julia的微基准测试,以了解该语言.

Open source

Julia是根据MIT许可提供的,所有人免费使用. 所有源代码都可以在GitHub上公开查看.





Ecosystem



General Computing

minesweeper gameover

Build, Deploy or Embed Your Code

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

Julia具有C / FortranC ++PythonRJava和许多其他语言的外部函数接口. 朱莉娅还可以通过其嵌入API嵌入其他程序中. 具体来说,Python程序可以使用PyJulia调用Julia. R程序可以使用R的JuliaCall进行相同的操作 ,这可以通过从R调用MixedModels.jl来证明.

Parallel Computing

parallel prefix graphical result

Parallel and Heterogeneous Computing

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

Julia编译器还可以为GPU生成本机代码. 诸如DistributedArrays.jlDagger.jl之类的包为并行提供了更高级别的抽象. 分布式线性代数由Elemental.jlTSVD.jl之类的软件包提供.

Machine Learning

cartpole reinforcement learning problem visualization

Scalable Machine Learning

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

朱莉娅丰富的机器学习和统计生态系统包括通用线性模型决策树聚类的功能 . 您还可以找到贝叶斯网络Markov Chain Monte Carlo的软件包.

Scientific Computing

Lorenz Attractor visualization

Rich Ecosystem for Scientific Computing

Julia从头开始设计,非常擅长数值和科学计算. 这可以从Julia编写的大量科学工具中看出,例如最新的微分方程生态系统(DifferentialEquations.jl) ,优化工具( JuMP.jlOptim.jl ),迭代线性求解器(IterativeSolvers .jl) ,用于傅立叶变换的强大框架(AbstractFFTs.jl) ,通用量子模拟框架(Yao.jl)等 ,可以推动所有模拟.

朱莉娅还提供了许多特定领域的生态系统,例如生物学(BioJulia) ,运筹学(JuliaOpt) ,图像处理(JuliaImages) ,量子物理学( QuantumBFSQuantumOptics ),非线性动力学(JuliaDynamics) ,定量经济学(QuantEcon) ,天文学(JuliaAstro)和生态学(EcoJulia) . 拥有来自科学界各个地方的一群热心的开发人员和维护人员,这个生态系统只会继续变得越来越大.

Data Science

Visualization of weighted data changing as more data is plotted

Interact with your Data

The Julia data ecosystem lets you load multidimensional datasets quickly, perform aggregations, joins and preprocessing operations in parallel, and save them to disk in efficient formats. You can also perform online computations on streaming data with OnlineStats.jl. Whether you're looking for the convenient and familiar DataFrames, or a new approach with JuliaDB, Julia provides you a rich variety of tools. The Queryverse provides query, file IO and visualization functionality. In addition to working with tabular data, the JuliaGraphs packages make it easy to work with combinatorial data.

Julia can work with almost all databases using JDBC.jl and ODBC.jl drivers. In addition, it also integrates with the Hadoop ecosystem using Spark.jl, HDFS.jl, and Hive.jl.

Visualization

Visualization of waves in 3D, as a heatmap, and on the x y axis

Data Visualization and Plotting

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

Plots.jl是可视化界面和工具集. 它提供了跨各种后端的通用API,例如GR.jlPyPlot.jlPlotlyJS.jl . 希望使用更多图形样式API语法的用户可能会喜欢纯粹的Julia Gadfly.jl绘图包. VegaLite.jl提供交互式图形界面的Vega-Lite语法作为Julia包. 对于那些不想离开终端的人,还有UnicodePlots.jl .






JuliaCon 2019






Packages



Julia已被下载超过1300万次,Julia社区已注册了3500多个Julia软件包供社区使用. 这些工具包括各种数学库,数据处理工具以及用于通用计算的软件包. 除了这些,您还可以轻松使用PythonRC / FortranC ++Java中的库 . 如果找不到您要的东西,请在" 话语"上提问,或者甚至更好地贡献一个







Recent Blog Posts



Julia 1.5 Highlights

Julia版本1.5已发布,具有许多性能改进和新功能.

GSoC and JSoC 2020 Project List

GSoC和JSoC 2020项目列表

Julia 1.5 Feature Preview: Time Traveling (Linux) Bug Reporting

Julia 1.5正在利用Mozilla的rr项目自动创建完全可复制的错误报告,从而获得了很酷的新错误报告功能






Talk to us



Facebook

Facebook Logo

LinkedIn

LinkedIn Logo

Instagram

Instagram Logo

Twitch

Twitch Logo





Editors and IDEs



SublimeText

Sublime logo

NotePad++

Notepad Plus Plus logo



Essential Tools



Debugger

Debugger

Revise

Revise Logo

GPUs

Julia GPU Logo

by  ICOPY.SITE