导航:首页 > 源码编译 > python静态编译趋势

python静态编译趋势

发布时间:2024-07-13 02:41:22

python编程语言中是什么地位为什么很多大学不教 Python

Python是当下非常热门的一种编程语言。热门到什么程度?我们首先看看最近流行的编程语言排行榜:

这是 TIOBE编程语言社区发布的2018年1月排行榜,Python已经超过C#跃居热门编程语言的第四位。

那么,Python为什么会成长为如此热门的语言呢?

首先,跟最近大热的AI人工智能和深度学习技术是分不开的。现在流行的AI人工智能技术大部分都是用Python语言编写的,这大大促进了的Python语言的发展。AI深度学习技术本身的特点决定了其不适合静态编译型语言,而Python语言被选作AI技术框架的基础语言,更多的是源于Python的动态特性及其开发效率高等性能优势。

说起来Ruby、Perl等与Python同属动态语言,三者的运行效率相差并不大,而Python既可以写网络又可以处理数据,所以Python当仁不让的成为了AI技术的首选。

豆瓣的崛起是对Python语言性能的实例鉴证。豆瓣是最早使用Python作为语言的网站,其创始人用3个月时间使用基于Python的Quixote框架开发搭建了最初的豆瓣社区的框架。当时,PHP和JAVA是绝对的主流技术,但是想要用PHP或JAVA开发网站,需要自己动手处理大量的工作,单靠一个人在短时间内完成开发一个功能齐全的大型网站几乎是不可能的,所以Python的敏捷性与高效性使其当选为豆瓣的网站语言。

其次,Python涉及多领域的应用范围,促进了其成为热门语言。除了web开发,Python也应用于学术研究及科学领域。对于科研人员来说,Python简单易学,容易上手,即使非计算机专业的科研学者利用Python庞大的库和简单的语法,也可以编写工具帮助进行科学学术研究。

Python拥有Matplotlib(matplotlib.org/)及numPy(www.numpy.org/)这样强大的绘图库和数值扩展,能帮助科研学术人员进行绘图和数值分析。这使得Python在该领域成为难以替代的选择。基于同样的原因,Python在国外政府部门也被大量运用。

Python还广泛应用于电子制造行业,比如布线仿真等CAD领域,比起传统的TCL编程,Python语言要友好的多。很多使用C/C++/JAVA编写的测试工具,由于静态编译语言维护成本相对较高,现在已经开始转为用Python编写了。在金融领域,比如量化交易,Python同样有许多强大的扩展库。

随着Python扩展库不断发展壮大,Python在科研、电子、政府、数据分析、web、金融、图像处理、AI技术各方面都有强大的类库、框架和解决方案,以致有了“已经没有任何语言能够动摇Python在今后生产生活的核心语言地位”的说法。因此也出现了在义务教育阶段就开始教授Python语言的情况出现。据说在美国,连婴幼儿都有 Python 编程书,Python 要从娃娃抓起。

第三,国家对于人工智能的重视,助推了Python的热门。2018年1月16日上午,教育部召开新闻发布会,介绍了《普通高中课程方案和语文等学科课程标准(2017年版)》的有关情况,并重新修订了语文等14门学科的课程标准。在此次“新课标”改革中,正式将人工智能、物联网、大数据处理划入新课标,这也就意味着今年秋季入学的高中生,将要开始学习Python了。

㈡ Rust VS Python:为什么越来越流行,取代榜一 Python

2021 年,Python 又获得了 TIOBE 年度编程语言,排名已经是第一。而 Rust 依然在 20 名以外。但依然有人认为,Rust 甚至可能取代 Python。不过这不重要,认清两者的优缺点,进而合适的地方使用合适的语言,这才最重要。

在这个指南中,我们将比较 Rust 和 Python 这两门语言,同时将讨论它们各自的应用场景,回顾使用 Rust vs. Python 的优缺点,并解释 Rust 为什么越来越受欢迎(甚至可能取代 Python)。

