AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當前位置:首頁 > 科技  > 軟件

到底該不該使用Python?

來源: 責編: 時間:2023-08-14 22:00:40 353觀看
導讀作者 | JOS VISSER編譯 | 王瑞平最近,大家總在吐槽Python:“雖然它是一種不錯的語言,但不適用于專業領域。”前不久,我在LinkedIn上找到一篇帖子,主要建議初級開發人員應該學習哪種語言,以便獲得更好的工作機會,Python憑借出

作者 | JOS VISSERiTL28資訊網——每日最新資訊28at.com

編譯 | 王瑞平iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

最近,大家總在吐槽Python:“雖然它是一種不錯的語言,但不適用于專業領域。”iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

前不久,我在LinkedIn上找到一篇帖子,主要建議初級開發人員應該學習哪種語言,以便獲得更好的工作機會,Python憑借出色的表現穩居第一。

iTL28資訊網——每日最新資訊28at.com

圖片圖片iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

 其它證據同樣表明:Python確實太受歡迎了!近日,TIOBE編程社區公布了“2023年8月編程語言排行榜”。

iTL28資訊網——每日最新資訊28at.com

數據顯示:Python依然排名第一,占比13.33%;C語言緊隨其后,排行第二,占比11.41%;C++位列第三,占比10.63%,與C語言差距為0.78%。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

圖片圖片iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

此外,Java和C#分別排在第四和第五位,占比分別為10.33%和7.04%。JavaScript在本月依然保持榜單第六位,占比為3.29%。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

雖然Python如此受歡迎,但它能否持續流行依舊是一個重大問題,很多用戶普遍認為,如果持續使用將會使行業倒退好幾年。iTL28資訊網——每日最新資訊28at.com

1、局限:Python無法開發大型應用程序

iTL28資訊網——每日最新資訊28at.com

Python對于開發大型應用程序不太友好,在工程化實踐中需要特殊的技術支持。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

“我曾用Python編寫過大型應用程序很多年。由于Python入門非常簡單,在編寫大型應用程序時就像用樂高積木構建核反應堆一樣。”原作者在文章中形象地比喻道。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

“但是,現在‘反應堆’已經運行很久,輻射泄漏到處都有,我們需要到處‘貼新磚’讓‘反應堆’持續運轉。”iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

實際上,目前唯一能做的就是將“反應堆”封裝在混凝土中讓它冷卻下來,然后再用合適的建筑材料構建出一個新的。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

認為“Python無法開發大型應用程序”的網友認為它“不太友好”,在工程化實踐中需要特殊技術支持。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

圖片圖片iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

也有反對者認為:在大型項目中,與影響更大的其它因素相比,編程語言的語法、語義、范式等幾乎無關緊要。團隊經驗和熟悉度、開發管理、流程、實踐、支持工具、文檔、語言生態系統、語言成熟度、管理支持等都會對項目結果產生更大的影響。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

另外,從技術層面來講,質疑Python無法開發大型編程語言只能反映提問者對相關開發缺乏了解。這些質疑一是源于Python的動態類型特性,使類型推斷變得困難,對代碼的靜態檢查和重構十分不利;二是由于Python代碼沒有編譯過程,因此缺少編譯時檢查錯誤機制。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

關于動態類型特性質疑,Python從3.3版本起就引入類型聲明,因此,只要遵循規范編寫代碼,類型推斷和代碼重構就不是問題。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

不久前,ChatGPT的問世也證明了Python可以寫出高性能、可擴展性強的大型分布式計算平臺—Ray。目前,這個平臺已匯聚超過1億的月活躍用戶。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

“糟糕的應用程序架構是絕大多數應用產生性能瓶頸的原因,而不應該由開發語言來背黑鍋。”有些評論者這樣認為。iTL28資訊網——每日最新資訊28at.com

2、速度慢

iTL28資訊網——每日最新資訊28at.com

誠然,Python與其它開發語言相比,在運行速度方面確實落后不少。究其根源,還是由于Python之父認為不需要過多關注Python的速度問題,認為它已經足夠快了。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

確實,對于99%以上的任務來說,Python的速度夠快,快到足以支撐早期Google和Dropbox。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

自那時起,Python的速度又有了顯著提升,但開發者仍要求Python運行得更快。因為,無論人們已經使用Python構建出算力多么驚人的計算平臺,它的計算能力在很多場景下依然更慢。iTL28資訊網——每日最新資訊28at.com

3、功能差

iTL28資訊網——每日最新資訊28at.com

當然,Python是一種靈活的和duck類型的語言:我們鍵入代碼、保存它,然后僅在運行時才能根據輸入的數據確定語句始終有效、有時有效還是根本不可能實現。 iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

此外,你在用Python編寫程序時,只能部分控制進入該函數的數據,需要嚴格檢查所有輸入的數據。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

更糟糕的是,Python的duck式輸入方式可能會引入“可怕”代碼,這會帶來麻煩。iTL28資訊網——每日最新資訊28at.com

4、錯誤百出

iTL28資訊網——每日最新資訊28at.com

我在用Python編寫大型應用程序的這些年里,經歷過一些可怕的事情;如果這些應用程序是用理性的、安全的語言編寫的,這些事就不會發生。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

*在幾年前的一個例子中,我設法說服組織用Rust重寫系統,效果非常不錯!iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

實際上,我曾多次在社區中發布用Python編寫的大型應用程序新版本,結果卻立即被錯誤“吞噬”;這些錯誤都是由Python代碼異常導致的。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

*Python的捍衛者會說,這不是語言的缺陷,而是代碼審查和測試方法的缺陷。iTL28資訊網——每日最新資訊28at.com

