-
1 # 使用者4266702628
-
2 # 叫我蘇鑫阿
社會需求
21世紀是網際網路的世紀,電商,部落格,問答,各種網際網路應用層出不窮,資料量的增長速度,更是幾何形增長,而JAVA正是伺服器和大資料生態開發的重要組成部分。因為社會對於這方面的職業需求強烈,需求崗位數量多,所以對於個人來說這代表這就業機會的增加,不需要像公務員那樣千人爭一崗的激烈競爭,還能快速的體會到網際網路紅利填充腰包的感覺。另一方面,對於企業來說,企業不會希望因為某個人離職,導致應用無法繼續開發,基於JAVA語言的特性,JAVA中有這各種各樣的約束,程式碼格式相對規範,就算某個人離職了也能快速招人填補崗位的空缺,因為這種良性的社會需求,導致學習JAVA的人多了起來。
培訓機構宣傳JAVA學習的人多,很大程度上有培訓機構的功勞,三個月學習月薪一萬八,四個月極速培訓大資料,等等宣傳語。讓不明真相的小白覺得JAVA十分火熱,在從眾心理作祟下,大部分人們選擇了JAVA,然後培訓機構掙了錢,轉而繼續加倍宣傳JAVA,收穫更多的資本後,和企業個人需求關係一樣,這樣的迴圈導致入行的人越來越多,不過培訓機構規模越大產出越快,導致社會上初級JAVA過多的情況出現。
看不見的部分JAVA更多的屬於應用層開發,比方手機app,伺服器端開發,電視app等看得見聽得到的應用,導致我們忽視了c語言的存在。看看你身邊的天貓精靈,智慧開關,這些底層硬體大部分還是都是基於c語言開發的,我們往往忽視了這些小硬體,還有就是網上的部落格,宣傳比較也少,導致我們以為學習c語言的少。下面是一張網際網路程式語言排行圖。可以看出目前c語言和JAVA僅僅相差百分之一。可見c語言只是相對JAVA比較少。相比其他語言還是老大哥的地位。
-
3 # TripleS孫志巍
我舉個簡單例子,不對請指正
這個和人類語言發展一樣的
甲骨文和象形文字是人類溝通最基礎的語言和人類最直接理解層面的
但是我們不需要再學,就是因為現代語言更加模組化,功能話,通用話,這樣就可以輔助人類更高效實現溝通和創造
畢竟語言的終極目標是輔助
-
4 # SteveJrong
1.這兩種語言的應用場景不同。
Java普遍應用於在網站後臺開發、中介軟體開發等場景中,相對來說這一類的開發需求較大。例如電商常用的微信系列(公眾號、小程式)的後臺,基本用Java開發的話很方便,成本也低好維護。而c語言普遍應用於嵌入式開發、硬體開發場景中。例如plc程式設計、機器人等,這一類開發需求量也大,但是門檻高,且程式不多變,對一套硬體系統寫好軟體以後基本就不做大改動了。而且軟體相對硬體來說需求量大,因為軟體是虛擬產品,多變,硬體是看得見摸得著的,物理結構基本不變。
2.Java生態圈大,c語言受眾面小。
學會Java以後,再學點前端知識,基本可以全棧開發了,而只學c語言,想要做真正的開發還要學c++,比如做win窗體開發還要學qt、做遊戲開發要學c++等。
-
5 # 阿來自動化工作室
Java開發出來的東西,可以很好的在linux上執行,而linux是免費的,網際網路時代,Java在後臺服務端開發上面基本上就是一統天下的。而且有十分成熟的技術讓java的程式在廉價的x86伺服器上分散式的部署,而程式碼幾乎完全不用修改。
-
6 # 麼麼茶加糖
我覺得java目前因為企業用的比較多,需要的崗位也多,因此需要大批量的程式設計師。而c語言其實是比較注重底層原理的,因此比java要難一些。這也造成了學習c語言的人相比較java要少很多。
-
7 # 科技電小二
我個人理解,主要是如下幾個原因
市場需求差異。行業差異,C語言主要是三個應用方向
做windows系統應用開發,但目前隨著需求很少,嵌入式開發需求旺盛,除了電子資訊相關專業的人員明確知曉,C語言可以在linux,微控制器行業佔絕對地位,而目前絕大部分的電子產品都需要用各類控制晶片,再加上醫療行業,人工智慧,5G,物聯大資料等領域蓬勃發展,嵌入式軟體開發需求絕對不差,IOS的開發,IOS系統的APP是用object-C開發的,因為比較小眾,從事這個語言開發的人比較少,但工資也比較高。java的應用方向
Java程式設計可以用來做安卓app開發,目前安卓手機普及,幾乎人手一部,很多年輕人都知道,安卓的APP主要是用安卓開發,而目前應用app的種類繁多,需求各種各樣,所以對於安卓java的需求很旺盛,而且工作待遇相對於其他的崗位還是非常不錯的。 JAVA程式設計可以做伺服器方面開發,結合xml或json與資料庫進行互動,現在各種大資料,如醫療大資料,雲大資料等等,需求也是不錯的 JAVA可以進行電腦端應用程式開發。目前用java開發應用的需求比用C語言開發PC端的需求多。學習難度的差異嵌入式開發是目前C語言需求的主要方向,但這個職業方向,除了需要C語言程式設計本身的知識,還需要一部分硬體知識,或者linux相關知識,所以需要掌握的知識點多,對於很多人學習而言,跨度較大。
java的開發需求,是純軟體開發,雖然有很多知識點,但都是軟體相關,不注重硬體相關知識。
其實JAVA需求和C語言需求都比較旺盛,但JAVA語言因為安卓系統而被很多人知曉而出名,C語言名聲不顯,很多人都不知道學習C語言能用來幹嘛,所以更不會去花錢培訓了。
-
8 # 呼呼哈小童鞋
c語言和c++的優勢在於底層對CPU和硬體的控制上,特別是nio,非同步io的處理效率上。所以前朝底層的程式設計師往往需要c或是c++,但是jdk1.6之後把這一塊也補全了,後面越來越多的底層系統也是用Java開發,c和c加加的應用面越來越窄了。所以大資料的一些平臺的底層也是用Java開發的,所以學好了Java,才是王道,至於學校裡要求學習c,那就學會完成考試,建議還是把精力放在Java這種主流的技術之上。可以去優就業學習瞭解java課程
回覆列表
C語言是比較底層的程式語言,一些其他面嚮物件語言是由C語言構成的。C語言的缺點是,效率不高,沒有很多封裝的方法和程式包。現在科技領域和網際網路領域講究產品和系統研發短平快,如果同樣一個功能可能用C語言去搭建要比其他語言時間更久。舉個例子,如果要用程式在網頁上畫一個圓,用Java可能20~30行程式碼,Python可能就10行以內,而C語言可能要上百行。因為Java和其他語言封裝了一個圓的程式包,程式設計師只要輸入圓心座標和半徑長度直接呼叫就能實現。這就是面嚮物件語言和C語言一個比較本質的區別。
當然C語言也有優勢,因為特別偏向底層,所以效能是最優的,在一些講究效能的領域和科技領域就非常有優勢,比如大資料、人工智慧或者生物科技。但與其選擇C語言,還不如使用C++,C++相當於在C語言的基礎上封裝的另一種語言。效能差不多,但是封裝了很多可以被呼叫的程式包。所以這幾年,C++有抬頭的趨勢,特別是在人工智慧領域。
另外就是生態的問題,Java的生態應該是全世界最大的,程式設計師群體人數、程式碼質量和獲取原始碼的渠道可能是最多最豐富的,而其他的比如.Net,雖然15年或20年前很火,但是因為不開源的問題,所以生態越來越小,即使現在有.Net Core撐場面,但是因為開源和跨平臺的起步比較晚,要想趕超其他語言,不是很現實。生態的好處是,全世界大家在這個語言上按照特定場景開發不同的程式包,分享出來給其他程式設計師來使用、再封裝或再優化修改,大大提高了其他大多數程式設計師的程式設計效率。
最後一個原因是應用場景的廣泛性問題,C語言或C++語言因為是最早的語言,而且偏向於底層,所以在一些敏感領域和高科技領域用得比較多,比如金融、航天和能源及核子工業。這些領域一般其他知識體系門檻較高,不單單是一個程式設計知識體系的人能夠直接切入的。但這幾年,Java和其他語言,比如Go都有取而代之的趨勢。比如Nasa整套的火箭裝置管理系統就是用Node.JS寫的。
世界上沒有最好的語言,只有更適合的語言。不過選擇還是很重要,現在國內的大學很多都開始直接教Java或Python,我記得我們當時求學階段,學的是C++和.Net。看自己的應用場景,如果對C語言感興趣,可以選擇C++,如果對底層不是很感興趣,可以選Java、Python或Go。一門語言精通後,要切入另一個語言是很快的,這是程式設計思路經驗的積累及產品思維的積累,相對來講這點反而更重要。