PHP、Python 上榜最慢的現(xiàn)代編程語言Python大數(shù)據(jù)分析關(guān)注共 2348字,需瀏覽 5分鐘 ·2021-02-04 00:54 來源:CSDN編程語言的問世,距今已有幾十年的歷史了。每種語言的誕生都是為了滿足特定的需求。截止到今天,全世界共有大約 700 多種編程語言。然而,仍處于活動狀態(tài)的只有 250 來種,其余的都被編程社區(qū)拋棄了。(來自維基百科的最新數(shù)據(jù))性能一直是程序員非常關(guān)心的方面。很久以前,程序的執(zhí)行需要花費(fèi)幾天的時間,如今我們以秒為單位來度量。這完全要?dú)w功于電子行業(yè)的發(fā)展進(jìn)步。硬件的發(fā)展速度遵循摩爾定律。在電子產(chǎn)品中,速度和性能取決于特定芯片可以擁有的晶體管數(shù)量。根據(jù)摩爾定律,這個數(shù)字每兩年就會翻一番。這就是為什么如今手機(jī)的速度和性能甚至遠(yuǎn)遠(yuǎn)超過了 1990 年代的超大型計算機(jī)。對于計算機(jī)科學(xué)來說,代碼的運(yùn)行速度和 PC 的運(yùn)行速度完全是兩碼事。英特爾和 AMD 出色地推動了 PC 機(jī)的運(yùn)行速度。然而,創(chuàng)建健壯、快速的程序的重任就落到了軟件工程師的肩上。創(chuàng)建軟件時,我們都要考慮的一件事是編程語言。每種語言的實(shí)現(xiàn)方式不同,因此每種語言都有各自的優(yōu)勢。然而,對于有些編程語言來說,速度根本不是它們的優(yōu)勢。如果你想構(gòu)建一個程序,運(yùn)行游戲或執(zhí)行大量數(shù)學(xué)計算,則最好避開速度比較慢的編程語言。通常,編程語言可以大致分為兩類:靜態(tài)類型的編程語言動態(tài)類型的編程語言靜態(tài)類型的語言一般都需要編譯,這意味著編譯器程序會解析整個代碼,并將其轉(zhuǎn)換成匯編語言,然后再生成一個新文件。而這個文件可以由用戶手動執(zhí)行。另一方面,動態(tài)類型的編程語言通常是解釋型的,意味著解釋器會逐行分析并運(yùn)行代碼。我們大多數(shù)人都喜歡動態(tài)類型的語言。比如 Python,不易出錯且方便人類理解。但是這種方便性是有代價的,我們付出的代價就是速度。在本文中,我們就來看一看常見的一些速度非常慢的動態(tài)類型編程語言。Perl?如果你有使用 UNIX 的經(jīng)驗(yàn),那么一定見過 Perl 腳本。大部分的 UNIX 文件都是用 Perl 編寫的。Perl 是 Unix 的腳本語言。這種語言的誕生是為了減輕程序員編寫 Shell 程序的負(fù)擔(dān)。它只是將一堆 Shell 命令塞到了一個文件中。更重要的是,有些任務(wù)如果利用 C 語言和其他 Unix 語言編寫的話,簡直就是噩夢,而 Perl 降低了這些任務(wù)的難度。當(dāng)然,取代 C 語言也會付出代價。事實(shí)證明,Perl 在速度方面確實(shí)有所欠缺。此外,如今找到一位出色的 Perl 程序員的難度,不亞于大海撈針。例如,與 Python 不同,Perl 對實(shí)現(xiàn)非常敏感,每個操作符都必須正確地使用,才能創(chuàng)建相對高效的程序。即使按照最有效的方式實(shí)現(xiàn),Perl 的運(yùn)行速度仍然落后于其他同等的高級編程語言。然而,如今 Perl 仍在發(fā)展,效率的問題也相繼得到了解決,特別是 2019 年發(fā)布的新版本(又名 Raku)。PHP?PHP 是一種腳本化 Web 開發(fā)編程語言,通常用于 Web 應(yīng)用程序的開發(fā),是 HTML、CSS 和 MySQL 的補(bǔ)充。許多人認(rèn)為 PHP 已經(jīng)過時了。但事實(shí)并非如此!根據(jù) 2020 年 StackOverflow 的調(diào)查,PHP 依然榜上有名:然而,由于 PHP 的學(xué)習(xí)曲線比較平緩,而且易于托管,因此性能方面的表現(xiàn)不佳。由于缺少即時編譯(JIT 編譯器),因此 PHP 的運(yùn)行速度非常慢,而且它還是一種動態(tài)類型的語言。幸運(yùn)的是,在 2020 年 11 月 26 日,PHP 8 推出了一項(xiàng)性能優(yōu)化功能:內(nèi)置的 JIT 編譯器。內(nèi)置的 JIT 編譯器可以從速度和性能方面,幫助 PHP 逐漸向同類的編程語言靠攏。Ruby?Ruby 的創(chuàng)始人松本行弘曾在 Ruby 社區(qū)中說:“Ruby旨在讓程序員開心。”Ruby 是一種面向?qū)ο蟮木幊陶Z言。一切都可以解釋成對象。因此,Ruby 很優(yōu)雅,而且非常便于使用。只需要輕輕揮動魔法棒,任務(wù)就完成了。然而,從性能來看,Ruby 是一種典型的解釋型語言。因?yàn)榻忉屝驼Z言需要逐條運(yùn)行代碼,因此與使用編譯器的語言相比,它們的速度往往更慢。為了解決速度的問題,Ruby 引入了全局解釋器鎖(Global Interpreter Lock,簡稱 GIL),這意味著該語言一次允許一個線程使用 GIL。另外,Ruby 還有其他方面的困擾,比如內(nèi)存消耗過高、垃圾回收緩慢等。Python?萬能的 Python 幾乎常年占據(jù)各類編程語言排行榜的榜首。Python 主要用于數(shù)據(jù)科學(xué)、Web 開發(fā)和網(wǎng)絡(luò)安全等領(lǐng)域。毋庸置疑,Python 有很多的優(yōu)點(diǎn)。然而,Python 也有速度的問題。Python 和 Ruby 都來自同一個家族,由于 GIL 以及解釋器的使用,它們的速度都很慢。二者的主要區(qū)別在于,前者傾向于 Web 開發(fā),而后者則主要面向數(shù)據(jù)科學(xué)。但是,Python 擁有強(qiáng)大的庫和功能作為后盾。部分庫和函數(shù)極大地提高了性能,比如 Numpy 模塊和內(nèi)置的 Filter()都是用 C++實(shí)現(xiàn)的。這就是為什么 Python 蓬勃發(fā)展,超越其他編程語言的原因。總結(jié)?雖然速度和性能是實(shí)現(xiàn)軟件時需要考慮的重要因素,但我們不應(yīng)該將全部責(zé)任都推到編程語言身上。很多時候,造成速度和性能主要問題的根本原因在于,不良的實(shí)現(xiàn)和不合理的設(shè)計。參考鏈接:https://medium.com/better-programming/the-slowest-modern-programming-languages-d29ea2306675 瀏覽 54點(diǎn)贊 評論 收藏 分享 手機(jī)掃一掃分享分享 舉報 評論圖片表情視頻評價全部評論推薦 2023 年度編程語言榜單,Python連續(xù)八年上榜!戀習(xí)Python02023 年度編程語言榜單,Python連續(xù)八年上榜!菜鳥學(xué)Python0Stackless Python增強(qiáng)版的 Python 編程語言StacklessPython是一個增強(qiáng)版的Python編程語言,允許程序員受益于基于線程的編程,而不會有一半線程的性能和復(fù)雜的問題。其最大的特點(diǎn)就是微線程,可避免使用操作系統(tǒng)線程導(dǎo)致的開銷過大的問題Stackless Python增強(qiáng)版的 Python 編程語言Stackless Python 是一個增強(qiáng)版的 Python 編程語言,允許程序員受益于基于線程的Python編程語言知多少?Python日志0PHP 是最糟糕編程語言?Hollis0下載!PHP依然是世界上最好的編程語言逆鋒起筆02021年1月編程語言排行榜:Python年度編程語言程序IT圈0Python究竟是一門什么樣的編程語言?源碼共讀0Python面向?qū)ο缶幊陶Z言Python (發(fā)音:[ 'paiθ(?)n; (US) 'paiθ?n ]n.蟒蛇,巨蛇 ),是一點(diǎn)贊 評論 收藏 分享 手機(jī)掃一掃分享分享 舉報