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

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

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

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

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

作為軟件開(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ù)之一,常在各類(lèi)排行榜拔得頭籌,這可能也是開(kāi)發(fā)人員堅(jiān)持使用它的主要原因。

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

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)充滿(mǎn)來(lái)自世界各地的提供給Java開(kāi)發(fā)人員的工作。

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

授權(quán)混亂。你可能認(rèn)為通過(guò)編寫(xiě)一個(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有什么不同。

你還需要了解二進(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編寫(xiě)了一些東西,作為一個(gè)年輕而充滿(mǎn)激情的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。以下是它可能更適合你的原因:

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)。他們宣稱(chēng)開(kāi)發(fā)人員的自由是他們平臺(tái)的核心價(jià)值觀(guān)之一。從目前看來(lái),微軟確實(shí)在踐行他們所宣揚(yáng)的價(jià)值觀(guān)。

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

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

.NET框架(尤其是Core版本)允許開(kāi)發(fā)幾乎任何類(lèi)型的應(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)行的客戶(hù)端應(yīng)用程序,這些網(wǎng)絡(luò)應(yīng)用程序的客戶(hù)端和服務(wù)器端代碼都是用C#編寫(xiě)的,因此無(wú)需使用JavaScript。

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)的路線(xiàn)圖,這讓人們清楚地了解到更新的具體時(shí)間和內(nèi)容。

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

多年來(lái),用Java或者.NET/C#創(chuàng)造的應(yīng)用程序都有類(lèi)似的性能。然而,微軟和許多第三方貢獻(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ǔ)言編寫(xiě)的超高速網(wǎng)絡(luò)驅(qū)動(dòng)程序。用C#編寫(xiě)的驅(qū)動(dòng)程序展示出與C和Rust幾乎相同的性能水平,這一水平略高于Go語(yǔ)言,遠(yuǎn)遠(yuǎn)領(lǐng)先于包括Java在內(nèi)的所有其他高級(jí)語(yǔ)言。

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查詢(xún)、lambda表達(dá)式、async/await異步操作都遙遙領(lǐng)先于其他編程語(yǔ)言,Java多年來(lái)仍然缺少C#中的很多要素。

.NET的不足

就像Java一樣,.NET在客戶(hù)端的開(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è)抉擇。

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

    關(guān)注

    19

    文章

    2943

    瀏覽量

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

    關(guān)注

    69

    文章

    4570

    瀏覽量

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

    關(guān)注

    0

    文章

    124

    瀏覽量

    56050
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    TUSS44x0軟件開(kāi)發(fā)指南

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

    BQ769x2軟件開(kāi)發(fā)指南

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

    BQ769x2 軟件開(kāi)發(fā)指南

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

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

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

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

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

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

    上位機(jī)軟件開(kāi)發(fā)是指開(kāi)發(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 ?949次閱讀

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

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

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

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

    區(qū)塊鏈系統(tǒng)軟件開(kāi)發(fā)與應(yīng)用

    區(qū)塊鏈技術(shù)是近年來(lái)備受矚目的創(chuàng)新技術(shù),被廣泛應(yīng)用于金融、供應(yīng)鏈管理、物聯(lián)網(wǎng)等領(lǐng)域。區(qū)塊鏈系統(tǒng)軟件開(kāi)發(fā)是實(shí)現(xiàn)區(qū)塊鏈應(yīng)用的關(guān)鍵,它不僅需要掌握區(qū)塊鏈的基本原理,還需要具備良好的軟件開(kāi)發(fā)能力和項(xiàng)目管理經(jīng)驗(yàn)
    的頭像 發(fā)表于 01-10 18:18 ?2116次閱讀

    嵌入式軟件開(kāi)發(fā)流程

    電子發(fā)燒友網(wǎng)站提供《嵌入式軟件開(kāi)發(fā)流程.ppt》資料免費(fèi)下載
    發(fā)表于 11-17 14:37 ?3次下載
    嵌入式<b class='flag-5'>軟件開(kāi)發(fā)</b>流程

    車(chē)規(guī)MCU的軟件開(kāi)發(fā)套件

    費(fèi)用。 對(duì)于項(xiàng)目預(yù)算有限、非平臺(tái)化的小項(xiàng)目,非AUTOSAR(Non-AUTOSAR)軟件開(kāi)發(fā)是一個(gè)不錯(cuò)的選擇。雖然很多大客戶(hù)有自
    的頭像 發(fā)表于 10-27 16:05 ?1460次閱讀
    車(chē)規(guī)MCU的<b class='flag-5'>軟件開(kāi)發(fā)</b>套件

    AUTOSAR軟件開(kāi)發(fā)流程簡(jiǎn)介

    AUTOSAR軟件開(kāi)發(fā)流程簡(jiǎn)介 AUTOSAR軟件開(kāi)發(fā)流程是指在AUTOSAR架構(gòu)下進(jìn)行軟件開(kāi)發(fā)的一系列步驟和方法。它包括以下幾個(gè)主要階段: 需求分析:在這個(gè)階段,根據(jù)汽車(chē)電子系統(tǒng)的需求,定義和分析
    的頭像 發(fā)表于 10-27 15:55 ?2728次閱讀
    AUTOSAR<b class='flag-5'>軟件開(kāi)發(fā)</b>流程簡(jiǎn)介

    基于Android的應(yīng)用軟件開(kāi)發(fā)實(shí)例初探

    電子發(fā)燒友網(wǎng)站提供《基于Android的應(yīng)用軟件開(kāi)發(fā)實(shí)例初探.pdf》資料免費(fèi)下載
    發(fā)表于 10-09 16:57 ?0次下載
    基于Android的應(yīng)用<b class='flag-5'>軟件開(kāi)發(fā)</b>實(shí)例初探

    Rockchip RK3399軟件開(kāi)發(fā)指南

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