*他們錯了!理論上,測試方法主要是查看每一行代碼并檢查每個輸入和場景,但實際上這并不可能!iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

好的編程語言的特點之一是:你不必檢查和測試內存中每個相關位置的排列;如果必須詳盡地檢查和測試每個“a=b+c”,程序將可能永遠無法應用于實踐。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

我會經常查看Python函數,并想了解是否有人實際調用了它們以及攜帶了哪些參數。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

我也經常不得不“求助”代碼庫的全文搜索功能尋找調用位置;不幸的是,即便沒有輸出任何結果,當我刪除相應函數時,程序依然會崩潰;就算程序沒有立即崩潰,也無法判斷程序是否會在某種情況下崩潰。iTL28資訊網——每日最新資訊28at.com

5、分叉進程,耗盡內存

iTL28資訊網——每日最新資訊28at.com

用Python的另一個問題是內存。我的筆記本電腦有10個CPU內核,其中,Python應用程序大約占用1.2個。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

這該怎么辦呢?幸運的是,我可以在Python中使用分叉工作進程的功能處理請求,確保所有核心都能正常使用。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

不幸的是,分叉進程的操作很快就耗盡了內存,所以我決定在處理完一定數量的請求后自行終止分叉,然后由Linux進行內存管理。雖然這并不是Python本身的問題,但Python使內存管理變得更加糟糕。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

分叉工作進程還有另一個影響:Python使用引用計數法擊敗了寫時復制。為控制引用計數,保存只讀變量的內存塊也被寫入,從而耗費了一定的內存。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

解決這個問題的有效方法是:讓編譯器對所有由主進程創建和由worker進程繼承的變量使用參考數值,而不必觸及到具有該參考數值的引用計數。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

這是超級聰明的解決方案,但我認為應該沒這個必要。如果你需要破解編譯器才能讓Python為你所用,那這種語言又有什么用呢?iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

總之,Python使編寫可靠、易于維護和快速的代碼變得非常困難。iTL28資訊網——每日最新資訊28at.com

6、將Python替換成GO

iTL28資訊網——每日最新資訊28at.com

當我對Python忍無可忍之時就會轉向Go,它使用起來幾乎與Python同樣容易、安全,還能快速構建系統并生成高度優化的二進制本機代碼文件。iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

雖然Go也并不是完美的,但是,如果你想可靠和快速地編寫代碼,并在代碼失控時可以調試和重構,Go比Python好很多!iTL28資訊網——每日最新資訊28at.com

iTL28資訊網——每日最新資訊28at.com

參考資料:

https://www.zhihu.com/question/321166662/answer/2937406779?utm_id=0iTL28資訊網——每日最新資訊28at.com

https://www.zhihu.com/question/321166662/answer/2937406779iTL28資訊網——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-5699-0.html到底該不該使用Python?

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: CSS 如何改變網格布局偶數行的排序?

下一篇: SpringBoot獲取Request的三種方法!

標簽:
  • 熱門焦點
  • 跑分安卓第一!Redmi K60至尊版8月發布!盧偉冰:目標年度性能之王

    8月5日消息,Redmi K60至尊版將于8月發布,在此前舉行的戰略發布會上,官方該機將搭載搭載天璣9200+處理器,安兔兔V10跑分超177萬分,是目前安卓陣營最高的分數
  • CSS單標簽實現轉轉logo

    轉轉品牌升級后更新了全新的Logo,今天我們用純CSS來實現轉轉的新Logo,為了有一定的挑戰性,這里我們只使用一個標簽實現,將最大化的使用CSS能力完成Logo的繪制與動畫效果。新logo
  • 如何通過Python線程池實現異步編程?

    線程池的概念和基本原理線程池是一種并發處理機制,它可以在程序啟動時創建一組線程,并將它們置于等待任務的狀態。當任務到達時,線程池中的某個線程會被喚醒并執行任務,執行完任
  • 多線程開發帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結束訪問某一數據期間,該數據被其他的線程所修改,那么對于當前線程而言,該線程
  • Python異步IO編程的進程/線程通信實現

    這篇文章再講3種方式,同時講4中進程間通信的方式一、 Python 中線程間通信的實現方式共享變量共享變量是多個線程可以共同訪問的變量。在Python中,可以使用threading模塊中的L
  • 共享單車的故事講到哪了?

    來源丨海克財經與共享充電寶相差不多,共享單車已很久沒有被國內熱點新聞關照到了。除了一再漲價和用戶直呼用不起了。近日多家媒體再發報道稱,成都、天津、鄭州等地多個共享單
  • 簽約井川里予、何丹彤,單視頻點贊近千萬,MCN黑馬永恒文希快速崛起!

    來源:視聽觀察永恒文希傳媒作為一家MCN公司,說起它的名字來,可能大家會覺得有點兒陌生,但是說出來下面一串的名字之后,或許大家就會感到震驚,原來這么多網紅,都簽約這家公司了。根
  • 回歸OPPO兩年,一加贏了銷量,輸了品牌

    成為OPPO旗下主打性能的先鋒品牌后,一加屢創佳績。今年618期間,一加手機全渠道銷量同比增長362%,憑借一加 11、一加 Ace 2、一加 Ace 2V三款爆品,一加
  • 榮耀Magicbook V 14 2021曙光藍版本正式開售,擁有觸摸屏

    榮耀 Magicbook V 14 2021 曙光藍版本正式開售,搭載 i7-11390H 處理器與 MX450 顯卡,配備 16GB 內存與 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 鍵盤鍵程、
Top