日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

你好,我是陳皓,網名左耳朵耗子。

之前,作為 Go 語言的三位創始人之一,Unix 老牌黑客羅勃·派克(Rob Pike)在文章“Go: Ten years and climbing”中,回顧了 Go 語言的發展歷程。文章提到,Go 語言這十年的迅猛發展快到連他們自己都沒有想到,并且還成為了云計算領域新一代的開發語言。另外,文中還說到,中國程序員對 Go 語言的熱愛完全超出了他們的想象,甚至他們都不敢相信是真的。

這讓我想起我在 2015 年 5 月拜訪 Docker 公司在灣區的總部時,Docker 負責人也和我表達了相似的感嘆:他們完全沒有想到中國居然有那么多人喜歡 Docker,而且還有這么多人在為 Docker 做貢獻,這讓他們感到非常意外。此外,他還對我說,中國是除了美國本土之外的另外一個如此喜歡 Docker 技術的國家,在其它國家都沒有看到。

的確如他們所說,Go 語言和 Docker 這兩種技術已經成為新一代的云計算技術,而且可以看到他們的發展態勢非常迅猛。而中國也成為了像美國一樣在強力推動這兩種技術的國家。這的確是一件讓人感到高興的事兒,因為中國在跟隨時代潮流這件事上已經做得相當不錯了。

然而就是在這樣的背景下,這幾年,總還是有人會問我是否要學 Go 語言,是否要學 Docker,Go 和 Docker 能否用在生產環境等等。從這些問題來看,對于 Go 語言和 Docker 這兩種技術,國內的技術圈中還有相當大的一部分人在觀望。

所以,我想寫這篇文章,并從兩個方面來論述一下我的觀點和看法。

  • 一個方面,為什么 Go 語言和 Docker 會是新一代的云計算技術。
  • 另一個方面,作為技術人員,我們如何識別什么樣的新技術會是未來的趨勢。

這兩個問題是相輔相成的,所以我會把這兩個問題揉在一起談。

雖然 Go 語言是在 2009 年底開源的,但我是從 2012 年才開始接觸和學習 Go 語言的。當時,我只花了一個周末兩天的時間就學完了,而且在這兩天的時間里,我還很快地寫出了一個能完美運行的網頁爬蟲程序,以及一個簡單的高并發文件處理服務,用于提取前面抓取的網頁關鍵內容。這兩個程序都很簡單,總共不到 500 行代碼。

綜合下來,我對 Go 語言有如下幾點體會。

第一,語言簡單,上手快。Go 語言的語法特性簡直是太簡單了,簡單到你幾乎玩不出什么花招,直來直去的,學習難度很低,容易上手。

第二,并行和異步編程幾乎無痛點。Go 語言的 Goroutine 和 Channel 這兩個神器簡直就是并發和異步編程的巨大福音。像 C、C++、JAVA、Python/ target=_blank class=infotextkey>Python 和 JavaScript 這些語言的并發和異步的編程方式控制起來就比較復雜了,并且容易出錯,但 Go 語言卻用非常優雅和流暢的方式解決了這個問題。這對于編程多年受盡并發和異步折磨的我來說,完全就是眼前一亮的感覺。

(圖片來自 Medium:Why should you learn Go?)

第三,Go 語言的 lib 庫“麻雀雖小,五臟俱全”。Go 語言的 lib 庫中基本上有絕大多數常用的庫,雖然有些庫還不是很好,但我覺得這都不是主要問題,因為隨著技術的發展和成熟,這些問題肯定也都會隨之解決。

第四,C 語言的理念和 Python 的姿態。C 語言的理念是信任程序員,保持語言的小巧,不屏蔽底層且對底層友好,關注語言的執行效率和性能。而 Python 的姿態是用盡量少的代碼完成盡量多的事。于是我能夠感覺到,Go 語言是想要把 C 和 Python 統一起來,這是多棒的一件事。

(圖片來自 Medium:Why should you learn Go?)

所以,即便 Go 語言存在諸多的問題,比如垃圾回收、異常處理、泛型編程等,但相較于上面這幾個優勢,我認為這些問題都是些小問題。于是就毫不猶豫地入坑了。

當然,一個技術能不能發展起來,關鍵還要看三點。

  • 有沒有一個比較好的社區。像 C、C++、Java、Python 和 JavaScript 的生態圈都是非常豐富和火爆的。尤其是有很多商業機構參與的社區那就更是人氣爆棚了,比如 linux 社區。
  • 有沒有一個工業化的標準。像 C、C++、Java 這些編程語言都是有標準化組織的。尤其是 Java,它在架構上還搞出了像 J2EE 這樣的企業級標準。
  • 有沒有一個或多個殺手級應用。C、C++ 和 Java 的殺手級應用不用多說了,就算是對于 php 這樣還不能算是一個優秀的編程語言來說,因為是 Linux 時代的第一個殺手級解決方案 LAMP 中的關鍵技術,所以,也發展起來了。

在我看來,上面提到的三點至關重要,新的技術只需要占到其中一到兩點就已經很不錯了,何況有的技術,比如 Java 三點全都滿足,所以,Java 的蓬勃發展也在情理之中。當然,除了上面這三點重要的,還有一些其它的影響因素,比如:

  • 學習難度是否低,上手是否快。這點非常重要,C++ 在這點上越做越不好了。
  • 有沒有一個不錯的提高開發效率的開發框架。如:Java 的 Spring 框架,C++ 的 STL 等。
  • 是否有一個或多個巨型的技術公司作為后盾。如:Java 和 Linux 后面的 IBM、Sun……
  • 有沒有解決軟件開發中的痛點。如:Java 解決了 C 和 C++ 的內存管理問題。