Rust [1] 是一门系统编程语言,专注于安全,尤其是并发安全,支持函数式和命令式以及泛型等编程范式的多范式语言。Rust 在语法上和 C++ 类似,但是设计者想要在保证性能的同时提供更好的内存安全。Rust 最初是由 Mozilla 研究院的 Graydon Hoare 设计创造,然后在 Dave Herman, Brendan Eich 以及很多其他人的贡献下逐步完善的。Rust 的设计者们通过在研发 Servo 网站浏览器布局引擎过程中积累的经验优化了 Rust 语言和 Rust 编译器。

Rust 拥有 优秀的文档 [2] 、友好的编译器和有用的错误消息,以及顶级工具,包括集成包管理器、构建工具、支持自动完成和类型检查的智能多编辑器、自动格式化程序等等。

Rust 发布于 2010 年。虽然和 Python 相比,Rust 是一门年轻的语言,但是它的社区正在稳步增长。事实上,Rust 已经连续五年(2016,2017,2018,2019,2020)在 Stack Overflow 开发者调查的“最受喜爱编程语言”评选项目中摘取桂冠。

乍一看,Rust 的静态化和强类型化可能看起来有点极端。但从长远来看,这有助于防止意外的代码行为。

Python [3] 是一门旨在帮助开发人员更有效地工作和更有效地集成系统的编程语言。Python 提供了高效的高级数据结构,还能简单有效地面向对象编程。Python 语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本陵纯的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。如果速度是最重要的,可以使用较低级别的 API 调用,如 CPython [4] 。

1991 年 Guido van Rossum 推出了 Python,以其代码的可读性、无分号和花括号而着称。

除了可扩展性之外,Python 还是一门解释型语言,这使得它比大多数编译型语言要慢。正如您可能期望的那样,Python 拥有一个庞大的库生态系统和一个庞大的专业社区。

Rust 被应用于系统开发、操作系统、企业系统、微控制器应用、嵌入式系统、文件系统、浏览器组件、虚拟现实的仿真引擎等。

当性能很重要的时候,Rust 是一种常用的语言,因为它能很好地处理大量数据。它可以处理 CPU 密集型的操作,如执行算法,这就是为什么 Rust 比 Python 更适合系统开发的原因。

Rust 保证了内存的安全性,让你可以控制线程行为和线程之间渗历的资源分配方式。这使你能够构建复杂的系统,也使得 Rust 比 Python 更有优势。

总而言之,你应在以下情况下使用 Rust:

Python 可以用于许多应用领域,从 Web 开发,到数据科学和分析,到 AI 和机器学习,再到软件开发。

Python 被广泛用于机器学习,数据科学和 AI,因为它:

在以下情况下,你应该使用 Python:

考虑到 Rust 的迅速普及、受欢迎程度和广泛的使用案例,它几乎不可避免地会在不久的将来超越 Python,以下是一些原因。

Rust 超越 Python 的一个主要原因是性能。因为 Rust 是直接编译成机器代码的,所以在你的代码和计算机之间没有虚拟机或解释器。

与 Python 相比,另一个关键优丛汪搜势是 Rust 的线程和内存管理。虽然 Rust 不像 Python 那样有垃圾回收机制,但 Rust 中的编译器会强制检查无效的内存引用泄漏和其他危险或不规则行为。

编译语言通常比解释语言要快。但是,使 Rust 处于不同水平的是,它几乎与 C 和 C ++一样快,而且没有额外开销。

让我们看一个用 Python 编写的 O(log n) 程序的示例,并使用迭代方法计算完成任务所需的时间:

输出:

现在,让我们来看一下使用迭代方法用 Rust 编写的定时 O(log n) 程序:

输出

在没有使用任何优化技术的情况下,Rust 和 Python 在同一台机器上执行类似的操作分别需要 4.6 微秒和 8.6 微秒。这意味着 Python 花费的时间几乎是 Rust 的两倍。

Python 和大多数现代编程语言一样,被设计成内存安全的。然而,即使没有垃圾回收。Rust 在内存安全方面却让 Python 望尘莫及。

Rust 采用了一种独特的方式来确保内存安全,其中涉及所有权系统和借用检查器(borrow checker)。Rust 的借用检查器确保引用和指针不会超过它们所指向的数据。

