-
1 # 實在人王老師
-
2 # 程式設計知識局
Java和Go都適合做後臺開發,給你說明當前形勢,你自己做選擇。
第三方庫,Java的第三方庫數量非常龐大,任何業務場景需求都能滿足;Go的第三方庫遠遠比不上Java,但增長速度飛快,未來一定會有一個完整的生態環境的。
學習及上手,相對大部分其他語言,Java還是比較偏底層的,檔案IO和網路開發都會涉及IO流,面向物件也是偏底層原理,知識點還是比較多的;Go結合了C語言和python語言的特點,其語法有靜態和動態語言的身影,但Go是靜態語言,已經掌握其他語言的同學需要適應,但對新手來說無所謂,相比Java,Go語言對偏底層的程式設計做了更高階的封裝,用起來更方便,這一點跟python的程式設計思維一致,Go從誕生之初就定位系統開發級語言,v1.5之前核心是C編寫,經過Google大神的特別最佳化,其執行速度媲美C語言了,比Java快得不止多少倍了(當然Java也已經很快了),v1.5以後的Go核心又Go來編寫,Go程式可以自編譯為機器碼,這跟其他語言程式需要藉助C編譯為機器碼不一樣,這是要在某些領域取代C的節奏。
應用場景,Java和Go在一些場景是重複的,其他語言何嘗不是呢,尤其是web服務端開發,個人認為Java的生態更成熟的多,不是一般的成熟,是非常成熟;Go可以做web,但更適合做有高併發需求的系統,Go語言最顯著的特徵就是語言級別的支援協程,用Go做執行緒通訊實在太容易了,所以近幾年國內外許多科技企業用Go重寫了自己的後臺系統,就是看中了Go語言超強的效能
新手學習,對於真正的新手,建議先結合計算機科學和作業系統學一學C吧,計算機基礎很重要,要不然以後你會聽不懂看不懂很多東西;對於半路轉型的開發者,如果你已經會Java或C++了,Go絕對是值得學的;對於從動態語言轉來的開發者,別怪我說話直,這類的開發者,對面向物件設計的瞭解只是皮毛而已,沒錯,雖然已經夠用了,但只能做做應用級的開發,做系統級開發還是不行滴,這類開發者需要先認真學習Java或C++,就算你不學,直接學習Go也是可以的,Go語言做了更高階的封裝,也沒有了我們常見的介面等面向物件的設計思維,Go語言開創了另一種思維,但孰好孰壞還不好說,從原有程式設計思想角度看待新思想或許少走一些彎路
-
3 # IT人劉俊明
Java語言目前在後端開發領域有廣泛的應用,尤其是大型網際網路平臺往往選擇Java作為主要的後端程式語言。同時,Java自身的生態比較健全,也有大量的成功案例,所以採用Java做後端程式語言是一個風險比較小的選擇。
Go語言是一個非常新的程式語言,是Google在2009年才正式釋出的程式語言,Go語言強調執行效能和開發效率,在多處理器環境下Go語言有設計上的優勢。目前隨著大資料的發展,Go語言得到了更多的重視,很多大資料開發人員開始嘗試使用Go語言做大型的併發式服務。
可以說大資料時代給了Go語言一個非常好的發展契機,在大資料時代背景下,Go語言是否能夠複製當年Java在網際網路時代背景下的發展速度還有待觀察,但是目前,Go語言毫無疑問已經是一個不容忽視的程式語言了。
從目前的應用來看,Go語言還遠沒有達到普及的程度,目前Google公司也對Go語言的使用非常謹慎,當然這可能是一個積累的過程,某一天Go語言全面爆發也不是沒有可能,因為Go語言是一個可以做落地應用的程式語言。但是目前,Go語言與Java語言在實際專案的使用上還存在著巨大的差距。
對於新手而言,學習Java是一個比較穩妥的選擇,一方面Java的應用比較普遍,而且按照目前的發展情況來看,未來Java的應用空間依然非常大。另一方面Go語言並不是為初學者準備的程式語言,Go語言在很多概念的理解上還是需要一定基礎的,如果有java基礎再學習Go語言會更加容易一些。
如果有程式設計方面的問題,也可以諮詢我。
-
4 # 網上搬磚頭z
Java佔有率太高,類庫多,各種框架,分散式解決方案,幾乎已經解決所有的問題。但是缺點很明顯,非常耗記憶體。
Go作為一個新語音,其發展前景很不錯,但是由於第三方庫還不夠完善,所有暫時使用起來是不如Java這些老牌語言的。但是其非常接近c所有記憶體佔用極小,也有自己的垃圾回收機制,比C++又好用,現在最火的區塊鏈也大多用go語言開發,所以我還是比較看好go語言的。GOLANG=c+Python
-
5 # 動力節點Java學院
1、綜合來說學JAVA的比較快一些,在網上找例子比較方便 對於一個武林高手來說,用什麼程式設計工具都一樣,只是武器不同而已。
2、哪套技術棧適合你的需要,就用什麼,不用追捧,不要站隊,你又不搞前端框架。每套都有各自的權衡和取捨,沒有什麼包治百病的。別人並不會迎合你的需要和口味,不是誰都把效能看得那麼重。
3、大家演算法上最後都差不多,都是AC+DAT。語言本身的差異,從結果上可以感受一下
4、在確定了學習java後,要把基礎學好
-
6 # 一個存在感小透明
作為BAT的Java開發工程師,可以說其實這兩種語言都適合後端開發,只不過對於新手來說,我更推薦Java。
JAVAJava已經有30年以上的歷史了,同為高階語言,但是它擁有非常豐富的經驗積澱以及完善的框架支援。在工業環境中,如果希望從0基礎到迅速參與開發專案的話,JAVA絕對是很好的選擇。我甚至可以說,在國內的大環境下,Go語言畢竟還沒有發展起來,搭建同樣的後端服務,如果你用java寫,甚至能在網路上找到完善的demo,把程式碼下載到本地,環境部署好之後,可能都不需要你改動什麼,這個服務就啟動起來了。退一步說,哪怕你遇到了什麼執行或者其他方面的錯誤,在百度上瀚如煙海的中文經驗貼也能幫助你快速解決問題,免去了你翻牆還要靠翻譯軟體的窘境。
而且我在之前的一篇回答裡曾經提到過,當前就業環境中,JAVA工程師的職位要比其他程式語言的待招職位多很多,我們不妨直接用資料說話。在某招聘網上,搜尋java開發,有669條結果;搜尋go開發,卻只有可憐的6條結果。
但是,其實這是我為了讓搜尋結果差異看起來不那麼大,故意減少了java。因為如果你搜索java,結果其實是1480,而搜尋go,裡面會有一個什麼panda go熊貓導覽員的搜尋結果干擾。
說了這麼多,相信作為讀者的你已經明白我想要表達的意思了。我們學習一門語言,終究是要拿去就業的,所以在做選擇的時候,就要根據市場以及學習成本的情況來綜合考量。面對一個積澱頗深,中文學習材料很多java,與新興的市場需求量不那麼大的go語言,除非你認為自己是一個天才,願意等到go發展起來挑戰java的時候,做國內前幾批用GO的大神,否則我還是建議你為了自己的工資與就業面,選擇java。
-
7 # Kapu
業務系統用Java,,技術系統用go。
如果是做業務的,那麼不要用go,go還很不成熟,而且異常處理,泛型,集合都沒有Java豐富。。。
做技術型系統,go會帶來很多好處,尤其是併發,編譯後的大小,執行速度。
-
8 # 幸運大波浪
選擇go不會錯的,JAVA已經僵化,除了國內有標杆大廠在做之外,還不如.netcore. 技術和電子產品都是要新不要舊.另外javascript也不錯
回覆列表
更適合要看你專案是具體解決什麼問題,對於新手來說。萬物同一理。關鍵是要了解程式設計思想。至於用的什麼招數(語言)具體問題具體分析就可以了。
1.個人看法從國內的情況來看。大多數專案還是Java做後端的比較多。所以選擇Java。
2.對於新手來說因為java系統性。入門選擇從Java開始個人覺得更合適。
3.這個我覺得最重要。拋開技術本身。咱們要從市場和佔有率的層次去考慮。國內市場java對人才的需求量是最大的。從以新手的角度說,選擇學Java更可靠一點。