害(haì)!Python不香了?Julia大法好?

配图来自pexels

近几年,由MIT CSAIL 实验室开发的编程语言Julia已然成为编程界的新宠,尤其是在学科计算领域。最近一篇标题为Bye-bye Python. Hello Julia! 的文章,引起热议。这里,借用作者文中的一句话:

Python 仍然非常流行。但是,如果你现在开始学习 Julia,它将来可能就是你的头等舱船票。

据说,Julia关于生物工程,机器学习,数值优化的一些库,也有很多国内开发者参与和主导着,其热度大有取代Python和R之势。

那么,Julia到底好在哪里?

与Python和R相比,他的性能到底强在哪?

编程语言的进化——Julia的贪婪

开发者在创建一门新语言,基本上遵循以下原则,既要保留旧语言的长处,又要修复其中的缺陷。基于这个理念,Guido van Rossum 在 1980 年代后期创建了 Python,作为 ABC 的改进和替代。同样的,Julia团队也希望遵循这样的原则,但较比Python的设计初衷,Julia显得更贪婪。

Julia 语言的缔造者们对它的期望是这样的:

  • 程序运行速度像 C 语言;

  • 通用性像 Python 语言;

  • 动态语言特性像 Ruby 语言;

  • 统计分析便利性像 R 语言;

  • 字符串处理便捷性像 Perl 语言;

  • 线性代数运算能力像 MATLAB 语言;

  • 元编程能力像 Lisp 语言;

  • 操作系统的能力像 Shell 语言。

 

你看到这些之后也许会想:他们是不是疯了!这怎么可能?!不要太惊讶,从他们在 2018 年 8 月发布的 Julia 1.0 版本来看,上述期望还真在很大程度上实现了!虽然 Julia 这门语言至今还在被不断地改进和完善。但是从那时起,它已经相当成熟了。在科学计算、数据分析、机器学习、数学规划、数值优化等领域,它的应用已经相当广泛了,尤其是在科研机构和学术界当中。而在工程界,使用它的公司也越来越多了。

 

Julia大法的魔力

1.速度上的绝对优势

2017 年,Julia 加入了 Petaflop 俱乐部——这是一个小型编程语言俱乐部,其中的成员都能实现超过千万亿次每秒的峰值计算性能。除了 Julia,目前只有 C、C++ 和 Fortran 是这个俱乐部的成员。

但如果只从运行速度快慢的角度来说明Julia的绝对优势,这种说法有失偏颇。说到底,速度的快慢取决于具体的执行指令,高级语言只能尽量提供优化的可能性。

 

2.代码转换一把梭

不懂任何Julia命令,涉及团队协作,你不仅可以在Julia 中使用 Python 和 C 代码,同时也可以在 Python 中使用 Julia。这样一来,开发人员就能轻松修补自己 Python 代码的缺陷。或者在学习 Julia 的过程中依旧保持生产力水平。

 

3.动态和静态类型

Python 是 100%动态类型的。这意味着程序将在运行时确定变量是浮点数还是整数。尽管这对初学者来说非常友好,但它也引入了许多潜在的错误。这意味着你需要在所有可能的场景中测试 Python 代码——这个过程相当笨拙,需要花费大量时间。

 

Julia在设计之初就考虑如何让其利用现代的技术去高效加速动态语言。从结果上来看Julia在提供了像Python,Lisp,Ruby这样交互式编程和动态性的同时,也有着静态编译语言一般的性能——比如 C 或 Fortran 中的那些形式。

 

如何入门Julia?

较比python,Julia社区非常小,这也就以为意味着,需要初学者去深入挖掘找到答案,或仔细研究官方文档。但因为Julia 语言中的官方文档对编程初学者并不是那么的友好,关于broadcasting,写的综合性太强,不容易理解,阅读的门槛有点高。

 

这里重点推荐郝林老师的新书《Julia编程基础》,这本书不同程度上解决“Julia阅读门槛高”的问题,从安装编程环境讲起,详细解析了 Julia的基础特性,结合一些实际操作示例的演示,降低了你的学习门槛,用到相关知识点,直接翻书查阅,可以作为学习Julia人手必备的“索引工具书”。

最后,分享大家一张作者绘制的Julia 知识图解????,一图了解Julia,祝大家早日领到头等舱的船票!

参考资料:

https://juejin.im/post/5b75911af265da27fc07a256

https://www.zhihu.com/question/362999182

https://mp.weixin.qq.com/s/rt2lY_bPhgi2U4b-yVc2xQ

今日话题

“ 如果你现在开始学习 Julia,

它将来可能就是你的头等舱船票。”

对此,你怎么看?聊聊你的想法吧~

留言点赞最高的前 5 名

将各获得《Julia编程基础》纸质书籍一本

截止时间:2020年7月 22日18:00

小编会在留言区直接公布获奖名单哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值