【十問十答】對話Go語言Team Dev
來源:互聯網
上載者:User
這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。Go是Google推出的一門程式設計語言。熟悉Go語言的開發人員都知道其彌補了C語言的不足並且保持了C的極簡主義。使用Go編譯的程式可以媲美C或C++代碼的速度,而且更加安全、支援並行進程(使用Go語言的12個理由)。一些主流的項目包括Docker、Heroku's Force.com以及Cloud Foundry's (Go)Router都是基於Go語言編寫而來。有人說,Go為雲而生,也正是由於其擁有並發性的作業系統以及完美的架構,使其備受開發人員的青睞。
本文摘譯自dotGo,文中採訪了Go語言的Team Dev,一起來聆聽大神們談Go語言的依賴關係、語言設計及Android平台上的一些新特性。
譯文如下:
Go語言Team Dev成員:Francesc Campoy Flores、Andrew Gerrand、Brad Fitzpatrick、Dave Cheney、Keith Rarick及Blake Mizerany
Q:反模式編程不斷出現,特別是當人們在探究使用與複用問題時。你會使用哪種反模式?
Dave Cheney:我覺得是包,現在的包實在是太多了。
Q:坊間有不少第三方的依賴管理工具,如:godep,gpm等。未來這些工具會作為go的核心工具來使用嗎?
Brad Fitzpatrick:我們不想來定義遊戲規則,話語權應交給社區。等每個人都覺得它成熟穩定後,我們才會再考慮。
Q:Go語言對在Unix環境下的伺服器端編程表現不俗。因而現在人們嘗試使用Go來進行案頭和內嵌應用的編寫?
Dave Cheney:我是希望Go能在小型ARM處理器上有所表現。我們需要讓編譯器能針對不同的ARM產生相應的代碼。同時,我也想讓它在記憶體回收上做得更好。
Brad Fitzpatrick:是的。人們現在也嘗試在Go裡編寫GUI庫。
Q:Go語言在對Android支援方面有什麼新發展嗎?
Andrew Gerrand:當然有!David Crawshaw正在跟進該項目。他有幾個讓Go在Android上啟動並執行辦法:1)使用NDK,擷取畫布,觸摸事件,聲音等方面的許可權;2)使用Java與Go相結合的辦法。
Q:Go語言的記憶體回收行程會著眼於長時間低延遲處理方面嗎?
Brad Fitzpatrick:如果你對程式產生的垃圾在意,答案是肯定的。我們已嘗試讓dl.google.com產生更少的垃圾。
Q:類似dlopen的動態載入有什麼新動作嗎?
Andrew Gerrand: Lance Taylor正在整理Go語言執行方式的文檔。但是具體的話還沒有時間表,文檔可以說是要做的第一步吧。
Brad Fitzpatrick:我想要在連接器重寫之後。
Q:堆壓縮會在2.0版本中推出還是處於未來計劃中?
Brad Fitzpatrick:處於未來計劃中。
Q:採用管理樹來銷毀goroutines線程似乎需要不少的人工操作。這會在未來的支援庫中得到解決嗎?
Dave Cheney:在今年的GopherCon 會議上,人們覺得打造一個健壯的應用是程式員的天職。所以首先我們得自己做得足夠好。
Q:Go語言在新特性開發上好像較保守,這是一種明智的選擇嗎?
Dave Cheney:是的,這是Go的基礎。
Andrew Gerrand:Go當初是三名成員達成共識後才做的。現在成員比當初更多了,所以也更複雜了。所謂眾口難調,對程式的修改很難做到都滿足各方的需要。一切都得按著計划進行。
Q:大型企業對選擇新語言顯得更為謹慎,對於說服他們來使用Go語言有什麼建議嗎?
Dave Cheney:Go語言經常作為具體問題的解決方案來使用。所以說最好的公關說法是:“它能協助解決一個實際問題。”
Andrew Gerrand:使用Go語言的大型企業包括蘋果、Comcast、Facebook等等。