Julia 登上了本周 github trending,不知道是否有 v2 的贡献?发篇文章庆祝下。
Julia is a highly productive language that runs fast
快
性能是 julia 设计的初衷。科学计算需要大量的性能开销,主流的 python 并不能满足这一要求,但 julia 的设计者们仍然认为动态语言是更好的选择,得益于技术的进步,动态语言可以达与静态语言相媲美的性能,于是 julia 在 2012 年诞生了(python 诞生于 1991)
动态类型
optional typing
通常,动态语言的变量类型都是在运行时确定的,但对于 julia 来说是可选的,你可以在代码中申明类型,利用 JIT,julia 可以编译部分代码以提高性能,这些申明为 JIT 提供了用于优化性能的信息。Julia 提供了预编译的选项 __precompile__()
。
多重派发(multiple dispatch)
类似于静态语言的函数重载,julia 在处理同名函数时使用的方法叫多重派发。多重派发是 julia 的核心特性。
多范式,IP,PP,OOP,FP,MP
通用性
虽然 Julia 是为科学计算而设计的,但也注重在其他领域的应用,所以在语法设计上不仅参考了 R, MATLAB, Python,也同时吸取了 Lisp, Perl, Lua, Ruby 等语言的优点。
coroutine(Task)
可以直接调用 C,没有额外的封装
支持宏
https://github.com/songtianyi/songtianyi.github.io/blob/master/mds/techniques/julia-overview.md