{eval=Array;=+count(Array);}
go語言雖然很好,但要說一統天下,估計可能性不大,因為編程語言那么多,不可能有一種語言在各個方面都做到最好,只可能在某些領域做到最好。
go語言可以說是新一代的編程語言,因為現在硬件提升了,老牌語言卻沒有更好的適應這些硬件,go就是在這種背景下誕生的,它可以更高效的利用現在計算機的性能。
像docker這種軟件,就是基于go開發的,因為go語言比較年輕,生態還不是很完善,所以還有很長一段路要走,現在國內很多公司也開始選擇go語言來開發一些項目了,國外也有很多公司采用,可以說,go語言還是很有前途的一門語言,我也比較看好它的未來。
從語言的應用場景來看Go語言主要用作服務器端開發,其定位是用來開發“大型軟件”的,主要用作服務器編程、web開發、網絡編程云平臺等
go語言優勢其實和java的優勢很像,而python的優勢在于數據處理和人工智能等方向,所以go只可能吞噬Java的份額,很難撼動Python的奶酪。
從語言更新的迭代來看,C++替代C走了30多年還沒走完。Java替代C++也走了近30年。而GO語言想獨霸天下2040以后再看吧。
今天的數據
你看看 Go 在全球流行編程語言排行榜里排第 12 名。而這前面還有好多座大山。
Java
Python
C++
C#
JavaScript
PHP
這些可都是久經考驗的老油條。在可預見的未來幾年 Go 很難把他們干掉。因為基本上每一個都在自己的領域有很深的護城河。
所以從你個人學習角度我還是建議穩妥一些從 Java 搞起。畢竟好找工作。等以后成了大牛再轉到 Go 上來應該是分分鐘的事。
首先,談以后是Go語言的天下,太早。
但有一件事情可以肯定,Go的確很強大,從以下幾方面作答,可窺其未來:
近年來,大量的博客都在夸贊Go優于Java / Python / C / Pearl,不過題主說了不要引戰,我們就主要聚焦Go本身——Go無所不能。
Go可以確保我們的工具箱可在所有平臺和所有硬件上編譯;Go使用非常簡單軟件包管理解決方案,讓我們體會到什么是“得心應手”和非常便攜;Go提供內存管理和垃圾收集功能;提供了本機二進制可執行文件,沒有依賴項,不需要VM;不需要外部服務器,因為都已集成;幾乎沒有關鍵字,同時無需一種標準的格式化代碼方法。
1)為軟件工程而構建
Go幾乎可以在任何機器上進行編譯,因此我們不但可以使用它創建完整的Web應用,也可以構建工具來清理傳入的數據以進行處理。
2)就是這樣的簡單
對于了解編程或其掌握一定編程語言的人,學習Go最多需要幾個小時。只要你掌握Go的一定技巧之后,就可以開始動手編寫了。
3)運行速度非常快
在正則表達式測試(regex-redux)中,Go運行大概3.55s,而Java運行了5.58s。 Go程序需要102行代碼,而Java大概70行;的確,Go比Java代碼量大一點,但是考慮到Go在運行速度上相對優于Java這樣一個具有統治地位的主流編程語言,也應該亮燈轉身了。
4)成為大量項目的首選
如題主所講,許多開源項目和私有項目正在轉向使用Go語言開發,并且它作為微服務和Web的標準語言變得越來越有用。可以預測,未來它可能還會取代性能較低的解決方案,如Java和C。
讓我們看一下goroutines,本質上是并發函數,它們會在程序的其余部分完成運行。換句話說,我們可以啟動goroutine,使其運行,并在其和成千上萬的goroutines后臺運行時繼續運行。
網絡超時?不用擔心,當主循環繼續時,你的goroutine將對其進行管理;
數據庫完全失敗?你的goroutine對此很清楚,你仍舊可以從容解決此數據庫問題。
https://play.golang.org/p/U9ZZuSql8-play.golang.org
這里你能看到goroutines是如何工作的。
對于Web應用,goroutine可以讓我們運行并發作業,同時避免障礙,例如,如果我們正在等待數據輸入,即使用戶正在鍵入,goroutine也會觸發以提供預填充的文本,換句話說,即使并發進程花費的時間比預期的長,你的程序仍將繼續運行。
最棒的是,goroutine很便宜,因此Go變得更快。
GoLangBot的創始人Naveen Ramanathan曾在在博客上寫道:
“ Goroutines被多路復用到更少數量的OS線程。” “在具有數千個Goroutine的程序中,可能只有一個線程。如果該線程中的任何Goroutine阻塞(例如,等待用戶輸入),則會創建另一個OS線程,并將其余的Goroutines移至新的OS線程。所有這些都由運行時處理,作為程序員,我們從這些復雜的細節中抽象出來,并獲得了干凈的API以并發使用。”
每一種語言都有其優缺點,至于哪種語言更好,主要還是要看其應用領域,至今還沒有哪種語言能夠一統天下。
Goland語言開發的初衷是為了替換c或者C++語言。其支持高并發,代碼簡潔高效,編譯極快而且部署簡單,是一種非常優秀的語言。
但go語言也存在一些問題,比如沒有泛型,沒有java那么強大的生態等等。總而言之,它是一門值得學習應用的開發工具,但是要說是其天下,為時尚早。
雖然最近go語言蠻火的,但要說它能夠一統天下那肯定是不可能的,因為每個語言存在的話都有其存在的價值,我自己就是作Java的,Java的企業級框架生態是go語言媲美不了的,特別是在大型企業架構方面,go語言要想超越他還有很長的路要走,更別說還有python等其它這些后起之秀了!
0
回答0
回答0
回答0
回答0
回答0
回答4
回答0
回答0
回答0
回答