search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

兩大倖存者:Java與Python誰更勝一籌?

【IT168 評論】程序員在編程語言的選擇上或多或少都猶豫過,選擇時也會不自主地將客觀事實與主觀偏好相結合。過去十年,可供選擇的語言層出不窮,本文將重點縮小到20世紀90年代編程語言的兩大倖存者身上:Java和Python。

Python起源於一種腳本語言,它的語法體現了一種可讀性的理念,具有簡單而規則的界限,鼓勵簡潔和一致的代碼布局。Python的動態類型有助於代碼簡化和組合,是許多平台的解釋性語言,成為眾多程序員編程首選的攜帶型選項。

Python的參考實現(以C編寫,被稱為CPython)在許多平台上可用,並且是眾多實現中最常用的。其他實現例如IronPython,是使用C#編寫的,並提供與.NET運行時的緊密集成。

Python是圍繞可擴展對象模型構建的通用語言。其面向對象的核心並不意味著對象定向是開發人員在用Python編程時最常用的方式。它支持程序化編程,模塊化編程和部分函數式編程。

Java是一種面向對象語言,具有許多程序員熟悉的類似於C / C ++的語法。其吸引力和價值所在是其具有的可移植性和相對效率。Java作為一種編譯語言,執行模式與解釋性語言(比如Python和Perl)相比更加以機器為中心。Java不僅僅是一種語言和庫:它也是一個虛擬機,一個生態系統。Java虛擬機(JVM)是運行Java代碼的理想化和攜帶型平台。程序員不必擔心硬體細節,並且不必將代碼移植到新平台,Java承諾「一次寫入,到處編譯(WORA)」。同時,JVM語言有很多,比如Groovy、Clojure、Scala、Python或者Jython。

那麼這兩種語言相比,哪一種更勝一籌呢?

1、速度

雖然軟體中的性能並不總是一個問題,但它始終是一個考量因素。在網路I / O成本或資料庫訪問佔主導地位的情況下,語言的具體效率不如技術選擇和設計方面的整體效率重要。

Java和Python都不適合高性能計算,但在性能上,Java還是略勝一籌。雖然一些Python實現(如PyPy)可以針對性能進行微調,但原始的攜帶型性能Python不佔優勢。

Java的效率優勢體現在虛擬機執行。程序執行時,JVM可以將位元組碼轉換為本地機器碼。這種即時(JIT)編譯讓Java的性能略勝Python。依靠JIT是一個相當便攜的假設,HotSpot是默認的Oracle JVM。

Java從其第一個公開版本起就支持併發,而Python則是按序執行。在當前多核處理的趨勢下,Java代碼更易實現。

這一輪,Java勝!

2、歷史遺留問題

歷史遺留問題在其技術上具有慣性。當企業選擇了一種編程語言,就很難再次更換。例如,更多的企業項目後端可能會使用Java代碼來擴展其功能,也許可以遷移到更新版本的語言,或者通過其他JVM語言(如Scala和Groovy)添加新功能。Java在企業中的歷史比Python更久,這也是招聘Java程序員的企業比招Python更多的原因。

這一輪,Java勝!

3、實用敏捷性

漫長的發展中,Java和Python都受益匪淺。Java通常被認為與敏捷開發及其社區有更密切的聯繫。Python在敏捷領域一直存在,並且受到諸多原因的影響而更加普及,包括DevOps運動的興起。

Java比Python具備更一致的重構支持,一方面,它的靜態類型使自動化重構更可預測和可靠,另一方面是Java開發中IDE(例如IntelliJ,Eclipse和NetBeans)的普及。Python的動態類型在代碼中鼓勵使用不同類型的敏捷性,其重點在於簡潔和流動。然而,Pythonic文化傾向於多種編輯器,而不是基於IDE,這意味著對強自動重構的支持較低。

JUnit的早期知名度及其與測試驅動開發(TDD)的關聯意味著,在所有語言中,Java可能是唯一一個單元測試受到程序員一致歡迎的語言。在IDE中自動包含JUnit已經在很大程度上對此有所幫助了。

Python的腳本起源和在其標準庫中包含測試功能意味著Python對現代開發中自動化測試相當重視,儘管它更有可能是集成而不是單元測試。在Java世界中,傳統Java代碼庫可以通過採用另一種JVM語言來加以改善,例如使用Groovy或Clojure進行自動化測試,或者完全跨越Java Universe,例如使用Python來處理系統方面操作 。

這一輪,平局!

4、市場普及度

Java和Python都是TIOBE編程語言排行榜上的前十名,並且是穩穩地佔據前十名。 但Java一直比Python更受歡迎,但是Python的受歡迎程度已經超過了兩種編程語言:Perl和Ruby。

此外,兩種語言在教育中都具有強大的立足點,但Java比Python更常用於大學課程中。

這一輪,Java勝!

5、架構

圍繞Python Web框架構思的軟體體系架構與Java的不會相差甚遠。Java和Python都有各自的開源社區,並有很多程序員一直在源源不斷的貢獻源代碼,這些代碼已經解決了常見或者不常見的問題,事實上,這兩種語言都因開源社區而受益匪淺。

這一輪,主要取決於公司具體要求!

結論

Java和Python都是富有活力的編程語言,這兩種語言與開放性相關聯,所以公司,團隊和程序員在做出決定時最好保持開放的態度。至於,程序員到底該選擇哪種編程語言,可以結合上述五點自行比較,但更多的程序員似乎更傾向於Java。



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