您好,欢迎来到12图资源库!分享精神,快乐你我!我们只是素材的搬运工!!
  • 首 页
  • 当前位置:首页 > 开发 > WEB开发 >
    Python行将出局?Julia和Swift能取而代之吗?
    时间:2020-10-18 21:36 来源:网络整理 作者:网络 浏览:收藏 挑错 推荐 打印

    上世纪90年代,Python作为一种通用编程言语降生了。虽然语句繁复,Python在最后十年的运用状况却并不悲观,它也没能真正成为开发者运用的编程言语。事先,Perl是编程首选,Java已在面向对象编程范围站稳脚跟。

    当然,一切编程言语都需求一定的成熟时间,只要它比现有工具更适宜编程,才会被普遍运用。Python在21世纪初期的第一个机遇就是,人们看法到Python的学习曲线比Perl复杂,还能与其他言语相互操作。这种特性让少量开发者运用Python编程。Django的出现终结了Perl, Python势头更猛了,但依然无法与其“后代”Java和JavaScript相提并论。

    快进到如今,2019年StackOverflow开发者年度调查报告显示,Python已超越Java成为第二受欢迎的言语。

    Python还是10年来开展速度最快的编程言语。Python的普及很大水平上得益于2010年大数据的出现及机器学习、人工智能的开展。企业迫切需求开展迅速、门槛低的编程言语以管理大规模数据和迷信计算义务,而Python能完美处置这些成绩。

    除了以上优势,Python还是一种静态类型的解释型言语。更重要的是,它失掉了Google的支持,后者为Tensorflow购置了Python,这使其成为数据剖析、可视化和机器学习的首选言语。

    但是,虽然对机器学习和人工智能的需求在新十年也将不断添加,但Python的好景却不长了。似乎其它编程言语普通,Python本身也有缺陷。这些缺陷让它能随便被其它更适宜完成企业常规义务的言语所取代。哪怕有R言语坐镇,Swift、Julia和Rust等新编程言语的出现也对数据迷信的现任王者构成了极大要挟。

    Rust仍在努力适配机器学习,所以我以为Swift和Julia是取代Python并最终统治数据迷信的言语。一同来看看Python面临的困境吧。

    Python缺乏类型安全性,运转速度十分慢

    图源:unsplash

    一切的坏事都要付出代价,Python的静态类型化也不例外。静态类型可以轻松快速地编写代码而无需定义类型。但是,尤其是当代码库变大时,代码运转更容易出成绩,开发人员在消费环境中运转代码时会更困难。编译器很容易发现的 BUG,在Python中反而无法辨认,这样就会产生开发阻碍,最终降低大规模运用顺序的开发速度。

    更蹩脚的是,不同于编译代码,Python的解释顺序每次执行时都要剖析每行代码。相比于其它言语,Python开支更大,顺序功用低得多。

    而Julia能避免上述成绩。Julia虽是静态类型言语,但是它有实时编译器。其JIF编译器要么就是在执行前生成正确的机器代码,要么就是运用先前已贮存、缓存的编译,这让它拥有与静态类型言语一样的功用。

    更重要的是,Julia有一个称为多分派的关键特性,相似于OOPs的函数重载(虽然仅能用于运转顺序)。多分派的弱小之处在于它可以处置不同的参数类型,而无需创立独自的函数名或嵌套的if语句。这有助于编写愈加紧凑的代码,也是数值计算的一大成功,它可以轻松地经过扩展处置方案来处置一切类型的参数。

    Swift甚至更胜一筹。Swift是静态类型言语,LLVM编译器(低级虚拟机器)对其停止了高度优化。它能快速编译成汇编代码,这让Swift超高效运转,速度可比拟C言语。

    此外,Swift拥有更好的内存安全和管理工具,即自动援用计数(Automatic Reference Counting)。与garbage搜集器不同,只需援用计数归零,ARC就会回收内存,因此更为准确。

    作为提供类型注释的编译言语,Swift和Julia比Python速度更快,功用更弱小。仅仅这一点,能够就足以让开发人员引荐它们。

    Python在并行性方面有局限性

    Python最大的缺陷不是速度慢,而是并行计算的局限性。复杂地说,Python运用GIL(全局解释器锁)——它会经过阻止多个线程同时执行,来提高单个线程的功用。该进程有一个很大的阻碍:开发人员不能运用多个 CPU中心来停止密集的计算。

    我们在应用Python与Tensorflow、PyTorch 等C/C++库的互操作性方面做得不错。这一点众所周知,我也十分赞同。但是Python包装器并不能处置一切调试成绩,最后还是得靠C和C++反省底层代码。从基本上说,Python的优势在低层有效,这点足以让Python出局。

    这一要素很快将决议Python的衰落、Julia和Swift的崛起。Julia专门用来处置Python的缺陷,主要有三个特性:协同顺序(异步义务)、多线程和散布式计算,这些特性都展现出并发和并行编程的有限能够,这种结构使Julia可以以比Python更快的速度执行迷信计算并处置大数据成绩。

    另一方面,Swift有一切开发移动运用所需的工具,可以停止并行计算。

    图源:unsplash

    Swift和Julia都拥有Python的互操作性和弱小的支持

    虽然在速度、多线程和类型安全方面有不足之处,但Python有包含少量库和顺序包的巨型生态系统。在Python面前,Swift和Julia在机器学习范围依然是个“弟弟”,拥有的库数量十分有限。但是,Julia和Swift比Python更强的互操作性大大补偿了二者库支持的不足的缺陷。

    Julia不只允许顺序员运用Python代码(反之亦然),还能与C言语、R言语、Java以及简直一切主要编程言语的停止互操作。这种多功用功用有力推进这种言语的开展,添加它被数据迷信家迅速采用的时机。

    另一方面,Swift经过PythonKi 库提供了与Python的互操作性。Swift(来源于苹果)最大的卖点是它失掉了谷歌的鼎力支持,十几年前收益于全力支持而崛起的正是Python,可真是风水轮番转。

    另外,Swift的创立者Chris Lattner正在谷歌的AI brain团队任务,这表明Swift正在被重点培育,以在机器学习范围的取代Python。

    Tensorflow团队经过S4TF项目投资了Swift,这进一步证明了该言语不只仅是Python的修饰版。相反,Swift 仰仗其差异化的编程支持和像C言语一样的低层级任务才能,将有能够被用来取代支撑深度学习的工具。

    图源:unsplash

    随着数据量的不断添加,Python的致命弱点很快就会显现。注重易用性和快速编码才能的日子一去不复返,速度和并行计算才是游戏的主角。Python 作为一种通用言语,将不再处置这些成绩。Python终会退场,而Julia和Swift似乎就是候选接任者。

    不过,我并不是说作为编程言语的Python会立刻消逝,它会一点一点淡出人们的视野。Python在数据迷信中的位置将逐渐降低,专门为深度学习而设计的言语才是未来主流。

    (责任编辑:admin)