首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Julia语言全新发布,是新时代还是昙花一现?

2018年8月8日,MIT发布了Julia语言正式版(v1.0.0),Julia是一款由700多个研究者耗时十年所打造的人工智能界的“专属”语言,Julia的优势在于“结合了Python的易学性和C的快速运行”。尽管正式版才刚刚发布不久,但是其测试版却已经持续运作了很多年的时间,期间使用过Julia的用户也非常多,其中不乏一些业界的权威,所以Julia的稳定性应该是让我们比较放心的。现在的问题在于,Julia所标榜的速度优势(相较于Python)在试用期间其实是有着不少质疑的声音的,当然,Julia毕竟还只是一门很年轻的语言,回想Python从八十年代末期发布至今,也是经历了多代的更新完善才有了现在的地位,Julia还需要一些时间来证明自己的价值。

接下来我们简单的为大家介绍一下Julia的一些主要特点:

同Python一样,Julia也是由一个开源社区所维护和完善的,Julia的强大之处也正是在于它成千上万的开源包。用Julia设计者的原话来讲:“我们想要的是一个自由开源的语言,并且它同时拥有C的速度和Ruby的动态性;我们想要一个具有同像性(可以将语言的脚本本身当作数据进行处理)的语言, 它有着真正的和lisp一样的宏,但是却像Matlab一样有着显然的,类似于数学表达式的标记;我们想要一个既可以像Python一样作为通用编程语言的工具, 又可以像R那样适用于统计分析,能像Perl那样自然地处理字符串,能像Matlab那样给力地处理矩阵运算,它还要能像shell一样作为胶水将各种程序粘 合在一起;我们想要一个简单易学的语言,同时它还能让最苛刻的魔法师们(hackers)开心。我们希望它是交互式的,但我们也希望它能被编译。”

一个充满活力和繁荣的社区就围绕这种语言成长起来,世界各地的人们都在为了这个目标而不断努力改进和塑造Julia。 超过700人为Julia做出了自己的贡献,更多人创造了成千上万开源的Julia包。总而言之,Julia是这样一种语言:

快速:Julia一开始就是为高性能而设计的。Julia可以通过LLVM而跨平台被编译成高效的本地代码。

通用:Julia使用多分派作为编程范式,使其更容易表达面向对象和函数式编程范式。标准库提供了异步I/O,进程控制,日志记录,性能分析,包管理器等等。

动态:Julia是动态类型的,与脚本语言类似,并且对交互式使用具有很好的支持。

数值计算:Julia擅长于数值计算,它的语法适用于数学计算,支持多种数值类型,并且支持并行计算。Julia的多分派自然适合于定义数值和类数组的数据类型。

可选的类型标注:Julia拥有丰富的数据类型描述,类型声明可以使得程序更加可读和健壮。

可组合:Julia的包可以很自然的组合运行。单位数量的矩阵或数据表一列中的货币和颜色可以一起组合使用并且拥有良好的性能。

以上大多摘选自Julia的官方介绍,虽然Julia看起来很美丽,但现实是,一位Facebook的工程师在使用了Julia一年的时间之后,对其进行了疯狂的吐槽,其内容大致可以分为以下几点:

Julia的速度很慢,甚至比Python还要慢;

Julia消耗内存过多;

Julia的语法颇为模糊,大概只有Matlab的死忠才会喜欢;

Julia目前缺乏的另一个重要内容是库(Library),尤其是标准库

尽管如此,该Facebook的工程师仍认为Julia可以作为Matlab的开源替代品(虽然已经有Octave作为替代品),因为这门编程语言的语法可能对Matlab用户很有吸引力,甚至会撼动Python在数值计算的地位。

不管怎样,Julia的出现对于目前的人工智能领域来讲绝对算不上是一件坏事,至少他让广大的开发者在Python之外又重新有了第另一个选择(忽略掉R吧,深度学习的发展让R开始慢慢掉队),至于最终的效果怎么样,感兴趣的同学可以自己上手试一试,毕竟掌握一门新语言终究不是一件坏事。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180814G0QODF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券