Python 和其他语言一样,提供了错误检查和日志机制。但是在让开发者知道哪里出了什么问题的时候,Rust 和 Python 之间有一些差异。

举一个 Python 变量错误的典型例子:

Python 输出

Rust 中的类似示例:

Rust 输出

在这里,Rust 推荐了可能的变量,这些变量可能是你想输入的。Python 只会抛出错误,而不会给出如何修复的建议。

再举个例子:

此代码引发错误,因为默认情况下 Rust 中的变量是不可变的。除非它具有关键字 mut ,否则无法更改。

错误:

修正错误:

如你所见,现在它不会引发任何错误。除此之外,Rust 不允许不同的数据类型相互操作,除非将它们转换为相同的类型。

因此,维护 Rust 代码库通常很容易。除非指定,否则 Rust 不允许更改。Python 是允许这种性质的更改的。

与大多数编译语言相比,Rust 因其速度快、内存安全有保证、超强的可靠性、一致性和用户友好性而备受青睐。在编程中,我们已经到了速度开始变得毫不费力的地步。

随着技术的发展,它变得越来越快,试图在更短的时间内做更多的事情,而不需要那么多的权衡。Rust 帮助实现了这一点,同时又不妨碍开发者的工作。当技术试图推动可以实现的边界时,它也会考虑系统的安全性和可靠性,这是 Rust 背后的主要思想。

除了速度外,Python 在并行计算方面也有局限性。

Python 使用全局解释器锁(GIL),它鼓励只有一个线程同时执行,以提高单线程的性能。这是一大局限,因为它意味着你不能使用多个 CPU 核进行密集计算。

如前所述,Stack Overflow 的“ 2020 开发人员调查”中有 86%的受访者将 Rust 称为 2020 年最喜欢的编程语言。

同样,“ 2020 HackerRank 开发人员技能报告”的受访者将 Rust 列为他们计划下一步学习的十大编程语言:

相比之下,2019 年的调查将 Rust 排在列表的底部,这表明 Rust 开发人员社区正在迅速增长。

这些数据表明,Rust 正在成为主流开发者社区的一部分。许多大公司都在使用 Rust,一些开发者甚至用它来构建其他编程语言使用的库。着名的 Rust 用户包括 Mozilla、Dropbox、Atlassian、npm 和 Cloudflare 等等。

Amazon Web Service 还对 Lambda,EC2 和 S3 中的性能敏感组件采用了 Rust。在 2019 年,AWS 宣布赞助 Rust 项目,此后为 Rust 提供了 AWS 开发工具包。

公司正越来越多地用更高效的编程语言(如 Rust)取代速度较慢的编程语言。没有其他语言能像 Rust 一样在简单和速度之间做出平衡。

Rust 已经发展成为一门易于使用的编程语言,因此它的使用率有所提高。尽管 Python 在机器学习/数据科学社区中占有坚实的地位,但 Rust 在未来很可能被用作 Python 库更有效的后端。

Rust 具有取代 Python 的巨大潜力。目前的趋势是,在应用程序、性能和速度方面,Rust 不仅仅是一种编程语言,它还是一种思维方式。

各位看官你们觉得呢?评论区留下你的看法!

㈢ 濡备綍瀵筽ython杩涜屽姞阃

瀵筽ython杩涜屽姞阃熺殑鏂规硶锛

1銆佷娇鐢ㄥ搱甯岃〃镄勬暟鎹缁撴瀯

濡傛灉鍦ㄧ▼搴忎腑阆囧埌澶ч噺鎼灭储镎崭綔镞讹纴骞朵笖鏁版嵁涓娌℃湁閲嶅嶉”锛屽垯鍙浠ヤ娇鐢ㄦ煡镓捐屼笉鏄寰鐜銆

2銆佺煝閲忓寲鍙栦唬寰鐜

