再见 Python,Hello Julia!

原创 Rhea Moutafis CSDN 5月11日

作者 | Rhea Moutafis
译者 | 苏本如,责编 | 夕颜
出品 | CSDN(ID:CSDNnews)
随着Python的停滞不前,一个新的热门竞争对手崛起了。
如果Julia对你来说仍是个谜,别担心。
不要误会我的意思。Python的流行仍然受到计算机科学家、数据科学家、人工智能专家,以及他们组成的稳固社区的坚定支持。
但是,如果你曾经和这些人一起共进过晚餐,那么你就应该知道他们对于Python的弱点有多少抱怨。从速度缓慢到需要过多的测试,再到尽管进行了先前的测试仍然会产生很多运行时错误 - 这些已经足够让人恼火了。
这就是为什么越来越多的程序员开始采用其他语言的原因,这些语言中最受欢迎的是Julia、Go和Rust。Julia非常适合数学和技术任务,Go非常适合模块化程序,而Rust是系统编程的首选。
由于数据科学家和人工智能专家需要处理许多数学问题,因此Julia成为他们的赢家。即使经过严格的审视,Julia仍然具有Python无法战胜的优势。
Python的禅与Julia的贪婪
当人们创建一种新的编程语言时,他们这样做的目的是希望保留旧语言中的好特性,并修复其坏特性。
从这个意义上讲,Guido van Rossum在20世纪80年代后期创建Python的目的是为了改进ABC(Abstract Base Class - 抽象基类)。后者对于编程语言来说简直太完美了 - 尽管其刚性使其易于学习,但在现实生活中却很难使用。
而Python则相反,它非常实用。你可以在下列Python的禅中看到这一点,它反映了创造者的意图:
  1. 优美胜于丑陋(Python 以编写优美的代码为目标)。
  2. 明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)。
  3. 简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现)。
  4. 复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)。
  5. 扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)。
  6. 间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)。
  7. 可读性很重要(优美的代码是可读的)。
  8. 即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)
