日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Java与Python:哪一个最适合您? [信息图]

發(fā)布時間:2023/12/3 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java与Python:哪一个最适合您? [信息图] 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

通過從您的應用程序學習企業(yè)APM產品,發(fā)現更快,更有效的性能監(jiān)控。 參加AppDynamics APM導覽!

在軟件開發(fā)中,很少有問題比選擇編程語言更具分裂性或部落性。 軟件開發(fā)人員經常以自己選擇的工具來強烈地認同自己,將客觀事實與主觀偏好自由地混合在一起。

但是,在過去的十年中,生產中使用的語言數量以及單個開發(fā)人員可能會每天使用的語言數量都出現了爆炸式增長。 這意味著語言聯系有時會在不同的代碼庫,框架和平臺之間更加寬松和廣泛地分布。 現代項目和現代開發(fā)人員越來越多,可以使用比以往更多的語言和庫。 明智的選擇仍然可以發(fā)揮作用。

從繁華的編程語言市場中,讓我們將關注范圍縮小到1990年代兩個起源不同的幸存者:Java和Python。

Python的故事

Python是這兩種語言中的較老版本,由其發(fā)明者Guido van Rossum于1991年首次發(fā)布。 自成立以來一直是開源的。 Python軟件基金會負責管理語言及其庫的設計和標準化。 Python增強建議 (PEP)流程指導其開發(fā)。

在編程語言演進中,通常無限期地保持向后兼容性。 Python并非如此。 Python 2于2000年問世,Python 3于2008年問世。它們在很大程度上兼容,但是在功能和語法破壞方面的差異足以將它們視為不同的語言。 Python 3并不是將更新的趨勢和思想改編到Python 2中(使語言復雜化和折衷),而是被認為是一種從Python 2的經驗中學到的新語言。 Python 3(在撰寫本文時為3.6版)是Python世界中當前發(fā)展和強調的地方。 Python 2的開發(fā)單獨繼續(xù)進行,但最終版本是2.7版,該版本將在2020年之后不再保留。

Python的語法體現了可讀性的哲學,其簡單且規(guī)則的樣式鼓勵簡潔和一致的代碼布局。 它起源于腳本語言,體現了Unix的哲學,即能夠從舊開始編寫新程序以及直接使用現有代碼。 Python的動態(tài)類型系統(tǒng)幫助實現了這種簡單性和可組合性。 它是許多平臺上可用的一種解釋語言,使其成為常規(guī)開發(fā)的可移植選項。

Python的參考實現是用C編寫的,稱為CPython,可在許多平臺上使用,并且是最常用的。 其他小組也創(chuàng)建了自己的實現,例如IronPython ,它是用C#編寫的,并且與.NET運行時緊密集成。

Python是圍繞可擴展對象模型構建的通用語言。 它的面向對象的核心并不一定意味著面向對象是開發(fā)人員在Python編程時使用的最常見的樣式。 它支持過程編程,模塊化編程以及功能編程的某些方面。

這種語言的名稱來自英國超現實主義喜劇組織Monty Python,并且在其文檔和庫中也發(fā)現了不少幽默。

Java的故事

盡管Java直到1995年才發(fā)布,但Java的故事始于1991年。Sun Microsystems的James Gosling和其他人構思了一種用于對交互式電視系統(tǒng)進行編程的語言。 它的發(fā)布是一種可移植的互聯網語言,尤其是在瀏覽器中。 距起點和原始名稱:Oak到現在還有很長的路要走。

就像當時對于原始電視目標市場而言過于沉重一樣,它失去了瀏覽器空間給動態(tài)HTML和JavaScript(盡管它的名字與語言無關)。 但是, Java很快在服務器和教室中找到了自己的位置,從而幫助確保了它在千年之交時成為主流語言的地位。

