自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

軟件開(kāi)發(fā)平臺(tái)之爭(zhēng):NET VS Java,誰(shuí)是更好的選擇?

開(kāi)發(fā) 后端
作為軟件開(kāi)發(fā)新手,為自己選擇未來(lái)職業(yè)生涯中將使用的平臺(tái)并不容易。掌握任何一種編程語(yǔ)言都會(huì)花費(fèi)大量的時(shí)間和精力,而這些恰恰是你最不想浪費(fèi)的。選錯(cuò)平臺(tái)可能會(huì)需要改變知識(shí)面來(lái)勝任工作,這讓人們倍感壓力。在此,我?guī)湍銓⑦x擇縮小到以下兩個(gè)選項(xiàng):Java或者.NET。

軟件開(kāi)發(fā)平臺(tái)之爭(zhēng):NET VS Java,誰(shuí)是更好的選擇?

作為軟件開(kāi)發(fā)新手,為自己選擇未來(lái)職業(yè)生涯中將使用的平臺(tái)并不容易。掌握任何一種編程語(yǔ)言都會(huì)花費(fèi)大量的時(shí)間和精力,而這些恰恰是你最不想浪費(fèi)的。選錯(cuò)平臺(tái)可能會(huì)需要改變知識(shí)面來(lái)勝任工作,這讓人們倍感壓力。

在此,我?guī)湍銓⑦x擇縮小到以下兩個(gè)選項(xiàng):Java或者.NET。這已經(jīng)是一個(gè)巨大的進(jìn)步了,這兩種選項(xiàng)都算是成功。Java和.NET都很穩(wěn)定,可以用于企業(yè)級(jí)別的開(kāi)發(fā),這意味著你可能會(huì)就職于一家擁有大量資源和機(jī)會(huì)的大公司。

先來(lái)看看就業(yè)市場(chǎng)!截至2020年4月,Monster.com列出了超過(guò)4.1萬(wàn)份“Java開(kāi)發(fā)人員”的工作,以及8500份“.NET開(kāi)發(fā)人員“的工作。Glassdoor顯示,Java開(kāi)發(fā)人員(不論級(jí)別和位置)的平均工資約為7.9萬(wàn)美元,ASP.NET/C#開(kāi)發(fā)人員為7.65萬(wàn)美元。

是不是要毫不猶豫選JAVA了?也不要太快下結(jié)論,還是要仔細(xì)思索一下這兩種平臺(tái)哪一個(gè)更適合你,哪一個(gè)與技術(shù)未來(lái)更為密切。

老派的Java

Java創(chuàng)于1995年,是世界上最有名的技術(shù)之一,常在各類排行榜拔得頭籌,這可能也是開(kāi)發(fā)人員堅(jiān)持使用它的主要原因。

Java學(xué)起來(lái)相對(duì)簡(jiǎn)單,也有很多免費(fèi)可用的培訓(xùn)資源,還有一個(gè)龐大的社群幫助新手完成學(xué)習(xí)過(guò)程。Java適用于幾乎每個(gè)種類的項(xiàng)目:網(wǎng)絡(luò)應(yīng)用、手機(jī)應(yīng)用、云計(jì)算等等。

 

軟件開(kāi)發(fā)平臺(tái)之爭(zhēng):NET VS Java,誰(shuí)是更好的選擇?
Java的應(yīng)用

Java是一項(xiàng)免費(fèi)的技術(shù),在Java里創(chuàng)建軟件的Oracle JDK(Java開(kāi)發(fā)工具)和Oracle OpenJDK也是如此。這也使得Java能夠與Kotlin、Groovy、Scale等編程語(yǔ)言合作,這些語(yǔ)言作為補(bǔ)充學(xué)起來(lái)相對(duì)簡(jiǎn)單。正如剛才所指出的,就業(yè)市場(chǎng)充滿來(lái)自世界各地的提供給Java開(kāi)發(fā)人員的工作。

聽(tīng)起來(lái)很不錯(cuò)?且慢!Java還有一些缺點(diǎn),包括:

  • 授權(quán)混亂。你可能認(rèn)為通過(guò)編寫一個(gè)小的“hello world”程序就算開(kāi)始了Java之路,這是錯(cuò)誤的。在真正開(kāi)始學(xué)習(xí)Java之前,你需要了解這個(gè)平臺(tái)上的許可,否則你可能會(huì)在交付產(chǎn)品之前,必須先向Oracle交付幾千美金的費(fèi)用來(lái)獲得許可。因此首先要仔細(xì)學(xué)學(xué)Oracle JDK是什么,與Oracle Open JDK有什么不同,以及這二者與社區(qū)驅(qū)動(dòng)的AdoptOpenJDK有什么不同。

 

[[338095]]
圖源:freevactor