[...]
Python仍然保留了ABC的良好特性:例如可读性、简单性和对初学者的友好性。但是Python比ABC更加健壮,更加适应现实生活。
ABC为Python铺平了道路,而Python也为Julia铺平了道路。
从同样的意义上说,Julia的创造者们希望保留其他语言的优点,而摒弃其缺点。但是Julia的野心要大得多:它不是想取代一种语言,而是想打败所有语言。
Julia的创造者是这样说的:
我们很贪婪:我们想要更多。我们想要一种拥有自由许可的开源语言。我们想要C的速度和Ruby的活力。我们想要的语言是同调的(homoiconic),具有像Lisp这样的真实宏,但又具有类似Matlab这样的显而易见的熟悉的数学符号。我们想要的语言像Python一样适用于通用编程,像R一样适用于统计,像Perl一样自然地处理字符串,像Matlab一样具有强大的线性代数处理能力,像Shell一样易于将程序粘合在一起。我们想要一些简单易学的,但却能让最严肃的黑客开心的东西。我们希望它是交互式的,我们希望它也是可编译的。
Julia希望融合目前存在的语言的所有优势,而不是用其他语言的劣势来平衡。尽管Julia是一门年轻的语言,但它已经实现了它的创造者设定的许多目标。
Julia拥有哪些开发人员喜欢的特性?
多功能性
Julia可以用于从简单的机器学习应用程序到巨大的超级计算机模拟的所有方面。在某种程度上,Python也可以做到这一点,但是Python不知何故发展成了这样。
相比之下,Julia正是为这个目的而生的。自下而上。
速度
Julia的创造者希望创造一种和C语言一样快速的语言 - 但是他们创造出来的语言速度更快。尽管近年来Python变得更容易加速,但是它的性能和Julia相比仍然相去甚远。
2017年,Julia甚至加入了Petaflop俱乐部,这是一个小型的编程语言俱乐部,Julia的峰值性能可以超过每秒1 petaflop的速度。除了Julia,目前只有C,C ++和Fortran进入了这个俱乐部。
社区
凭借其 30 多年的历史,Python 拥有一个非常庞大的支持社区。几乎任何与 Python 相关的问题在一次谷歌搜索中都能得到答案。
相比之下,Julia 社区非常小。虽然这意味着你可能需要进一步挖掘才能找到答案,但你可能会一次又一次地和同样的人联系在一起。这可能会变成超越价值的程序员关系。
代码转换
你甚至无需知道一条Julia命令,就可以在Julia中进行编码。你不仅可以在Julia中使用Python和C代码。甚至可以在Python中使用Julia!
不用说,这使得修补Python代码的弱点变得非常容易。或者在你还在学习Julia的时候保持高效。
拥有数量庞大且维护良好的库,仍然是Python的最强项之一。Julia没有太多的库,并且用户还抱怨说它们还没有得到令人惊讶的维护。
但是,当你认为Julia是一门非常年轻的语言,并且资源有限时,实际上他们已经拥有的库的数量是相当可观的。除了Julia的库数量正在增加之外,它还可以与C和Fortran中的库进行交互以处理绘图。
动态和静态类型
Python是100%动态类型的。这意味着程序将在运行时确定变量是浮点型还是整型。
尽管这对初学者非常友好,但它也引入了许多可能的错误。这意味着你需要在所有可能的情况下测试Python代码。这是一项相当愚蠢的任务,需要花费大量时间。
由于Julia的创造者也希望它易于学习,因此Julia完全支持动态类型。但是与Python相比,你可以根据需要引入静态类型。例如,以C或Fortran中的形式出现。
这可以为你节省大量时间:你可以在有意义的任何地方指定类型,而不是为不测试你的代码寻找借口。
数据:在小的时候进行投资
StackOverflow的问题数量对比(左:Julia,右:Python)
尽管所有这些听起来很棒,但请务必注意,与Python相比,Julia仍然很小。
一个很好的衡量标准是StackOverflow上的问题数量:目前,Python被标记的次数比Julia多二十倍!
这并不意味着Julia不受欢迎, 相反,只是它在被程序员采用前自然地需要一些时间。
想想看,你真的想用另一种语言来重写你的整个代码?不,你宁愿在未来的项目中尝试一种新语言。这就造成了每种编程语言在其发布和采用之间都有一段不小的间隔。
但是,如果你现在就采用它(这很容易,因为Julia允许进行大量的语言转换),那么你就是对未来进行投资。随着越来越多的人采用Julia,你已经获得了足够的经验来回答他们的问题。另外,随着越来越多的Python代码被Julia取代,你的代码将更加持久。
是时候向Julia示爱了。
关键点:让Julia成为你的优势
四十年前,人工智能不过是一种小众技术。业界和投资者对其并不信任,许多技术既笨拙又难以使用。但是那些当时学会它的人都已成为当今的巨人 – 市场需求如此之高,以至于他们的薪水与一个职业橄榄球大联盟球员的薪水相当。
同样,Julia现在也很小众。但是,随着它的发展,最大的赢家将是那些早期采用它的人。
我并不是说,如果你现在选择Julia,你一定可以在十年内赚到很多钱。但是,你正在增加你赚钱的机会。
想想看:大多数程序员的简历上都有Python。在接下来的几年中,我们会在就业市场上看到更多的Python程序员。但是,如果企业对Python的需求放缓,那么Python程序员的前景观点就会暗淡。这个过程开始缓慢,但不可避免。
另一方面,如果你能够将Julia纳入自己的简历,你将拥有真正的优势。坦白讲,是什么让你有别于其他Python程序员呢?没有什么东西。但是,即使三年后,也不会有那么多的Julia程序员。
有了Julia的技能,你不仅证明了你自己对工作要求以外的兴趣。你也证明了你渴望学习,并且对成为一名程序员的含义有更广泛的了解。换句话说,你很适合这份工作。
你,和其他Julia程序员将是未来的摇滚明星,你知道的。或者,正如Julia的创造者在2012年所说的那样:
尽管我们认识到自己的贪婪是不可原谅的,但我们仍然想要拥有一切。大约两年半前,我们开始创造我们贪婪的语言。它还没有完成,但是现在到了发布1.0版本的时候了 - 我们创造的语言叫做Julia。它已经满足了我们90%的苛刻的要求,现在它需要其他人的苛刻的要求来进一步完善它。所以,如果你也是一个贪婪,不讲道理,要求苛刻的程序员,我们希望你能尝试一下。
Python仍然很受欢迎。但是如果你现在开始学习Julia,那么你就可能握有了未来的黄金入场券。从这个意义上你可以说:再见 Python!你好 Julia!
原文链接:
https://towardsdatascience.com/bye-bye-python-hello-julia-9230bff0df62
本文为CSDN翻译文章,转载请注明出处。
不看的原因确定内容质量低不看此公众号
(0)