它的吸引力和價值的一部分是它的便攜性和相對效率。 盡管不是諸如C和C ++之類的本地語言,但Java是一種編譯語言。 與純解釋語言(例如Python和Perl)相比,其執(zhí)行模型更加以機器為中心。 Java不僅僅是一種語言和庫:它還是一個虛擬機,因此也是一個生態(tài)系統(tǒng)。 Java虛擬機(JVM)是??用于運行Java代碼的理想且可移植的平臺。 Java的承諾是編寫一次即可在任何地方運行 (WORA) ,而不必擔心硬件的特殊性和必須將代碼移植到新平臺上。 這樣一來,只要存在JVM,編譯到其字節(jié)碼中的任何內容都可以運行,并且可以輕松地與為JVM編寫的其他任何內容進行交互。 JVM語言有很多,包括更像腳本的Groovy ,功能Clojure ,對象功能混合Scala ,甚至是Python變體Jython 。

Java是一種面向對象的語言,具有許多程序員都熟悉的類似于C / C ++的語法。 它是動態(tài)鏈接的,允許下載和運行新代碼,但不能動態(tài)鍵入。 作為一種語言,Java的發(fā)展相對較慢,直到最近才合并了支持功能編程的功能。 另一方面,語言和VM的理念都是將向后兼容性視為主要指令。

在Oracle收購Sun之后,該語言及其編譯器最終實現了開源。 該語言的發(fā)展受到Java Community Process (JCP)的指導,其中包括Oracle以外的公司和個人。

那么這兩種語言如何疊加? 讓我們按類別細分。

速度

盡管在軟件中性能并不總是問題,但應始終將其作為考慮因素。 在網絡I / O成本或數據庫訪問占主導地位的情況下,就整體效率而言,語言的特定效率不如技術選擇和設計的其他方面重要。

盡管Java和Python都不特別適合于高性能計算,但是當性能很重要時,Java在平臺和設計上都有優(yōu)勢。 盡管對某些Python實現(例如PyPy )進行了性能微調,但原始可移植性能并不是Python的亮點。

Java的許多效率都來自優(yōu)化到虛擬機的執(zhí)行。 JVM可以在程序執(zhí)行時將字節(jié)碼轉換為本地機器代碼。 這種即時(JIT)編譯是Java的性能通常可以與本地語言相媲美的原因。 依賴JIT是一個合理可移植的假設,因為默認的Oracle JVM HotSpot提供了它。

Java從其第一個公共版本開始就對并發(fā)提供支持,而Python絕對是一種順序語言。 這意味著要利用當前的多核處理器趨勢,而Java代碼更容易做到這一點。 Python的主要實現方式CPython中的全局解釋器鎖 (GIL)阻礙了這種擴展。 存在不受命中限制的Python實現,但是依賴它們可能會干擾支持Python代碼的某些可移植性假設。

遺產

ss

語言選擇通常與語言本身的設計和內在品質無關。 存在用于創(chuàng)建代碼的語言,并且該代碼具有業(yè)務,經濟學,歷史,軟件體系結構,技能和開發(fā)文化的上下文。

傳統(tǒng)系統(tǒng)在其現有技術方面存在慣性。 變更將更容易遵循已經設定的路徑,而不是通過重寫和革命來逐步地,逐步地轉移。 例如,與重寫相比,現有的Python 2代碼庫更有可能在Python 3中找到新的生命周期。 現有Java企業(yè)項目的后端可能會通過添加更多Java代碼來擴展其功能,可能會遷移到該語言的最新版本,或者通過在其他JVM語言(例如Scala和Groovy)中添加新功能。

Java在企業(yè)中的歷史及其較為冗長的編碼風格意味著Java遺留系統(tǒng)通常比Python遺留系統(tǒng)更大且數量更多。 另一方面,組織可能驚訝地發(fā)現將IT基礎架構結合在一起的腳本和粘合代碼由Python組成。 兩種語言都有遺留問題,但通常呈現不同的問題。

實踐敏捷

開發(fā)文化和趨勢已經使Java和Python受益。 通過使用Java作為通用語言的出版物和專注于Java工作的工具,人們經常看到Java與敏捷開發(fā)及其社區(qū)有著更緊密的聯系。 但是沒有一個社區(qū)是靜態(tài)的,因此很難定義。 Python一直存在于敏捷領域中,并且由于許多原因(包括DevOps運動的興起)而變得越來越流行。

