現在有越來越多的新技術工具、新語言湧現,如2015年5月釋出的Rust1。0、2014年出現的Hack和Swift,今年還出現了雲表0程式碼程式設計……
面對林林總總的語言,我總是能收到IT新人、小白的疑問,這麼多語言我應該先學哪一種?什麼語言值得我們長時間地學習?學完之後職業發展前景大嗎?
在此我給出的答案是Java,以上問題的答案都是Java。
為什麼這麼多程式語言,我偏偏推薦你學“又老又囉嗦”的Java?
01
Java真的“老了”嗎?
有的人總是抓住Java生存年限太長,基本結構過於老套,在我看來這是十分片面的。
Java經過這20多年的發展,版本從jdk1。0升級到jdk14,每次升級都有一些效能或者開發效率的提升。
比如說jdk8的函數語言程式設計、Stream流計算、jdk14的文字塊、instanceof的模式匹配等等,這些新特性都會較大幅度地提高Java的開發效能。
現在簡單易上手的程式語言Python看似是新貴,但是隻要對他有過了解的人就知道,Python誕生於1991年,比Java還早了4年!
而在資料分析領域經常用到的R語言,始於1993年;
JavaScript則是和Java在同一年釋出。
所以如果下次還有人以Java語言老套為由勸退你,你大可以讓他先看看其他語言的釋出時間。
除此之外,Java這些年的發展也會吸收其他開發語言的一些優勢和特性。
有部分人認為Java過於低效可能是由於專案的原因,我們面臨不同專案的時候需要用到適合的語言:
Java更適合構建一定規模且規範的企業專案(這些應用往往擁有數百萬行的程式碼量,需要大量的規劃和嚴格的順序);
Python更適合做實用工具和資料處理的程式;
JavaScript更適合做動態網頁……
有部分人認為Java過於囉嗦,這並不是Java的Bug,而正是Java嚴謹的體現!
也有可能是使用者對於Java的一些新特性沒有應用到專案中而已,對於新的一些專案,可以使用Java的新特性提高開發效率。
總而言之,Java鼓勵用嚴謹的方法、正確的方式來設定內容,這讓使用它的程式設計師們對待程式碼更有全域性性。
02。
把Java作為首個學習的程式語言,好處是什麼?
1。從語言難易程度來說,Java語言更簡單,從學習難度上來說,Java是一個比較容易上手的開發語言。
相對於C和C++需要開發者自己管理記憶體和指標,但是
Java開發不需要關心這些底層的東西,
從而避免了一些嚴重的錯誤。
2。從國內語言的生態來說,
Java的開發者非常多,生態比較活躍,在學習過程中遇到一些問題基本都可以在網上部落格、社群、相關的論壇找到解決方案。
這是一個極其重要的關鍵性因素,如果你選擇了自學這條道路,你會面臨各種各樣關於技術知識的疑問和實際應用操作的難題。
Java從出道至今已經歷了長達二十多年的積累和沉澱,出現了很多優秀的開源社群,如Apache和Spring。
這些優秀的社群裡面有深耕多年的大牛和從業多年的技術開發寫的部落格,你可以很快就找到答案,不會感到孤立無援。
3。從初學者角度來說,Java更容易被接受,並且只要學會了Java的邏輯,其餘程式語言大多也能融會貫通。
從長久學習的角度上來說,Java作為入門首選程式語言是有好處的。
4。從就業方面來說,
Java的需求量在國內是最大的,現在Java的崗位多、工資高、發展前景也是非常可觀,很多公司的架構師、技術專家基本都是Java出身。
*以上資料來自職友集
相比起其他語言(以Python舉例),Python的就業崗位涉及到資料處理、資料分析和人工智慧崗位對於學歷要求比較高;如果是做爬蟲,那麼Web開發的崗位和Java不是一個數量級。
如果是一些財務人員、行政工作人員,或者說平時和Excel報表統計打交道比較多的人,可以學習Python來提高平時自己的工作效率,但這僅僅起到一個輔助工作的作用。
所以如果你是以就業為目的,建議直接學習Java。
03
重量級大咖是怎麼看Java的
以下3個Twitter大號,他們對Java有著自己的看法:
Markus Eisele(Lightbend公司Developer Advocacy的負責人,Java擁護者)
JavaScript 革命清晰地表明瞭我們的世界將是多元化和多樣化的。
展望未來,我們將不再擁有隻需學習單一語言的特權,而是依賴於在開發應用時平臺和行業標準預設的(語言規範)。
Java 這門語言仍然被廣泛學習和傳授。但某些部分也在快速變遷:集中的基礎設施正在消亡,服務端渲染的全棧的 Java 應用在快速地步其後塵。
現在首屈一指的前端語言是 JavaScript。在雲環境和容器領域佔據優勢還有 Go 。在 Java 保持其主導地位再久一會兒的同時,這份清單還將會繼續擴大。
Trisha Gee(JetBrains的DA、倫敦Java社群的核心成員,Java擁護者):
Java 是極好的伺服器端語言,出於很多理由被企業重度使用,包括穩固的向後相容性、跨平臺支援(在作業系統層面)、以及非常龐大的 Java 開發人才池(從初級到極為有經驗的)可供聘請。
Quentin Adam(智慧雲CEO):
Java 有一個非常強大的生態系統和龐大的程式碼庫,在某些領域,像大資料(Hadoop 生態系統或 Kafka ),JVM 是平臺質量本身的首選。
我們將會看到越來越多的專案同時使用兩個不同的語言,但它不會處處取代 Java 。
04
Java屹立多年不倒,僅僅是因為使用它的人多嗎?
Java的流行只是一個方面,但我認為更多的是Java的生態比較豐富、解決方案比較完善的。
比如現在網際網路要求的高併發、低延遲的場景,對於Java的微服務設計、Redis應用場景、訊息中介軟體MQ的應用的是非常切入吻合的。
對於Java的分散式微服務解決方案:Dubbo、SpringCloud、SpringCloudAlibaba等都是比較完善和活躍的。
而且Java在現在的大資料領域也是佔有一席之地的,很多大資料領域也是需要掌握Java開發語言。
在進入敏捷開發時代之後,Java團隊做到了每六個月更新一次的發版頻率,他的不斷迭代從另一個角度證明了其火熱程度。
雖然這些變化讓人頭暈目眩,但其目的是為了給世界上最流行的語言提供高質量、頻繁且在計劃內的更新,同時讓語言開發團隊保持高度活躍,以便讓程式設計師們更好地探索Java語言。
結語
學習Java是對自己最好的投資,且不用擔心過時,學習Java是最保值的一項投資。
我們都知道在買房的時候需要考慮的有學位的、靠近地鐵的、配套比較完善的小區,這樣的房子升值空間大。
那麼在開發語言中,我認為Java就是有學位、靠近地鐵、配套完善的”房子”。