重慶分公司,新征程啟航
為企業提供網站建設、域名注冊、服務器等服務
為企業提供網站建設、域名注冊、服務器等服務
我們這個世界真的需要另外一種C語言風格的編程語言嗎?很顯然,谷歌很早就這么認為了,在 2009 年,它借用雷蒙斯樂隊的歌“Hey!Ho!Let’s Go”,正式推出了 Go 語言。現在 Go 語言開發團隊已經開發出了這種語言的第一個穩定版本,他們稱之為 Go 1,他們將這種語言推向世界,希望人們用這種語言“開發出健壯的軟件產品和作品。”那么,現在人們對這種語言的使用情況又是如何呢?讓我們先回顧一下,什么是 Go 語言,是什么促使谷歌決定推出這樣一種語言?按 Go 語言的“常見問題”里的說法,自從那個“重要的系統級編程語言”誕生距今已超過十幾年了,這段時間計算機世界已經發生了很大的變化。谷歌的才人們對目前現有的各種語言深感失望,他們必須要在“快速的編譯、快速的執行或簡單編程”之間做出選擇。“沒有一種主流的編程語言,例如C,C++,Java,Python 等,能提供谷歌人想要的全部特征。于是,谷歌的工程師從 2007 年起開始開發 Go 語言。“常見問題”里這樣說:Go 語言在基本語法上”基本上屬于C語言家族“,但它從 Pascal 語系吸收了”大量的理念“,還有一些思想是來自其它的語言。但對于程序員來說,應該把它當成一種全新的語言,一種以”讓程序員更有效率,讓編程更有效率,至少是讓我們更有效率并且使編程更有樂趣“的理念為設計目標的編程語言。Go 語言擅長做什么…?那么,Go 語言擅長做什么?根據谷歌著名的軟件工程師——Go 語言的設計人之一——Rob Pike 的說法,它是用來開發”大型軟件“的。Pike 說 Go 語言適合于”很多程序員一起開發的大型軟件,并且開發周期較長,支持云計算的網絡服務:簡言之,就是服務端軟件。Go 語言能夠讓程序員快速開發,并且在軟件不斷的增長過程中,它能讓程序員更容易地進行維護和修改。它融合了傳統編譯型語言的高效性和腳本語言的易用性和富于表達性。“(作為原貝爾實驗室 Unix 開發小組成員,Pike 對系統軟件有相當的認識。)但對于其它類型的軟件,Go 語言也一樣的好用。例如,我在 Google+ 上詢問了 Go 語言的使用者,得到了 Douglas Fils 的回復,他正在拿各種語言做實驗。Fils 說他現在有時會開發一些 Web 應用程序,大多數都是在 Java 虛擬機(JVM)平臺上。“所以 Java 自然是最常用的。我最近開始嘗試更多的語言,例如 Scala 和 Groovy。我用 Groovy 語言已經開發了不少的東西,而且剛剛完成了一個 Groovy/Grails 語言上的大型項目。我還研究了一下 Ruby on Rails/Python (Python 框架),并用它們做了一些東西。”他說他用早期版本的 Go 語言開發了一個 Web 界面來處理數據資源。但很不幸。“當時的 Go 的程序庫和語法使得開發起來很困難。我還嘗試了 node.js,而且,到了一月份,我的精力完全轉向了 node.js.”Node.js,Fils 說,很流行,“雖然我很喜歡它,但它的單線程事件循環機制和非阻塞的編程模式讓我不太滿意。還有,所有的東西都要用 Javascript 的回調函數,我不喜歡這樣。”很顯然,他不是一個 JavaScript 的粉絲。Go 語言的語法和結構,從另一方面講,“還是很簡潔的。”當Go 語言的語法和結構趨于穩定,并發布了 Go 1 時,他覺得應該轉回來,重寫他的 Go 語言程序。這回,他想起來了當初為什么想用 Go 來開發。關于Go 語言的爭論Fils 說,在 Java 里,很多東西都需要有一定的模板套路,這是很討厭。他說 Scala 和 groovy 要好一些,但仍然是個問題。Go 語言給人的感覺像一個動態的類型化語言,Fils 說,但 Go 語言里靜態類型特征并不像 Java 里那樣明顯。Go 語言的垃圾收集管理,比 JVM 要好的多。跟 Groovy 這樣的動態語言比起來尤其能看出這點。Fils 在評論中說 Go 語言的速度比其它語言快很多倍。它運行速度快但不影響負載量。它編譯所需的時間很短,他在開發時能邊開發邊編譯,就像動態語言那樣迅速。最后,他說使用 Go 語言要比使用 Node.js,Java 或以 Java 為基礎的語言,Ruby on Rails 等語言要有趣的多。在開發 JVM 平臺上的應用時,我總感覺自己是一個系統管理員,而不是一個開發者。我要修改堆空間,我要研究負載均衡或內存問題或其它的資源管理問題。而使用 Go 語言,我不需要考慮這些。我開發,編譯,測試,運行,部署,非常的享受。請注意,并不是所有的人都喜歡 Go 語言。你可以看一看 Shaneal Manek 的關于 Go 語言的垃圾收集系統以及腳本語言和編譯型語言之間比較的評論。Go 語言能走向主流嗎?你的期望是什么?按照 RedMonk’s Stephen O’Grady 的說法,對于 Go 語言來說現在還非常年輕。通常,程序員會分成兩個陣營:要么歡迎底層語言和腳本型/垃圾收集器型語言的融合,要么是反對這樣做。對于后者,毫無意外的,他們是C語言的堅定擁護者。圍繞著 Go 語言有很多的爭論,這不令人吃驚,任何一種語言都是這樣。而令人吃驚的是目前 Go 語言在程序員中獲得了相當的吸引力。O’Grady 二月份在 RedMonk 編程語言分級中把 Go 語言放入了第二梯隊。但是,他說,考慮一下 Go 語言是如此的年輕,“即使是目前這種成績也是讓人相當的印象深刻了。”谷歌已經發布了 Go 語言的穩定版本,并且在 Google App Engine 支持部署這種語言的應用,這將給 Go 語言帶來更多的吸引力。Go 語言能否成為一種“主流”語言,這需要由時間來判定。不過,看起來除谷歌之外還有很多公司對這種語言也很感興趣,比如 Engine Yard 等公司。那些對目前的現存的語言不太滿意的程序員大概對 Go 語言都在拭目以待。如果你在使用 Go 語言或之前簡單涉略過它,你需要注意,Go 1 版引入了不少的變化。然而從 Go 1 版開始,Go 語言的變化將會遵循它的規格說明書進行。根據 Go 語言的開發人員的透露,“也許在某個時間,我們會推出 Go 2 的規范,但在此之前,用 Go 語言編寫的程序在今后的 Go 1 版本(Go 1.1, Go 1.2 等)上都能正確的運行。”你用Go 語言開發過什么項目嗎?
創新互聯建站長期為上千家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為金水企業提供專業的網站設計制作、網站設計,金水網站改版等技術服務。擁有10多年豐富建站經驗和眾多成功案例,為您定制開發。
就目前來看還是很有前景,因為越來越火了,不過他的應用領域還是局限在高并發處理和網站開發,畢竟是后起之秀所以在其他桌面程序領域沒那么容易普及和超越c++,找工作就不推薦學go
不會的。生態無從建立。。。有五種以生態為核心的語言。。。C,C++,C#,JAVA,Python,你有沒有想過這五門語言為什么是主流?
是由于語法好嗎?如果這么認為,那就太可笑了。是因為它們擁有自己的生態圈。
我舉三個例子。
C語言是單片機的標準開發語言,你家里用的電視,冰箱,洗衣機,空調,里面的主控芯片,全都是用C語言編寫的。由于偏底層,即便它空出位置來,Go也是勝任不了的,能替代它的只有匯編語言。
C#,你覺得它用的并不多?那就大錯特錯了,它的生態圈無比巨大,很多人只知道它是微軟的官方開發語言,Windows上的霸主。但卻常常被忽略的一點是,它還是唯一可以同時開發安卓和IOS的語言。有超過一半的3D手游都是用它寫的,比如《王者榮耀》。不僅如此,它還是云計算,人工智能,混合現實的重要組成部分,微軟未來還有一大波項目等著它。而且兩年前升級到了.NET CORE版本之后,它的速度比GO更快。
Python,很多人以為它是新興語言,但其實它從80年代就出現了。也是個老古董了。為什么這么多年都沒火,最近幾年卻突然火了?并不是因為它本身,而是因為Linux火了。Linux為什么火?因為嵌入式,因為物聯網。
GO是谷歌的親兒子沒錯,但谷歌為GO準備了啥生態?在安卓上的重要性,咱都不好意思說跟JAVA比,太遙遠。。。跟C#能比嗎?
在谷歌的平臺尚且如此,你還指望啥?
不能吧,現在用C語言搞開發都是用在更加底層的開發中,更加底層的開發需要高運行效率,go語言的運行效率是比不上C語言的,所以go語言在這些方面還無法取代C語言。應該說是各有所長吧,go和C都有它們自己的適用環境,誰也不能取代誰。
學習哪些編程語言不會過時?什么技術比較吃香?學習C,C++,Java,Python,JavaScript,這些語言。為什么需要選擇這幾種語言,是因為這幾種語言是當下熱門的語言,并且其中的框架非常多,社區也非常活躍,就拿Java舉例,你能夠想到的東西,都已經有開源的框架可供使用,并且一些技術方案也有現成,而且學習這些語言的人數多,那么就會出現非常多在學習中可能遇到的問題,還有了解決的方案,對于初入編程世界的人來說,可以節省很大時間,并且能夠增強信心。
至于過時,其實沒有過時的語言,只有過時的思想。每一種語言都會從內部逐漸的革新自己,Python能夠從2升級到3,Java內部的實現也在吸收著其他語言的優點。但是對于個人來說,沒有過時的語言,只有過時的自己,如果僅僅只是盯著學會的語言是否會過時,那么自己自然而然的就過時了。真正工作時,會發現,一門語言僅僅只是這個項目的一個基石,就好比蓋房子,而這門語言僅僅是磚瓦,還需要更多的東西來幫助去蓋好房子。
其實每種語言都有不錯的就業前景,前提不是速成的那種學習。每種語言都有自己的適用范圍,最好是能根據自己要從事的工作來進行選擇語言進行學習。比如雖然現在python很火,但是你將來想要從事android/ios開發,那這個語言對你而言基本沒有太大的用處。語言是為了解決問題而生的。當前什么領域火,就會誕生什么語言。沒有能夠一統天下的語言。所以進哪個行業就學什么,有編程思想的基礎,學會一門語言是以天為單位的(甚至更短)。
看今年二月份的go語言占比,go語言還是在緩慢上升。這門語言目前看還是比較有前景的,如果你對go語言感興趣,你可以轉。