整理 | 彎月,責編 | 郭芮
頭圖 | CSDN 下載自視覺中國
每年,O』Reilly在線學習網站都會針對程式設計師需要注意和探索的趨勢、主題及問題等數據,總結出大家最為關注的主題和熱門話題。透過用戶使用O』Reilly在線學習網站的情況以及在網站上搜索的內容,不僅可以洞悉開發人員正在積極使用的工具和技術,還可以了解他們收集信息的領域。
近日,該平臺經過分析表明,Python持續佔據霸主地位,基礎設施、AI/ML、雲和安全方面出現了重大轉變。本文的主要發現包括:
Python獨領風騷。Python是O』Reilly在線學習平臺上最流行的程式語言,佔據了總使用量的10%。今年Python使用率增長的主要推動因素在於這種語言在數據科學家、機器學習(ML)和人工智慧(AI)工程師中間越來越受歡迎。軟體體系結構、基礎設施和運營都在迅速變化。向雲原生設計的轉變正在改變軟體體系結構、基礎設施和運營。此外:基礎設施和運營呈上升趨勢,而開發運維正在下降。難道這只是巧合?應該不會,只有等待時間證明一切。機器學習與人工智慧興起,但人們的熱情已有所降溫。截止到2017年,ML + AI主題一直是O』Reilly在線學習平臺上增長最快的主題之一。這個熱門話題的增長仍然強勁,但使用率在2018年放緩(+13%),2019年明顯呈降溫,增長率僅為7%。然而,在有關數據方面的主題中,ML + AI已從22%上升至26%。雲平臺仍然是熱門話題,但可能會有所變化。雲平臺使用率(+16%)的強勁勢頭推動了大多數特定於雲產品的增長。然而,人們對於遷移到雲的持續興趣(2019年使用率增長了10%,而2018年增長了30%)成為了另一個重要的新興趨勢。人們對安全的關注度日益加劇。去年,受兩項安全認證使用量增加的推動,總體的安全使用量猛增了26%:CompTIA Security(+50%)和CompTIA CySA+(+59%)。商業主管、系統管理員、DBA、開發人員等需要警惕的安全隱患非常多。
圖1 2019年O'Reilly在線學習平臺上熱門術語的搜索頻率(左),以及每個術語的變化情況(右)
圖2 O』Reilly在線學習平臺上各個主題的使用情況:2019年使用率最高的主題(左),每個主題的變化情況(右)
Python雄霸程式語言榜首
與2018年相同,2019年Python依舊是O』Reilly在線學習平臺上最受歡迎的程式語言。與Python相關的使用在2019年以6%的速度穩定增長,比2018年略有下降(+10%)。經過多年的穩步攀升(在2017年超越Java之後),與Python相關的互動現已佔所有使用量的近10%。
但Python是一個特例:與去年相比,今年Python的增長主要受到了機器學習的推動。2019年,Python語言本身的使用量僅增長了4%;相比之下,與Python和機器學習有關的使用(例如Python在AI、深度學習和自然語言處理中的使用,以及與多種流行的ML/AI框架的結合使用)的使用率增加了9%。基於Python的Web開發框架處於落後地位,其使用量同比僅增長了3%。
圖3 2019年O'Reilly在線學習平臺上頂級程式語言的搜索頻率(左),以及每種語言的變化情況(右)
圖4 O』Reilly在線學習平臺上程式語言的使用情況:2019年使用率最高的程式語言(左),每種程式語言的變化情況(右)
這與我們在其他地方觀察到的情況一致:在AI和ML的帶動下,Python獲得了更多關注。Python與R一起成為了數據分析最常用的語言。線性以及邏輯回歸、決策樹、樸素貝葉斯、k均值、梯度遞增,Python庫幾乎可以滿足開發人員或數據科學家的所有需求。(Python庫在處理工程數據方面同樣給力。)
有趣的是,R語言本身的使用呈繼續下降趨勢。在2017-2018年間, O'Reilly在線學習平臺中與R語言相關的使用量下降了8%,2019年同比下降了6%。R與Scala(2018-2019年的使用率下降了33%,2017-2018年的使用率下降了19%)同病相憐,都成為了Python的犧牲品。似乎有人非常不解R的使用下降與AI和ML的熱度,其實我們需要考慮兩個因素:首先,ML和統計不是一回事;其次,R並非主要面向開發人員。R語言的設計初衷是面向學術、科學以及最近的商業用例。隨著統計信息和相關技術在軟體開發中變得越來越重要,越來越多的程式設計師在編程中也會遇到統計問題。因此,他們會舍R而求Python。
有些程式語言的發展呈上升趨勢,而有些則呈下降趨勢。在上圖中,與Java相關的使用在2018年-2019年間下降了13%,這代表了Java的發展趨勢嗎?不一定,因為2017年-2018年間,與Java相關的搜索量增長了5%。另一方面,Java的堂兄JavaScript似乎也在下降。沒錯,兩者沒有直接的關係,但人們對JavaScript的熱情似乎確實在減弱:在O-Reilly在線學習平臺中,與JS相關的使用率在2017-2018年間下降了4%,在2018-2019年間下降了7%。微服務架構可能會加速其他語言(例如Go、Rust和Python)在Web方面的發展。
在基於JavaScript的Web應用程式框架中,2018年-2019年間,React的受歡迎程度有所提升(使用率增加了4%),而Angular有所下滑(使用率減少了12%)。React和Angular的競爭對象Vue.js在2017-2018年間的使用量幾乎翻了一番(+97%),之後在2018-2019年保持穩定增長(使用率增加了8%)。
Go的發展呈現了另一種趨勢,繼使用量連續數年快速增長(包括2017-2018年增長了14%)之後,去年的增長速度有所放緩(使用率僅增長了2%)。然而,如今Go在最常用的程式語言中排行第六,僅次於Python、Java、.NET和C++
軟體體系結構、基礎設施和運營
雲原生設計是一種思考軟體體系結構的新方法。然而,向雲原生的轉變不僅對軟體架構有影響,而且對基礎設施和運營也有影響。雲原生設計利用新的設計模式(微服務)以及對現有技術(服務編排)的改動,以在所有環境、雲或本地環境中實現類似於雲的靈活性和彈性。O』Reilly Radar通過術語「下一代體系結構」來描述這種轉變。
在這種背景下,我們必須掌握軟體體系結構、基礎設施和運營中的一切動向。在通用軟體架構主題中,有關容器使用在我們的2019年分析中有所增加,增長了17%。雖然遠遠落後於2018年的增長率(2018年使用率增長了56%),但仍然令人刮目相看。Kubernetes已成為雲原生設計模式下協調服務和微服務的實際解決方案。Kubernetes的使用量在2018年激增了211%,2019年增長了40%。Kubernetes的父主題——容器協調器也實現了強勁的使用量增長:2018年為151%,今年為36%,這幾乎可以全部歸功於Kubernetes本身。
圖5 O』Reilly在線學習平臺上軟體架構的使用情況:2019年使用率最高的架構(左),每種架構的變化情況(右)
這也解釋了微服務主題使用率增加的原因,2019年該主題的增長率為22%。雖然你不一定需要微服務來「執行」雲原生設計,但是我們很難將二者分開。大多數雲原生設計模式都涉及微服務。
這些趨勢還與基礎設施和運營的興起有關,既反映了開發運維的局限性,又反映了向雲原生設計轉變所帶來的挑戰。基礎設施和運營的使用是通用系統管理主題下增長最快的話題。基礎設施和運營的熱度也解釋了配置管理(CM)和開發運維主題領域中使用率下降的原因。最受歡迎的CM工具都著眼於開發運維,因此也會隨著開發運維一起呈下降趨勢:與所有CM工具一樣,CM主題的使用率在2019年大幅下降(下降了18%)。Ansible受的影響最小(使用量下講了4%),但Jenkins、Puppet、Chef和Salt的使用量分別下降了25%以上。在2018年下降了20%之後,開發運維使用率在2019年再次下降(下降了5%)並非偶然。
圖6 O』Reilly在線學習平臺上基礎設施和運營的使用情況:2019年使用率最高的主題(左),每種主題的變化情況(右)
基礎設施和運營的出現表明組織在擴大開發運維方面遇到了困難。開發運維旨在培養能夠勝任系統「棧」各層工作的程式設計師。但實際上,開發人員往往在開發運維方面的投入較少,網站可靠性管理(Site Reliability Engineering,簡稱SRE)的思想也因此而誕生。即便「全棧」開發人員算不上稀有,但也絕對不常見。各個組織將基礎設施和運營視為實用、以操作為重點的輔助技術,一旦開發運維失利就可以全權接管。
深入了解數據、AI和ML主題
與數據相關的主題的分析結果既在意料之中,又有點令人費解。以數據工程為首,所有核心的數據工作(包括涉及數據管理的標題,比如關係資料庫、Spark、Hadoop、SQL、NoSQL等)。總體而言,2019年數據工程使用量下降了8%。而2018年下降了3%。這兩年都是由於數據管理的使用下降所致。
如果我們更加具體地關注數據工程主題(不包括數據管理),則可以看到一部分幅度很小的使用率穩步增長,2018年增長了7%,2019年增長了15%(見圖7)。
在廣義的「數據」主題中,數據工程(包括數據管理)仍是該主題中份額最大的主題,佔據了O』Reilly在線學習平臺上所有使用的十二分之一。這幾乎是數據科學主題使用份額的兩倍,數據科學主題的使用份額在2018年下降了(-2%),後又在2019年增長了(+5%)。
其他領域對於ML和AI的關注一直在增長,儘管速度有所下降。舉個例子:2019年,ML/AI這兩個主題的使用量增長了7%,約為2018年增長的一半(+13%)。
圖7 2019年O』Reilly在線學習平臺上使用率最高的數據主題(左),以及每個主題的變化情況(右)
具有諷刺意味的是,在特定於數據的主題中,ML/AI的優勢可能沒有在其他主題領域(例如程式語言)中那麼明顯,在程式語言中,Python使用的增長在很大程度上受到了機器學習的推動。但是自然語言處理(2019年增長22%)和神經網絡(增長17%)等與ML/AI相關主題的使用量也呈強勁增長。
數據工程這項任務本身當然不會減少。人們對數據工程的興趣可能也沒有下降。數據工程作為一個實踐領域被併入了ML/AI。根據其他研究我們知道,數據科學家、機器學習和AI工程師都需要花費大量時間來處理發現、準備和工程數據等工作。我們已看到,流行的工具和框架通常都以自動化/引導式自助功能的形式融合了數據工程,而Jupyter和其他notebook等都擁有構建和編排數據工程管道的能力,它們可以調用Python、R(通過Python)的庫,同時或並行運行數據工程作業。
2019年,與老式數據工程相對應的術語(例如「關係資料庫」、「 Oracle資料庫解決方案」、「Hive」、「資料庫管理」、「數據模型」、「 Spark」)呈逐年下降趨勢。部分下降是由於更大的市場驅動因素所致。從我們的研究中可以看出,Hadoop及其相關項目(例如Hive)的生態系統正處於持續多年的長期衰退之中。這種下降在我們的使用量數據中得到了證實:Hadoop(-34%),Hive(-34%)甚至Spark(-21%)均同比大幅下降。
雲技術的發展持續攀升
在O'Reilly在線學習上,與雲相關的概念和術語的熱度仍在不斷增長,儘管增長速度有所下降。2017年-2018年間,與雲相關的使用量激增了35%;2018年-2019年間,與雲相關的使用量的增長率不到一半(17%)。這种放緩表明雲作為一個類別已經取得了很大的份額,因此(從數學上)任何其他增長都必然放緩。就雲本身而言,雖然增長速度較慢,但勢頭仍然強勁。
圖8 2019年O』Reilly在線學習平臺上使用率最高的雲主題(左),以及每個主題的變化情況(右)
雲服務提供商平臺的熱度體現了整個行業的熱度:與Amazon和AWS相關的使用量同比增長了14%;另一方面,Azure的使用量增長了29%,而Google Compute Platform(GCP)增長了39%。亞馬遜控制著雲基礎設施即服務(IaaS)產品總體市場的一半(按Gartner 2018年數據),其增長的速度之快令人震驚。Azure和GCP的增長速度都比AWS快得多,但增長幅度也要小得多:Azure在2018年的增長率接近61%(根據Gartner),佔IaaS市場的15%以上;GCP增長率約為60%,佔IaaS份額的4%。
同樣有趣的是,去年O』Reilly在線學習平臺上微服務和Kubernetes方面的熱度大幅增加。與微服務相關的使用量在2018年有所下降之後,同比再次增長22%。Kubernetes的使用同在2017年-2018年經歷了爆炸性增長(+190%)之後,今年又增長了38%。我們通過用戶調查和其他研究工作看到:微服務已成為雲原生設計和開發的重要組成部分。
我們還發現,現代軟體體系結構的基本趨勢(即在強調抽象、分離和原子性時優先考慮鬆散耦合)正在消除我們認為的「雲」與「本地」之間的界限。我們通過本地和雲部署中微服務和Kubernetes的持續熱度就能看出這一點。
這就是雲原生設計的邏輯:當然,特定的部署上下文仍然很重要,但開發人員在AWS開發中需要考慮哪些功能或約束呢?對於Azure呢?對於GCP呢?但是,區分公共雲和私有雲的清晰界限開始消失,就像將內部私有雲與傳統內部部署系統區分開的界限也正在消失。
安全話題的熱度激增
2019年,有關安全的話題呈明顯增長趨勢(+26%)。其中部分原因是CompTIA Security+(50%)和CompTIA網絡安全分析(CySA+,+59%)主題的使用量增加。
Security+是一項入門級安全認證,因此其增長可歸因於系統管理員、DBA、軟體開發人員和其他非專業人士的使用增加。無論是為了充實他們的全棧技術力、滿足新工作(或規定)要求,還是為了提高自身的市場價值,Security+都是一個非常簡單的認證過程:通過考試即可獲得認證。另一方面,CySA+則相對較新。這也就解釋了2018年與CySA+相關的使用激增(+128%),而且去年的增長勢頭也很強勁。與CISSP和流行的認證不同,CySA+推薦但不要求具有現實經驗。與Security+一樣,它也是面向系統管理員、DBA、開發人員以及其他人員提高自身技術力的認證。
認證並不是2019年推動O』Reilly在線學習平臺上與安全相關的話題熱度增高的唯一因素。一系列的漏洞和潛在攻擊也產生了一定的影響。如果說2018年(安全使用量增長5%;搜索量增長+22%)為我們帶來了Meltdown和Spectre,那麼2019年我們則清醒地認識到了有關Meltdown、尤其是Spectre的深遠影響。2019年,特定於安全性的使用量(+26%)和搜索(+25%)相應增加。系統和資料庫管理員、CSA、CISSP和其他人渴望獲得專業的深入信息,專門用於修補和加固易受攻擊的系統,防禦至少13種不同的Spectre和14種不同的Meltdown變體,以及減輕與這些修補程序相關的性能方面的潛在巨大威脅。開發人員和軟體架構師對通過重寫、重構或優化代碼解決這些問題持有疑惑。在這種背景下,與安全性相關的使用激增也在情理之中。
此外,信息安全和數據隱私方面的信息量也很大。畢竟,2019年不僅是歐盟綜合GDPR體制正式實施的第一年,而且(自2019年1月1日起)加拿大正式也啟動類似於GDPR的PIPEDA體制。全面的《加利福尼亞消費者隱私法案》(CCPA),即加利福尼亞的GDPR,於2020年1月1日生效。
綜上所述,這類趨勢的分析可以說只看到了當前安全狀態悲觀的一面。如果O』Reilly在線學習平臺上安全使用的持續增長是一個可靠的指標,那麼在全世界數位化日益加劇的情況下,安全必然會受到應有的關注。各個組織都有可能因數據洩露或駭人聽聞的黑客行為,而遭受的財務和聲譽損失的風險,而且總的來說,用於信息安全的資金都是合理的投入。
然而,這類的分析也有樂觀的一面,具體來說,安全支出是周期性的;受各種情況的影響,安全支出會增加。而且,老實說,各個組織都會從這些備受關注的安全事件中警醒。我們只能等待時間來證明一切了。
總結
不難想像,2019年最熱門的趨勢很有可能會在明年的分析中以差不多相同的順序再次重演。各個程式語言都經歷了興衰起落,但Python似乎有能力保持穩定的增長,因為它既有能力,又具有很強的適應性,而且易於使用。我們在ML和AI中的廣泛使用中看到了Python的實力,而且它已取代R成為數據工程和分析的通用語言。
機器學習和人工智慧也是如此。即使下一個AI冬季即將來臨,也很難想像對ML和AI的熱度會很快消散。關於軟體體系結構的趨勢,尤其是基礎設施和運營的趨勢,也大同小異。它們都是不斷創新的領域。這些領域的從業人員都需要緊追潮流。
我們可以按照「奧弗頓之窗」理論來思考哪些技術很熱門,而哪些不是。然而,奧弗頓之窗將人類認知的限制在特定時間和特定地域。策略(問題/趨勢)的範圍完全有可能超越界限。在某種程度上,O』Reilly在線學習上的部分活動亦是如此。即便我們的數據反映出了下降,但實際的使用量也不一定真的下降了。我們的數據只不過是為其他新興趨勢所帶動。
因此,強調為什麼像JavaScript這樣的領頭羊會出現下降趨勢也非常重要。即使這些主題不再是快速和持續創新的領域,但它們在日常工作中依然非常重要,尤其是在常見的信息收集或解決專業的問題方面。畢竟,React、Angular和Vue.js是Web開發的創新,而這三個框架都是基於JavaScript的框架。我們可以嘗試用不同的方式來理解JavaScript相關的話題(或數據工程、Docker、開發運維DevOps和變更管理。我們可以通過不同的方式分析這些技術。
我們希望通過數據分析捕捉到這些差異,這些差異不是顯而易見的變化,而是變化本身的變化。
參考連結:https://www.oreilly.com/radar/oreilly-2020-platform-analysis/
新勳章,新獎品,高流量,還有更多福利等你來拿~