0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

軟件開發(fā)新手是選擇Java還是.NET?

如意 ? 來源:讀芯術(shù)微信公眾號(hào) ? 作者:讀芯術(shù)微信公眾號(hào) ? 2020-08-17 16:35 ? 次閱讀

作為軟件開發(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è)抉擇。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    19

    文章

    2973

    瀏覽量

    104911
  • 軟件
    +關(guān)注

    關(guān)注

    69

    文章

    4987

    瀏覽量

    87823
  • net
    net
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    56186
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    我國(guó)軟件開發(fā)者數(shù)量超過940萬

    在近日舉辦的開放原子開發(fā)者大會(huì)上,工業(yè)和信息化部負(fù)責(zé)人傳來了一則令人振奮的消息:我國(guó)軟件開發(fā)者數(shù)量已經(jīng)突破940萬大關(guān)。這一數(shù)據(jù)不僅彰顯了我國(guó)在軟件開發(fā)領(lǐng)域的雄厚實(shí)力,也預(yù)示著我國(guó)在全球軟件開
    的頭像 發(fā)表于 12-23 11:08 ?256次閱讀

    BQ7690x軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ7690x軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 11-07 10:19 ?1次下載
    BQ7690x<b class='flag-5'>軟件開發(fā)</b>指南

    TMS320C6201 DSP軟件開發(fā)技術(shù)

    電子發(fā)燒友網(wǎng)站提供《TMS320C6201 DSP軟件開發(fā)技術(shù).pdf》資料免費(fèi)下載
    發(fā)表于 10-26 09:25 ?0次下載
    TMS320C6201 DSP<b class='flag-5'>軟件開發(fā)</b>技術(shù)

    PGA460軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《PGA460軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 10:30 ?1次下載
    PGA460<b class='flag-5'>軟件開發(fā)</b>指南

    PGA450-Q1軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《PGA450-Q1軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-30 14:25 ?0次下載
    PGA450-Q1<b class='flag-5'>軟件開發(fā)</b>指南

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

    本文重點(diǎn)介紹符合AutoSar架構(gòu)的應(yīng)用軟件開發(fā)、MBD開發(fā)模式下的軟件質(zhì)量評(píng)估與優(yōu)化方案、復(fù)雜場(chǎng)景下的ECU性能壓力測(cè)試方案。
    的頭像 發(fā)表于 09-26 14:25 ?3470次閱讀
    ECU電控<b class='flag-5'>軟件開發(fā)</b>及測(cè)試介紹

    TUSS44x0軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《TUSS44x0軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 09-14 10:59 ?0次下載
    TUSS44x0<b class='flag-5'>軟件開發(fā)</b>指南

    BQ769x2軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ769x2軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-26 09:12 ?0次下載
    BQ769x2<b class='flag-5'>軟件開發(fā)</b>指南

    BQ769x2 軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《BQ769x2 軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 08-12 14:41 ?0次下載

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

    嵌入式軟件開發(fā)與AI整合是當(dāng)前技術(shù)發(fā)展的重要趨勢(shì)之一。隨著人工智能技術(shù)的快速發(fā)展,嵌入式系統(tǒng)越來越多地集成了AI算法,以實(shí)現(xiàn)更復(fù)雜的智能功能。以下是關(guān)于嵌入式軟件開發(fā)與AI整合的詳細(xì)分析
    的頭像 發(fā)表于 07-31 09:25 ?760次閱讀
    嵌入式<b class='flag-5'>軟件開發(fā)</b>與AI整合

    【《軟件開發(fā)珠璣》閱讀體驗(yàn)】+ 心得

    的財(cái)富。 人類是單線程工作的,同時(shí)只能完成一項(xiàng)任務(wù)。感慨頗深。只能根據(jù)優(yōu)先級(jí)選擇重要的任務(wù)了(或事情)。需要養(yǎng)成單日單任務(wù)的習(xí)慣。 此外,《軟件開發(fā)珠璣》還強(qiáng)調(diào)了團(tuán)隊(duì)協(xié)作和溝通的重要性。在軟件開發(fā)
    發(fā)表于 06-23 17:56

    上位機(jī)軟件開發(fā)用什么語言

    上位機(jī)軟件開發(fā)是指開發(fā)用于與下位機(jī)(如PLC、單片機(jī)等)進(jìn)行通信、控制和數(shù)據(jù)處理的計(jì)算機(jī)軟件。上位機(jī)軟件在工業(yè)自動(dòng)化、物聯(lián)網(wǎng)、智能家居等領(lǐng)域有著廣泛的應(yīng)用。
    的頭像 發(fā)表于 06-06 10:44 ?2049次閱讀

    keil arm軟件開發(fā)指南

    電子發(fā)燒友網(wǎng)站提供《keil arm軟件開發(fā)指南.pdf》資料免費(fèi)下載
    發(fā)表于 01-26 15:51 ?7次下載

    嵌入式軟件開發(fā)軟件開發(fā)的區(qū)別

    嵌入式軟件開發(fā)軟件開發(fā)是兩個(gè)不同的概念,它們?cè)谝恍╆P(guān)鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)嵌入在硬件設(shè)備中的軟件,而
    的頭像 發(fā)表于 01-22 15:27 ?2355次閱讀