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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

如意 ? 來源:讀芯術微信公眾號 ? 作者:讀芯術微信公眾號 ? 2020-08-17 16:35 ? 次閱讀

作為軟件開發(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了?也不要太快下結論,還是要仔細思索一下這兩種平臺哪一個更適合你,哪一個與技術未來更為密切。

老派的Java

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

Java學起來相對簡單,也有很多免費可用的培訓資源,還有一個龐大的社群幫助新手完成學習過程。Java適用于幾乎每個種類的項目:網(wǎng)絡應用、手機應用、云計算等等。

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

聽起來很不錯?且慢!Java還有一些缺點,包括:

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

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

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

遺留代碼。許多悠久的公司都用Java編寫了一些東西,作為一個年輕而充滿激情的Java學習者,你可能會從事一份使用過時代碼的工作,而不是學習一些新的、杰出的技術。

高競爭。職位雖然多,但你的競爭對手更多。每個研究過全部榜單的人都會發(fā)現(xiàn)Java位列前茅,于是又有一千個新手選擇了Java。

一個更有前景的選擇:.NET Framework

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

1.免費、開放、跨平臺

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

.NET是一個不需要授權費用的開源性平臺。他們宣稱開發(fā)人員的自由是他們平臺的核心價值觀之一。從目前看來,微軟確實在踐行他們所宣揚的價值觀。

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

2.所有的應用類型

.NET框架(尤其是Core版本)允許開發(fā)幾乎任何類型的應用程序,無論是企業(yè)級網(wǎng)絡應用程序、桌面或手機軟件、游戲項目,甚至物聯(lián)網(wǎng)服務或AI解決方案。

隨著WebAssembly技術和Blazorframework的出現(xiàn),.NET甚至可以用于構建在瀏覽器中運行的客戶端應用程序,這些網(wǎng)絡應用程序的客戶端和服務器端代碼都是用C#編寫的,因此無需使用JavaScript。

3.快速進步和定期更新

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

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

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

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

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

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

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

最受歡迎和喜愛的無疑是C#——一種通用的面向對象的編程語言。它簡單易學,并且廣泛應用于各種軟件開發(fā),無論是企業(yè)級的解決方案還是低級的物聯(lián)網(wǎng)和游戲項目,它使得一些在Java中過于復雜的特性變得簡單。

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

.NET的不足

就像Java一樣,.NET在客戶端的開發(fā)也存在諸多不足,你仍可將JavaScript看作最佳選擇。在ML(機器學習)和NLP(自然語言處理)應用領域,Python是第一選項。

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

而.NET是一個開源的面向對象的平臺,可用于開發(fā)各式各樣的應用程序,并且它對未來有著清晰的規(guī)劃。在2020年,.NET5 將會推出,這個更新會將以前版本最好的特性結合起來。這讓學習變成一個結構優(yōu)良、簡單、現(xiàn)代的技術,更具吸引力。

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

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

    關注

    19

    文章

    2947

    瀏覽量

    104373
  • 軟件
    +關注

    關注

    69

    文章

    4621

    瀏覽量

    87001
  • net
    net
    +關注

    關注

    0

    文章

    124

    瀏覽量

    56097
收藏 人收藏

    評論

    相關推薦

    PGA460軟件開發(fā)指南

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

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

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

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

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

    TUSS44x0軟件開發(fā)指南

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

    BQ769x2軟件開發(fā)指南

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

    BQ769x2 軟件開發(fā)指南

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

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

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

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

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

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

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

    廣告電商+超級云APP結合 # 軟件開發(fā)# 模式開發(fā)# 小程序開發(fā)# App開發(fā)

    軟件開發(fā)APP
    jf_01576396
    發(fā)布于 :2024年04月09日 17:42:13

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

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

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

    嵌入式軟件開發(fā)軟件開發(fā)是兩個不同的概念,它們在一些關鍵方面有著明顯的區(qū)別。嵌入式軟件開發(fā)是指開發(fā)嵌入在硬件設備中的軟件,而
    的頭像 發(fā)表于 01-22 15:27 ?2039次閱讀

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

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

    車規(guī)MCU的軟件開發(fā)套件

    費用。 對于項目預算有限、非平臺化的小項目,非AUTOSAR(Non-AUTOSAR)軟件開發(fā)是一個不錯的選擇。雖然很多大客戶有自
    的頭像 發(fā)表于 10-27 16:05 ?1556次閱讀
    車規(guī)MCU的<b class='flag-5'>軟件開發(fā)</b>套件

    AUTOSAR軟件開發(fā)流程簡介

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