再见 Python,Hello Julia!

公众号关注 “GitHubDaily”

设为 “星标”,每天带你逛 GitHub!

随着 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!

Julia GitHub 地址:

https://github.com/JuliaLang/julia

原文链接:

https://towardsdatascience.com/bye-bye-python-hello-julia-9230bff0df62

---

由 GitHubDaily 原班人马打造的公众号:GitCube,现已正式上线!
接下来我们将会在该公众号上,为大家分享优质的计算机学习资源与开发者工具,坚持每天一篇原创文章的输出,感兴趣的小伙伴可以关注一下哈!

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客
应支付0元
点击重新获取
扫码支付

支付成功即可阅读