相关推荐

  • Python小心!Julia 为你的王冠而来

      新智元报道   来源:TNW 编辑:LRS [新智元导读]Python是一个老少皆宜的编程语言,尤其在数据科学领域更是坐头把交椅.但这种现象还会持续多久?会不会有一个新语言打破这种垄断?Julia ...

  • 学 C 语言,最经典的书有这样几本

    选择C语言的理由 在过去40多年里,C语言已成为最重要.最流行的编程语言之一.它的成长归功于使用过的人都对它很满意.过去20多年里,虽然许多人都从C语言转而使用其他编程语言(如,C .Objectiv ...

  • 你以为我在玩游戏,其实我在学编程,这一波我在大气层

    嗨,大家好啊 这里是汐仔 还记得大家一起住宿舍的日子吗?在宿舍的时间除了和一起打游戏开黑,或者看电影,反正除了学习一切事情都能干. 忽然有一天你醒悟过来,想捧一本看看,好的,你将成为一道景点,你会察觉 ...

  • 为什么Lisp如此先进,却永远成为不了编程主流语言?深度解析Lisp的优势与劣势

    Lisp 的争议 由于 Lisp 语言的 "过于灵活而神秘存在" 的特性使得 Lisp 成了世界上最受争议的编程语言,实际上独树一帜的 Lisp 也在(针对不同的产品,总有热衷「语 ...

  • Python和Java你会如何选?小白必看

    初入门学习编程,Python和Java是大家最纠结的问题,让很多人不知道从何下手,今天我们通过这篇文章为大家介绍一下. Python是一门拥有简洁语法的高级编程语言,一个名为Guido van Ros ...

  • 再见Python!我要学Go了!2500字深度分析!

    大家好,我是菜鸟哥 周末了跟大家聊我最近的一些想法.编程语言的天下,自古就是适者生存.像是Java, C和Python等语言,都是历经大浪淘沙,顺应时代发展的强大的编程语言.而今天要和大家分享的go语 ...

  • 再见 2019,再见 Python 2

    今天是 2020 年 1 月 1 日. 今天是 21 世纪第 3 个十年的第 1 天. 今天是 Python 2 正式停止官方支持的日子. 我是 2009 年开始学习并使用 Python 的,至今已有 ...

  • 再见 Python,你好 Electron!(入门篇)

    再见 Python,你好 Electron!(入门篇)

  • 再见PDF提取收费!我用100行Python代码搞定!

    第471篇原创干货,第一时间送达 大家在日常的工作和学习过程中,都少不了与PDF文件打交道,很多的小伙伴都面临着将PDF文件中的文字.图片和表格数据提取出来的问题.能够对PDF文件中的文字.表格等数据 ...

  • 再见HTML ! 用纯Python就能写一个漂亮的网页

    原创 G哥 程序员GitHub 2020-07-02 大家好,我是程序员G哥,今天又给大家带来一个炫酷的神器! 我们在写一个网站或者一个网页界面的时候,需要学习很多东西,对小白来说很困难!比如我要做一 ...

  • 为什么说 Julia 更优于 Python?

    两大机器学习和统计编程中的常用语言 Julia 和 Python,究竟有何不同? 作者 | Emmett Boudreau 译者 | 弯月,责编 | 屠敏 出品 | CSDN(ID:CSDNnews) ...

  • 再见 VBA!神器工具统一 Excel 和 Python

    作者:东哥起飞 来源:Python数据科学 大家好,我是东哥. 经常给大家推荐好用的数据分析工具,也收到了铁子们的各种好评.这次也不例外,我要再推荐一个,而且是个爆款神器. Excel和Jupyter ...

  • 为什么Julia比Python快?因为天生理念就更先进啊

    其实像以前 C 或其它主流语言在使用变量前先要声明变量的具体类型,而 Python 并不需要,赋值什么数据,变量就是什么类型.然而没想到正是这种类型稳定性,让 Julia 相比 Python 有更好的 ...