Python大家都很熟悉了,近年来在编程语言圈里风气日盛,原因是被数据分析处理和机器学习所青睐。‘Python良好的生态系统,包括各种库、工具、应用软件等等提升了科学计算和数据分析工作的效率。有人甚至放出了“人生苦短,我用Python”的口号,可见一斑。 但是对于支持Julia语言的人来说,他们觉得Python在处理科学计算和数据风险方面速度还是不够快。他们觉得Julia确实是天生用来进行科学计算、机器学习、数据挖掘、大规模线型代数和分布式并行计算的。他们的口号是“我们是贪婪的”,因为Julia想解决所有用于科学计算和数据处理的语言的短板,而取而代之。
什么是Julia语言
Julia创建于2009年,由四个牛人组成的team所创。在2012年的时候发布于世。看看这四个人牛B哄哄的发言:“我们希望它是一个开源的语言,并拥有相关的许可认证;我们希望它既有C语言的速度又有Ruby语言的弹性;我们希望它非常容易理解,拥有像Lisp一样的宏又有像Matlab一样的数学记号;我们希望它像Python那样通用,像R语言那样易于统计计算、像Perl一样简单自然的处理字符串,像Matlab一样强大的处理线性代数,像shell一样能把各种语言联合在一起;我们希望它易于学习,又能让黑客们喜欢;我们希望它是交互式的,又希望它可以编译。” 看完这段话,你明白他们的口号为什么是“我们是贪婪的”了吗?请问,还有什么你不能做到的吗? 那实际发布的Julia语言是什么样子的呢? 可编译,非解释性的语言,追求速度。Julia使用基于LLVM编译架构的即时编译编译器。最好的时候,它能接近或达到C语言的速度。 拥有简单直接的语法。非常像Python。 动态类型变量和静态类型变量兼备。可以显式的定义一个unsigned 32-bit integer,也可以不用定义变量的类型和长度。 Python,C, Fortran语言的库文件通吃。Julia可以直接调用C和Fortran的库文件,也可以通过一个PyCall的借口调用Python的各种库Module。 元编程。即“程序能够编写程序”。非常像Lisp语言。
Julia VS Python: Julia的优势Juila一开始就是为科学计算设计的,所以毫不奇怪它具有如下优势:
默认情况下速度更快。得益于它的即时编译和灵活的类型定义,Julia将纯Python,即未经过优化的Python甩出了几条街。 数学友好的语法。Julia的数学操作语法更像是传统教学使用的语法,这使更多的对计算机不熟悉的数学工作者能很快上手Julia。 自动内存管理。与Python一样,用户不需要担心内存管理。 并行计算。和Python一样可以提供并行计算,但语法更简单,降低了使用门槛。
Python VS Julia: Python的优势总结
虽然Julia还算是个新生事物,但笔者认为还是颇具前景。如果感兴趣的话可以前往
|