您好,登錄后才能下訂單哦!
本篇文章和大家了解一下2020年為什么要放棄Python選擇Go。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有所幫助。
過去一段時間,Go 語言中文網推過挺多 Python 相關的公眾號,很多人詫異:為什么推的都是 Python 的呢?其實主要原因是因為 Python 類的公眾號實在太多了,而且很多粉絲都特別多,我也挺納悶的。不過他們值得我學習,也說明 Go 還有很長的路要走。
您會在 Python 和 Go 之間選擇哪個?如果您對 Go(Golang)有更深入的了解,那么您肯定會選它。否則將會選擇Python。那么我們討論一下。Python 的伙伴們,有 5 個理由可以讓您選擇 Go。讓我們一起閱讀這篇文章。
“ Python非常強大,尤其是 Python 3 具有異步功能,但是 Go 將完全取代它在大型企業中的地位……”
如果您真的理解上邊的話,則可以嘗試使用 Go 編程語言。我認為 Go 是一種非常簡單的編程語言,可以適應任何應用程序環境,甚至比 Javascript 編程還要簡單。這可能就是為什么 Go 編程語言近年來變得流行的原因。
在本文中,我將比較兩種語言的以下方面。這些方面的參數將幫助您確定哪種語言更適合您的手頭項目。
1、性能
2、可擴展性
3、實際應用
4、執行方式
5、程序庫
6、代碼可讀性
網站 TreeScale.com 主頁和 API 是基于某些分析工具的 Web 應用程序。這是他們的技術棧:
React.js 主頁前端
Django Python 主頁后端和身份驗證服務
Node.js API 服務
PostgreSQL 數據庫,Cassandra 日志記錄系統
自定義容器注冊表正在使用 Rust 語言
Python
Repustate 幾乎完全是 Python 商店。他們使用 Django 來實現 API 和網站。因此(當前)使用 Python 來實現阿拉伯情感引擎是合理的,以便保持代碼的一致性。僅用于原型設計和實現,Python 是一個不錯的選擇。
它的表達能力非常強大,第三方類庫等也很好。如果您要使用 Web 服務,那么 Python 是完美的選擇。但是,當您執行低級計算并嚴重依賴哈希表( Python 中的字典類型)進行比較時,一切都會變慢。我們每秒可以處理大約兩到三個阿拉伯文文檔,但這太慢了。相比之下,他們的英語情感引擎每秒可以處理大約 500 個文檔。
從上面可以看到,基本框架完全基于微服務和邏輯的分離(前端和后端分離),甚至是完全不同的技術來實現。
他們將 API 服務和后端集成到一個項目中的主要原因是它們在許多地方都相似,并且通過多種語言或技術進行編碼,同時有很多重復的代碼。最后,他們需要花費大量時間來個性化 Django 的 API 服務,尤其是在自定義 JSON 響應方面。
我覺得當您開發一些普通的應用程序時,使用 Django 很棒,但是當您需要更高的性能和一些個性化的模塊時,使用 Django 會使它更加復雜。
為什么選擇 Go 編程?
1、編譯為單個二進制文件
Golang 是一種編譯語言,Googe 的開發人員為此付出了很多努力。它使用靜態鏈接根據操作系統類型和環境將所有相關的庫文件和模塊實際組合到一個二進制文件中,這也意味著如果要將后端應用程序編譯到 Linux 操作系統和基于 X86 CPU 的應用程序,您只需將已編譯的二進制應用程序下載到服務器,然后后端應用程序就可以工作,不需要任何相關文件。
2、靜態類型系統
類型系統對于大規模應用非常重要。Python 是一種很棒的有趣的語言,但是有時您會看到一些奇怪的異常,因為當您嘗試將變量用作整數變量時,而實際它是字符串類型。
def some_view (request): user_id = request.POST.get ('id', 0)
這樣的代碼將導致 Django 崩潰。
而 Go 會進行編譯,并告訴您這是一個編譯器錯誤,這是它在愚蠢問題上贏得時間的地方。
3、優化(性能)
令人驚訝的是,在大多數應用程序場景中,Go 比 Python(第 2 版或第 3 版)更快。比較的結果可以在基準測試中看到,這當然是不公平的,它取決于應用程序的類型和用戶用例。
就我們而言,Go 擁有自己的多線程模塊和 CPU 可擴展性,因此性能更高。每當我們需要執行一些內部請求時,我們都可以使用 Goroutine 分別執行它們,這比 Python 中的線程要節省十倍的資源。借助這些內置的語言功能,我們可以節省大量資源(內存和 CPU)。
4、Go 不再需要 Web 框架
對于編程語言來說,這是一件很酷的事情。Go 語言的創建者和社區擁有核心語言支持的許多內置工具,在大多數情況下,您不再需要任何第三方庫。例如,它具有內置的 http,json 和 html 模板。您甚至可以構建非常復雜的 API 服務,而不必擔心在 Github 上找到第三方庫。
當然,Go 也有許多用于構建 Web 項目的庫和框架,但是我建議您不要使用第三方庫來構建 Web 項目或 API 服務,因為在大多數情況下,使用標準庫包將使您的生活更輕松。
5、更好的 IDE 支持和調試
當您嘗試更改編程語言時,IDE 支持是最重要的考慮因素之一。友好的 IDE 可以平均節省 80% 的編程時間。Go Plugin for JetBrains IDEA,還提供其他支持,例如(Webstorm,PHPStorm 等)。該插件提供項目開發中所需的任何服務。強大的 JetBrains IDEA 可以使您的開發更加強大,更好用的是 Goland。
選擇 Go,還是 go home?
Mozilla 正在內部將其龐大的基礎日志記錄架構轉換為 Go,部分原因是強大的 goroutines 。Go語言是由 Google 的人員設計的,在設計之初,對并發的支持才是重中之重,而不是像其他各種 Python 解決方案一樣在其后添加。因此,我們開始從 Python 切換到 Go。
盡管我們的 Go 代碼產品尚未正式發布,但結果令人鼓舞。現在,我們每秒可以處理一千個文檔,使用更少的內存,并且不需要調試在 Python 中遇到的問題:丑陋的多進程/gevent/“為什么 Control-C 無法殺死進程”。
為什么我們喜歡 Go?
任何對編程語言的工作方式(解釋與編譯,動態與靜態)了解甚少的人都會說:“切,當然 Go 會更快”。是的,我們還可以用 Java 重寫所有內容,并且可以看到類似且更快的改進,但這不是 Go 語言獲勝的原因。
您在 Go 中編寫的代碼似乎是正確的。我不知道發生了什么,但是一旦代碼被編譯(快速的編譯速度),您就會覺得代碼可以正常工作(不僅可以正確運行,而且在邏輯上正確)。我知道這聽起來不太可靠,但確實如此。
就冗余(或非冗余)而言,這與 Python 非常相似。它以函數為首要目標,因此函數式編程將易于理解。當然,Go 線程和通道使您的工作變得更輕松,可以從靜態類型中獲得很大的性能提升,并且可以更好地控制內存分配,但是不必為語言表現力付出太多成本。
根據我們的代碼統計,用 Go 重寫項目后,我們減少了 64% 的代碼。
您不需要調試不存在的代碼。代碼越少,錯誤越少!
結論
Go 為我們提供了極大的靈活性。一種語言可以在所有用戶方案中使用,并且在所有用戶方案中都能很好地工作。在后端和 API 服務中,我們獲得了 30% 的性能優化。現在,我可以實時處理日志,轉換為數據庫,并通過 WebSocket 處理一項或多項服務!這是 Go 語言功能提供的非常強大的功能。
以上就是2020年為什么要放棄Python選擇Go的簡略介紹,當然詳細使用上面的不同還得要大家自己使用過才領會。如果想了解更多,歡迎關注億速云行業資訊頻道哦!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。