作為軟件開發(fā)新手,為自己選擇未來職業(yè)生涯中將使用的平臺(tái)并不容易。掌握任何一種編程語言都會(huì)花費(fèi)大量的時(shí)間和精力,而這些恰恰是你最不想浪費(fèi)的。選錯(cuò)平臺(tái)可能會(huì)需要改變知識(shí)面來勝任工作,這讓人們倍感壓力。
在此,我?guī)湍銓⑦x擇縮小到以下兩個(gè)選項(xiàng):Java或者.NET。這已經(jīng)是一個(gè)巨大的進(jìn)步了,這兩種選項(xiàng)都算是成功。Java和.NET都很穩(wěn)定,可以用于企業(yè)級(jí)別的開發(fā),這意味著你可能會(huì)就職于一家擁有大量資源和機(jī)會(huì)的大公司。
先來看看就業(yè)市場(chǎng)!截至2020年4月,Monster.com列出了超過4.1萬份“Java開發(fā)人員”的工作,以及8500份“.NET開發(fā)人員“的工作。Glassdoor顯示,Java開發(fā)人員(不論級(jí)別和位置)的平均工資約為7.9萬美元,ASP.NET/C#開發(fā)人員為7.65萬美元。
是不是要毫不猶豫選JAVA了?也不要太快下結(jié)論,還是要仔細(xì)思索一下這兩種平臺(tái)哪一個(gè)更適合你,哪一個(gè)與技術(shù)未來更為密切。
老派的Java
Java創(chuàng)于1995年,是世界上最有名的技術(shù)之一,常在各類排行榜拔得頭籌,這可能也是開發(fā)人員堅(jiān)持使用它的主要原因。
Java學(xué)起來相對(duì)簡(jiǎn)單,也有很多免費(fèi)可用的培訓(xùn)資源,還有一個(gè)龐大的社群幫助新手完成學(xué)習(xí)過程。Java適用于幾乎每個(gè)種類的項(xiàng)目:網(wǎng)絡(luò)應(yīng)用、手機(jī)應(yīng)用、云計(jì)算等等。
Java是一項(xiàng)免費(fèi)的技術(shù),在Java里創(chuàng)建軟件的Oracle JDK(Java開發(fā)工具)和Oracle OpenJDK也是如此。這也使得Java能夠與Kotlin、Groovy、Scale等編程語言合作,這些語言作為補(bǔ)充學(xué)起來相對(duì)簡(jiǎn)單。正如剛才所指出的,就業(yè)市場(chǎng)充滿來自世界各地的提供給Java開發(fā)人員的工作。
聽起來很不錯(cuò)?且慢!Java還有一些缺點(diǎn),包括:
授權(quán)混亂。你可能認(rèn)為通過編寫一個(gè)小的“hello world”程序就算開始了Java之路,這是錯(cuò)誤的。在真正開始學(xué)習(xí)Java之前,你需要了解這個(gè)平臺(tái)上的許可,否則你可能會(huì)在交付產(chǎn)品之前,必須先向Oracle交付幾千美金的費(fèi)用來獲得許可。因此首先要仔細(xì)學(xué)學(xué)Oracle JDK是什么,與Oracle Open JDK有什么不同,以及這二者與社區(qū)驅(qū)動(dòng)的AdoptOpenJDK有什么不同。
你還需要了解二進(jìn)制代碼許可證又是什么,以及GPLv2+CPE協(xié)議能給多少權(quán)限?一官方常見問題似乎解釋了許可這一情況(一個(gè)在 Oracle’s site,另一個(gè)在Java.com上),但是看起來更混亂了。
除此之外,你可以很容易地找到一堆博客文章,Quora上的提問(比如“Java還是免費(fèi)的嗎?”),甚至是關(guān)于這個(gè)主題的視頻。但問題是:你真的想應(yīng)付這一切嗎?
遺留代碼。許多悠久的公司都用Java編寫了一些東西,作為一個(gè)年輕而充滿激情的Java學(xué)習(xí)者,你可能會(huì)從事一份使用過時(shí)代碼的工作,而不是學(xué)習(xí)一些新的、杰出的技術(shù)。
高競(jìng)爭(zhēng)。職位雖然多,但你的競(jìng)爭(zhēng)對(duì)手更多。每個(gè)研究過全部榜單的人都會(huì)發(fā)現(xiàn)Java位列前茅,于是又有一千個(gè)新手選擇了Java。
一個(gè)更有前景的選擇:.NET Framework
另外一個(gè)免費(fèi)的公開源代碼的開發(fā)人員平臺(tái)可以讓你有更好的體驗(yàn)——.NET。以下是它可能更適合你的原因:
1.免費(fèi)、開放、跨平臺(tái)
如果是五六年前,上文提到的所有特點(diǎn)都會(huì)使Java成為一個(gè)更好的選擇。因?yàn)?NET那時(shí)完全受控于微軟,而且只在Windows上運(yùn)行。然而在過去幾年,情況徹底轉(zhuǎn)變?,F(xiàn)在的Java在Oracle的領(lǐng)導(dǎo)下變得更加封閉,而微軟的做法正好相反。
.NET是一個(gè)不需要授權(quán)費(fèi)用的開源性平臺(tái)。他們宣稱開發(fā)人員的自由是他們平臺(tái)的核心價(jià)值觀之一。從目前看來,微軟確實(shí)在踐行他們所宣揚(yáng)的價(jià)值觀。
.NET平臺(tái)的最新版本——.NET Core——它兼容所有主要的操作系統(tǒng):Windows、Linux、iOS。其中有一些基本的.NET工具可以即時(shí)使用,還有很多的用于構(gòu)建和編輯應(yīng)用程序的附加組件以及第三方工具。專門為.NET構(gòu)建的多個(gè)庫使開發(fā)過程更加舒適。
2.所有的應(yīng)用類型
.NET框架(尤其是Core版本)允許開發(fā)幾乎任何類型的應(yīng)用程序,無論是企業(yè)級(jí)網(wǎng)絡(luò)應(yīng)用程序、桌面或手機(jī)軟件、游戲項(xiàng)目,甚至物聯(lián)網(wǎng)服務(wù)或AI解決方案。
隨著WebAssembly技術(shù)和Blazorframework的出現(xiàn),.NET甚至可以用于構(gòu)建在瀏覽器中運(yùn)行的客戶端應(yīng)用程序,這些網(wǎng)絡(luò)應(yīng)用程序的客戶端和服務(wù)器端代碼都是用C#編寫的,因此無需使用JavaScript。
3.快速進(jìn)步和定期更新
.NET框架在其二十年的歷史之中一直在不斷發(fā)展。在過去的四五年中,它的發(fā)展速度顯著加快。自2016年.NET Core發(fā)布以來,幾乎每年都會(huì)有一次重大的更新。
微軟計(jì)劃在2020年11月發(fā)布平臺(tái)的大更新——.NET 5。它會(huì)吸收先前版本的優(yōu)點(diǎn),成為所有開發(fā)任務(wù)的統(tǒng)一平臺(tái)。此外,在2019年年會(huì)上微軟介紹了.NET平臺(tái)的路線圖,這讓人們清楚地了解到更新的具體時(shí)間和內(nèi)容。
4.優(yōu)秀的性能
多年來,用Java或者.NET/C#創(chuàng)造的應(yīng)用程序都有類似的性能。然而,微軟和許多第三方貢獻(xiàn)者在這方面的優(yōu)化上做出了重大的投資,并在繼續(xù)改進(jìn)。例如ASP.NET Core Web框架允許你在一臺(tái)服務(wù)器上每秒處理700萬個(gè)請(qǐng)求。據(jù)TechEmpower測(cè)試,ASP.NET Core遠(yuǎn)遠(yuǎn)領(lǐng)先于任何Java開發(fā)的web框架。
另一個(gè)在.NET平臺(tái)上可以實(shí)現(xiàn)的力證——例如,一個(gè)用不同語言編寫的超高速網(wǎng)絡(luò)驅(qū)動(dòng)程序。用C#編寫的驅(qū)動(dòng)程序展示出與C和Rust幾乎相同的性能水平,這一水平略高于Go語言,遠(yuǎn)遠(yuǎn)領(lǐng)先于包括Java在內(nèi)的所有其他高級(jí)語言。
5.C#——現(xiàn)代和多用途
.NET最初的設(shè)計(jì)是為了支持多種編程語言,最廣泛使用的編程語言是C#(英文發(fā)音為see sharp)和F#(它提供了一種更實(shí)用的方法)。
最受歡迎和喜愛的無疑是C#——一種通用的面向?qū)ο蟮木幊陶Z言。它簡(jiǎn)單易學(xué),并且廣泛應(yīng)用于各種軟件開發(fā),無論是企業(yè)級(jí)的解決方案還是低級(jí)的物聯(lián)網(wǎng)和游戲項(xiàng)目,它使得一些在Java中過于復(fù)雜的特性變得簡(jiǎn)單。
盡管歷史悠久,但C#與時(shí)俱進(jìn)。C#中的一些特性,比如LINQ查詢、lambda表達(dá)式、async/await異步操作都遙遙領(lǐng)先于其他編程語言,Java多年來仍然缺少C#中的很多要素。
.NET的不足
就像Java一樣,.NET在客戶端的開發(fā)也存在諸多不足,你仍可將JavaScript看作最佳選擇。在ML(機(jī)器學(xué)習(xí))和NLP(自然語言處理)應(yīng)用領(lǐng)域,Python是第一選項(xiàng)。
Java和.NET是兩種可靠的企業(yè)級(jí)開發(fā)的選擇。Java雖然現(xiàn)在在所有評(píng)級(jí)中都排名第一,但它在就業(yè)市場(chǎng)上的競(jìng)爭(zhēng)非常激烈,相關(guān)更新緩慢。
而.NET是一個(gè)開源的面向?qū)ο蟮钠脚_(tái),可用于開發(fā)各式各樣的應(yīng)用程序,并且它對(duì)未來有著清晰的規(guī)劃。在2020年,.NET5 將會(huì)推出,這個(gè)更新會(huì)將以前版本最好的特性結(jié)合起來。這讓學(xué)習(xí)變成一個(gè)結(jié)構(gòu)優(yōu)良、簡(jiǎn)單、現(xiàn)代的技術(shù),更具吸引力。
二者各有利弊,無論選擇哪一個(gè),都不失為一個(gè)明智的職業(yè)抉擇。
-
JAVA
+關(guān)注
關(guān)注
19文章
2973瀏覽量
104911 -
軟件
+關(guān)注
關(guān)注
69文章
4987瀏覽量
87823 -
net
+關(guān)注
關(guān)注
0文章
125瀏覽量
56186
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論