2021年 学一门编程语言(二)Julia
Julia(官网)在Stack Overflow的问卷中被评为10大最受人喜爱的编程语言之一,它是一种动态语言,适合用于科学计算和数值计算,但与传统的静态类型语言相比,它的性能也不弱。实际上它的设计初衷就是高性能语言。Julia程序可通过LLVM编译为多个平台的高效本地代码。 因为它是动态类型语言,所以会像Python一样像一种脚本语言,也对交互使用具有良好的支持。
它使用multiple dispatches作为范式,从而易于表达许多面向对象和函数式编程的模式。这门语言具有高级别的语法,因此适合任何背景或经验水平的程序员。而且,它遵循MIT license,每个人都可以免费使用,所有源代码都可以在GitHub上公开查看。
Julia常被拿来跟Python做比较,被认为是Python的接班人之一,很适合机器学习相关从业者使用(Python通常更会被强调是一种OO面向对象的语言,因为有很多数据科学相关的包,所以也很适合做机器学习、数据分析。与之对应,Julia会被强调是一种更侧重于函数式编程的语言),下面简单列举几个Julia更有优势的方面:
速度
python是解释型语言,而Julia是编译型语言。但又与传统的像C语言这样的编译型语言不同,Julia是在运行时编译的。运用得当的话,Julia的速度可跟C媲美,甚至比C还快。Julia使用Just In Time(JIT)编译器并以相当快的速度编译,使得看起来就像是个解释型语言一样。
解决了双语言问题
在快速进行概念验证时,人们习惯于用动态语言,等真正要部署上线时,又需要用静态语言重写,以优化性能。2009年Julia的设计者就考虑到了这种问题,所以Julia的目标之一就是解决双语言问题。
互通性
Julia可以调用R、Python、C等语言的代码,使得它可以借用其他语言庞大的生态圈。
为ML而生
与Python不同,Julia是专为统计和机器学习而设计的。Julia具有数学上更友好的语法,它的主要用户群是具有科学计算背景的人(比如Matlab, R, Mathematica和 Octave用户)
支持元编程(meta programming)
Julia支持元编程。 Julia程序可以生成其他Julia程序,甚至以类似于Lisp之类的方式修改自己的代码。
参考
[1] https://blog.altabel.com/2019/11/04/whether-julia-edge-out-python-and-become-a-new-hearteater-for-developers/
[2] https://blog.altabel.com/2019/11/04/whether-julia-edge-out-python-and-become-a-new-hearteater-for-developers/
[3] https://www.analyticsinsight.net/julia-not-among-the-top-languages-yet-most-loved-by-programmers-why/
[4] https://www.infoworld.com/article/3241107/julia-vs-python-which-is-best-for-data-science.html