社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python猫 • 5 年前 • 425 次点击  

👆 Python猫” ,一个值得加星标的公众号

花下猫语:昨天刚结束一轮抽奖送书,因为抽奖信息发的是次条,而且仅限群友参与,所以可能有很多同学都没有参与。今天是新一轮的抽奖,走过路过别错过啦!感谢图灵教育的赠书,我们将送出 5 本《Julia编程基础》,参与方式已放在文末,祝大家好运~~:)

剧照 | 《三十而已》


近几年,由 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



抽奖方式


在“Python猫公众号后台对话框中
         发送       0722
获取抽奖小程序码,扫码参与抽奖
活动仅对本公众号读者有效
开奖时间:07.26 18:18(即本周日)

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/71737