【 雷锋网(群众号:雷锋网)注:图片来源:Pixabay 一切者:Devanath 】
本文转自雷锋网,如需转载请至雷锋网官网央求授权。
随着 Python 的停滞不前,一个新的抢手竞争对手出现了。
不要曲解。Python 的受欢迎水平,依然失掉计算机迷信家、数据迷信家和人工智能专家的坚实支持。但是,假设你曾经和这些人一同共进晚餐,你也会知道他们对 Python 的弱点有多不满。从运转缓慢,到要求过多的测试,到不顾之前的测试而产生运转时错误——这些都足以让你恼火。这就是越来越多的顺序员采用其他言语的缘由——顶尖的顺序员是 Julia,Go 和 Rust。Julia 擅长数学和技术性的义务,而 Go 擅长模块化顺序,Rust 是细叱编程的首选。由于数据迷信家和人工智能专家要处置许少数学成绩,Julia 是他们之中的赢家。即使经过严厉的审查,Julia 也有 Python 无法超越的优点。
Python 的禅与 Julia 的贪心
当人们创立一种新的编程言语时,他们这样做,是由于他们想保留旧言语好的特性并修复坏的特性。从这个意义上说,生于 1956 年的吉多·范罗苏姆(Guido van Rossum)在 20 世纪 80 年代前期发明了 Python 来改良 ABC 言语。后者关于一种编程言语来说太完美了——虽然它的特性使它易于教学,但在理想生活中却很难运用。相比之下,Python 相当适用。您可以在 Python 的禅宗思想中看到这一点,它反映了创作者的意图:
美丽胜于漂亮。
显性比隐性好。
复杂总比复杂好。
复杂总比难懂好。
平的比嵌套的好。
稀疏总比密集好。
可读性很重要。
特例不足以打破规则。
虽然适用性胜过地道。
【 雷锋网注:图片来源:Pixabay 一切者:Prawny 】
Python 依然保留了 ABC 的良好特性:例如可读性、复杂性和初学者友好性。但是 Python 比 ABC 更强健,更顺应理想生活。
从异样的意义上说,Julia 的发明者希望保留其他言语的优点,摒弃不好的部分。但是
Julia 的发明者是这样说的:
我们贪心:我们想要更多。我们想要一种开源的言语,一种自在的容许。我们想要有红宝石般生机的速度。我们想要一种同象言语,有像 Lisp 那样的真正的宏,但是有像 Matlab 那样清楚的、熟习的数学符号。我们想要像 Python 一样可用于普通编程,像 R 一样容易用于统计,像 Perl 一样自然用于字符串处置,像 Matlab 一样弱小用于线性代数,像 shell 一样擅长将顺序粘在一同。有些东西十分复杂易学,却能让最严肃的黑客快乐。我们希望它是交互式的,我们希望它被编译。
Julia 想融合现有的一切优势,而不是用其他言语的优势来交流。虽然 Julia 是一门年轻的言语,但它曾经完成了创作者设定的许多目的。
Julia 的开发者喜欢什么
从复杂的机器学习运用到庞大的超级计算机模拟,多才多艺的 Julia 可以用于任何事情。从某种水平下去说,Python 也可以做到这一点——但是 Python 不知何故逐渐开展成了这样。相比之下,Julia 正是为这种东西而生。自下而上。
Julia 的发明者希望发明一种和 C 言语一样快的言语——但是他们发明的速度更快。虽然近年来 Python 变得更容易减速,但它的功用依然远远不如 Julia。
2017 年,Julia 甚至参加了“亿次浮点运算俱乐部”,这是一个小型的言语俱乐部,在巅峰形状下,它的速度可以超过每秒 10 亿次。除了 Julia,如今俱乐部里只要 C、C++ 和 Fortran。
社区
仰仗其 30 多年的历史,Python 拥有一个庞大的支持性社区。简直任何与 Python 相关的成绩在一次谷歌搜索中都能失掉答案。相比之下,Julia 社区十分小。虽然这意味着你能够需求进一步开掘才能找到答案,但你能够会一次又一次地和异样的人联络在一同。这能够会变成超越价值的顺序员关系。
代码转换
你甚至不需求知道一个单一的 Julia 命令来编码 Julia。你不只可以在 Julia 中运用 Python 和 C 代码。你甚至可以在 Python 中运用 Julia!
不用说,这使得修补您的 Python 代码的弱点变得十分容易。或许在你还在了解 Julia 的时分保持高效。
【 雷锋网注:图片来源:Pixabay 一切者:izoca 】
库
这是 Python 的最大优点之一——它有有数维护良好的库。Julia 没有很多库,用户抱怨它们没有失掉令人诧异的维护。
但是当你思索到 Julia 是一门十分年轻的言语,资源有限,他们曾经拥有的库的数量相当可观。除了 Julia 的库数量正在增长这一理想之外,它还可以与 C 言语和 Fortran 言语的库停止接口,例如处置图。
静态和静态类型
Python 是 100% 静态类型的。这意味着顺序在运转时决议变量是浮点型还是整数型。
虽然这十分适宜初学者,但它也引入了一大堆能够的错误。这意味着您需求在一切能够的场景中测试 Python 代码——这是一个相当愚笨的义务,需求破费很多时间。
由于 Julia 的发明者也希望它易于学习,朱莉娅完全支持静态编译。但是与 Python 不同的是,假设你情愿,你可以引入静态类型——比如,以它们在 C 或 Fortran 中的方式。
这可以为你节省少量时间:你可以在任何有意义的中央指定类型,而不是为不测试你的代码寻觅借口。
在小的时分投资
【雷锋网注:StackOverflow 上成绩数量的比照和趋向】
虽然一切这些听起来都很棒,但重要的是要记住,与 Python 相比,Julia 依然很小。一个很好的权衡标准是 StackOverflow 上的成绩数量:此时,Python 被标记的次数比 Julia 多 20 倍!
(责任编辑:admin)