根據IDC統計,儘管受COVID-19新冠大疫情的影響,2020年全球IT行業的年收入也達到了4.05萬億美元。
軟體開發已成為企業的資產,可幫助企業創新,發展和壯大。IT產業中最重要的是技術創新(創造),2021年新年伊始,我們來總結一下,新一年裡主要技術發展趨勢,那些技術才是迫切需要學習。
Native APP開發Native APP是指為特定平臺(iOS應用程式或Android)使用特定語言構建的軟體應用程式。
隨著手機移動網際網路和物聯網的發展壯大,本機應用程式的開發仍然是目前市場開發的熱點。尤其是在金融技術/銀行,多媒體,遊戲和其他對效能和介面有嚴格需求的行業。本機應用程式開發可提供增強的使用者體驗和強大的效能。由於移動應用變得越來越普遍,並且增強使用者體驗是企業的重中之重,因此主動式應用程式開發有望獲得更大的吸引力。
漸進式Web應用漸進式Web應用程式(Progressive Web App,PWA)是指可以在任何瀏覽器上執行的支援網際網路的應用程式,通常它由伺服器端指令碼(Java、Golang,PHP,Node.js等)和客戶端指令碼(JavaScript和HTML)組成的。PWA和傳統網站最明顯區別是
網站更易於訪問,而Web應用程式可以提供更廣泛的功能和更高的效能。
PWA的一些突出特徵是:
進步
這些應用程式適用於每個使用者,無論瀏覽器和位置如何。因此,無論使用哪種瀏覽器都沒關係,PWA將起作用。
反應靈敏
PWA可以適合任何裝置。無論是桌上型電腦,移動裝置還是任何其他裝置。
PWA不依賴於連線性
PWA的最顯著特徵之一是它們可以在低質量的網路上工作,甚至可以在離線狀態下工作。
儘管有上述的完美設計和優點,漸進式Web應用程式當前仍處於起步階段,預計漸進式Web應用程式開發將在2021年主導市場。
大資料計算:從Hadoop Map-Reduce到Apache Spark之前大規模資料集計算架構主要基於Hadoop Map-Reduce,該架構有一些侷限性,比如效能上、實時性上等。Apache Spark主要解決了Hadoop Map-Reduce的這些侷限性。
Spark與Hadoop相比,最大的不同是它在記憶體中的處理所有內容,並且可以將計算結果(中間結果)快取起來而不用每次操作後都儲存資料:
MapReduce分步對資料處理: 從叢集中讀取資料,進行一次處理,將結果寫到叢集,從叢集中讀取更新後的資料,進行下一次的處理,將結果寫到叢集,等等…
Spark則是在記憶體中完成所有資料分析:從叢集中讀取資料,完成所有必須的分析處理,將結果寫回叢集,完成,
由於處理資料的方式不同,Spark比MapReduce要快得多,Spark批處理速度比MapReduce快近10倍,記憶體中的資料分析速度則快近100倍,可以響應實時性的業務請求。
如果對資料處理時間需求性不大,則MapReduce的處理方式可以的。但是有很多業務,比如智慧裝置和感測器收集資料,日誌監控等,則需要實時性處理,這時候就只能使用Spark了。
由於行業需求和其快速處理的優勢,Spark迅速接管了分散式批處理作業,預計將在2021年,及更長時間內後統治行業大資料批處理的架構。
前端開發:Angular,React和VueVue,React和Angular 2是2020最流行的前端年使用的前三大框架。專家預測,這些框架將在2021年繼續流行。
ReactJS允許編寫更少的程式碼,而虛擬DOM的實現可以提高效能。這是JavaScript Framework開發人員的最常見選擇。
Angular 2+框架允許簡單的路由,使其比其他前端開發框架更具優勢。它有助於構建引人注目的使用者介面。
Vue開源的有國人編寫的JavaScript框架,可以用於開發單頁面APP,還可以用作Web應用程式框架,Vue的MVVM資料雙向資料繫結和靈活插拔的元件系統,具有簡單、靈活的特點。相比其它的MVVM框架,Vue更容易上手。
還有NodeJS被認為是快速和可擴充套件網路應用程式(全棧開發)的首選框架。它既快速又輕巧,被廣泛使用。
這些框架是2020年最流行的前端(全棧)的框架,並將在2021年繼續熱門。
跨平臺和混合部署為了向用戶提供靈活的體驗,本地應用程式本不是是唯一的選擇,可以使用混合應用程式並依靠Web技術和瀏覽器渲染。或者,也可以使用跨平臺工具,例如Webview,React Native和Flutter,以及藉助第三方平臺小程式的跨平臺方案實現,比如微信小程式和支付寶小程式等。
需要了解到混合和跨平臺應用程式是不一樣的,儘管他們共享程式碼達共同的功能。無論如何,跨平臺的Web開發仍將是2021年軟體開發的主要趨勢之一。
公有云計算雲計算通常是在商業資料中心中透過網際網路遠端執行工作負載。它已成為部署企業應用程式的理想方法,即使那些已經構建系統的企業也正在將其基礎架構遷移到雲中。
預計像GCP,AWS,微軟Azure以及阿里雲,騰訊雲等公有云服務將在2021年繼續大賺特賺,而將雲技術或服務(如部署或將資料傳輸到雲)也將帶來巨大收益。雲專家的需求將更高。基於公有云服務的Web開發服務由於對快速訪問和資料安全性的需求不斷增長,從小型初創公司到醫療保健提供商,政府機構等保守型企業的每項業務都在做雲化轉型。這種趨勢只會在2021年會發展更快。
JAVA,Kotlin和ScalaJAVA程式設計是最著名和最常用的企業級軟體開發語言之一。由於有大量企業應用都是使用Java開發,並且還將在2021年繼續佔據市場主導地位。
Java的執行時,Java虛擬機器(或稱為JVM)為JAVA以及Scala和Kotlin等其他程式語言奠定了良好的基礎。但是,由於JVM許可證的更改,企業可能要支付訂閱費。這可能會導致將來轉向其他主要平臺。
Golang和RustGolang語言由谷歌前輩在2007年推出,雖然是一個內部學院派的產品,但是Golang提供了明顯的優勢,那就是內建在內建協程機制和垃圾收集,而且語法簡練易上手,這樣一來高效能高效就成了其最大特點。近年來一些流行的技術比如Docker和K8S等容器生態中,Golang開發是中堅力量。
Rust晚兩年於2010年由mozilla主導推出的開源語言。其基本設計就是為了安全性,基於所有權系統和變數生命週期設計,無GC,保障了安全高效,而且支援範型、好用的cargo包管理器等讓Rust成了人見人愛的香餑餑。
可以預期在2021年這兩個語言還能保持最大熱度,是當前最值得入手的學習兩門語言,尤其Golang 2即將推出的範型是大家最期待的功能。
總結軟體開發中的技術變化比任何其他行業都快,無論是醫療保健到AI、自動化,物聯網每個行業都廣泛採用軟體技術。未來幾年,對軟體開發技能的需求將會增長,要趕上時代潮流和趨勢,成為新時代的弄潮兒,學習IT新技術必不可少。