9

我是如何爱上 Julia 编程语言的?

 3 years ago
source link: https://www.infoq.cn/article/LMfm1m0YfljjxTO0KTpa
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

本文出处发表于 Towards Data Science 博客,经原作者 Emmett Boudreau 授权,InfoQ 中文站翻译并分享。

为什么 Julia 很快成了我最喜爱的数据科学编程语言。

引言

谈及 2020 年的数据科学,几乎任何事情都有很多选项可供选择。这样对数据科学家来说,既是一个积极的方面,因为科学家可以使用更多的工具工作、预测,同时也是一个消极的方面。因为有了如此多的选择,很难清楚地指出在某些情况下,哪种特定的工具能够工作,或者最适合解决某个问题。

当我在进行研究的时候,偶然接触到一种比较新的科技,那就是 Julia 编程语言。

那时,我一直在用 Python 编写基于 C 语言的后端模型,还有一些 Sklearn 和 Tensorflow 模型,我发现这些模型维护起来非常复杂。在我的特定方案中,当通过请求移动大量数据堆时,我发现自己总会遇到 Pythonic 超时的情况。

在类似这样的场景中,C 后端无疑已经证明了自己的地位,但同时也带来了一个问题。大多数 Python 模块都是用 C 语言编写的,而不是 Python,这些模块在速度方面与其他命令式语言的解决方案相竞争。对于我来说,这让整个系统变得更加令人恼火,开发软件并将其从高级 Python 前端转移到工作中。

说白了,这确实是一个明智的解决方案,C 语言可能是能够快速重复某些内容并使其可靠的最佳方法之一,因此最快的、行业标准的工具采用这个系统是有道理的。但是,要记住,虽然 Python 由 C 语言解释,但 C 是一种不同的语言;这意味着 C 的专有实现常常需要某种依赖系统。

Julia 是如何解决这些问题的

总结一下我对 Python 的失望之处,它是用于 C 语言的一种优秀工具,但由于它是声明性的且面向脚本的,因此通常很难设计出底层解决方案。也就是说,以 Python 的方式运行 Python 实际上会非常缓慢,并且肯定不适合机器学习或大数据操作。

Julia 是一种高级、多范式、高级的编程语言,最近才发布了 1.5 版本,如果你在这个行业,现在就去看看吧!

速度

Julia 是一种速度非常快的编程语言,每个使用它的人都可能是为了这个而学的。使用实时(Just-In-Time,JIT)编译不仅能快速编译,而且使用多态(polymorphic)和语法表达式编写也快得令人难以置信,这些表达式往往能够将完整的函数压缩到一行代码中。

依赖关系

对于依赖关系,Julia 也有一个非常有吸引力的方法。在 Julia 中,环境是以简单的文本数据的形式存储的,即 .toml 文件,该文件保存了给定项目的所有依赖关系信息。这使得科学家们可以非常容易地彼此分享环境,并更高效地进行合作。它也使得部署模型就像把它放到一个文件夹里一样简单。要知道,Python 的 Pip 环境也有类似的模式,但 Julia 语言真正领先之处在于与预编译、文件管理和存储库的完美集成。

数据

对数据类型,Julia 有独特的处理方法,它使得探索不同类型的统计和科学数据变得更加容易,并使数据可以像在论文中一样表达。对于大数据狂人来说,有 Big 类型,能够很好的保持浮点精度和整数精度。对于字典迷来说,任何数据类型都可以是一个包含符号的键,这意味着可以通过任意的数据表示形式调用字典键:我认为这比在很多时候使用整数或字符串更好。尤其是在科学研究领域更是如此。集合可以获得唯一的数据集,并且可以用于许多算法,在 Julia 语言中,还有许多类型非常有趣。

数据和代码的另一种扩展是元编程,感兴趣的用户可能会高兴地发现,Julia 语言非常适合元编程。

灵活性

最后,真正让我倾向于主要成为 Julia 程序员的是这门语言的灵活性。在 Julia 中,从经典的函数式编程到完全不同的范式,只需一行简单的代码,就可以轻松实现。Julia 中的表达式是令人难以置信的,只需一行代码就可以轻松地产生科学影响。

总结

总而言之,目前业界领先的解决方案都是很好的工具,但其中肯定也有不同的工具值得探讨。我碰巧真正爱上的工具是 Julia 及其相关的生态系统,它也在快速发展,这让我兴奋不已。作为一名数据科学家,不断更新最新、最棒的工具,甚至实验性工具,对你的行业来说可能都是至关重要的。Julia 是一门神奇的语言,我想任何想要在数据科学中使用它的人,都会喜欢它。无论这门语言能否会成为你代码库的主要贡献者,我认为它肯定是一种我乐于学习并从中学到许多东西的技能。

作者介绍:

Emmett Boudreau,数据科学家。

原文链接:

https://towardsdatascience.com/how-i-came-to-love-the-julia-language-948c32e2f9b0


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK