vlambda博客
学习文章列表

Julia语言介绍,与大热门Python有啥区别呢?



Julia(官网)在Stack Overflow的问卷中被评为10大最受人喜爱的编程语言之一。


Julia是一种高级编程语言,由麻省理工学院(MIT)的4个人开发。它是一种开源的、高性能的、高级的、用于科学计算的动态编程语言。它主要用于数据分析和统计计算,类似于R编程语言。


Julia的主要优点是它的速度,它的应用程序与Python或R相比,运行时间更快。它支持执行困难的任务,比如云计算和并行,这被认为是执行大数据分析的基础。


它是一种动态语言,适合用于科学计算和数值计算,但与传统的静态类型语言相比,它的性能也不弱。实际上它的设计初衷就是高性能语言。


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之类的方式修改自己的代码。


什么人使用Julia语言?


Julia主要被研究型科学家和工程师使用,除此之外,它也被金融分析师、定量分析师和数据科学家使用。Julia语言的开发人员确保所开发的产品使Julia易于使用、部署和扩展。Julia可以安装在各种平台上,比如Windows、MacOs和Linux。



Julia的包


以下是一些最受开发者欢迎的软件包:


1.interact.jl:交互式小部件,例如下拉、滑块和复选框,可以轻松地实现julia代码。

2.Generic Linear Algebra:用于扩展线性代数的功能。

3.Colors.jl:这是Julia的一个颜色处理工具。

4.UnicodePlots.jl:基于unicode的科学绘图在终端中工作。

5.Nemo:计算机代数软件包。

6.Revise:在运行的Julia会话中自动更新函数定义

7.BenchmarkTools:基准测试框架。

8.OhMyREPL.jl:方括号突出显示,语法突出显示和彩虹方括号。

9.StaticArrays:提供静态大小数组的框架。



Python作为一门不断发展与普及的语言,还在不断更新中。在学习时,建议找一些学习伙伴一起来学习和讨论,效果更佳。


比较Julia和Python


Python是大多数开发人员广泛使用的最流行的语言。而julia是在2012年推出的比python要年轻得多。但考虑到redmonk的排名,许多开发者可能会使用julia,因为它很快就会流行起来。


Julia的优点:


从一开始Julia就是为数值和科学计算而设计的。毫不奇怪,Julia有许多这样的用途:


1.默认情况下更快。JIT编译和JIT类型声明意味着它可以经常击败“纯”Python。借助外部库的方法,可以使用Cython、第三方JIT编译器python等工具进行优化,但是Julia的设计从一开始就加快了速度。


2.一个数学友好的语法。Matlab、R、Mathematica、Octave等计算语言和环境的用户是julia的目标受众。Julia的数学运算语法看起来类似于在计算世界之外编写数学公式的方式,这使得非程序员更容易理解。


3.自动内存管理。与Python一样,Julia没有向用户提供分配和释放内存的细节,而是提供了对垃圾收集的一些控制措施。其思想是,如果您切换到Julia,您不会失去Python的一个常见便利。


Python的优点


Python是一种易于学习的通用计算语言,它已经成为科学计算的主要语言。一些原因可能仍然使python成为数据科学工作的最佳选择:


仍处于婴儿阶段。Julia仍处于开发阶段,其当前版本运行在v1.1.0上。随着开发人员不断尝试改进性能,将来还会添加更多的特性。


更多的第三方包。python的定制包文化的广泛使用仍然是该语言的最大兴趣所在。Julia的相对新颖性类似于周围的软件文化仍然很小。


Python的大社区优势。一种语言如果没有周围活跃的大型社区的支持,就无处可去。julia的社区热情高涨,并在逐渐壮大,但仍然只是python社区的一小部分。




-END-