首先自我介紹一下我自己,我是一個coder,目前主要從事B/S程序開發工作,懂點PHP;ASP;JSP;JS;VB;C;DELPHI;JAVA,另外知道幾個數據庫,除此之外別無所長,那麼我為何會選擇學習GO呢!接下來我對此詳細說明一下.
首先我來說明一下C/S程序和B/S程序的優缺點:
C/S程序主要是運行在客戶端的電腦上,通常採用安裝的形式,以windows操作系統為例,軟件會被編譯成二進制然後以exe或dll等方式存在於客戶端的電腦上,其執行效率是非常高的,當然了除非編程者把代碼寫的非常糟糕,除此之外C/S程序幾乎不需要考慮安全問題和負載問題,除此之外C/S程序開發出來的東西幾乎是不開源的,使用者只能被動接受卻不能更改軟件的功能(如果您會彙編的話那就另當別論了).能夠開發C/S程序的語言有很多,例如C;VB;DELPHI;C++;等等在此不一一列舉!
B/S程序主要是運行在服務器上,訪問者以瀏覽器為媒介輸入網址進行訪問,一個網站往往會在同一時間被成百上千人使用,另外開發B/S程序的語言往往都是腳本,這種腳本語言好處是開發速度快,後期維護簡單,但是相比較于C/S編譯成二進制再執行效率肯定是要降低幾個檔次的.再加上很多人同時使用,就造成了雪上加霜的狀況,但優點也是有的,那就是B/S程序幾乎都是開源的(除了極少數加密狀況外),使用者如果水平足夠的話是可以自己更改軟件功能的.那麼可以開發B/S的語言也有很多,例如:PHP;ASP;.NET;JSP等等
除了上邊我所說的幾種編程語言之外,其實還有幾種語言是蠻特殊的,就像VB,學會了他的子集就可以開發asp,類似的語言還有很多,例如c#;java;python;ruby;go等等,在此不再一一列舉,這些語言除了能用來開發C/S程序外還能用來開發B/S程序,那麼今天我們要討論的話題是GO語言,我為何不選擇java或c#之類的不在今天的討論範圍內.繼續接著剛才的話題,既然B/S負載量這麼大卻又使用腳本語言來開發,那麼效能肯定是要大打折扣的,那麼有沒有一種替代方法不但能把服務端的程序編譯成二進制,又能用來開發B/S程序呢?當然有,那就是GO語言.當然了有一些公司在這方面也做了很多的優化,例如facebook,他們用c重寫了PHP的核心,新的核心叫hiphop并對其開源了,有興趣的朋友可以看看,重寫之後的PHP效能確實有很大的提升,只可惜喪失了很多PHP的特性,另外上手有點複雜,給人曲高寡合的感覺,最終導致叫好不叫座,儘管facebook受益於此改寫之後網站打開速度確實是速度飛快!
我之所以選擇GO語言是因為以下狀況:
1.其效能非常高,號稱僅次於C語言的效能.
2.他與node.js類似,語言本身就是一個web server,不必再用apache;nginx;IIS之類的服務器軟件,這一點很好,可以減少效能損失.
3.學習GO語言非常簡單,對於一個新手來說可以在短時間內上手從事開發工作.
4.語言本身的結構非常簡潔,能省則省把一些不必要的東西都省略掉了
5.其強大的支持後盾,另外其先天對UTF-8的支援度讓我很喜歡.
6.他是開源的.至少不用像delphi似的中途就夭折了
7.很好的版本相容性,用低版本的go語言開發的程序能很好的在高版本的go環境中運行.
8.多線程,我一直期待PHP有這樣的功能,但是迄今為止只能藉助第三方來實現.
9.跨平臺,這個我就更不用說了,go語言不會讓你在windows下開發的軟件移植到linux就不能用了,這是一件超級扯淡的事情,但是目前市面上某些語言還存在這種超級扯淡的問題,用了他們的語言開發好了東西后要先購買服務器操作系統版權,然後購買數據庫版權,然後購買軟件版權,這不是折騰嗎!!
10.還有一些優點我就不再一一說明了
以上就是我選擇并學習go語言的原因.當然了go語言也有很多不足之處,這裡我就不再說明了,有興趣的朋友可以自己去搜一下,那麼從下一篇文章開始我們就從最基礎開始講解GO語言.
另外希望轉載文章的朋友能夠留一個文章出處,http://see7di.cnblogs.com 在此感激不盡!
GO語言基礎教程:序章