Julia中文社区

社区驱动, 致力于Julia语言的中文支持的开源组织


简而言之, Julia语言就是



快!

Julia一开始就是为高性能设计的。 Julia程序被LLVM编译成高效的多平台机器码。

动态

Julia是动态类型语言,感觉上像脚本语言,有很好的交互开发支持。

非强制的类型

Julia有丰富的数据类型描述语言,类型声明可以使程序更清晰可靠。

通用型

Julia使用多分派范式, 容易表达很多面向对象和函数编程的模式。 标准库提供异步输入/输出,进程控制,日志,性能分析,库管理器,还有更多。

技术

Julia的强项是数值计算。它的语法非常适合数学计算,支持很多数值计算数据类型, 并行计算拿来就可以用。 Julia的多分派机制很自然地支持自定义数字和数组类的数据类型。 datatypes.

可组合

Julia库用在一起很自然。比如单元矩阵,货币和颜色数据表列, 等等拿来可用,性能优异。




生态系统



通用

组建, 部署或者嵌入代码

Julia可以让你开发用户界面,静态编译代码,甚至部署到网页服务器上。它还有强大的类似壳层(shell)的管理进程功能。它还提供类似Lisp的宏和其它元编程的能力。

它还和其它语言友好相处,提供与 C, Python, R, Java, 还有更多的语言之间的稳定的界面。

并行计算

并行和异构计算

Julia设计上就具有并行性, 提供各个层次的内置并行计算能力: 矢量化(SIMD), 多线程超级计算机上运行的分布式计算,

Julia复杂的编译器可以生成各种硬件加速器的机器码,比如GPUs至强融核。 编写在所有平台上都可以运行的通用代码, 不需要考虑底层的细节。

规模化机器学习

Julia为机器学习和人工智能提供强大的深度学习工具 (Flux and Knet)。 和论文中发表的数学公式一样, Julia的数学语法是表达算法的理想方式,通过 自动微分, GPU加速和terabytes数据支持来 建立可训练的模型。

Julia丰富的机器学习生态系统还提供监督式学习算法, 比如 回归, 决策树, 以及非监督式学习算法,比如 聚类 。您还可以找到 贝叶斯网络马尔科夫蒙特卡洛的外部库。

Scientific Computing

丰富的科学计算生态环境

Julia is designed from the ground up to be very good at numerical and scientific computing. This can be seen in the abundance of scientific tooling written in Julia, such as the state-of-the-art differential equations ecosystem (DiffEq), optimization tools (JuMP and Optim), iterative linear solvers (IterativeSolvers) and many more, that can drive all your simulations.

Julia also offers a number of domain-specific ecosystems, such as in biology (BioJulia), operations research (JuliaOpt), quantum physics (QuantumOptics), nonlinear dynamics (JuliaDynamics), quantitative economics (QuantEcon), astronomy (JuliaAstro) and ecology (EcoJulia). With a set of highly enthused developers and maintainers from various parts of the scientific community, this ecosystem will only continue to get bigger and bigger.

Data Science

和你的数据交互

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. 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 package acts a meta package through which you can access these tools with Julian APIs. In addition to working with tabular data, the JuliaGraphs packages make it easy to work with combinatorial data.

Julia also integrates with every popular database you've heard of, including MySQL, JDBC, ODBC, HDFS and Hive .

Visualization

数据可视化和绘图

Data visualization has a complicated history. Plotting software makes trade-offs between features and simplicity, speed and beauty, and a static and dynamic interface. Some packages make a display and never change it, while others make updates in real-time.

Plots.jl is a visualization interface and toolset. It sits above other backends, like GR or PyPlot, connecting commands with implementation. If one backend does not support your desired features or make the right trade-offs, you can just switch to another backend with one command. No need to change your code. No need to learn a new syntax. Plots might be the last plotting package you ever learn.








外部库



Julia 已经被下载超过两百万次。Julia的社区开发了一千九百多外部库。这些包括各种数学库,数据处理工具,以及通用计算库等。除此之外,您还可以很容易地调用 from Python, R, C/Fortran, C++, and Java等的外部库. 如果您找不到需要的,可以在Discourse询问, 自己贡献更好!









联系我们