首頁>技術>

全文共3370字,預計學習時長9分鐘

作為軟體開發新手,為自己選擇未來職業生涯中將使用的平臺並不容易。掌握任何一種程式語言都會花費大量的時間和精力,而這些恰恰是你最不想浪費的。選錯平臺可能會需要改變知識面來勝任工作,這讓人們倍感壓力。

在此,我幫你將選擇縮小到以下兩個選項:Java或者.NET。這已經是一個巨大的進步了,這兩種選項都算是成功。Java和.NET都很穩定,可以用於企業級別的開發,這意味著你可能會就職於一家擁有大量資源和機會的大公司。

先來看看就業市場!截至2020年4月,Monster.com列出了超過4.1萬份“Java開發人員”的工作,以及8500份“.NET開發人員“的工作。Glassdoor顯示,Java開發人員(不論級別和位置)的平均工資約為7.9萬美元,ASP.NET/C#開發人員為7.65萬美元。

是不是要毫不猶豫選JAVA了?也不要太快下結論,還是要仔細思索一下這兩種平臺哪一個更適合你,哪一個與技術未來更為密切。

老派的Java

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

Java學起來相對簡單,也有很多免費可用的培訓資源,還有一個龐大的社群幫助新手完成學習過程。Java適用於幾乎每個種類的專案:網路應用、手機應用、雲端計算等等。

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

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

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

圖源:freevactor

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

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

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

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

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

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

1.免費、開放、跨平臺

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

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

.NET平臺的最新版本——.NET Core——它相容所有主要的作業系統:Windows、Linux、iOS。其中有一些基本的.NET工具可以即時使用,還有很多的用於構建和編輯應用程式的附加元件以及第三方工具。專門為.NET構建的多個庫使開發過程更加舒適。

2.所有的應用型別

.NET框架(尤其是Core版本)允許開發幾乎任何型別的應用程式,無論是企業級網路應用程式、桌面或手機軟體、遊戲專案,甚至物聯網服務或AI解決方案。

隨著WebAssembly技術和Blazorframework的出現,.NET甚至可以用於構建在瀏覽器中執行的客戶端應用程式,這些網路應用程式的客戶端和伺服器端程式碼都是用C#編寫的,因此無需使用JavaScript。

3.快速進步和定期更新

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

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

4.優秀的效能

多年來,用Java或者.NET/C#創造的應用程式都有類似的效能。然而,微軟和許多第三方貢獻者在這方面的優化上做出了重大的投資,並在繼續改進。例如ASP.NET Core Web框架允許你在一臺伺服器上每秒處理700萬個請求。據TechEmpower測試,ASP.NET Core遠遠領先於任何Java開發的web框架。

另一個在.NET平臺上可以實現的力證——例如,一個用不同語言編寫的超高速網路驅動程式。用C#編寫的驅動程式展示出與C和Rust幾乎相同的效能水平,這一水平略高於Go語言,遠遠領先於包括Java在內的所有其他高階語言。

圖源:unsplash

5.C#——現代和多用途

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

最受歡迎和喜愛的無疑是C#——一種通用的面向物件的程式語言。它簡單易學,並且廣泛應用於各種軟體開發,無論是企業級的解決方案還是低階的物聯網和遊戲專案,它使得一些在Java中過於複雜的特性變得簡單。

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

.NET的不足

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

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

而.NET是一個開源的面向物件的平臺,可用於開發各式各樣的應用程式,並且它對未來有著清晰的規劃。在2020年,.NET5 將會推出,這個更新會將以前版本最好的特性結合起來。這讓學習變成一個結構優良、簡單、現代的技術,更具吸引力。

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

我們一起分享AI學習與發展的乾貨

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Vue學習筆記之Webpack環境中整合Vuejs的配置過程與使用