加入收藏 | 设为首页 | 会员中心 | 我要投稿 惠州站长网 (https://www.0752zz.com.cn/)- 办公协同、云通信、物联设备、操作系统、高性能计算!
当前位置: 首页 > 业界 > 正文

无人机新业态发展虽猛

发布时间:2021-02-07 17:20:14 所属栏目:业界 来源:互联网
导读:是什么使Python如此流行? Python迅猛发展的主要推动力之一是它的易学性和强大的实用性,这使其对初学者以及因诸如C之类的语言的语法难以理解而回避编程的人非常有吸引力。 / C ++。 该语言从根本上广泛强调代码的可读性。 凭借其简洁明了的语法,它使开发人

是什么使Python如此流行?

Python迅猛发展的主要推动力之一是它的易学性和强大的实用性,这使其对初学者以及因诸如C之类的语言的语法难以理解而回避编程的人非常有吸引力。 / C ++。

该语言从根本上广泛强调代码的可读性。 凭借其简洁明了的语法,它使开发人员无需编写大量的行代码即可表达想法和概念(在C或Java等低级语言中就是这种情况)。 Python非常简单,可以与其他编程语言无缝集成(例如将CPU密集型任务卸载到C / C ++),这对多语言开发人员来说是一个额外的好处。

Python多功能性的另一个原因是企业(包括FAANG)以及无数小型企业对其的大量使用。 如今,您将找到一个Python软件包,几乎可以想到的所有内容-对于科学计算,您已经拥有Numpy,Sklearn(用于机器学习)和Caer(用于计算机视觉)。

Python的弱点

很慢,很慢
 

所有的好事都要付出代价,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有一切开发移动应用所需的工具,能够进行并行计算。

(编辑:惠州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读