你還需要了解二進(jìn)制代碼許可證又是什么,以及GPLv2+CPE協(xié)議能給多少權(quán)限?一官方常見(jiàn)問(wèn)題似乎解釋了許可這一情況(一個(gè)在 Oracle’s site,另一個(gè)在Java.com上),但是看起來(lái)更混亂了。

除此之外,你可以很容易地找到一堆博客文章,Quora上的提問(wèn)(比如“Java還是免費(fèi)的嗎?”),甚至是關(guān)于這個(gè)主題的視頻。但問(wèn)題是:你真的想應(yīng)付這一切嗎?

  • 遺留代碼。許多悠久的公司都用Java編寫了一些東西,作為一個(gè)年輕而充滿激情的Java學(xué)習(xí)者,你可能會(huì)從事一份使用過(guò)時(shí)代碼的工作,而不是學(xué)習(xí)一些新的、杰出的技術(shù)。
  • 高競(jìng)爭(zhēng)。職位雖然多,但你的競(jìng)爭(zhēng)對(duì)手更多。每個(gè)研究過(guò)全部榜單的人都會(huì)發(fā)現(xiàn)Java位列前茅,于是又有一千個(gè)新手選擇了Java。

一個(gè)更有前景的選擇:.NET Framework

另外一個(gè)免費(fèi)的公開(kāi)源代碼的開(kāi)發(fā)人員平臺(tái)可以讓你有更好的體驗(yàn)——.NET。以下是它可能更適合你的原因:

 

軟件開(kāi)發(fā)平臺(tái)之爭(zhēng):NET VS Java,誰(shuí)是更好的選擇?
圖源: https://devblogs.microsoft.com/dotnet/introducing-net-5

1.免費(fèi)、開(kāi)放、跨平臺(tái)

如果是五六年前,上文提到的所有特點(diǎn)都會(huì)使Java成為一個(gè)更好的選擇。因?yàn)?NET那時(shí)完全受控于微軟,而且只在Windows上運(yùn)行。然而在過(guò)去幾年,情況徹底轉(zhuǎn)變?,F(xiàn)在的Java在Oracle的領(lǐng)導(dǎo)下變得更加封閉,而微軟的做法正好相反。

.NET是一個(gè)不需要授權(quán)費(fèi)用的開(kāi)源性平臺(tái)。他們宣稱開(kāi)發(fā)人員的自由是他們平臺(tái)的核心價(jià)值觀之一。從目前看來(lái),微軟確實(shí)在踐行他們所宣揚(yáng)的價(jià)值觀。

.NET平臺(tái)的最新版本——.NET Core——它兼容所有主要的操作系統(tǒng):Windows、Linux、iOS。其中有一些基本的.NET工具可以即時(shí)使用,還有很多的用于構(gòu)建和編輯應(yīng)用程序的附加組件以及第三方工具。專門為.NET構(gòu)建的多個(gè)庫(kù)使開(kāi)發(fā)過(guò)程更加舒適。

2.所有的應(yīng)用類型

