1 前言

每一种编程语言都有其优势和劣势。 某些语言可能非常快,但代码冗长。 另外一些其它语言可能很容易编写代码,但运行较慢。 这就是所谓的 两语言问题,Julia 的目标就是避免此问题。 尽管我们三位作者来自不同的领域,但我们都发现,与之前使用的编程语言相比,使用 Julia 进行研究更加高效。 我们将在 Section 2 讨论一些关于 Julia 的观点。 不过,与其他语言相比,Julia 还是最新颖的语言之一。 这意味着有时很难驾驭该语言的生态。 比如,很难弄清楚从哪里开始,也不明白如何组合不同的软件包。 这就是我们决定写这本书的原因! 我们想让研究者,特别是我们的同事,更加容易地开始使用这门超酷的语言。

如前面所说,每一门语言都有其优势和劣势。 我们认为,数据科学无疑是 Julia 的优势。 同时,我们三个都使用 Julia 作为日常的数据科学工具。 另外,你可能使用 Julia 研究数据科学! 这就是为什么这本书聚焦在数据科学上。

在本节的下一部分,我们将强调 数据科学的“数据”部分,并将讨论为什么目前工业界和学术界一直需要数据技能。 我们还认为,将软件工程实践引入数据科学 将有利于减少与合作者更新和共享代码时的冲突。 大多数数据分析都是合作的结果,因此软件工程实践能够起到很大的帮助。

1.0.1 数据无处不在

目前来看,数据很丰富,在不久的未来还将产生更多的数据。 一份 2012 年底的报告总结说,从 2005 年到 2020 年,数字化存储的数据量将增长 300 倍,从 130 EB1增加到 40000 EB(Gantz & Reinsel, 2012)。 这个数字相当于 40 万亿 GB,更确切地说,这相当于地球上的每个人创建了 5.2 TB 的数据! 目前,在 2020 年,每人平均 每秒创建 1.7 MB 的数据 (Domo, 2018)。 一份最近的报告指出大约 在2022年,三分之二(65%)的国家其 GDP 正在实现数字化 (Fitzgerald et al., 2020)

每份职业都将受到越来越多的数据可用性和数据重要性的影响(Chen et al., 2014; Khan et al., 2014)。 数据用于沟通交流和构建知识,以及制定决策。 这也就是为什么数据技能很重要。 如果能自如地处理数据,那么你就会成为一名有价值的研究人员或专业人士。 换句话说,你将成为 具有数字素养的人


  1. 1. 1 EB = 1,000,000 TB。↩︎



CC BY-NC-SA 4.0 Jose Storopoli, Rik Huijzer, Lazaro Alonso, 刘贵欣 (中文翻译), 田俊 (中文审校)