ECUG 2015|許式偉:對程式語言的選擇無關陣營,關乎品味

1 贊 回覆發表於2016-01-20

對程式語言的選擇無關陣營,關乎品味

許式偉,七牛雲CEO,ECUG社群發起人,Go語言專家,著有國內第一本Go語言圖書《Go語言程式設計》。有超過15年網際網路從業經驗,曾在金山、盛大等知名公司擔任重要技術崗位從事核心產品研發。2011年創立七牛雲,現仍然活躍在技術前沿領域。

近日,圖靈社群對許式偉進行了專訪,所採訪的主要話題並不是他作為技術牛人的開發經歷或是他作為創始人的奮鬥史,而關於他在2007年建立的ECUG社群(全稱為Effective Cloud User Group,曾用名是Erlang China User Group)。這樣一個曾經關於Erlang語言的社群是如何成為雲端計算領域技術交流的“神聖場合”的呢?我們來看看他是如何回答的吧。

ECUG最初名為Erlang China User Group,於2010年更名為Effective Cloud User Group,想了解一下名稱的改變主要基於哪些考慮?這樣的變化是否也代表了技術環境上,一個時代的變遷?

Erlang是一門小眾語言,我們在成立ECUG的時候,國內沒有幾個人對它感興趣。這門語言特色鮮明,是服務端程式設計實踐的一面旗幟。所以ECUG最早叫Erlang China User Group,是因為我們想推廣Erlang。但哪怕如此,從第一屆的ECUG大會開始我們也沒有限制一定必須是Erlang語言的程式設計實踐,只要服務端開發的實踐分享都可以。

2009年的ECUG大會上,我們討論了改名的事宜,最後確定了Effective Cloud User Group這個名字,在2010年我們正式進行了調整。這個改名一方面是由於ECUG探討Erlang的話題已經越來越少,堅持老的名字已經非常名不符實。另一方面雲端計算時代已經明確來臨,我們希望吸引到更多人蔘與到服務端開發的最佳實踐的分享中來。到2011年時,我們進一步擴大了ECUG的話題範疇,不再限制只是服務端開發的實踐,只要是服務端領域的話題都可以,比如說伺服器運維、伺服器安全等等。 

自成立以來,ECUG已有8年之久,從成員和活動內容的角度來說,最大的改變是什麼? 

變化其實是逐步發生的。最早我們主要圍繞Erlang這門語言探討服務端的程式設計實踐,到2011年話題基本上轉向以Go語言為主。這不是我的個人意志,而是時代變化的結果。到今天,Go語言已經基本上統治了雲端計算。

建立ECUG的初衷是什麼?一路走來,ECUG為你和其他人帶來了哪些收穫?

最早建立ECUG的初衷是希望認識服務端開發的朋友,並且交流在服務端開發的最佳實踐。一方面我常年在珠海這樣一個二線城市,並且剛剛從桌面開發轉型到服務端開發,我個人主觀非常渴望交流,學習其他人的先進經驗。另一方面也是覺得南方行業內的交流是比較少的,所以希望自己能夠在這方面貢獻一點力量。

直到今天,這個會議仍然是我瞭解其他行業技術進步的視窗之一,基本上國內各個公司的技術大拿都來過ECUG分享過他們的思想。有一些人還是常客,像劉奇、謝孟軍、田琪等。也許他們中間換了公司,但和ECUG的約定一直不變。很感謝他們。

ECUG和七牛的成立有什麼關係?現在,ECUG對你和整個行業來說意味著什麼?

ECUG和七牛的成立沒啥關係。唯一有關係的是,ECUG是雲端計算行業的技術大會,七牛是雲端計算公司。

在今天會議如此之多的背景下,我堅持ECUG以技術乾貨為導向,杜絕廣告。一方面事先對講師的演講內容進行確認,另一方面如果誰玩純廣告就封殺,此後的ECUG不再接受這個人的議題。ECUG對我和整個雲端計算行業來說,是大家技術交流的神聖場合,通過交流促進行業共同進步。 

今年的ECUG大會你為什麼選擇“一週一語言”這個演講主題?ECUG Con 2015有什麼特色?

