-
1 # iampsl
-
2 # newfire
我是一個外行,我來說說你們的疑惑,一個不開源的語言,你必然不知道它如何和硬體進行互動,你們只是用結果來推導過程,誰知道哪個有更好的結果呢?所以,一個語言,你想用哪個就用哪個,你又不知道它為什麼好用!
-
3 # 瘋僧技顛
其實拿GO語言和JAVA相比,本身就存在錯位的問題。但從技術上講,Go完勝JAVA,畢竟它更加年輕,而且Go沒有Java濃濃的學術味道。Go從開發之初就是徹底為了實際工程而開發的語言。
Java最初是為嵌入式設計的,後來趕上第一次網際網路風口(泡沫),轉化成了網際網路語言。最早的Java前後端通吃,後來由於臭名昭著applet被迫轉到後端。最早的Java核心技術全兩冊加起來只有2釐米厚,第9版的都已經比辭海厚了。Java逐漸從一個肌肉少年變成一個油膩大肥仔。
12年的時候,同學有幸進入某大廠,做JAVA的他非常痛苦地學習了一種叫做Go的語言。第二年他再次出現在我面前已是滿面春風:“老大,Go實在太爽了,未來後臺早晚是Go的天下”。
幾十年的發展,海量的JAVA遺留專案需要維護,因此JAVA程式設計師還會繼續招聘。想把這麼龐大的專案統統轉移到Go,短期內不可能。
給你2萬月薪維護一個JAVA老專案和給你1萬月薪做一個Go新專案,你會選擇哪一個呢?:p
從來沒有那種技術不行了,永遠是某人不行了。結合自己的經濟狀況和崗位實際,靈活掌握吧。都是好技術。
-
4 # 餘魚非子
各有優勢,各喜各愛,不過,長江後浪推前浪,前浪還是會死在沙灘上。
九十年代我們開始用c++,後來發現雖然JAVA簡單,但它複雜的地方不是程式設計,而是各種工具、各種配置、各種部署、各種最佳化,太複雜。
最近學習了go、rust,結合c語言專案混合開發,開發效率高(比java還高),執行效率也高,部署很簡單。
相信有一天,會有大量有識領導,在開發語言上選擇go或者rust,透過提升執行效率,降低執行維護成本。
回頭說,瘦死的駱駝比馬大,JAVA語言有巨大的碼農群體,和十多年的發展積累,一時半會消亡不了。
-
5 # 勵牛
java 也在進化,1. graalvm編譯為二進位制,可以提速50倍,記憶體減少5倍。2. loom 成熟,攜程易用性趕上go。 3. 在以上成熟之前go的市場份額絕對還感不上java,更別提生態。4. go的語法太奇葩 5. 用go的地方rust 開始可以替代。
-
6 # 小李飛刀3000
Java 是老醋 ,目前大部分專案是 java的
go是新裝,雲開發現在偏重速度和效率,
看的專案,和自己愛好,但目前進大廠要學go但學會java並不衝突
語言沒有好壞之分,只有在你的專案中那個好用,用的人多
-
7 # 鍾先生11
1、現在學習go語言,正當時,因為它還很年輕,有無限的可能,可以學習並讓它陪伴你成長,go有一些非常突出的優點,所以建議你學習,並一起成長;
2、別用它和java 比較,java 生態太大了,久經考驗的一門的語言,流行好久了,想當年python剛火爆的時候也有人用它和java比,比來比去沒意義。瞭解各個語言的優缺點,併合理運用可能更適合你;
3、如果只是想純粹技術討論,則需要列出想了解的細節,比如執行機制,併發機制,還是框架、便利性?否則跟java比,感覺java無邊無際的。相比於java,go適用範圍太小了,他們之間好有一比,go就像個優秀的高中生,java是個社會經驗豐富的大叔,他們兩個做比較,go語言的話,勝在“年輕”、“活力”、“體力”吧。
-
8 # 科室李大爺
Java命太好了 每個危難時期都有大神出手相助 讓它在每個時代節點都沒有落下 生態自然就上去了 go的生態還是欠缺一些的 很多框架都是GitHub個人開發者開發維護的 沒有類似spring這樣的能以此為中心衍生一套生態體系的框架 go的效能還是不錯的 在雲原生時代有天然優勢 像docker kubernetes 這樣的殺手級應用 我覺得在業務開發領域 Java還是更好一些 go 可能在中介軟體層面吃掉挺大一部分比例 未來感覺很可能兩者相結合 現在dubbo sentinel 不都開始有go版本了麼
-
9 # 貓小偉862
用什麼語言有什麼區別,做的事還不是一樣,難道換個語言計算機就會飛天了,程式開發講究的是生態,中國的java生態實在太好了,隨便什麼剛入門的都能做專案,如果彙編有無敵的生態,都用匯編了,誰還用什麼語言。
-
10 # 瞎胡佛
我來回答一下:
October Headline: Top 8 of the TIOBE index quite stable for the last 15 years
翻譯:TIOBE指數的前8名在過去15年中相當穩定
java寶座穩得一筆!!!資料來自:https://www.tiobe.com/tiobe-index/
目前來看,go肯定替代不了,java。這是肯定的!!!
Go
程式設計界的小鮮肉。高併發能力無人能及。即具有像Python一樣的簡潔程式碼、開發速度,又具有C語言一樣的執行效率,優勢突出。
go語言的難度,相對來說,GO語言不難的。可是GO語言的學習資料相對其他的語言來說很少,所以學習起來沒有其他的語言那麼便利;
很多人說GO語言在國內更火,按照資料來說,是的。因為華人多,基數大。其實GO在國外更火。對於現在來說,GO實際上也已經站穩腳跟了。不管是Google自帶光環也好,實際應用也好。go算是找到了屬於自己的空間。
GO語言的優點:
編譯時間快:GO語言編寫最大的微服務的時間大概需要6秒,相對Java和C++呆滯的編譯速度來說,GO語言快速編譯是主要的效率優勢。併發性和通道:GO語言的logo大家可以瞭解一下,它就是致力於事情簡單化,也就是快。其實並沒有引入很多的新的概念。就是打造一門簡單的語言,使用起來很快。在goroutine上執行一個函式最小的樣板程式碼,我們只需要使用關鍵詞go新增函式呼叫生態系統也是很強大的:面向Redis、RabbitMQ、Template等等很多穩定的庫。有很強大的工具支援。GO語言的缺點:
缺少框架:GO是沒有一個主要的框架。但是很多人認為不應該從框架的使用開始。也可以從社群的討論瞭解一下這個問題。錯誤處理:在錯誤處理方式,很容易丟失錯誤發生範圍,所以在程式設計過程中很難向用戶提供出有意義的錯誤資訊。軟體包管理:在預設的情況下,沒有辦法制定特定版本的依賴庫。、也沒有辦法建立可以複寫的builds。java
編譯語言,速度適中(2.67s),目前的大型網站都是拿java寫的,比如淘寶、京東等。主要特點是穩定,開源性好,具有自己的一套編寫規範,開發效率適中,目前最主流的語言。
作為程式語言中的大腕。具有最大的知名度和使用者群。無論風起雲湧,我自巍然不動。他強任他強,清風拂山崗;他橫由他橫,明月照大江。
Java可以做什麼:
安卓和IOS的應用開發、影片遊戲開發、桌面GUI、軟體開發等等;
Java的優點:
Java開發人員需求量大:這個是根據統計得出的。JAVA在很多語言當中,是需求量最大的;
進化語言:首先C++是基於C語言最佳化的,Java是被最佳化過來的。而且在這人平臺是增加了很多的功能,lambda等功能
安卓應用開發:谷歌的安卓移動平臺是世界第一的移動平臺,編寫安卓應用開發者使用的主要語言是Java;
Java的缺點:
使用大量的記憶體:Java和C++相比使用更多的記憶體所以佔用的記憶體就更大學習曲線:這邊指的是Java雖然不是最簡單的入門語言,但是也不是最難- -||啟動時間慢:用java寫過安卓的應用的人應該都知道。同樣的程式碼在模擬器中啟動是非常緩慢的事情。未來可期!
大家覺得呢???
-
11 # cpp架構
go和python的出現,正在逐漸改變整個it網際網路行業,讓開發者有更好的選擇,以前可能會在c++ Java c#之間決策,現在這兩門新興語言的崛起,會給JAVA一定的壓力,未來甚至可能還會超越JAVA。
python學習起來是最簡單的,能夠讓新手快速工作,不需要考慮記憶體,指標,甚至是效率。同時它提供了豐富的功能,包括網路,繪圖,工具等,近年來Python的強勢是大家有目共睹的。
go的執行效率是非常的高,甚至有時候能夠達到c++的執行速度。在這方面也有人嘗試把c++程式碼移植到go,相對來說go比c++更安全。目前市場上招聘,go的崗位也越來越多。
綜上所述,開發立項之初,相比JAVA而言,可能會有更多的因素選擇go和python!
-
12 # IT人劉俊明
這是一個非常好的問題,作為一名從業多年的程式設計師,我來回答一下這個問題。
首先,在當前的雲計算、大資料和人工智慧時代,平臺式開發將逐漸成為一個新的流行趨勢,而平臺式開發具有三個特點,其一是開發過程更加簡單;其二是可以透過平臺整合更多的資源;其三是程式擴充套件能力更強。
從程式語言的設計思路來看,Go語言相比於Java程式語言來說,更適合作為平臺開發語言,原因有三點,其一是Go語言的語法結構更加簡潔,這是平臺式語言的發展趨勢;其二是Go語言在設計之初就考慮到了大資料的應用場景,而目前的各種開發平臺幾乎都離不開大資料場景;其三是Go語言更小巧,這也會拓展Go語言的應用場景。
Go語言的簡潔效能夠帶來一個直接的好處就是開發效率的提升,這對於開發人員來說還是非常重要的,實際上目前上升趨勢明顯的Go和Python,在語法簡潔性上都要優於Java語言。
Go語言在設計之處就考慮到了大資料和雲計算的應用場景,實際上Go語言一個重要的設計思想就是如何能夠高效率處理大量的併發任務,所以隨著未來大資料和雲計算的發展,未來適合於Go語言的開發場景將進一步增加。
Go語言本身更加小巧,這使得Go語言完全可以適合當前“雲+邊”的開發場景,所以從任務處理的角度來看,未來Go語言在雲計算和邊緣計算領域都將有較大的發展潛力。
雖然Go語言有後發優勢,但是Java語言目前已經構建起了一個龐大的生態體系,實際上在大資料、雲計算時代,Java語言依然有大量的應用場景。從當前就業的角度出發,初學者更應該先考慮學習一下Java語言。
-
13 # 評談科技事
說到底,語言是為需求服務的,誰能更好更快實現需求,就用誰。(這是大公司的想法)
管他出什麼語言呢,實現業務需求是我的首要目標。(中型公司)。
你們會什麼語言就用什麼語言來開發(小公司)。
-
14 # 思丶雲
語言是為了解決問題的,而不是出了新語言,其他的就死掉了!畢竟目前很多的產品或網站是基於java的,就是要替換也是需要一個過渡期的!
-
15 # 主引教程
現在java群體總體上,不管是技術人員還是對應的開源或已存在的解決方案都會更多。如果這個問題是選擇那種語言,那就看自己公司的實力,已最穩定最熟悉的選擇一般沒錯。現在的專案都很大,可以在某個小場景是多嘗試。語言只是工具,一直找最合適自己的就對了。
-
16 # 每日精彩科技
隨著大量新生的語言(如Go)的出現,Java也是被質疑是否不再適應最新的雲場景了。
隨著新的非同步框架和語言(如Go語言)的出現,為協調提供了重要的支援,在很多情況下,作業系統的時間表成為了瓶頸,所以Java也面臨著不適應最新雲計算場景的挑戰,四年前,阿里-jvm團隊開始探索Wisp2,並將Go功能引入到Java世界。 Java平臺被稱為環保熱潮.許多資料庫和框架幫助開發者快速構建應用。 這些Java框架中的資料庫類大部分都是基於執行緒和鎖機制進行支援和維護的。
兩種語言是不同的。 Java已經有20多年的歷史,並且不斷的更新換代,推出新的版本,2009年被Sun Oracle收購後,Java的發展得到了廣泛的支援。 很多Java 8現在已經在2014年釋出了,最新的版本是Java 14.相比之前的版本,從Java 8開始,現代程式語言(如lambda表示式)有越來越多的優勢。
與GO語言相比較,Java--語言在核心類庫中提供了強大的併發能力,多級應用可以獲得無人值守的屬性。一些Java EE標準已經被遮蔽在磁碟上(如JDBC)。可以快速開發出基於鎖定模式的程式。然而,在很多情況下,作業系統的時間表成了瓶頸,導致新的非同步框架和公式(如Go)大大促進了協調過程。 Java是否能更好地適應最新的雲環境也受到了質疑。 Go也是一個靜態編譯器,其語法與c類似,但使用了不同的變數描述格式。 Go從第1版開始支援廢物回收,是一種基於串列埠通訊過程(CSP)的並行模式,8、支援Plugin,可以動態載入一些函式。 從2.0開始支援面板。
硬體製造商已經增加了處理器中的核心數量,以提高效能.所有的資料中心都在這些處理器上執行,我們希望在未來幾年看到中心的數量增加。 更重要的是,今天的應用程式使用多個微服務來維護資料庫連線、訊息佇列和快取。 因此,我們開發的軟體和程式語言應該是易於維護和開發的,並且隨著中心數量的增加,應該進行擴充套件。
考慮到發展前景,建議學習Java語言。 Java是一門正在發展中的重要語言,廣泛用於網站開發、電氣化系統、企業資訊管理等。框架開發也是降低學習複雜性的有力工具。 這是Java開發的一個常見切入點。 它有非常豐富的元件和易於訪問的功能,Spring Boot和Spring。 另外,yun自定義模組依賴自動配置,開啟盒子,簡化開發流程。
Go語言出後,Java還是最佳選擇嗎?四年前,阿里開始學習Wisp2。 大多數企業網路服務主要用於IO中伺服器數量較多的場景(線性應用往往是計算而不是使用)。 Java Goroutine程式的功能、配置、屬性和產品的穩定性都達到了預期的水平。 到目前為止,有數百個應用程式和數萬個容器連線到Wisp1 / 2。 Wisp完全相容多步程式碼鎖定。 你需要新增一個JVM引數來執行程式。 阿里巴巴的主力應用已經進行了兩次協同模式的雙測,享受豐富的Java環境。 再次獲得非同步程式屬性。
硬體製造商已經增加了處理器中的核心數量,以提高效能.所有的資料中心都在這些處理器上執行,我們希望在未來幾年看到中心的數量增加。 更重要的是,今天的應用程式使用多個微服務來維護資料庫連線、訊息佇列和快取。 因此,我們開發的軟體和程式語言應該是易於維護和開發的,並且隨著中心數量的增加,應該進行擴充套件。
Wisp2核心--功能相容性和現有程式碼相容性。 簡而言之,必須將現有的基於IO的多執行緒Java應用新增到Wisp2 JVM設定中,才能獲得非同步效能的提升。 Java社群非常活躍,各種文件和教程非常豐富。 由於許多同行之間廣泛使用共享。
雖然圍棋語言有很多非常強大的功能,但是由於初始期比較短,有些坑沒有填滿,而且存量比較少,開發成本比java和成熟成本高,因為第一個螃蟹比較少,所以目前用的不多。 你可以先從工作中學習Java,然後利用空閒時間學習圍棋。 目前,Java是羊群的領頭羊,未來圍棋的發展將有良好的前景。
-
17 # 愚公要移山
第一
JAVA已經很成熟了,go是新興的語言,就好比當年的Python,好像過了這些年Python依然沒有取代JAVA。所以結論是java不單單是一門語言,而是背後的成熟的開發體系。至少目前的go還沒有這樣的成熟的體系。
第二:適用面不一樣
java其實目前還是主要應用於web開發和Android這塊。就好比Python適用於科學計算。每個語言有每個語言的特性,適用面不同。go也是如此。
第三:go存在很多問題
具體什麼問題,可以搜一下就好,據我所知的安全等等問題還沒有解決。冒險用的話划不來。
第四:就業窄
這個招聘的時候就知道了,go語言就南方那塊多。
好了,在手機上敲有點慢,就先寫這麼多。
-
18 # 比逗的冷高
一句話,你記住,拋開使用場景談語言好壞就是在耍流氓!
每種語言都有自己適合的開發場景,就好比你總不能在美國跟本地人說日語吧!
java的web生態強大,完善,但是臃腫!學習Java來就業不太理想,入門容易,學精難,市場最不缺的就是Java,不見得就能找到好工作
-
19 # Eclipse70003419
天天這個語言那個語言的,累不累?c#,js,c,JAVA這幾個配搭起來什麼幹不了?實事不幹多點,天天吹什麼語言,什麼設計模式,什麼生態。吃飽飯沒事做的人那麼多嗎?
-
20 # 卍151988091
短時間還是,但是go生態完善後指定會下滑,畢竟8之後都是收費的,基本等於停更的開源,而且多執行緒也比不過go,佔用資源也比go高
回覆列表
不管會不會取代,但最起碼選擇多了,而不是一股老的都玩java,生態這些目前go已經很不錯了,畢竟go只專注服務端網路程式設計,這方面的生態已經可以和java比了!