軟件開發的未來:計算機的未來 P2

圖片來源: 量子運行

軟件開發的未來:計算機的未來 P2

    1969 年,尼爾·阿姆斯特朗和巴茲·奧爾德林成為第一個踏上月球的人類,成為國際英雄。 但是,雖然這些宇航員是鏡頭中的英雄,但仍有成千上萬的無名英雄沒有他們的參與,第一次載人登月並非不可能。 其中一些英雄是編寫航班代碼的軟件開發人員。 為什麼?

    嗯,當時存在的計算機比現在簡單得多。 事實上,普通人破舊的智能手機比阿波羅 11 號宇宙飛船(以及 1960 年代美國國家航空航天局)上的任何東西都要強大幾個數量級。 此外,當時的計算機是由專業的軟件開發人員編寫的,他們用最基本的機器語言編寫軟件:AGC 彙編代碼,或者簡單地說,1 和 0。

    作為背景,這些無名英雄之一,阿波羅太空計劃的軟件工程部主任, 瑪格麗特·漢密爾頓,而她的團隊不得不編寫大量代碼(如下圖所示),而使用當今的編程語言本可以只用一小部分精力就可以編寫出來。

    (上圖是瑪格麗特·漢密爾頓站在一疊包含阿波羅 11 號軟件的紙旁邊。)

    與現在軟件開發人員為大約 80-90% 的可能場景編寫代碼不同,對於阿波羅任務,他們的代碼必須考慮到所有情況。 為了正確看待這一點,瑪格麗特自己說:

    “由於清單手冊中的錯誤,會合雷達開關放置在錯誤位置。這導致它向計算機發送錯誤信號。結果是計算機被要求執行所有正常著陸功能同時收到額外負載的虛假數據,佔用了其 15% 的時間。計算機(或者更確切地說是其中的軟件)足夠聰明,可以識別出它被要求執行的任務比它應該執行的要多。然後它發送發出警報,這對宇航員意味著,我現在超負荷了比我應該做的更多的任務,我將只保留更重要的任務;即著陸所需的任務......實際上, 計算機被編程為不僅僅是識別錯誤條件。一整套恢復程序被整合到軟件中。在這種情況下,軟件的作用是消除優先級較低的任務並重新建立更重要的任務......如果電腦沒有認識到這個問題並採取了恢復行動,我懷疑阿波羅 11 號是否會成功登月。”

    — 瑪格麗特·漢密爾頓,麻省劍橋市阿波羅飛行計算機編程麻省理工學院德雷珀實驗室主任,“Computer Got Loaded”,致信 數據化,3月1,1971

    正如前面所暗示的,軟件開發自阿波羅早期以來已經發展。 新的高級編程語言將繁瑣的 1 和 0 編碼過程替換為使用單詞和符號進行編碼。 生成隨機數等過去需要數天編碼的功能現在已被編寫單個命令行所取代。

    換句話說,軟件編碼每過十年就變得越來越自動化、直觀和人性化。 這些品質只會持續到未來,以對我們的日常生活產生深遠影響的方式指導軟件開發的發展。 這就是本章的內容 計算機的未來 系列將探索。

    面向大眾的軟件開發

    用文字和符號(人類語言)代替對 1 和 0(機器語言)進行編碼的過程稱為添加抽象層的過程。 這些抽像以新的編程語言的形式出現,這些語言可以為它們設計的領域自動化複雜或常見的功能。 但在 2000 年代初期,出現了新公司(如 Caspio、QuickBase 和 Mendi),它們開始提供所謂的無代碼或低代碼平台。

    這些是用戶友好的在線儀表板,使非技術專業人員能夠通過將可視代碼塊(符號/圖形)拼接在一起來創建適合其業務需求的自定義應用程序。 換句話說,您無需砍伐一棵樹並將其製成更衣櫃,而是使用宜家的預製零件建造它。

    雖然使用此服務仍然需要一定程度的計算機知識,但您不再需要計算機科學學位就可以使用它。 結果,這種抽象形式使企業界數以百萬計的新“軟件開發人員”崛起,並使許多孩子能夠在更早的時候學習如何編碼。

    重新定義成為軟件開發人員的意義

    曾經有一段時間,風景或人的臉只能被捕捉到畫布上。 作為學徒,畫家必須學習和練習多年,學習繪畫工藝——如何混合顏色、最好的工具、執行特定視覺效果的正確技術。 交易的成本和需要多年的經驗才能很好地完成交易,這也意味著畫家少之又少。

    然後發明了照相機。 只需點擊一個按鈕,風景和肖像就可以在幾秒鐘內被捕捉到,否則這需要幾天到幾週的時間才能完成。 隨著相機的改進,變得更便宜,並且變得越來越豐富,它們現在甚至包含在最基本的智能手機中,捕捉我們周圍的世界成為現在每個人都參與的普遍而隨意的活動。

    隨著抽象的進步和新的軟件語言自動化越來越多的日常軟件開發工作,在 10 到 20 年後成為一名軟件開發人員意味著什麼? 為了回答這個問題,讓我們來看看未來的軟件開發人員可能會如何構建未來的應用程序:

    *首先,所有標準化、重複的編碼工作都將消失。 取而代之的是一個包含預定義組件行為、UI 和數據流操作(宜家部件)的龐大庫。

    *像今天一樣,雇主或企業家將為軟件開發人員定義特定的目標和可交付成果,以通過專門的軟件應用程序或平台執行。

    *然後,這些開發人員將製定他們的執行策略,並通過訪問他們的組件庫並使用視覺界面將它們鏈接在一起——通過增強現實 (AR) 或虛擬現實 (VR) 訪問的視覺界面,開始為他們的軟件的早期草稿製作原型。

    *專門的人工智能 (AI) 系統旨在了解其開發人員的初始草案所暗示的目標和可交付成果,然後將改進起草的軟件設計並自動化所有質量保證測試。

    *根據結果,人工智能將向開發人員提出大量問題(可能通過類似 Alexa 的口頭交流方式),以尋求更好地理解和定義項目的目標和可交付成果,並討論軟件在各種情況下應如何運作和環境。

    *根據開發者的反饋,人工智能將逐漸了解他或她的意圖並生成代碼以反映項目目標。

    *這種來回的人機協作將迭代一個又一個版本的軟件,直到一個完整的、可銷售的版本準備好供內部實施或出售給公眾。

    *事實上,這種合作將在軟件投入實際使用後繼續進行。 當報告了簡單的錯誤時,人工智能將自動修復它們,以反映在軟件開發過程中概述的原始期望目標。 同時,更嚴重的錯誤將需要人機協作來解決問題。

    總體而言,未來的軟件開發人員將較少關注“如何”,而更多地關注“什麼”和“為什麼”。 他們將不再是工匠,而是更多的建築師。 編程將是一項智力活動,需要人們以人工智能可以理解的方式有條不紊地傳達意圖和結果,然後自動編碼完成的數字應用程序或平台。

    人工智能驅動的軟件開發

    鑑於以上部分,很明顯我們認為人工智能將在軟件開發領域發揮越來越重要的作用,但它的採用並不僅僅是為了讓軟件開發人員更高效,這一趨勢背後也有商業力量。

    軟件開發公司之間的競爭逐年加劇。 一些公司通過收購競爭對手來競爭。 其他人則在軟件差異化方面展開競爭。 後一種策略的挑戰在於它不容易防禦。 一家公司向其客戶提供的任何軟件功能或改進,其競爭對手都可以相對輕鬆地複制。

    出於這個原因,公司每隔一到三年發布一次新軟件的日子已經一去不復返了。 如今,專注於差異化的公司有越來越多的定期發布新軟件、軟件修復和軟件功能的經濟動機。 公司創新越快,他們就越能提高客戶忠誠度並增加轉向競爭對手的成本。 這種向定期交付增量軟件更新的轉變是一種稱為“持續交付”的趨勢。

    不幸的是,持續交付並不容易。 當今只有四分之一的軟​​件公司可以執行這一趨勢所要求的發佈時間表。 這就是為什麼人們對使用人工智能來加速事情如此感興趣的原因。

    如前所述,人工智能最終將在軟件起草和開發中發揮越來越多的協作作用。 但在短期內,公司正在使用它來越來越多地自動化軟件的質量保證(測試)流程。 其他公司正在嘗試使用人工智能來自動化軟件文檔——跟踪新功能和組件的發布以及它們是如何生產到代碼級別的過程。

    總體而言,人工智能將越來越多地在軟件開發中發揮核心作用。 那些早期掌握它的使用的軟件公司最終將比他們的競爭對手享受指數級增長。 但要實現這些 AI 收益,行業還需要看到硬件方面的進步——下一節將詳細闡述這一點。

    軟件作為服務

    各種創意專業人士在創作數字藝術或設計作品時都使用 Adob​​e 軟件。 近三年來,您以 CD 的形式購買了 Adob​​e 的軟件並擁有它的永久使用權,並根據需要購買未來的升級版本。 但在 2010 年代中期,Adobe 改變了策略。

    Adobe 客戶現在不必購買帶有令人討厭的複雜所有權密鑰的軟件 CD,而是必須按月付費才能在他們的計算設備上下載 Adob​​e 軟件,該軟件只能與 Adob​​e 服務器的常規到恆定 Internet 連接一起工作.

    隨著這一變化,客戶不再擁有 Adob​​e 軟件; 他們根據需要租用它。 作為回報,客戶不再需要不斷購買升級版的 Adob​​e 軟件; 只要他們訂閱了 Adob​​e 服務,他們總是會在發布後立即將最新更新上傳到他們的設備(通常一年幾次)。

    這只是我們近年來看到的最大軟件趨勢之一的一個例子:軟件如何轉變為服務而不是獨立產品。 正如我們在微軟發布的 Windows 10 更新中看到的那樣,不僅是更小的專用軟件,還有整個操作系統。 換句話說,軟件即服務(SaaS)。

    自學軟件 (SLS)

    在行業向 SaaS 轉變的基礎上,軟件領域出現了一種將 SaaS 和 AI 相結合的新趨勢。 來自亞馬遜、谷歌、微軟和 IBM 的領先公司已經開始向他們的客戶提供他們的人工智能基礎設施作為服務。

    換句話說,人工智能和機器學習不再只有軟件巨頭才能訪問,現在任何公司和開發人員都可以訪問在線人工智能資源來構建自學習軟件(SLS)。

    我們將在人工智能的未來系列中詳細討論人工智能的潛力,但在本章的上下文中,我們會說當前和未來的軟件開發人員將創建 SLS 來創建預測需要執行的任務的新系統,並只需為您自動完成它們。

    這意味著未來的 AI 助手將在辦公室學習您的工作方式並開始為您完成基本任務,例如按照您的喜好格式化文檔、以您的語氣起草電子郵件、管理您的工作日曆等等。

    在家裡,這可能意味著讓 SLS 系統管理您未來的智能家居,包括在您到達之前為您的家預熱或跟踪您需要購買的雜貨等任務。

    到 2020 年代和 2030 年代,這些 SLS 系統將在企業、政府、軍隊和消費者市場中發揮至關重要的作用,逐步幫助每個人提高生產力並減少各種浪費。 我們將在本系列後面更詳細地介紹 SLS 技術。

    然而,這一切都有一個問題。

    SaaS 和 SLS 模型工作的唯一方式是互聯網(或其背後的基礎設施)是否繼續增長和改進,以及運行這些 SaaS/SLS 系統運行的“雲”的計算和存儲硬件。 值得慶幸的是,我們正在追踪的趨勢看起來很有希望。

    要了解互聯網將如何發展和發展,請閱讀我們的 互聯網的未來 系列。 要了解有關計算機硬件將如何發展的更多信息,請使用下面的鏈接繼續閱讀!

    計算機系列的未來

    重新定義人性的新興用戶界面:計算機的未來 P1

    數字存儲革命:計算機的未來 P3

    逐漸消失的摩爾定律引發對微芯片的根本反思:計算機的未來 P4

    雲計算變得去中心化:計算機的未來 P5

    為什麼各國競相建造最大的超級計算機? 計算機的未來 P6

    量子計算機將如何改變世界:計算機的未來 P7    

    此預測的下一次預定更新

    2023-02-08