所以,Go 語言的未來是不可限量的。當然,我個人覺得,Go 可能會吞食很多 C、C++、Java 的項目。不過,Go 語言所吞食的項目應該主要是中間層的項目,既不是非常底層也不會是業務層。

也就是說,Go 語言不會吞食底層到 C 和 C++ 那個級別的,也不會吞食到上層如 Java 業務層的項目。Go 語言能吞食的一定是 PaaS 上的項目,比如一些消息緩存中間件、服務發現、服務代理、控制系統、Agent、日志收集等等,他們沒有復雜的業務場景,也到不了特別底層(如操作系統)的軟件項目或工具。而 C 和 C++ 會被打到更底層,Java 會被打到更上層的業務層。這是我的一個判斷。

好了,我們再用上面的標尺來衡量一下 Go 語言的殺手級應用 Docker,你會發現基本是一樣的。

  • Docker 容易上手。
  • Docker 解決了運維中的環境問題以及服務調度的痛點。
  • Docker 的生態圈中有大公司在后面助力,比如 google。
  • Docker 產出了工業界標準 OCI。
  • Docker 的社區和生態圈已經出現像 Java 和 Linux 那樣的態勢。
  • ……

所以,早在三四年前我就覺得 Docker 一定會是未來的技術。雖然當時的坑兒還很多,但是,相對于這些大的因素來說,那些小坑都不是問題。只是需要一些時間,這些小坑在未來 5-10 年就可以完全被填平了。

同樣,我們可以看到 Kube.NETes 作為服務和容器調度的關鍵技術一定會是最后的贏家。這點我在去年初就能夠很明顯地感覺到了。

關于 Docker 我還想多說幾句,這是云計算中 PaaS 的關鍵技術。雖然,這世上在出現 Docker 之前,幾乎所有的要玩公有 PaaS 的公司和產品都玩不起來,比如:Google 的 GAE,國內的各種 XAE,如淘寶的 TAE,新浪的 SAE 等。但我還是想說,PaaS 是一個被世界或是被產業界嚴重低估的平臺。

PaaS 層是承上啟下的關鍵技術,任何一個不重視 PaaS 的公司,其技術架構都不可能讓這家公司成長為一個大型的公司。因為 PaaS 層的技術主要能解決下面這些問題。

  • 軟件生產線的問題。持續集成和持續發布,以及 DevOps 中的技術必須通過 PaaS。
  • 分布式服務化的問題。分布式服務化的服務高可用、服務編排、服務調度、服務發現、服務路由,以及分布式服務化的支撐技術完全是 PaaS 的菜。
  • 提高服務的可用性 SLA。提高服務可用性 SLA 所需要的分布式、高可用的技術架構和運維工具,也是 PaaS 層提供的。
  • 軟件能力的復用。軟件工程中的核心就是軟件能力的復用,這一點也完美地體現在 PaaS 平臺的技術上。

老實說,這些問題的關鍵程度已經到了能判斷一家技術驅動公司的研發能力是否靠譜的程度。沒有這些技術,我認為,依托技術拓展業務的公司機會就不會很大。

在后面,我會另外寫幾篇文章給你詳細地講一下分布式服務化和 PaaS 平臺的重要程度。

最后,我還要說一下,為什么要早一點地進入這些新技術,而不是等待這些技術成熟后再進入。原因有這么幾個。

  • 技術的發展過程非常重要。我進入 Go 和 Docker 的技術不能算早,但也不算晚,從 2012 年學習 Go,再到 2013 年學習 Docker 再到今天,我清楚地看到了這兩種技術的生態圈發展過程。這個過程中,我收獲最大的并不是這些技術本身,而是一個技術的變遷和行業的發展。

從中,我看到了非常具體的各種浪潮和思路,這些東西比起 Go 和 Docker 來說更有價值。因為,這不但讓我重新思考我已掌握的技術以及如何更好地解決已有的問題,而且還讓我看到了未來。我不但有了技術優勢,而且這些知識還讓我的技術生涯有了更多的可能性。

  • 這些關鍵新技術,可以讓你提前搶占技術的先機。這一點對一個需要技術領導力的個人或公司來說都是非常重要的。

如果一個公司或者一個人能夠抓住技術紅利,那就會比其它公司或個人有更大的影響力。一旦未來行業需求引爆,那么這個公司或這個人的影響力就會形成一個比較大的護城河,并可以快速地從中獲取經濟利益。

最近,在與中國移動、中國電信以及一些股份制銀行交流的過程中,我看到通訊行業、金融行業對于 PaaS 平臺的理解已經超過了互聯網公司,而我近 3 年來在這些技術上的研究讓我也從中受益匪淺。

所以,Go 語言和 Docker 作為 PaaS 平臺的關鍵技術前途是無限的,我很慶幸自己趕上了這波浪潮,也很慶幸自己在幾年前就看到了這個趨勢,所以現在我也在用這些技術開發相關的技術產品,并致力于為高速成長的公司提供這些關鍵技術。

分享到:
標簽:語言
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定