社区所有版块导航
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

Julia 为 Python 的王冠而来!

HelloGitHub • 4 年前 • 408 次点击  

转自:新纪元

编辑:LRS

Python 在数据科学、AI 领域里龙头老大的位置毋庸置疑。
 
但如果和一些计算机科学家、数据科学家和人工智能专家深入交流过的话,你就会知道他们是多么痛恨 Python 的缺点。
 
它缓慢的运行速度,需要过多的测试来保证代码的正确性 ,再到尽管已经进行了测试但仍然会产生运行时错误,这些都足以让人时常产生抛弃 Python 的想法。
 
这也是为什么越来越多的程序员开始使用其他语言的原因ーー顶尖的程序员通常使用 Julia、 Go 和 Rust。Julia 是一门开源的编程语言,它擅长数学和技术任务,而 Go 则擅长模块化程序,Rust 是系统编程的首选。
 
 
由于数据科学家和人工智能专家处理大量的数学问题,Julia 也是他们的首要备选语言,Julia 也有 Python 无法比拟的优点。 


Python之禅 vs Greedy of Julia


当人们创建一种新的编程语言时,他们这样做是因为他们想保留旧语言的好特性,并修复那些不好的特性。
 
从这个意义上讲,Guido van Rossum在20世纪80年代末创建了 Python,当时创造Python的原因是改进ABC。
 
ABC语言对于一门编程语言来说太完美了,它固定的编码模式使得教学变得容易,但在现实应用中却很难使用。
 
相比之下,Python 是相当务实的。Python 之禅也反应了创作者的意图:
 
 
Python 仍然保留了 ABC 的良好特性: 例如可读性、简单性和对初学者很友好。但是 Python 比 ABC 更加健壮,更加适应现实生活。
 
在同样的意义上,Julia 的创造者希望保留其他语言中好的部分,而丢弃坏的部分。但Julia 的野心要大得多: 她不是要取代一种语言,而是要打败所有的语言。
 
Julia的作者们在2012年2月14日发了一篇文章,开篇即说明,Julia是一个贪心的语言,要把所有的好处都包揽下来。
 
我们是贪婪的: 我们想要更多。我们想要一个开源的语言,一个自由的许可证。我们需要 c 的速度和 Ruby 的活力。我们需要一种具有同源标志性的语言,像 Lisp 这样的真正的宏,但是又像 Matlab 这样显而易见的、熟悉的数学符号。我们需要一些像 Python 一样可用的东西,像R 一样易于统计,像 Perl 一样自然的字符串处理,像 Matlab 一样强大的线性代数,像 shell 一样擅长把程序粘合在一起。一些非常简单易学的东西,却能让最严肃的黑客高兴。我们希望它是互动的,我们希望它被编辑。
 
 
Julia想要融合当前存在的所有优点,而不是用其他语言的缺点来交换它们。尽管 Julia 是一门年轻的语言,但它已经实现了创作者设定的许多目标。
 
从简单的机器学习应用到巨大的超级计算机模拟,Julia可以用于任何事情。在某种程度上,Python 也可以做到这一点。
 
相比之下,Julia被创造的时候就是为这些事情而生。
 
Julia的创造者想要创造一种和 c 语言一样快的语言ーー但是他们创造的语言比C更快。尽管近年来 Python 变得更容易加速,但它的性能仍然远远不及 Julia。
 
2017年,Julia甚至成功加入了 Petaflop 俱乐部——这是一个语言小俱乐部,考察每个语言在最佳表现时,速度可以超过每秒一个 Petaflop。除了Julia,现在只有 c、 c + + 和 Fortran 还在俱乐部中。
 
 
作为有着超 30 年历史的语言 Python,Python 拥有一个庞大的支持性社区。几乎没有一个与 Python 相关的问题不能在一次 Google 搜索中找到答案。
 
相比之下,Julia的社区非常小。虽然这意味着你可能需要进一步挖掘才能找到答案,但是你可能会一次又一次地与同样的人联系在一起,这可能会变成超越程序员的关系。
 
除此之外,你甚至不需要知道一个 Julia 命令就可以在 Julia 中编码。您不仅可以使用 Python 和 c 在 Julia 中编码,甚至可以在 Python 中使用 Julia!
 
 
只需要先 pip 一下:sudo pip3 install julia

然后再import一下:import julia as jljl.install()


 
即可在 Python 中使用 Julia 代码,提升速度。这使得修补 Python 代码运行速度慢的缺点变得非常容易。或者在你了解Julia的同时保持工作效率。
 
Python 的库也要比 Julia 更多,这是 Python 最强大的地方之,它有数不胜数的维护良好的库。而 Julia 没有太多的库,部分库也被用户抱怨说它们没有得到有效的维护。
 
但是如果考虑到 Julia 是一种非常年轻的语言,利用有限的资源已经开发了相当多的库。除了 Julia 的库数量不断增长之外,它还可以与 c 和 Fortran 的库接口来处理绘图工作。
 
Python是100% 动态类型的,这意味着程序在运行时决定一个变量是浮点数还是整数。
 
虽然这对初学者非常友好,但它也引入了一整套可能的 bug。这意味着需要在所有可能的场景中测试 Python 代码ーー这是一项相当愚蠢的任务,需要花费大量时间。
 
由于 Julia 的创建者也希望它易于学习,所以 Julia 完全支持动态类型。但与 Python 不同的是,如果开发者愿意,也可以引入静态类型ー例如,就像在 c 语言或 Fortran 中一样。
 
这可以为你节省大量的时间: 与其找借口不测试你的代码,你可以在任何有意义的地方指定类型。
 
 
虽然所有这些特性听起来都很棒,但重要的是要记住,与 Python 相比,Julia 仍然是很小众的语言。一个很好的度量标准就是 StackOverflow 上的问题数量: Python 被标记的次数比 Julia 多二十倍!
 
但这并不意味着Julia不受欢迎ーー相反,被程序员广泛使用需要一些时间。
 
考虑一下吧ーー你真的想用另一种语言编写整个代码吗?不,你宁愿在未来的项目中尝试一种新的语言。这就造成了每种编程语言从发布到采用之间的时间滞后,但是现在就使用Julia也很容易,因为Julia允许大量的语言转换,即在其他宿主语言中使用Julia。
 
四十年前,人工智能只是一个小众行业,这个行业内的投资者都不相信它,而且许多技术都很笨拙,难以使用。但那些在当时学到这一点的人才是今天的巨人ーー他们的薪水需求如此之高,以至于可以与美国橄榄球联盟的球员相媲美。
 
 
相比之下,如果早点学习Julia,那么你的简历上除了Python还会比别人多一项技能。
 
学起来吧!管他的,先学了再说。
- END -

关注后第一时间收到推送

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/117300
 
408 次点击