导读:Julia是数据科学家的一个“零妥协”的编程语言,它将动态语言的易用性与编译语言的速度相结合的开发语言,目前它的1.0版本刚刚正式发布。
Julia语言的Logo
Julia是一款免费的开源,高级,高性能,动态编程语言,适用于数值计算。它兼具动态语言的开发便利性和编译的静态类型语言的性能,部分归功于基于LLVM的JIT编译器生成本机机器代码,部分是通过多个专业化实现类型稳定性的设计,这使得代码编译更高效。
Julia 语言的官网:https://julialang.org/
Julia 语言项目地址:https://github.com/JuliaLang
近日,MIT CSAIL 实验室正式发布了 Julia 1.0,不少人称,该语言结合了C语言的性能和Python 的易上手性,被称为最聪明的一群大脑创造出的现代编程语言。
从实际应用来说,Julia 已经用于自动驾驶汽车、机器人和 3D 打印机,此外还广泛应用于精准医疗、增强现实、基因组学及风险管理。从 Julia 的生态系统来说,目前它主要的特征或应用领域为数据可视化、一般性的 UI 与网站、数据科学、机器学习、科学计算与平行计算等。
Julia 目前下载量已经达到了 200 万次,且 Julia 社区开发了超过 1900 多个扩展包。这些扩展包包含各种各样的数学库、数学运算工具和用于通用计算的库。除此之外,Julia 语言还可以轻松使用 Python、R、C/C++ 和 Java 中的库,这极大地扩展了 Julia 语言的使用范围。
2015年7月,该语言的设计者创立了Julia Computing公司,以“开发Julia,它是易于使用,易于部署且易于扩展的产品。”为目标。截至撰写本文时,该公司有28名员工,客户从国家实验室到银行,从经济学家到自动驾驶汽车研究人员均包括。除了在GitHub开源存储库上维护Julia之外,Julia Computing还提供商业产品,包括JuliaPro,有免费和付费两个版本之区分。
从技术上来看,这种语言会长期发展下去。如今是一个里程碑的时刻。本周于伦敦举办的 Julia 语言年会上,Julia 1.0 正式发布,一起发布的还有 JuliaCon产品。
什么是Julia?
Julia旨在以单一语言创建前所未有的易用性,功能和效率组合。对于它效率问题,请看以下图片:
上图显示了Julia和其他10种语言相对于C语言的表现,越低越好。该图执行的基准是非常低级的任务,是使用Jupyter中的Gadfly绘图和数据可视化系统创建的。 Julia右边的语言按几何平均值排序,LuaJIT最快,GNU Octave的速度最慢。
对于几种数据操作,Julia代码比C语言更快,其它的操作会比C慢几倍。相比之下,比如R语言,某些操作比C慢近1000倍。
Julia 1.0
如今Julia 在开发语言排行榜中已经开创了自己的一席之地。在GitHub上Julia 已经获得了 12293 颗星。
此外,在TOIBE 8 月份编程语言排行榜(https://www.tiobe.com/tiobe-index/)上已攀升至第 50 名:
这一切,缘于Julia 开发者对该语言提出了很多“贪婪”的需求:
我们想要一种十分自由的开源语言,同时兼具 C 语言的速度和 Ruby 语言的灵活度。我们想要一种同像性语言,具有像 Lisp 一样真正的宏,也有像 Maltlab 一样浅显易懂的数学符号。它是像 Python 一样有用的通用编程语言,像 R 语言一样便于统计的语言,像 Perl 一样自然的字符串处理语言,像 Matlab 一样强大的线性代数语言,也是像 shell 一样的「胶水语言」。它简单易学,却能让严苛的黑客们为之倾心。我们希望它兼具交互性和可编译性。
为了这样一个目标,世界各地的人们不断地重塑并改进着 Julia。超过 700 人对 Julia 做出了实质性贡献,更有不计其数的人制造了数千个惊人的 Julia 开源软件包。社区构建了一种这样的语言:
高速:Julia 为高性能而生。Julia 程序通过 LLVM 为多个平台编译高效的本地代码。
通用:它使用多分派作为范例,使得表达许多面向对象和函数式的编程模式变得容易。标准库提供异步 I/O、进程控制、日志记录、性能分析、包管理器等。
动态:Julia 是动态型语言,与脚本语言类似,并且支持交互式使用。
专业:它擅长数值计算,其语法适用于数学,支持多种数值数据类型,并具有良好并行性。Julia 的多分派天生适合定义数字和类数组的数据类型。
多样:Julia 拥有丰富的描述性数据类型,类型声明使程序条理清晰且稳定。
可组合:Julia 的包可以很好地组合在一起。单位数量的矩阵,或者货币和颜色的数据列表,都可以组合——而且性能很好。
现在, Julia语言 1.0 版本已经可以下载。1.0 不仅涉及稳定性,还引入了多种新的强大、创新性语言功能。Julia 1.0 的新功能专门构建了许多新的外部软件包,如数据处理和操作生态系统的改进和异构架构支持的改进等。
对于1.0 这样一个版本号,意味着语言做了大量的改进,如果你想查看完整的列表,可以访问其官网:https://docs.julialang.org/en/release-0.7/NEWS/
◆◆◆◆
现在人工智能爆发,Python是一门脚本语言,它更适合去做人工智能这个领域,在人工智能上使用Python比其他编程语言有更大的优势。
领取专属 10元无门槛券
私享最新 技术干货