嗯,你這個問題有意思,是今天採訪最讓我興奮的話題了。為什麼選擇“一週一語言”,有幾個原因吧。一方面,彌補下中國人沒有自己流行語言的遺憾,我認為qnlang(不過我在內部已經改名為qlang,即Q語言)具有流行起來的基因。qlang的定位很獨特:它是Go語言的夥伴語言。作為和Go語言互動最便捷的語言,在Go語言成為雲端計算的事實標準時,在很多場合我們都可以用qlang作為輔助語言完成對系統的靈活定製需求。例如,如果我們用Go語言開發爬蟲,我們可以用qlang來定製爬蟲的諸多策略,怎麼做到這一點我在演講中會給出示範。 

另一方面,大部分人學習的時候太功利,不太重視學習基本功,比如編譯原理。事實上我認為編譯原理是非常非常重要的一門基礎知識。某種程度上說可能是名字不夠好,我個人更喜歡把這個領域叫做文字處理。文字處理應用範圍非常廣泛,想一下我們今天實際生產環境中,什麼地方不需要文字處理?在我們現在很火的“大資料”領域,文字處理顯然是很重要的基礎。

ECUG Con 2015從議題上看,技術更加細粒度化了,很多講師都選了一個很小的知識點來展開講,把話題講透徹,這是很好的進步。比如洪強寧只講網路,我只講文字處理,劉奇講Raft(有趣的是Etcd作者李響講Paxos,他們兩的議題結合起來聽一定很有意思)。比起很泛泛地說XX實踐,這樣的議題大家可以得到更多幹貨。

很多人都把七牛、你和Go語言緊緊地聯絡在了一起,曾幾何時,很多人認為七牛選擇Go語言是一個很大膽的決定。請問程式設計師應該如何選擇正確的程式語言?面對一門新語言時又該如何高效地學習?

沒有正確的程式語言,只有合適自己的語言。選擇語言需要基於你對要解決的問題域的理解而做出抉擇。當然,這事也和品味有關,不同語言實際上體現的是創始人的個性。不少程式設計師喜歡把語言看做陣營。我個人沒有這種想法,語言說白了只是個工具。沒有必要因為我選了Go語言,就覺得你沒有選Go就和我是敵對。如果有適合所有領域的語言,我也不會去造qlang這個新語言了。 

學習新語言的最好辦法是實踐。你用它寫幾個程式解決你實際生產環境你遇到的問題,這比任何方式都有效。我記得我第一個C語言程式是在DOS環境下模仿實現了一個doskey,這個東西挺複雜,涉及編輯器、TSR駐留這些領域知識,一個程式寫下來有好幾千行。這就是我自己的學習方法。

你曾經說過“我為誰提供服務的認知,比我是哪個領域的程式設計師(工種認知)更重要”,對於程式設計師來說,如何培養這種基於產品的思考方式?

有些程式設計師只關心技術,而不關心業務,我認為這會制約他們的發展,所以才給了這樣的忠告。只關心技術的人很快就會遇到成長的天花板。關心你的客戶,這個行動起來可以很簡單。比如我在金山做辦公軟體的時候,喜歡泡WPS使用者論壇,這是技術人員近距離接觸客戶的有效方法。這個時候技術就不只是技術,它的背後就是鮮活的人,他們有思想,有喜怒哀樂。這樣你對產品的理解會深刻很多,你會理解產品設計為什麼是做成這樣的,而不是另一種形態。 

相比於其他技術公司,哪怕是雲端計算公司,七牛的極客文化都是極其鮮明的,請問這種文化基因來源自哪裡?你?初始創業團隊?還是行業?

七牛的文化基因,可能和我、我們初始創業團隊的風格有關。我希望七牛別那麼功利。雖然企業都需要賺錢,但是隻想賺錢的企業是很沒有意思的。所以我們做企業的時候堅持了做我們自己,做我們喜歡做的事情。我個人很喜歡接觸新技術,體驗新技術的力量。至於這是極客還是什麼,其實我也不太關心。

國內雲端計算行業內部的競爭現在處於什麼階段?是否可以大膽地預測一下雲端計算行業的未來發展方向?

中國的雲端計算從階段上來說,仍然非常早期。具體說來,就是整個雲端計算的市場容量仍然非常非常小。雲端計算的未來不需要我預測,結論是非常明確的,很多人都進行了預測,大家的意見很趨同。

ECUG 2015將於2016年1月22、23日在北京召開,現正火熱報名中,點此快快網上報名哦!

相關文章