Java比Python擁有更一致的重構支持,一方面是由于它的靜態(tài)類型系統(tǒng)使自動重構更加可預測和可靠,另一方面是因為IDE在Java開發(fā)中的普及(例如,IntelliJ,Eclipse和NetBeans)。 Python的更具動態(tài)性的類型系統(tǒng)鼓勵代碼的另一種敏捷性,著重于簡潔性,流動性和實驗性,而Java可能被視為更嚴格的選擇。 但是,相同類型的系統(tǒng)可能會成為Python自動重構的障礙。 Python的文化偏向于廣泛的編輯器,而不是基于IDE,這意味著人們對強大的自動重構支持的期望越來越低。

JUnit的早期流行及其與測試驅動開發(fā)(TDD)的聯系意味著,在所有語言中,Java可能對任何語言的單元測試都擁有最一致的開發(fā)人員熱情。 在IDE中自動包含JUnit起到了很大的作用。

也就是說,Python起源于腳本編寫并將測試功能包含在其標準庫中,這意味著Python對現代開發(fā)中對自動測試的強調并不陌生,盡管它更可能是集成而不是單元測試。

人力資源

有時,語言選擇更多是關于技能的應用,而不是軟件應用程序本身。 人員配備可能比語言設計和工具更重要。 如果該工作的理想語言是沒有人具有技能,也沒有人想要技能,那么這可能畢竟不是該工作的理想語言。 另一方面,如果開發(fā)人員熱衷于接受一項新技術,那么在其他所有條件都相同的情況下,這可能是使用該技術的足夠充分的理由。 在Java世界中,通常可以通過擁抱另一種JVM語言(例如使用Groovy或Clojure進行自動化測試)或完全走出Java領域(例如使用Python來處理Java的操作方面)來使遺留Java代碼庫的優(yōu)點變甜。系統(tǒng)。

人員配備問題的另一方面是技能市場。 Java和Python都是TIOBE Index編程語言受歡迎度排名前10位的清單。 Java一直比Python流行得多,但是Python經歷了兩種語言的更大發(fā)展,在Perl和Ruby下降的地方有所回升。

遵循對個人選擇和就業(yè)興趣都產生最大影響的想法就是您所知道的,這兩種語言在教育中都有很強的立足點,Java通常用于大學課程,而Python通常用于高中。 目前,IT畢業(yè)生的簡歷幾乎都默認包含這兩種語言中的一種或兩種。

建筑

技能和現有軟件系統(tǒng)以及選擇會告知任何給定軟件體系結構中使用的編程語言。 軟件體系結構還涉及框架和庫,重用和集成。 在許多情況下,人們想要利用這種技術來決定語言的選擇,而不是相反。 圍繞Python Web框架構想的軟件體系結構對僅Java開發(fā)團隊而言是遙不可及的。

Java和Python都享受著源源不斷的開源庫,這些源庫由已經解決了常見和不常見問題并樂于共享的個人和公司的代碼組成,這些人和公司樂于分享,以便其他人可以利用他們的解決方案。 實際上,兩種語言都受益于在線論壇和開放源代碼開發(fā),并受其影響。

當遺留,重用,性能和開發(fā)技能的問題都考慮在內時,某些體系結構決策仍然可以使語言選擇保持開放。 例如,微服務架構的興起(將面向Internet的系統(tǒng)劃分為小的協作過程),使得語言的選擇更多地取決于局部細節(jié),而不是整個項目的主要考慮因素。

對于現代編程領域及其軟件體系結構中存在的所有多樣性,一些團隊和企業(yè)更愿意減少他們的某些技術選擇,而不是一堆過去的決定和個人異想天開。 但是合并可以減少選擇的余地,因此這并不是一個輕率的決定。 值得留意語言和框架的趨勢,以免走錯路。

結論

Java和Python都可以長期使用。 自1990年代以來,他們與開發(fā)社區(qū)一起不斷發(fā)展和適應,找到了新的利基市場并取代了其他語言,有時甚至在同一領域競爭。 兩種語言都與開放性相關聯,因此公司,團隊和開發(fā)人員在做出決策時最好保持開放的態(tài)度。

通過從您的應用程序學習企業(yè)APM產品,發(fā)現更快,更有效的性能監(jiān)控。 參加AppDynamics APM導覽!

翻譯自: https://www.javacodegeeks.com/2017/06/java-vs-python-one-best-for-you.html

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的Java与Python:哪一个最适合您? [信息图]的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。