<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          來自 HackerNew 的討論:人生苦短,我要換Go!

          共 3008字,需瀏覽 7分鐘

           ·

          2020-11-03 15:01

          碼農(nóng)常說,「人生苦短,我用Pyhon」,但在過去的幾年里,又有一種編程語言開始流行起來,它就是GoLang,沒什么比一門新的編程語言更讓開發(fā)人員興(zhua)奮(kuang)的了,不是嗎?本文基于 hackernew 上的討論。
          在使用健壯的軟件開發(fā)編程語言方面,Golang 已經(jīng)被許多人選中。這種編程語言為程序員提供了獨特的好處。

          Go 基本上是一個編譯語言,它的靈感來自C。所以,如果你精通 C 的語法,你會發(fā)現(xiàn) Golang 是有用的。學習這種編程語言只需要幾天時間,因為Go的語法類似于C。

          今天,Golang 已經(jīng)被一些知名公司使用,比如 Netflix,Uber,F(xiàn)acebook,Dropbox 等等。它有望在未來成為一種廣泛使用的編程語言。
          ?

          Golang:含著金湯匙出生,高并發(fā)性能堪比C++


          Go得到了谷歌的資金支持。

          由于 Google 已經(jīng)投資了這種編程語言,開發(fā)者可以信任這種編程語言,由于該產(chǎn)品是由谷歌支持的,預計Go語言將帶來高端安全性。
          ?
          Go也被認為是一種快速而完美的編程語言,具有豐富有趣的特性,最關鍵的一點是其簡單的語法和結(jié)構。因此,使用這種編程語言并不需要花費很多時間。開發(fā)人員可以提高他們?yōu)檐浖驊贸绦蚓帉懘a的速度。

          Go語言還具有高效的并發(fā)性和速度,與 Java、 C、 C + + 等編程語言相似。

          ? ? ? ? ? ? ?
          ?
          Go語言還可以跨平臺,包括 Linux,Windows,Unix,BSD 等。它也適用于其他許多操作系統(tǒng)。Go具有作為一種重要的編程語言在未來持續(xù)發(fā)展的潛力,作為一種跨平臺的編程語言,它為希望在多個平臺上構建應用程序的開發(fā)人員提供了便利。
          ?
          同時,Go語言的垃圾收集器特性值得一提,這個特性為程序員提供了自動內(nèi)存清理工具。當內(nèi)存滿時,程序員必須花費大量時間查找垃圾代碼來清理空間,而Go帶有自動垃圾檢測和清理功能。使程序員能專注于他們的應用程序或軟件開發(fā),而不用考慮內(nèi)存或空間。


          Python適合初學者,Golang才是做工程的料

          Python 是一種高級的面向?qū)ο蟮恼Z言。它具有內(nèi)置的數(shù)據(jù)結(jié)構,結(jié)合了動態(tài)綁定和類型,是快速開發(fā)的理想選擇。Python 還提供了對模塊和包的支持,這允許系統(tǒng)模塊化和代碼重用。


          Python 也是入門最快的編程語言之一,因為它只需要很少的代碼行。重點是可讀性和簡潔性,這使它成為初學者的一個很好的選擇。
          ?
          圖:Stack Overflow上Python和Go的問題數(shù)

          切換到一種新的編程語言通常是一件大事,特別是當團隊成員對原始的語言有豐富經(jīng)驗的時候。今年早些時候,Stream 將它的主要編程語言從 Python 轉(zhuǎn)換為 Go。

          Python和Go的關鍵區(qū)別
          ?
          1.Go是一種過程化的、函數(shù)式的并發(fā)語言,而 Python 是一種面向?qū)ο蟮摹⒚钍降摹⒑瘮?shù)式的語言
          ?
          2.Go 支持并發(fā),但 Python 沒有任何內(nèi)置的并發(fā)機制
          ?
          3.Go 是系統(tǒng)編程的理想選擇,而 Python 是一種用于解決數(shù)據(jù)科學問題的流行語言
          ?
          4.Go 不提供異常,而 Python 支持異常;Go 不支持繼承,而 Python 支持繼承
          ?
          ? ? ? ???
          5.雖然使用 Go 構建代碼比 Python 或 Ruby 要花費更多的時間,但是你可以節(jié)省大量優(yōu)化代碼的時間。如上圖所示,Go的速度非常快,大概是Pyhon的30倍。
          ? ? ? ?

          想要高性能,就從Python切換到Go吧
          ?
          速度快
          ?
          Go的速度非常快,它的速度接近于Java或者C,比Python快30倍。
          ?
          語言本身的性能很重要
          ?
          對于許多應用程序來說,編程語言只是應用程序和數(shù)據(jù)庫之間的粘合劑。語言本身的表現(xiàn)通常并不重要。
          ?
          Python 是一種很棒的語言,但對于序列化/反序列化、排序和聚合等,它的性能很差。Cassandra 檢索數(shù)據(jù)需要1毫秒的時間,而 Python 在接下來的10毫秒內(nèi)將其轉(zhuǎn)換為對象。
          ?
          開發(fā)者的效率,不用太創(chuàng)新
          ?
          很多人第一次接觸編程時,總是喜歡使用 Python 的高級特性。Python 可以讓開發(fā)者從正在編寫的代碼中獲得很好的想法。
          ?
          這些特性很有趣,但是大多數(shù)程序員認為它使得閱讀其他人的代碼變得更加困難。
          ?
          Go 強迫你使用最基本的東西,這使得閱讀別人的代碼變得容易。

          并發(fā)和通道
          ?
          作為一種編程語言,Go 總是盡可能簡單而且沒有引入太多的新概念,因為它的目標是創(chuàng)建一種易于使用的編程語言。
          ?
          唯一有創(chuàng)新的地方是 Goroutines 和 Channel。Goroutine 是 Go 的輕量級線程解決方案,而 Channels 是與 Goss 交互的首選方式。
          ?
          Goroutine 非常輕量級,只需要幾千字節(jié)的額外內(nèi)存。因為 Goroutine 是如此的輕量級,可以有成百上千的 goroutine 在同一時間運行。
          ?
          Goroutine 和基于信道的并發(fā)方案使應用程序可以輕松地使用所有可用的 CPU 內(nèi)核和處理并發(fā) IoOs,而不會使開發(fā)復雜化。與 Python/Java 相比,在 Goroutinerequires 上運行一個函數(shù)只需要很少的固定代碼。
          ?
          編譯速度快
          ?
          與 Java 和 C 等語言的海龜速度編譯相比,用 Go 編寫的最大的微服務項目只需6秒鐘就可以編譯完成。Go 的快速編譯速度是它的主要生產(chǎn)力。
          ?
          強大的生態(tài)系統(tǒng)
          ?
          相對于其他新的語言,比如 Rust 或 Elixir,Go 有著巨大的生態(tài)系統(tǒng)優(yōu)勢。盡管它不能與 Java、 Python 或 Node 相提并論,但仍可以找到滿足許多基本需求的高質(zhì)量包。
          ?
          Gofmt,強制代碼格式化
          ?
          Gofmt 是一個優(yōu)秀的命令行程序,內(nèi)置在 Go 編譯器中,用于格式化代碼。在功能方面,它類似于 Python 的 Autopep 8。Gofmt 以正式的方式對代碼進行格式化,以避免所有這些參數(shù)。
          ?
          gRPC 和協(xié)議緩沖
          ?
          Go 提供了一流的協(xié)議緩沖和 gRPC 支持。這兩個工具完美地結(jié)合在一起,構建了一個通過 RPC 進行通信的微服務器。只需要編輯一個庫文件,該文件定義 RPC 調(diào)用及其參數(shù),服務端和客戶端可以從該文件自動生成適當?shù)拇a。這不僅速度快,而且占用網(wǎng)絡空間少,使用更方便。
          ?
          不過,雖然有這么多的優(yōu)點,Go語言也并不是那么的完美。
          ?
          相對Python,Go語言也有不足:
          ?
          Go語言不是一種通用語言;
          ?
          與 Go 集成的 API 沒有官方支持的 Go SDK;
          ?
          庫的支持不夠豐富;
          ?
          依賴管理不夠健全
          ?
          不知道各位小伙伴或者身邊的朋友是不是開始使用Go了呢?
          ?
          參考鏈接:
          https://news.ycombinator.com/item?id=24887521
          來源:ycombinator,新智元
          編輯:QJP


          推薦閱讀


          福利

          我為大家整理了一份從入門到進階的Go學習資料禮包,包含學習建議:入門看什么,進階看什么。關注公眾號 「polarisxu」,回復?ebook?獲取;還可以回復「進群」,和數(shù)萬 Gopher 交流學習。

          瀏覽 102
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  男女福利网 | 国产欧美在线 | 后入少妇正在播放 | 91麻豆产精品久久久 | 亚洲毛片电影 |