.NET框架(尤其是Core版本)允許開(kāi)發(fā)幾乎任何類型的應(yīng)用程序,無(wú)論是企業(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#編寫的,因此無(wú)需使用JavaScript。

 

軟件開(kāi)發(fā)平臺(tái)之爭(zhēng):NET VS Java,誰(shuí)是更好的選擇?
圖源:https://dotnet.microsoft.com/learn/dotnet/what-is-dotnet

3.快速進(jìn)步和定期更新

.NET框架在其二十年的歷史之中一直在不斷發(fā)展。在過(guò)去的四五年中,它的發(fā)展速度顯著加快。自2016年.NET Core發(fā)布以來(lái),幾乎每年都會(huì)有一次重大的更新。

微軟計(jì)劃在2020年11月發(fā)布平臺(tái)的大更新——.NET 5。它會(huì)吸收先前版本的優(yōu)點(diǎn),成為所有開(kāi)發(fā)任務(wù)的統(tǒng)一平臺(tái)。此外,在2019年年會(huì)上微軟介紹了.NET平臺(tái)的路線圖,這讓人們清楚地了解到更新的具體時(shí)間和內(nèi)容。

 

軟件開(kāi)發(fā)平臺(tái)之爭(zhēng):NET VS Java,誰(shuí)是更好的選擇?
圖源:https://devblogs.microsoft.com/dotnet/introducing-net-5/

4.優(yōu)秀的性能

多年來(lái),用Java或者.NET/C#創(chuàng)造的應(yīng)用程序都有類似的性能。然而,微軟和許多第三方貢獻(xiàn)者在這方面的優(yōu)化上做出了重大的投資,并在繼續(xù)改進(jìn)。例如ASP.NET Core Web框架允許你在一臺(tái)服務(wù)器上每秒處理700萬(wàn)個(gè)請(qǐng)求。據(jù)TechEmpower測(cè)試,ASP.NET Core遠(yuǎn)遠(yuǎn)領(lǐng)先于任何Java開(kāi)發(fā)的web框架。

另一個(gè)在.NET平臺(tái)上可以實(shí)現(xiàn)的力證——例如,一個(gè)用不同語(yǔ)言編寫的超高速網(wǎng)絡(luò)驅(qū)動(dòng)程序。用C#編寫的驅(qū)動(dòng)程序展示出與C和Rust幾乎相同的性能水平,這一水平略高于Go語(yǔ)言,遠(yuǎn)遠(yuǎn)領(lǐng)先于包括Java在內(nèi)的所有其他高級(jí)語(yǔ)言。

 

[[338096]]
圖源:unsplash

5.C#——現(xiàn)代和多用途

.NET最初的設(shè)計(jì)是為了支持多種編程語(yǔ)言,最廣泛使用的編程語(yǔ)言是C#(英文發(fā)音為see sharp)和F#(它提供了一種更實(shí)用的方法)。

最受歡迎和喜愛(ài)的無(wú)疑是C#——一種通用的面向?qū)ο蟮木幊陶Z(yǔ)言。它簡(jiǎn)單易學(xué),并且廣泛應(yīng)用于各種軟件開(kāi)發(fā),無(wú)論是企業(yè)級(jí)的解決方案還是低級(jí)的物聯(lián)網(wǎng)和游戲項(xiàng)目,它使得一些在Java中過(guò)于復(fù)雜的特性變得簡(jiǎn)單。

盡管歷史悠久,但C#與時(shí)俱進(jìn)。C#中的一些特性,比如LINQ查詢、lambda表達(dá)式、async/await異步操作都遙遙領(lǐng)先于其他編程語(yǔ)言,Java多年來(lái)仍然缺少C#中的很多要素。

.NET的不足

就像Java一樣,.NET在客戶端的開(kāi)發(fā)也存在諸多不足,你仍可將JavaScript看作最佳選擇。在ML(機(jī)器學(xué)習(xí))和NLP(自然語(yǔ)言處理)應(yīng)用領(lǐng)域,Python是第一選項(xiàng)。

Java和.NET是兩種可靠的企業(yè)級(jí)開(kāi)發(fā)的選擇。Java雖然現(xiàn)在在所有評(píng)級(jí)中都排名第一,但它在就業(yè)市場(chǎng)上的競(jìng)爭(zhēng)非常激烈,相關(guān)更新緩慢。

而.NET是一個(gè)開(kāi)源的面向?qū)ο蟮钠脚_(tái),可用于開(kāi)發(fā)各式各樣的應(yīng)用程序,并且它對(duì)未來(lái)有著清晰的規(guī)劃。在2020年,.NET5 將會(huì)推出,這個(gè)更新會(huì)將以前版本最好的特性結(jié)合起來(lái)。這讓學(xué)習(xí)變成一個(gè)結(jié)構(gòu)優(yōu)良、簡(jiǎn)單、現(xiàn)代的技術(shù),更具吸引力。

二者各有利弊,無(wú)論選擇哪一個(gè),都不失為一個(gè)明智的職業(yè)抉擇。

責(zé)任編輯:未麗燕 來(lái)源: 今日頭條
相關(guān)推薦

2009-09-07 09:15:36

.NET VS Jav

2017-09-12 14:35:08

PythonRubyWeb

2013-08-27 10:52:35

Java.Net

2011-10-19 13:45:36

ibmdw軟件工程協(xié)作開(kāi)發(fā)

2021-08-31 08:00:00

開(kāi)發(fā)軟件框架

2009-01-18 09:57:32

Java.NETSun

2009-02-21 22:40:32

系統(tǒng)分析師論文寫作軟件開(kāi)發(fā)平臺(tái)

2009-08-12 18:39:01

軟件開(kāi)發(fā)的生命周期

2013-08-05 11:28:11

百度谷歌互聯(lián)網(wǎng)

2009-06-22 11:09:00

.NET與J2EE

2011-08-10 23:37:56

激光打印機(jī)行情

2013-05-29 19:25:14

JATCOPTC軟件開(kāi)發(fā)

2010-10-26 09:48:22

PaaSIaaS

2017-04-21 10:16:07

web語(yǔ)言Python

2017-09-22 11:31:28

KotliJava編程語(yǔ)言

2011-08-30 16:32:41

MTK開(kāi)發(fā)環(huán)境

2009-11-12 09:17:07

手機(jī)軟件開(kāi)發(fā)

2023-10-31 07:48:22

QuarkusJava

2017-02-14 09:47:55

軟件開(kāi)發(fā)平臺(tái)工具

2020-05-10 20:05:43

物聯(lián)網(wǎng)軟件開(kāi)發(fā)IOT
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)