這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
導讀在 Go 開源之後的 7 年裡,它已被全球採用。他們可以更輕鬆地在易讀而可用於生產環境的應用程式中向他人展示資料模型。與此相結合的是 Go 的廣泛使用,而且有資料專家建立“可用並且與其它程式配合”的程式。任何使用 Go 構建的應用資料科學家會在公司其他部分使用相同的語言,或者至少它非常適合現代架構。
今年像動態外掛程式,Serverless Go 以及 HTTP/2 這些創新對開發意味著什麼
Go 1.8 剛剛發布,它有幾個新功能,包括:
1.HTTP/2 Push
2.HTTP 伺服器平滑關閉
3.外掛程式
4.預設 GOPATH
這些新功能的影響力取決於你和Team Dev如何使用 Go。 自從 Go 1.0 於 2012 年發布以來,其簡單性、並發性和內建支援使其保持普及度不斷增長,所以對“Go 擅長什麼”的答案一直在增長。
這裡我會提供一些想法,包括新到來的版本及 Go 世界最近其它吸引我的地方。這不是一個詳盡的列表,所以請讓我知道你認為在 2017 年 Go 還會發生哪些重要的事。
Go 的超級可部署性 + 外掛程式 = 容器、任何東西?
1.8 版本已經發布,我已經與其中幾個人交談過添加動態外掛程式會如何影響像容器之類的事物,動態外掛程式是為了載入在編譯時間不是程式一部分的共用庫的代碼。 動態外掛程式使容器中的高並發微服務變得更加簡單。 你可以輕鬆地以外部進程的方式載入外掛程式,同時具備在容器中微服務的所有好處:保護你的主進程不會崩潰,並且沒有任何東西會搞亂你的記憶體空間。 對外掛程式的動態支援應該是在 Go 中使用容器的福音。
在 Go 開源之後的 7 年裡,它已被全球採用。Daniel Whitenack 是一名資料科學家和工程師,他為 Jupyter 維護 Go 核心,告訴我最近他在西伯利亞做資料科學和 Go 語言培訓,並 “很驚訝地看到那裡 Go 社區是如此活躍和積極。” 人們繼續在項目中採取 Go 的另一個很大的原因是交叉編譯,對此,幾個 Go 專家解釋說這在 Go 1.5 版本中變得更容易了。來自其他語言(如 Python)的開發人員應該發現,在沒有 VM 的目標平台上,能夠為多個作業系統構建捆綁的、可部署的應用程式是在 Go 中工作的關鍵。
在 1.8 版本中對跨平台的支援,再加上提升了 15% 的編譯速度,你就可以看到為什麼 Go 是初創公司最喜歡的語言。
Go 解譯器在開發中
有一些聰明的傢伙正在做一個 Go 解譯器,我一定會持續關注它。如你所知的那樣,有幾個 Read-Eval-Print-Loop(REPL)的解決方案可以用來評估運算式,以確保代碼如你預期的工作,但那些方法通常意味著容忍一些不便,或需要費力從幾個方案中找到一個適合你的用例的。有一個健壯、一致的解譯器就太好了,一旦我瞭解到更多訊息,我會告訴你們。
在開發中使用 Go 複雜特性?觀看 O'Reilly 的視頻訓練 中級 Go 。
Go 的 serverless - 會是什麼樣子?
是的,現在圍繞 serverless 架構(功能即服務(FaaS))有很多炒作。但有時候也有些捉摸不定的地方,那麼關於 Go 的 serverless 發生了什嗎?我們能在今年看到一個 Go 語言原生支援的 serverless 服務嗎?
AWS Lambda 是最知名的 serverless 供應商,不過 Google 最近也推出了 Google Cloud Functions。這兩個 FaaS 解決方案使你可以在無須管理伺服器的情況下運行代碼,你的代碼儲存在別人為你管理的伺服器叢集上,並且僅在觸發事件調用它時運行。AWS Lambda 目前支援 JavaScript、Python 和 Java,還可以啟動 Go、Ruby 和 bash 進程。 Google Cloud Functions 只支援 JavaScript,但很可能不久將支援 Java 和 Python。許多物聯網裝置已經使用 serverless 方案,隨著 Go 越來越多地被創業公司採用,serverless 似乎是一個可能的增長點,所以我在關注這些 serverless 解決方案中 Go 的開發情況。
支援的架構
已經有幾個架構可以支援 AWS Lambdas:
1.λ Gordon - 使用 CloudFormation 建立、串連及部署 AWS Lambdas
2.Apex - 構建、部署及管理 AWS Lambda 函數
3.Sparta - AWS Lambda 微服務的 Go 架構
還有一個 AWS Lambda 替代品支援 Go:
Iron.io:建立在 Docker 和 Go 之上;語言未知;支援 Golang、Python、Ruby、PHP 和 .NET
也許令人驚訝的是很多人都在使用 Go 進行資料科學和機器學習。關於它是否適合還有一些爭論,但基於像 《Gopher 學院之 2016 年終》那樣的年度文章中,你會注意到 30 篇文章中至少有 4 篇是關於機器學習或分布式資料處理,它們正在像我們走來。
我之前關於 Go 的易部署性的觀點可能是資料科學家使用 Go 的一個關鍵原因:他們可以更輕鬆地在易讀而可用於生產環境的應用程式中向他人展示資料模型。與此相結合的是 Go 的廣泛使用(正如我前面提到的,它正變得越來越流行!),而且有資料專家建立“可用並且與其它程式配合”的程式。任何使用 Go 構建的應用資料科學家會在公司其他部分使用相同的語言,或者至少它非常適合現代架構。
via: https://medium.com/@sconant/5-things-to-watch-in-go-programming-in-2017-39cd7a7e58e3#.8t4to5jr1
作者:Susan Conant 譯者:geekpi 校對:jasminepeng
本文由 LCTT 原創編譯,Linux中國 榮譽推出
原文來自:https://linux.cn/article-8249-1.html
本文地址:http://www.linuxprobe.com/go-five-focus.html