-
1 # IT人劉俊明
-
2 # Java技術那些事
毋庸置疑是Java,Java覆蓋面太廣了,如果更換語言的話企業開發成本的增加是一個老闆不願意承擔的損失!這就是為什麼還有一些企業用的還是一些過時很久的技術了
-
3 # 開發者技術前線
關於Kotlin,JS,Java ,Python全棧開發的一些思考
近年來,隨著新語言的出現,老牌語言也在發力,Java1.8,Kotlin1.2,Python4.5, 等持續更新。之前本號有推送過一篇Github釋出的報告文章, JS依舊成了今年的開發者使用者最多的語言,Java其次。那麼面對這麼多語言,我們該何去何從?
當年在移動開發浪潮下,編者我本人也是稀裡糊塗的從Java後端開發轉向了在Android平臺上的開發,現在想想是這個多麼錯誤的決定。如今面對Kotlin的氣勢,已無心再投入精力學習。
開發者如何選擇一門語言?
個人之前發表過一篇文章:Kotlin真的值得學習嗎?。 首先新型語言不值得推薦學習,因為市場存在很多的未知數,相當年.net語言是多麼的火,現在微軟wp手機系統已經銷聲匿跡了。
目前如果你未從事程式設計行業,想轉行做技術,那麼java是首選,入門不算太難,就業機會相對也多,Python也是可以待定的一門語言,人工智慧至少還能火幾年,早入門,未來即使這方面人才劇增也不影響你的就業。
程式語言會的多不一定是好事情,外企一般都是全棧居多,很多IBM,因特爾的同事反饋平時都是打雜,什麼都會什麼都不精。相反,國內企業需要開發者對某一領域要擅長,至少精通一門技術。
對眾多開發語言的思考?
1. 會 C/C++ 者,得永生
過去幾十年的程式語言之爭,php開發者一直說是最好的語言,C/C++ 似乎一直置身事外,你最好但又怎樣,還是離不開我C啊,有本事你自己搞個系統,直接執行? 但又以無可爭議的方式講述著自己的威嚴。不同的開發語言,大都將能相容 C/C++ ,Java提供了NDK開發,iOS支援C開發,機器學也支援C/C++, C語言作為語言本身必須的一個 feature 實現。開發者還是有必要去入門的C語言。
2 會Java 你就是大哥
Java和go,php這些弱型別語言相比, 它是強型別語言,引得PHP一直嘲笑Java 貌似是司空見慣的事情。
Java基於JVM執行的語言,一次編譯多次執行。本號之前推送過一遍關於Jvm上JAVA和Kotlin的比較文章:Kotlin VS Java 編譯速度大比拼,到底誰更快?kotlin有可能會得到普及,因為Kotlin支援增量編譯,編譯速度超過Java.
Kotlin正在趕上Java,但仍然稍微落後。 但是,無論使用什麼語言,Gradle daemon都會將構建時間減少40%以上。 如果你還沒有使用它,你應該用上入門學習一點,但是國內現狀,決定了暫時不要太深究。
Kotlin編譯在完整程式碼情況下比Java慢一點。 但是你通常只會對幾個檔案進行更改後編譯,增量構建將有不同的效能。 Kotlin在增量編譯要超過Java。
3. JavaScript 是跨平臺應用開發的良好選擇
雖然去年除了無話八門的跨平臺方案,ReactNative,Weex等技術,但真正開發過程中會發現一大波問題,客戶端開發者需要掌握前端技術,甚至都是依賴javaScript作為基礎之上開發的,再者單單從溝通效率來說,ReactNative等這種形式嚴重消耗團隊溝通時間,實際入不敷出,因此沒得到廣泛應用也是正常不過的事情。
大前端來講,無論移動端和還是Pc前端,Virtual Dom會是一個很重要的趨勢。 有人看好ReactNative等這種基於響應式程式設計的跨平臺技術,但我並不認同,我想javaScript會持續在跨平臺領域得到完美的擁護和推崇,畢竟開發協作,學習成本,靈活都是強於其他語言。
4. Python 可能會用於廣泛的用途語言
目前開發者技術棧中,真正充當日常指令碼語言的是 node.js。作為中介軟體的它,正在逐步被Python 追趕。暫且不論大資料或者人工智慧一類的場景對Python的良好支援;單是 Mac 和 Linux 系統內建 Python 支援這一項,就已經決定了 Python作為指令碼。 開發江湖無法撼動的地位。
未來市場對開發者要求?
1 開發者需要專業精通至少一們語言,甚至還需要了解其範圍輻射的其他語言。
後端開發者掌握其開發的語言同時,還需要一定的安全技術, 前端開發者需要掌握後端的Http相關技術,和移動端的跨平臺技術的瞭解。移動端開發者也至少有一定的web相關概念,和對Js 閱讀性,可修改的能力。
2 開發者需要一定的架構設計理念,和最佳化技能。
未來程式勢必更加以體驗和互動來贏得使用者使用,那麼勢必會提高對開發者要求, 最佳化和優秀的軟體架構設計定時首選,好的架構不單單需要架構師的責任,往往還需要開發者自己的自我督促,養成良好的編碼,並有一定最佳化意識,最佳化勢必對演算法有一定門檻。
3 專業領域勢必有一定的看法和見解。
無論從事哪們語言,其擁有這門語言中核心技術的掌握,勢必會讓你在今後的競爭中會贏得相對勝利。安全,音影片, 影象處理,vr/ai都是一大亮點,無需部落格背書,只要你有足夠的見解,那麼比起部落格更容易得到認可。
回覆列表
從事Java和Python開發多年,目前也在使用Python從事大資料和機器學習領域的研發,所以我來回答一下這個問題。
首先,Python和Java是目前IT行業內廣泛使用的兩種全場景程式語言,Java語言主要的應用場景集中在Web開發、Android開發和大資料開發等領域,而Python的應用場景則集中在Web開發、大資料開發、人工智慧開發和嵌入式開發等領域,所以二者的應用場景既有重疊也有所不同。
從發展前景來看,未來物聯網、大資料和人工智慧領域的發展前景將非常廣闊,隨著5G通訊的落地,這些技術的落地應用程序將進一步加快,相關領域也會釋放出大量的發展機會。從目前的技術結構來看,Python在物聯網、大資料和人工智慧領域的應用非常普遍,隨著這些技術的發展,Python語言的上升趨勢也非常明顯,所以從發展前景來看,似乎Python更具優勢,目前不少Java程式設計師也開始轉向Python開發領域似乎也在說明一定的問題。
雖然Python的發展前景預期比較好,但是目前在生產領域,Java依然佔據著大量的比例,憑藉穩定的效能表現、較強的擴充套件性和完善的語言生態,Java語言是不少大型網際網路平臺的重要選擇,同時一些重要的平臺級產品也更傾向於使用Java來編寫,比如大資料平臺(Hadoop),ERP平臺等等。從這個角度來看,未來Java依然有大量的應用場景。
對於目前要進入IT行業的技術人員來說,從就業的角度出發,可以重點考慮一下Java語言,這樣會有更多的就業機會,在掌握Java之後,完全可以透過自學的方式來掌握Python程式設計。