灏介噺浣跨敤锘轰簬C鏋勫缓镄凯ython搴掳纴渚嫔侼umpy锛孲cipy鍜孭andas锛屽苟涓斿埄鐢ㄧ煝閲忓寲钖屾椂澶勭悊𨱒ュ彇浠g▼搴忎腑缂栧啓澶氭″勭悊鏁扮粍鍗曚釜鍏幂礌镄勫惊鐜锛屽惊鐜鍙鑳芥槸绋嫔簭浼桦寲链瀹规槗琚𨰾挎潵寮鍒镄勫湴鏂逛简銆

3銆佺簿绠浠g爜琛屾暟

鍦ㄧ紪绋嬫椂锛屽敖閲忎娇鐢ㄤ竴浜沺ython镄勫唴缃鍑芥暟𨱒ョ簿绠浠g爜琛屾暟锛屾槸浠g爜鏄惧缑绠娲佸哜缁冿纴澶уぇ鎻愰珮浠g爜杩愯屾晥鐜囥

4銆佷娇鐢ㄥ氲繘绋

涓鑸璁$畻链洪兘鏄澶氲繘绋嬬殑锛岄偅涔埚湪镓ц屾搷浣沧椂鍙浠ヤ娇鐢≒ython涓镄刴ultiproccessing銆傚氲繘绋嫔彲鍦ㄤ唬镰佷腑瀹炵幇骞惰屽寲銆 褰撴偍瑕佸疄渚嫔寲鏂拌繘绋嬶纴璁块梾鍏变韩鍐呭瓨镞讹纴澶氲繘绋嬫垚链寰堥珮锛屽洜姝ゅ傛灉链夊ぇ閲忔暟鎹澶勭悊镞跺彲浠ヨ冭槛浣跨敤澶氲繘绋嬨

5銆佷娇鐢–python

Cython鏄涓涓闱欐佺紪璇戝櫒锛屽彲浠ヤ负鎭ㄤ紭鍖栦唬镰併傚姞杞絚ypthonmagic镓╁𪾢骞朵娇鐢╟ython镙囱颁娇鐢╟ython缂栬疟浠g爜銆

6銆佸敖閲忎娇鐢╟sv镟夸唬xlsx

鍦ㄨ繘琛屾暟鎹澶勭悊镞讹纴 鎴戦渶瑕佹洿闀跨殑镞堕棿镓嶈兘灏嗘暟鎹锷犺浇鍒癳xcel鏂囦欢鎴栦粠excel鏂囦欢淇濆瓨鏁版嵁銆 鐩稿弽锛屾垜阃夋嫨浜嗗垱寤哄氢釜csv鏂囦欢镄勮矾寰勶纴骞跺垱寤轰简涓涓鏂囦欢澶规潵瀵规枃浠惰繘琛屽垎缁勚

7銆佷娇鐢∟umba

瀹冩槸涓涓狫IT锛埚嵆镞讹级缂栬疟鍣ㄣ 阃氲繃瑁呴グ鍣锛孨umba灏嗗甫娉ㄩ喷镄凯ython鍜孨umPy浠g爜缂栬疟涓篖LVM 銆傚皢鎭ㄧ殑锷熻兘鍒嗕负涓ら儴鍒嗭细

镟村歅ython鐭ヨ瘑璇峰叧娉≒ython瑙嗛戞暀绋嬫爮鐩銆

阅读全文

与python静态编译趋势相关的资料

热点内容
命令与征服泰伯利亚战争下载 浏览:374
c窗口界面编程 浏览:21
hypermill编程能做模板吗 浏览:780
计算机网络最经典的算法 浏览:626
华为思科的配置命令 浏览:869
linux设置光盘启动 浏览:359
程序员俱乐部注册 浏览:17
洗洁精鸡蛋盘解压视频 浏览:291
企业内网加密app 浏览:49
腾讯云服务器怎么设置本地网络 浏览:623
日常程序员 浏览:513
哪个pe有bit加密功能 浏览:108
rust服务器是用什么ip 浏览:692
java随机字符串生成 浏览:551
数码宝贝编程人物 浏览:390
php多用户建站系统 浏览:624
加密防盗地上栓价位 浏览:671
比泽尔压缩机下载 浏览:420
深圳压缩机制造公司 浏览:883
如何给u盘单独文件加密码 浏览:285