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

能比Python快20倍?Julia真有这么神?

2008年,一群拥有各种语言丰富编程经验的Matlab高级用户,对现有的科学计算编程工具感到不满——这些软件对自己专长的领域表现得非常棒,但在其它领域却非常糟糕。

他们想要的是一个开源的软件,它要像C语言一般快速而有拥有如同Ruby的动态性;要具有Lisp般真正的同像性(Homoiconicity)而又有Matlab般熟悉的数学记号。

要像Python般通用、像R般在统计分析上得心应手、像Perl般自然地处理字符串、像Matlab般具有强大的线性代数运算能力、像shell般胶水语言的能力,易于学习而又不让真正的黑客感到无聊。

还有,它应该是交互式的,同时又是编译型的……

现在,一个充满活力和蓬勃发展的社区围绕着这种语言成长起来,来自世界各地的人们在追求这一目标的过程中不断地精炼并重塑着 Julia。超过 700 人为 Julia 做出了贡献,还有很多人制作了数以千计的令人惊叹的开源 Julia 软件包。

总而言之,我们建立的语言:

-快速:Julia 就是为高性能而设计的。Julia 程序通过 LLVM 编译为多个平台的高效本机代码。

-通用:它使用多个调度作为范例,使得它很容易表达众多面向对象和函数编程的模式。它的标准库提供异步 I / O、进程控制、日志记录、概要分析、软件包管理器等。

-动态:Julia 是动态类型的,就像一种脚本语言,并且很好地支持交互式使用。

-技术:它擅长于数值计算,其语法非常适合数学,支持的数字数据类型众多,并具有开箱即用并行性。Julia 的多次调度非常适合定义数字和数组类型的数据类型。

-(可选)键入:Julia 具有丰富的描述性数据类型语言,类型声明可用于阐明和巩固程序。

-可组合:Julia 的软件包可以很好地协同工作。单位数量矩阵,货币和颜色数据表都可以进行,并且性能良好。

特点:

1.免费开源

2.核心语言非常小。标准库用的是 Julia 语言本身写的

3.调用许多其它成熟的高性能基础代码。如线性代数、随机数生成、快速傅里叶变换、字符串处理。(还在增加中……)

4.丰富的用于建立或描述对象的类型语法

5.高性能,接近于静态编译型语言。包括用户自定义类型等

6.为并行计算和分布式计算而设计

7.轻量级“绿色”协程

8.优雅的可扩展的类型转换/提升

9.支持Unicode, 包括但不限于UTF-8

10.可直接调用 C 函数(不需要包装或是借助特殊的API)

11.有类似shell的进程管理能力

12.有类似Lisp的宏以及其它元编程工具

与其他语言相比,Julia 易于使用,大幅减少了需要写的代码行数;并且能够很容易地部署于云容器,有更多的工具包和库,并且结合了多种语言的优势。据 Julia Computing 的宣传,在七项基础算法的测试中,Julia 比 Python 快 20 倍,比 R 快 100 倍,比 Matlab 快 93 倍。

目前 Julia 的应用范围已经非常广泛了,可以用于天文图像分析、自动驾驶汽车、机器人和 3D 打印机、精准医疗、增强现实、基因组学和风险管理等领域。

两年前,诺贝尔经济学奖得主 Thomas Sargent 和澳大利亚国立大学的经济学教授 John Stachurski,共同建议纽约联邦储备银行把其用于市场走势预测和政策分析的 “动态随机一般均衡模型(DSGE)” 转到 Julia 语言平台。在项目第一阶段后,他们发现,Julia 把模型运行时间缩短至原先 Matlab 代码的十分之一到四分之三。

最优解

除了语言本身的优点,Julia 还拥有非常强大的生态系统,主要应用于数据可视化、通用计算、数据科学、机器学习、科学领域、并行计算六大领域。

小伙伴们,你们准备好了学习这门新的语言吗?欢迎下方留言评论!

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券