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

北京軟件開發(fā)公司有那些?做軟件的公司有哪些?
TMS320C6201 DSP軟件開發(fā)技術(shù)

ECU電控軟件開發(fā)及測試介紹

嵌入式軟件開發(fā)與AI整合

評論