東方奇驥
新人受邀,受寵若驚吶~
首先我們來看一下前幾天IEEE Spectrum雜誌發佈的一年一度的編程語言排行榜,這個排行榜還是很有說服力的,已經連續發佈了五年了,並且綜合了9個重要數據源的11個指標,例如Google Search,Google Trends, Twitter, GitHub等,對48中語言進行了排名。
可以看到Python排在第一,這兩年Python勢頭一直不滅反盛,那麼是不是PythonWeb就一定好呢?
我們先來分析一下Python怎麼火起來的,這幾年大數據,雲計算,人工智能火的一塌糊塗,行業缺口達到了頂峰,Python在數據處理上有著得天獨厚的優勢,Python在安裝時就默認附帶了很多的高級數據類型例如列表、元組、字典、集合、隊列等等,無需進一步的封裝處理就可以對這類數據進行操作,而且其代碼簡潔在相比於java,C等傳統語言處理數據時,其高效的代碼質量深受人們青睞。
顯而易見的是Python在數據方面的應用居多,實際上在web開發中公司更青睞於PHP或者Java這類語言,在企業招聘web開發人員時,Python是居於少數的,在國內PythonWeb的前景是不理想的,拿BAT來說,百度傾向於PHP,阿里用的最多的是JAVA,騰訊用c和PHP居多。雖然國內也有Python開發web成功的案例,例如知乎,豆瓣這些網站,但是相比於其他語言來說確實還有一定的差距。
我認為一個原因就可以讓go打敗Python——區塊鏈
區塊鏈作為目前大火的模塊之一,越來越多的被各大企業所重視,而寫區塊鏈的語言基本上都推薦go,go具有一下幾點優勢,下面還有一個用戶增量的排行榜。
可以看到go從去年的第七上升到第五,用戶增加的很快,而go開發web具有以下幾點優勢
長期項目中的易維護代碼
go語言是一門十分簡單的語言,易上手,學習曲線平緩,開發過程簡單迅速,要知道開發一個區塊鏈系統代碼量是很龐大的,所以我們在儘可能地簡化代碼有利於維護以及找bug。
速度與效率
不像python,go不是一種解釋型語言,它是編譯型的,這就大大減少了運行中突然減少的bug,錯誤在編譯時才得到處理(有點類似於c),一個區塊鏈非常需要高效性,而go在效率上遠遠高於python,在大多數的用戶場景中,go都比python高效。下面是Benchmarking Game的對比效果圖。
go語言由於自己的多線程模塊和CPU可伸縮性獲得了較好的性能。無論什麼時候我們需要執行一些內部的請求,我們可以使用Goroutine來分別執行,這個比Python中的Threads在資源開銷上要少十多倍。由於這些內置的語言特性,可以節省大量的資源。
區塊鏈領域幾乎所有人都用它
很多基於穩定區塊鏈的DApps和tools都是用的Go語言。你所需要的某個功能,很輕鬆就能找到一個相對應的庫。
另外前面說到go是編譯型的,所以直接由操作系統執行,這讓我們可以更自如地實現向以太坊沙盒一樣的技術。而如果是Java,因為它本身的運行載體JVM就是一個虛擬機,要再做一個沙盒,實質是更高一層的抽象,完全沒有必要,會浪費大量的資源。
所以單從Web開發的角度來說go要比Python更有前景,儘管Python這兩年一直居高不下,但是作為it人員不能盲目跟風,要搞清楚各自的優勢再做結論。
Lrxiang995
一般都是就Python web 和Java web 做比較。
Go一般用於服務端,web framework 也有,但相較而言偏小眾。整個技術棧,生態體系,社區等都需要考慮。
Python web目前比go web前景好,建議Python 。但語言只是工具,go web也可以看看。
小鳥攻城獅
如果是新手,就學python web吧,上手簡單,社區繁榮,文檔豐富,研究下Django,然後看看Django REST Framework,很快就可以學會的,然後自己做個應用。把一門技術學明白了,這時候可以再瞭解下go,學的也更快。
go的未來一定會越來越好,具有接近C的速度,類似python簡單的語法,大牛之作。
作為程序員,藝多不壓身!
愛套路愛生活
完全沒有可比性,py動態解析類語言,社區活躍,更加上裹挾著ai而來,前途不可限量。go嘛,做個幾個服務類項目,高效穩定,但做web嘛,呵呵,編譯型的語言還是有點麻煩
我的煎蛋去哪了
我個人覺得這個問題不應該這樣問,因為今後,只要是涉及到網絡,幾乎都會用到這個所謂的Web模式,比如Restful這樣的Service方式來完成通訊,不管你在前端表現為是一個移動或桌面的App,還是一個傳統的網站,還是別的什麼。
所以,我個人覺得比較用Go還是Python來做Web好,核心在於要考慮清楚你所面對業務的規模,以及在併發方面的複雜度。
從目前的情況來看,如果你的業務在規模和併發上沒有特別的需求,比如就是一個很傳統的公司網站之類的,那麼,現階段無疑是用Python好,因為像Flask、Dango這樣的很成熟的框架在那呢,出現各種問題也容易去找到人回答你。
如果覺得這些還麻煩,那麼,還有更簡單的web.py等著你。而且作為一種粘性十足的膠水式語言,實際上,也比較適合於你所想的那種Web端。當然,不是說Go不能做到那些,只是你現階段的學習曲線稍微陡峭些。
至於你說的將來,我覺得,根本不需要擔憂,他們都肯定有將來